An application I work on has been calling libtool (through automake) with linker directives on the libtool line, around many of the libraries specified, like so (apologies if this wraps strangely, it's all one line):
/bin/sh ../libtool --mode=link gcc -g -O2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -o installer installer-distro.o installer-page.o installer-page-install.o installer-page-deps.o installer-page-finish.o installer-page-gdm.o installer-page-method.o installer-page-mirror.o installer-page-more-deps.o installer-page-proxy.o installer-page-select.o installer-page-start.o installer-state-machine.o installer-ui.o ../libredcarpet/src/libredcarpet.a ../libgnometransfer/src/libgnometransfer.a -Wl,-Bstatic -rdynamic -L/usr/lib -L/usr/X11R6/lib -L/usr/lib/lib -lgtkhtml -lgal -lgnomeprint -lglade-gnome -lglade -lxml -lz -lgnomeui -lart_lgpl -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl -lgnet -rdynamic -lgmodule -lglib -ldl /home/itp/gdk-pixbuf-0.11.0//gdk-pixbuf/.libs/libgdk_pixbuf.a -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm /home/itp/gdk-pixbuf-0.11.0//gdk-pixbuf/.libs/libgnomecanvaspixbuf.a /home/itp/imlib-1.9.10//gdk_imlib/.libs/libgdk_imlib.a -ljpeg -ltiff -lungif -lpng -lz -lm -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -luuid -lcrypt -lz -lutil -Wl,-Bdynamic With libtool 1.3.x, this resulted in the following call to gcc: gcc -g -O2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -o installer installer-distro.o installer-page.o installer-page-install.o installer-page-deps.o installer-page-finish.o installer-page-gdm.o installer-page-method.o installer-page-mirror.o installer-page-more-deps.o installer-page-proxy.o installer-page-select.o installer-page-start.o installer-state-machine.o installer-ui.o ../libredcarpet/src/libredcarpet.a ../libgnometransfer/src/libgnometransfer.a -Wl,-Bstatic -rdynamic -L/usr/lib -L/usr/X11R6/lib -L/usr/lib/lib -lgtkhtml -lgal -lgnomeprint -lglade-gnome -lglade -lxml -lz -lgnomeui -lart_lgpl -lSM -lICE -lgtk -lgdk -lgmodule -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd -laudiofile -lm -ldb1 -lglib -ldl -lgnet -rdynamic -lgmodule -lglib -ldl /home/itp/gdk-pixbuf-0.11.0/gdk-pixbuf/.libs/libgdk_pixbuf.a -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm /home/itp/gdk-pixbuf-0.11.0/gdk-pixbuf/.libs/libgnomecanvaspixbuf.a /home/itp/imlib-1.9.10/gdk_imlib/.libs/libgdk_imlib.a -ljpeg -ltiff -lungif -lpng -lz -lm -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm -luuid -lcrypt -lz -lutil -Wl,-Bdynamic Unfortunately, with libtool 1.4.x, I get this instead (after a much, much longer time): gcc -g -O2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -o installer installer-distro.o installer-page.o installer-page-install.o installer-page-deps.o installer-page-finish.o installer-page-gdm.o installer-page-method.o installer-page-mirror.o installer-page-more-deps.o installer-page-proxy.o installer-page-select.o installer-page-start.o installer-state-machine.o installer-ui.o -Wl,-Bstatic -rdynamic -rdynamic -rdynamic -rdynamic -Wl,-Bdynamic ../libredcarpet/src/libredcarpet.a ../libgnometransfer/src/libgnometransfer.a -L/usr/lib -L/usr/X11R6/lib -L/usr/lib/lib /usr/lib/libgtkhtml.so /usr/lib/libgnomecanvaspixbuf.so /usr/lib/libbonobo.so /usr/lib/liboaf.so /usr/lib/libORBitCosNaming.so /usr/lib/libORBit.so /usr/lib/libIIOP.so /usr/lib/libORBitutil.so /usr/lib/libbonobox.so -lz -lXi -lXext -lX11 -lm -ldl /usr/lib/libgal.so /usr/lib/libgnomeprint.so /usr/lib/libgdk_pixbuf.so -ldl -lXi -lXext -lX11 -lm -lz /usr/lib/libglade-gnome.so -lXi -lXext -lX11 -lm -ldl -lz /usr/lib/libglade.so -ldl -lXi -lXext -lX11 -lm -lz /usr/lib/libxml.so -lz -lz -lz /usr/lib/libgnomeui.so -lm -lm -ldl /usr/lib/libgdk_imlib.so -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -lz -lm /usr/lib/libart_lgpl.so -lSM -lICE -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11 /usr/lib/libgnome.so -lm -ldl -lz -lm /usr/lib/libgnomesupport.so -lz -lm /usr/lib/libesd.so -lm -lm /usr/lib/libaudiofile.so -lm -lm -lm -ldb1 -ldl /usr/lib/libgnet.so -lresolv -lnsl -ldl -ldl /home/itp/gdk-pixbuf-0.11.0//gdk-pixbuf/.libs/libgdk_pixbuf.a -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -ldl -ldl -lXi -lXext -lX11 -lm /home/itp/gdk-pixbuf-0.11.0//gdk-pixbuf/.libs/libgnomecanvaspixbuf.a /home/itp/imlib-1.9.10//gdk_imlib/.libs/libgdk_imlib.a /usr/lib/libjpeg.so -ltiff /usr/lib/libungif.so -lX11 -lpng -lz -lm /usr/lib/libgtk.so -ldl -lXi -lXext -lX11 -lm /usr/lib/libgdk.so -ldl -lXi -lXext -lX11 -lm /usr/lib/libgmodule.so -ldl /usr/lib/libglib.so -ldl -lXi -lXext -lX11 -lm -luuid -lcrypt -lz -lutil Conspicuously missing are the linker directives to be passed to gcc, namely -Wl,-Bstatic and -Wl,-Bdynamic. I do this to produce a binary that is linked statically except for libc and the dynamic linker. libtool --help --mode=link offers the following: All other options (arguments beginning with `-') are ignored. As -W isn't an option libtool claims to recognize in link mode, and as in the past ignored has meant passed on, I'm confused why libtool has stripped these directives out. Obviously this produces dramatically different results. Is this a bug in libtool 1.4.x, or an undocumented change in behaviour? If so, is there some other way to accomplish the same goal? -- Ian Peters [EMAIL PROTECTED] _______________________________________________ Libtool mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/libtool