libtool
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

libtool 1.4 not passing linker directives


From: Ian Peters
Subject: libtool 1.4 not passing linker directives
Date: 05 Oct 2001 01:14:52 -0400

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
address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]