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.