This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
ld: library path searching silliness
- From: "Kaz Kylheku" <kaz at zeugmasystems dot com>
- To: <gcc-help at gcc dot gnu dot org>
- Date: Wed, 1 Nov 2006 14:25:04 -0800
- Subject: ld: library path searching silliness
I'm building gcc 4.1.1 for mips-linux, final compiler integrated with
glibc.
The target ABI is n32. The binutils are 2.17.
During the build, when xgcc wants to link libgcc_s.so, the crti.o module
cannot be found.
The reason is that a path with a nonexistent component is being used, as
strace reveals.
It's trying to access the following. (The underlined part of the path is
my sysroot).
/cross/mips64-linux/mips64-linux/root/usr/lib/../lib32/crti.o
-------------------------------------
The problem is that the lib/ directory does not exist. If it existed,
then this would work.
The linker should not assume that there is a lib directory, and that
../lib32 can be found relative to it. The correct logic is to take the
directory name from the ../lib path and then add /lib32, not to play
games with .. links.
I have no /lib because everything I have built inside this sysroot so
far uses the n32 ABI, which is stricly in /lib32 and /usr/lib32. There
won't be a /lib on the target system, unless someone wants to build an
o32 ABI library.