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