[Bug 537363] Review Request: lv2-c++-tools - Support library for writing LV2 plugins in C++
bugzilla at redhat.com
bugzilla at redhat.com
Sat Feb 20 10:19:59 UTC 2010
Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug.
https://bugzilla.redhat.com/show_bug.cgi?id=537363
--- Comment #7 from Orcan 'oget' Ogetbil <oget.fedora at gmail.com> 2010-02-20 05:19:54 EST ---
Hi, I got a hold of the project developer and he requested me to leave the two
libraries static, as otherwise things might break. Here is what he says:
> Well, I don't think I'll ever make the libraries shared by default -
> there are reasons for having them static other than ABI instability. I
> don't think that the gain in file size and maintainability in separating
> such a tiny piece of code (two 2-line functions and one 3-line function
> for liblv2-plugin.a, one 2-line function and one 4-line function for
> liblv2-gui.a) justifies the additional annoyance of having an extra
> runtime dependency for every plugin built using the libraries (more of
> an annoyance for people who build from source than for those who use
> package managers obviously).
>
> Also, when looking at the code I remembered a reason why it's not a good
> idea to build the current code as shared libraries. liblv2-plugin.a
> contains a symbol, LV2::get_lv2_descriptors()::descriptors, which is a
> list of plugin descriptors for all the plugins in that plugin library.
> If liblv2-plugin is shared that symbol would be shared by all plugin
> libraries that a host has loaded, which would cause two problems:
>
> 1) Since all the plugin descriptors would end up in the same list, it
> would appear to the host as if every plugin library contained every
> plugin, which could possibly break things and definitely confuse
> diagnostic tools, and
> 2) the code that accesses that list is not threadsafe, and the LV2
> spec only guarantees that plugin discovery calls are not
> executed simultaneously by the host for plugins in the same
> library, so having a shared list for all libraries could
> potentially corrupt memory.
>
> liblv2-gui.a has a similar problem.
I removed my hacks and I am building the two libraries static.
SPEC: http://oget.fedorapeople.org/review/lv2-c++-tools.spec
SRPM: http://oget.fedorapeople.org/review/lv2-c++-tools-1.0.3-2.fc12.src.rpm
Some notes:
- I removed the -fno-var-tracking-assignments hack too. gcc seems fixed now. It
takes a little while to compile still. But it doesn't hang.
- There are two static (liblv2-gui.a, liblv2-plugin.a) and one shared
(libpag.so) library. I didn't make a static subpackage since the contents of
the .a files are not the same as the content of the .so file. Is this okay?
What is your opinion?
--
Configure bugmail: https://bugzilla.redhat.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the package-review
mailing list