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

Reply via email to