bug-binutils
[Top][All Lists]
Advanced

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

-L order is not respected when searching for -l<libname>, but -T fixes i


From: devsk
Subject: -L order is not respected when searching for -l<libname>, but -T fixes it
Date: Sun, 20 Jul 2008 21:05:47 -0700 (PDT)

Hi,

I filed bug http://sourceware.org/bugzilla/show_bug.cgi?id=6753 but I think I 
might be doing something wrong. Can someone please tell me why ld finds the 
right library when given an explicit -T argument and not if -T is not given but 
the internal script is same as the one provided with -T?


I am building with in prefix /home/devsk/portage and binutils is configured 
with:

./configure --prefix=/home/devsk/portage/usr --host=i686-pc-linux-gnu
--target=i686-pc-linux-gnu
--datadir=/home/devsk/portage/usr/share/binutils-data/i686-pc-linux-gnu/2.18.50.0.7
--infodir=/home/devsk/portage/usr/share/binutils-data/i686-pc-linux-gnu/2.18.50.0.7/info
--mandir=/home/devsk/portage/usr/share/binutils-data/i686-pc-linux-gnu/2.18.50.0.7/man
--bindir=/home/devsk/portage/usr/i686-pc-linux-gnu/binutils-bin/2.18.50.0.7
--libdir=/home/devsk/portage/usr/lib/binutils/i686-pc-linux-gnu/2.18.50.0.7
--libexecdir=/home/devsk/portage/usr/lib/binutils/i686-pc-linux-gnu/2.18.50.0.7
--includedir=/home/devsk/portage/usr/lib/binutils/i686-pc-linux-gnu/2.18.50.0.7/include
--enable-64-bit-bfd --enable-shared --disable-werror --disable-nls
--build=i686-pc-linux-gnu --disable-nls --with-gnu-ld --enable-debug=no
--disable-debug
-with-lib-path=/home/devsk/portage/lib:/home/devsk/portage/usr/lib:/home/devsk/portage/usr/X11R6/lib:/usr/X11R6/lib:/usr/lib:/lib
--x-includes=/home/devsk/portage/usr/include
--x-libraries=/home/devsk/portage/usr/lib

GCC is gcc-4.2.4

This link fails to find appropriate libfontconfig.so:

/home/devsk/portage/usr/bin/ld --verbose -v --eh-frame-hdr -m elf_i386
-dynamic-linker /lib/ld-linux.so.2 -o kdesktop_lock /usr/lib/crt1.o
/usr/lib/crti.o
/home/devsk/portage/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/crtbegin.o 
-L/home/devsk/portage/lib -L/home/devsk/portage/usr/lib
-L/home/devsk/portage/usr/kde/3.5/lib -L/home/devsk/portage/usr/qt/3/lib
-L/usr/X11R6/lib -L/usr/lib
-L/home/devsk/portage/usr/lib/gcc/i686-pc-linux-gnu/4.2.4
-L/home/devsk/portage/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/../../../../i686-pc-linux-gnu/lib
-L/home/devsk/portage/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/../../..
kdesktop_lock.all_cc.o ../.libs/libkdesktopsettings.a
../../kdmlib/.libs/libdmctl.a /home/devsk/portage/usr/kde/3.5/lib/libkio.so
/home/devsk/portage/usr/kde/3.5/lib/libkdeui.so
/home/devsk/portage/usr/kde/3.5/lib/libkdesu.so
/home/devsk/portage/usr/kde/3.5/lib/libkwalletclient.so
/home/devsk/portage/usr/kde/3.5/lib/libkdecore.so -lutempter
/home/devsk/portage/usr/kde/3.5/lib/libDCOP.so -lresolv -lutil
/home/devsk/portage/usr/lib/libart_lgpl_2.so
/home/devsk/portage/usr/lib/libidn.so
/home/devsk/portage/usr/kde/3.5/lib/libkdefx.so
/home/devsk/portage/usr/qt/3/lib/libqt-mt.so -lmng -ljpeg -lpng -lfontconfig
/home/devsk/portage/usr/lib/libmng.so /home/devsk/portage/usr/lib/liblcms.so
/home/devsk/portage/usr/lib/libjpeg.so /home/devsk/portage/usr/lib/libXrandr.so
/home/devsk/portage/usr/lib/libXcursor.so
/home/devsk/portage/usr/lib/libXfixes.so /home/devsk/portage/usr/lib/libXft.so
/home/devsk/portage/usr/lib/libfontconfig.so
/home/devsk/portage/usr/lib/libfreetype.so
/home/devsk/portage/usr/lib/libexpat.so /home/devsk/portage/usr/lib/libpng12.so
/home/devsk/portage/usr/lib/libXrender.so -lz
/home/devsk/portage/usr/lib/libfam.so
/home/devsk/portage/usr/lib/libXxf86misc.so /usr/lib/libGLU.so
/home/devsk/portage/usr/lib/libSM.so /home/devsk/portage/usr/lib/libICE.so
/home/devsk/portage/usr/lib/libXmu.so /home/devsk/portage/usr/lib/libXt.so
/home/devsk/portage/usr/lib/libXext.so /home/devsk/portage/usr/lib/libXi.so
-lpthread -lGL /home/devsk/portage/usr/lib/libX11.so
/home/devsk/portage/usr/lib/libXau.so /home/devsk/portage/usr/lib/libXdmcp.so
-ldl --rpath /home/devsk/portage/usr/kde/3.5/lib --rpath
/home/devsk/portage/usr/lib --rpath /home/devsk/portage/usr/qt/3/lib --rpath
/home/devsk/portage/usr/kde/3.5/lib --rpath /home/devsk/portage/usr/lib --rpath
/home/devsk/portage/usr/qt/3/lib -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc
/home/devsk/portage/usr/lib/gcc/i686-pc-linux-gnu/4.2.4/crtend.o /usr/lib/crtn.o
> /tmp/tmper 2>&1

/home/devsk/portage/usr/lib is ahead of /usr/lib in -L search order but the
verbose output shows:

-lpng (/usr/lib/libpng.so)
attempt to open /home/devsk/portage/usr/kde/3.5/lib/libfontconfig.so failed
attempt to open /home/devsk/portage/usr/kde/3.5/lib/libfontconfig.a failed
attempt to open /home/devsk/portage/usr/qt/3/lib/libfontconfig.so failed
attempt to open /home/devsk/portage/usr/qt/3/lib/libfontconfig.a failed
attempt to open /usr/X11R6/lib/libfontconfig.so failed
attempt to open /usr/X11R6/lib/libfontconfig.a failed
attempt to open /usr/lib/libfontconfig.so succeeded
-lfontconfig (/usr/lib/libfontconfig.so)

The internal script has the SEARCH_DIR paths set correctly to specify 
/home/devsk/portage/usr/lib ahead of system paths.

If I invoke ld with -T and provide the same linker script explicitly, it finds
the libraries in correct order.
Thanks
-devsk



      




reply via email to

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