------- Comment #2 from hjl dot tools at gmail dot com  2009-11-11 06:02 -------
GNU linker doesn't search any directories when "-r" is used.
Gcc driver doesn't pass explicit search directories to linker:

[...@gnu-29 gcc]$ ./xgcc -B./ -v x.o
Reading specs from ./specs
COLLECT_GCC=./xgcc
COLLECT_LTO_WRAPPER=./lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../src-trunk/configure --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld
Thread model: posix
gcc version 4.5.0 20091110 (experimental) [trunk revision 154081] (GCC)
COMPILER_PATH=./
LIBRARY_PATH=./:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-B./' '-v' '-mtune=generic'
 ./collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2
/usr/lib/crt1.o /usr/lib/crti.o ./crtbegin.o -L. x.o -lgcc --as-needed -lgcc_s
--no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed ./crtend.o
/usr/lib/crtn.o
[...@gnu-29 gcc]$ ./xgcc -B./ -r x.o -lm -v
Reading specs from ./specs
COLLECT_GCC=./xgcc
COLLECT_LTO_WRAPPER=./lto-wrapper
Target: i686-pc-linux-gnu
Configured with: ../src-trunk/configure --enable-clocale=gnu --with-system-zlib
--enable-shared --with-demangler-in-ld
Thread model: posix
gcc version 4.5.0 20091110 (experimental) [trunk revision 154081] (GCC)
COMPILER_PATH=./
LIBRARY_PATH=./:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-B./' '-r' '-v' '-mtune=generic'
 ./collect2 --eh-frame-hdr -m elf_i386 -dynamic-linker /lib/ld-linux.so.2 -r
/usr/lib/crt1.o /usr/lib/crti.o ./crtbegin.o -L. x.o -lm -lgcc --as-needed
-lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed ./crtend.o
/usr/lib/crtn.o
/usr/local/i686-pc-linux-gnu/bin/ld: cannot find -lm
collect2: ld returned 1 exit status
[...@gnu-29 gcc]$

That is why "ld -r -lm" fails.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42001

Reply via email to