[csw-maintainers] Shared library placement proposal
Maciej Bliziński
maciej at opencsw.org
Tue Feb 8 09:47:50 CET 2011
2011/2/8 Jonathan Craig <jcraig at opencsw.org>:
> The primary reason being that this allows easier integration of
> multiple versions. If you reverse this and force the actual library
> into /opt/csw/lib then you will have to move this library to its
> package/versioned subdirectory before overwriting. This would be a
> logistical nightmare.
I'm not sure I'm following. Can you describe a concrete scenario?
> As to libraries with SONAME collisions I don't know whether its better
> to not create any symlinks or always create symlinks to the newest
> version (or possibly last installed). Its a coin toss between
> problems finding libraries during builds and the possibility that
> you'll break an existing application by installing a newer version of
> the library. Having said that, I guess I would lean towards
> operational stability and not create any symlinks.
Each backward-incompatible upgrade of a library comes with a new
SONAME, so it won't break existing programs. There's one predictable
SONAME collision scenario, and it is C++ libraries compiled with
Solaris Studio vs GCC. Because each complier has it's own way of name
mangling, the two libraries will be incompatible.
I see two potential solutions to it:
1. Injecting a soname modification, e.g. turning libfoo.so.1 into
libfoo-gcc.so.1
2. Keeping GCC-compiled C++ libraries in a separate directory, e.g.
/opt/csw/lib-gcc
Maciej
More information about the maintainers
mailing list