Hello Paul, * Paul Eggert wrote on Fri, Jun 16, 2006 at 08:01:33PM CEST: > > [...] in coreutils CVS we're using a new gl_IGNORE_UNUSED_LIBRARIES > macro (defined in m4/lib-ignore.m4) that tells the linker to omit > references to libraries that are not actually used (this is the '-z > ignore' option of the Solaris linker). > > At some point I was going to propose to move this into gnulib.
One problem with generally using this is that libtool will track the library dependencies regardless of whether the library is actually needed or not -- it cannot know. This dependency then propagates for installed libraries, which means you'd have to use it with all dependent programs; also, I think (and I'm clearly waving my hands here), you could have the problem that if - you have a program that needs symbol foo from libfoo, - but a dependency libbar listed in one of the dependencies of the installed libbaz (which itself depends on gnulib code) also provides a symbol foo, there could be the chance that you're getting the wrong symbol even if, without the practice above, the program would never come close to libbaz at all, I think. (The chance depends of course on the order in which the libraries eventually end up on the linker command line.) Arguably this is a limitation of Libtool, but it does really only expose limitations of systems that Libtool supports. And no, I don't have a good example or indication of how likely such a clash is (but it does sound frightening if possible). (Was this description understandable?) Cheers, Ralf