On 2011-05-19 Jonathan Nieder wrote:
> Well, that would be unpleasant.  Consider a program foo that links to
> both libkdecore5 and libdw1.  The installed version of libdw1 has
> been rebuilt against liblzma6, while the local copy of libkdecore5
> is still linked against liblzma5.  What happens?

If those two libraries exchange pointers to liblzma structures, things 
go wrong even with symbol versions, right? Most libraries don't do that, 
but I suppose you still need to carefully track which libraries do.

> -liblzma_la_LDFLAGS = -no-undefined -version-info 5:99:0
> +liblzma_la_LDFLAGS = -no-undefined -version-info 5:99:0 \
> +       -Wl,--version-script=$(top_srcdir)/src/liblzma/Versions

This option is specific to GNU ld, so it must not be used 
unconditionally. zlib enables symbol versioning if uname -s matches any 
of these:

    Linux* | linux* | GNU | GNU/* | *BSD | DragonFly

zlib doesn't use Autoconf so those need to be converted to the format 
used by Autoconf, although it's not clear to me yet if symbol versioning 
is wanted on all these systems in upstream liblzma. E.g. FreeBSDs ships 
xz in the base system with its symbol versioning file. On the other 
hand, maybe FreeBSD's map file could be used elsewhere too.

    http://svnweb.freebsd.org/base/head/lib/liblzma/

-- 
Lasse Collin  |  IRC: Larhzu @ IRCnet & Freenode

Reply via email to