This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]