Configuring with following options --build=x86_64-linux --host=x86_64-linux --target=sh4-oe-linux --prefix=/scratch/oe/qemush4/cross/sh4 --exec_prefix=/scratch/oe/qemush4/cross/sh4 --bindir=/scratch/oe/qemush4/cross/sh4/bin --sbindir=/scratch/oe/qemush4/cross/sh4/bin --libexecdir=/scratch/oe/qemush4/cross/sh4/libexec --datadir=/scratch/oe/qemush4/cross/sh4/share --sysconfdir=/scratch/oe/qemush4/cross/sh4/etc --sharedstatedir=/scratch/oe/qemush4/cross/sh4/com --localstatedir=/scratch/oe/qemush4/cross/sh4/var --libdir=/scratch/oe/qemush4/cross/sh4/lib --includedir=/scratch/oe/qemush4/cross/sh4/include --oldincludedir=/scratch/oe/qemush4/cross/sh4/include --infodir=/scratch/oe/qemush4/cross/sh4/share/info --mandir=/scratch/oe/qemush4/cross/sh4/share/man --with-local-prefix=/scratch/oe/qemush4/staging/sh4-oe-linux/usr --enable-shared --disable-multilib --disable-threads --enable-languages=c --enable-target-optspace --program-prefix=sh4-oe-linux- --with-sysroot=/scratch/oe/qemush4/staging/sh4-oe-linux --with-build-sysroot=/scratch/oe/qemush4/staging/sh4-oe-linux --disable-libmudflap --disable-libgomp --disable-libssp --enable-__cxa_atexit Thread model: single gcc version 4.5.0 20100127 (experimental) (GCC)
The compilation fails during libgcc build because its not able to find crti.o Reducing the problem, when -m4 is explicitly mentioned on the commandline then gcc calls collect2 with different parameters. with -m4 /scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc/collect2 --sysroot=/scratch/oe/qemush4/staging/sh4-oe-linux/m4 --eh-frame-hdr -m shlelf_linux -dynamic-linker /lib/ld-linux.so.2 crt1.o crti.o /scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc/crtbegin.o -L/scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc /tmp/ccwddCby.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc/crtend.o crtn.o /scratch/oe/qemush4/cross/sh4/sh4-oe-linux/bin/ld: crt1.o: No such file: No such file or directory without -m4 COLLECT_GCC_OPTIONS='-v' '-B/scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc' /scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc/collect2 --sysroot=/scratch/oe/qemush4/staging/sh4-oe-linux --eh-frame-hdr -m shlelf_linux -dynamic-linker /lib/ld-linux.so.2 /scratch/oe/qemush4/staging/sh4-oe-linux/usr/lib/crt1.o /scratch/oe/qemush4/staging/sh4-oe-linux/usr/lib/crti.o /scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc/crtbegin.o -L/scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc -L/scratch/oe/qemush4/staging/sh4-oe-linux/usr/lib /tmp/cch1T65V.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /scratch/oe/qemush4/work/sh4-oe-linux/gcc-cross-intermediate-4.5+svnr156268-r0/gcc-4.5+svnr156268/build.x86_64-linux.sh4-oe-linux/gcc/crtend.o /scratch/oe/qemush4/staging/sh4-oe-linux/usr/lib/crtn.o --sysroot is appended with 'm4' the default multilib is m4 so it should have looked under base sysroot like it did when no -m4 was used and crti.o and crtn.o are not used with absolute path if I use any other option other than -m4 say -m4-nofpu it works ok. It works ok on gcc 4.4 may be http://gcc.gnu.org/ml/gcc-patches/2009-04/msg00432.html is related to this. -- Summary: multilib and startup files paths differ on sh4 with -m4 and without -m4 where -m4 is default multilib Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: raj dot khem at gmail dot com GCC build triplet: x86_64-linux GCC host triplet: x86_64-linux GCC target triplet: sh4-oe-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42947