[Bug ld/6753] New: -L order is not respected when searching for -l, but -T fixes it
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 -L= -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. So, the internal script and external script provided to ldwith -T are same (verified in --verbose mode) but their treatment is different. That's the bug. -- Summary: -L order is not respected when searching for - l, but -T fixes it Product: binutils Version: 2.18 Status: NEW Severity: normal
[Bug ld/6753] -L order is not respected when searching for -l, but -T fixes it
--- Additional Comments From funtoos at yahoo dot com 2008-07-20 23:57 --- the command line is generated by libtool and I just passed '-v -v ' to g++ to get to the eventual ld command line. I tried adding -L= for fun but the result was same without -L=. All libs specified with -l were found in /usr/lib instead of /home/devsk/portage/usr/lib. -- http://sourceware.org/bugzilla/show_bug.cgi?id=6753 --- You are receiving this mail because: --- You are on the CC list for the bug, or are watching someone who is. ___ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils
linker problem ? help needed !!!
Dear all , first of all thanks a lot for providing such a wonderful tools 'gcc' and 'ld'. i am trying to link some object files but i am getting error "System cant execute this program" i cant understand the reason because there is no appropriate descriptive error message. Pls suggest me . also tell me how to enable warnings etc. with the linker. thanks, navi ___ bug-binutils mailing list bug-binutils@gnu.org http://lists.gnu.org/mailman/listinfo/bug-binutils
-L order is not respected when searching for -l, but -T fixes it
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 ___ bug-b