Re: libtool help



Ravi Pratap M <ravi che iitm ac in> writes:

> Hi people,
> 
> 	I need some help with this :
> 
> 	In one of the final stages of linking gb, here's the super-huge
> command line libtool seems to be passing to gcc :
> 
> make[2]: Entering directory `/opt/gnome/src/gb/test'
> /bin/sh ../libtool --mode=link gcc  -g -O2 -Wall -Wunused
> -Wmissing-prototypes -Wmissing-declarations   -o gb  main.o ../gb/libgb.la
> 		../gbrun/libgbrun.la			-rdynamic
> -L/usr/lib -L/usr/X11R6/lib -lgnomeprint -lgnomeui -lart_lgpl -lgdk_imlib
> -lSM -lICE -lgtk -lgdk -lXi -lXext -lX11 -lgnome -lgnomesupport -lesd
> -laudiofile -lm -ldb1 -lgmodule -lglib -ldl -lgdk_pixbuf -ltiff -ljpeg
> -lpng -lxml -lz					-lm
> gcc -g -O2 -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -o
> .libs/gb main.o -rdynamic  ../gb/.libs/libgb.al -lm -L/usr/lib
> -L/usr/X11R6/lib -lm -lm -ldl -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext
> -lX11 -lm -lz -lm -lm -lm -lm -lm -lm -lm -ldl -ldl -lXi -lXext -lX11 -lm
> -ldl -lXi -lXext -lX11 -lm -ldl -ldl -lXi -lXext -lX11 -lm -ldl -lXi
> -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -ldl -ldl -lXi -lXext -lX11
> -lm -lz -lm -ldl -ldl -ldl -ldl -lXi -lXext -lX11 -lm -ldl -ldl -lXi
> -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -ldl -ldl -lXi -lXext -lX11
> -lm -lXi -lXext -lX11 -lm -ldl -lz -lm -lm -ldl -lz -lm -lz -lm -lz -lm
> -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -lm -ldl -ldl -ldl -ldl -ldl -lXi
> -lXext -lX11 -lm -ldl -ldl -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext
> -lX11 -lm -ldl -ldl -lXi -lXext -lX11 -lm -lz -lz -lz -lz -lz
> ../gbrun/.libs/libgbrun.so -lm -lm -ldl -ldl -lXi -lXext -lX11 -lm -ldl
> -lXi -lXext -lX11 -lm -lz -lm -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext
> -lX11 -lm -lXi -lXext -lX11 -lm -ldl -lz -lm -lz -lm -lm -lm -lm -ldl -ldl
> -ldl -ldl -lXi -lXext -lX11 -lm -lz -lz -lz -lm -lm -lm -lm -ldl -ldl -lXi
> -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -lz -lm -lm -lm -lm -lm -lm
> -lm -lm -lm -ldl -ldl -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11
> -lm -ldl -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -ldl -lXi
> -lXext -lX11 -lm -ldl -ldl -lXi -lXext -lX11 -lm -lz -lm -ldl -ldl -ldl
> -ldl -lXi -lXext -lX11 -lm -ldl -ldl -lXi -lXext -lX11 -lm -ldl -lXi
> -lXext -lX11 -lm -ldl -ldl -lXi -lXext -lX11 -lm -lXi -lXext -lX11 -lm
> -ldl -lz -lm -lm -ldl -lz -lm -lz -lm -lz -lm -lm -lm -lm -lm -lm -lm -lm
> -lm -lm -lm -lm -ldl -ldl -ldl -ldl -ldl -lXi -lXext -lX11 -lm -ldl -ldl
> -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -ldl -ldl -lXi
> -lXext -lX11 -lm -lz -lz -lz -lz -lz /usr/lib/libgnomeprint.so
> /usr/lib/libgnomeui.so -lm -lm -ldl -ldl -lXi -lXext -lX11 -lm -ldl -lXi
> -lXext -lX11 -lm -lz -lm /usr/lib/libart_lgpl.so /usr/lib/libgdk_imlib.so
> -ldl -lSM -lICE -ldl -lXi -lXext -lX11 -lm -ldl -lXi -lXext -lX11 -lm -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 -ldl
> /usr/lib/libgdk_pixbuf.so -ldl /usr/lib/libgtk.so /usr/lib/libgdk.so
> /usr/lib/libgmodule.so /usr/lib/libglib.so -ldl -lXi -lXext -lX11 -lm
> -ltiff /usr/lib/libjpeg.so -lpng /usr/lib/libxml.so -lz -lz -lz -lm
> -Wl,--rpath -Wl,/usr/local/lib
> 
> 	Why in the world is is repeating -lm -lXi -lz and the like so many
> hundred times ? I was hoping someone would know the fix to this because I
> sure as hell don't understand libtool at all :-)

Basically, if one .la file contains a library more than once, then
subsequent .la files get an exponential explosion of that library
with libtool-1.4

Preventing this problem basically means everybody being very, very
careful in what they pass when linking libraries with libtool.
GTK+-2.0 and its dependencies do this, most gnome-1.4 libraries
dont'. (It's easier to get right with pkg-config)

Regards,
                                        Owen




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