2001-04-05 Gary V. Vaughan <gvv@techie.com>
+ * doc/libtool.texi (Multiple dependencies): A note about the
+ problems I've reintroduced by reverting the my patch of 2001-03-31.
+
* tests/Makefile.am (TESTS): Delete references to depdemo-dups.test.
* tests/depdemo-dups.test: Removed, as part of the patch
reversion below.
* References:: Finding more information.
* Compilers:: Creating object files from source files.
* Reloadable objects:: Binding object files together.
+* Multiple dependencies:: Removing duplicate dependant libraries.
* Archivers:: Programs that create static archives.
@end detailmenu
* References:: Finding more information.
* Compilers:: Creating object files from source files.
* Reloadable objects:: Binding object files together.
+* Multiple dependencies:: Removing duplicate dependant libraries.
* Archivers:: Programs that create static archives.
@end menu
into a single reloadable object file. This temporary object file
is then used to generate a shared library.
+@node Multiple dependencies
+@subsection Multiple dependencies
+
+On most modern platforms the order that dependent libraries are listed
+has no effect on object generation. In theory, there are platforms
+which require libraries which provide missing symbols to other libraries
+to listed after those libraries whose symbols they provide.
+
+Particularly, if a pair of static archives each resolve some of the
+other's symbols, it might be necessary to list one of those archives
+both before and after the other one. Libtool does not currently cope
+with this situation well, since dupicate libraries are removed from
+thr link line.
+
+If you find yourself developing on a host that requires you to list
+libraries multiple times in order for it to generate correctly linked
+objects, you can defeat libtool's removal algorithm like this:
+
+@example
+$ libtool ... -lfoo -lbar -Wl,-lfoo
+@end example
+
@node Archivers
@subsection Archivers