This is the mail archive of the crossgcc@cygnus.com mailing list for the crossgcc project.


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

egcs-1.1b or gcc-2.8.1 for powerpc cross-compiler ?



I am trying to compile a powerpc cross compiler for the MPC860.
Am I better off using egcs-1.1b or gcc-2.8.1 ?
I assume egcs is a better compiler (especially for C++) but is gcc more
stable ?
I also assume that egcs has better powerpc support but it is just a
guess.

I've tried the following targets for a linux hosted powerpc cross
compiler.
--target=ppc-elf
--target=ppc-eabi

I got errors so I thought I'd try --target=m68k-coff as it is pretty
mature.  The same errors.
ppc-eabi gives"as: unrecognized option `-ppc'"
m68k-coff gives "as: unrecogized option -a68020" or something simialr.

Is it using the correct assembler.  Maybe its using the native linux
i386 assembler ??
Can anyone help.  Some error logs are attatched.



  HOST_PREFIX="" HOST_PREFIX_1="loser-" \
  LANGUAGES="c c++" \
  LIBGCC2_CFLAGS="-O2  -DCROSS_COMPILE -DIN_GCC    -g -O2 -I./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc   -mrelocatable-lib -mno-eabi -mstrict-align" libgcc2.a
make[3]: Entering directory `/mnt/home/usr/local/src/egcs-1.1b-build/ppc-eabi/gcc'
rm -f tmplibgcc2.a
for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf __gcc_bcmp _varargs __dummy _eprintf _bb _shtab _clear_cache _trampoline __main _exit _ctors _pure; \
do \
  echo ${name}; \
  /mnt/home/usr/local/src/egcs-1.1b-build/ppc-eabi/gcc/xgcc -B/mnt/home/usr/local/src/egcs-1.1b-build/ppc-eabi/gcc/ -O2  -DCROSS_COMPILE -DIN_GCC    -g -O2 -I./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc   -mrelocatable-lib -mno-eabi -mstrict-align -I. -I/root/egcs-1.1b/gcc -I/root/egcs-1.1b/gcc/config -c -DL${name} \
    /root/egcs-1.1b/gcc/libgcc2.c -o ${name}.o; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
  ppc-eabi-ar rc tmplibgcc2.a ${name}.o; \
  rm -f ${name}.o; \
done
_muldi3
as: unrecognized option `-ppc'
make[3]: *** [libgcc2.a] Error 1
make[3]: Leaving directory `/mnt/home/usr/local/src/egcs-1.1b-build/ppc-eabi/gcc'
make[2]: *** [stmp-multilib-sub] Error 2
make[2]: Leaving directory `/mnt/home/usr/local/src/egcs-1.1b-build/ppc-eabi/gcc'
make[1]: *** [stmp-multilib] Error 1
make[1]: Leaving directory `/mnt/home/usr/local/src/egcs-1.1b-build/ppc-eabi/gcc'
make: *** [cross] Error 2
[root@k9 ppc-eabi]# 

make[1]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/libiberty'
make[1]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/libiberty'
make[1]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo'
make all-recursive
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo'
Making all in intl
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo/intl'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo/intl'
Making all in lib
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo/lib'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo/lib'
Making all in makeinfo
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo/makeinfo'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo/makeinfo'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo'
make[1]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/texinfo'
make[1]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/libiberty'
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/libiberty'
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/libiberty'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/libiberty'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/bfd'
make all-recursive
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/bfd'
Making all in doc
make[4]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/bfd/doc'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/bfd/doc'
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/bfd'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/bfd'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/opcodes'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/opcodes'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/binutils'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/binutils'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/etc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/etc'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/gas'
make all-recursive
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/gas'
Making all in doc
make[4]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/gas/doc'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/gas/doc'
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/gas'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/gas'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/ld'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils/ld'
make[1]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/binutils'
Bootstrapping the compiler
make[1]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/gcc'
make CC="gcc" libdir=/usr/local/egcs/lib LANGUAGES="c "
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/m68k-coff/gcc'
rm -f tmplibgcc1.a libgcc1.S
cp ../../../egcs-1.1b/gcc/config/m68k/lb1sf68.asm libgcc1.S
for name in _mulsi3 _udivsi3 _divsi3 _umodsi3 _modsi3 _double _float _floatex _eqdf2 _nedf2 _gtdf2 _gedf2 _ltdf2 _ledf2 _eqsf2 _nesf2 _gtsf2 _gesf2 _ltsf2 _lesf2; \
do \
  echo ${name}; \
  ./xgcc -B./ -O2  -DCROSS_COMPILE -DIN_GCC    -g -I./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc  -I. -I../../../egcs-1.1b/gcc -I../../../egcs-1.1b/gcc/config -c -DL${name} libgcc1.S; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
  mv libgcc1.o ${name}.o; \
  ` if [ -f /usr/local/src/egcs-1.1b-build/m68k-coff/gcc/../binutils/ar ] ; then echo /usr/local/src/egcs-1.1b-build/m68k-coff/gcc/../binutils/ar ; else if [ "i586-pc-linux-gnu" = "m68k-unknown-coff" ] ; then echo ar; else t='s,x,x,'; echo ar | sed -e $t ; fi; fi` rc tmplibgcc1.a ${name}.o; \
  rm -f ${name}.o; \
done
_mulsi3
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/gcc'
make[1]: Leaving directory `/usr/local/src/egcs-1.1b-build/m68k-coff/gcc'
make[1]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/libiberty'
make[1]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/libiberty'
make[1]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo'
make all-recursive
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo'
Making all in intl
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo/intl'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo/intl'
Making all in lib
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo/lib'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo/lib'
Making all in makeinfo
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo/makeinfo'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo/makeinfo'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo'
make[1]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/texinfo'
make[1]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/libiberty'
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/libiberty'
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/libiberty'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/libiberty'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/bfd'
make all-recursive
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/bfd'
Making all in doc
make[4]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/bfd/doc'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/bfd/doc'
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/bfd'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/bfd'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/opcodes'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/opcodes'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/binutils'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/binutils'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/etc'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/etc'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/gas'
make all-recursive
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/gas'
Making all in doc
make[4]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/gas/doc'
make[4]: Nothing to be done for `all'.
make[4]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/gas/doc'
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/gas'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/gas'
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/ld'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils/ld'
make[1]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/binutils'
Bootstrapping the compiler
make[1]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/gcc'
make CC="gcc" libdir=/usr/local/egcs/lib LANGUAGES="c "
make[2]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/gcc'
for i in `./xgcc -B./ --print-multi-lib`; do \
  dir=`echo $i | sed -e 's/;.*$//'`; \
  flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
  make GCC_FOR_TARGET="./xgcc -B./" \
    AR="` if [ -f /usr/local/src/egcs-1.1b-build/ppc-elf/gcc/../binutils/ar ] ; then echo /usr/local/src/egcs-1.1b-build/ppc-elf/gcc/../binutils/ar ; else if [ "i586-pc-linux-gnu" = "powerpc-unknown-elf" ] ; then echo ar; else t='s,x,x,'; echo ar | sed -e $t ; fi; fi`" AR_FLAGS="rc" CC="gcc" CFLAGS="-g" \
    RANLIB="` if [ -f /usr/local/src/egcs-1.1b-build/ppc-elf/gcc/../binutils/ranlib ] ; then echo /usr/local/src/egcs-1.1b-build/ppc-elf/gcc/../binutils/ranlib ; else if [ "i586-pc-linux-gnu" = "powerpc-unknown-elf" ] ; then echo ranlib; else t='s,x,x,'; echo ranlib | sed -e $t ; fi; fi`" RANLIB_TEST="[ -f ` if [ -f /usr/local/src/egcs-1.1b-build/ppc-elf/gcc/../binutils/ranlib ] ; then echo /usr/local/src/egcs-1.1b-build/ppc-elf/gcc/../binutils/ranlib ; else if [ "i586-pc-linux-gnu" = "powerpc-unknown-elf" ] ; then echo ranlib; else t='s,x,x,'; echo ranlib | sed -e $t ; fi; fi` ] || ( [ "i586-pc-linux-gnu" = "powerpc-unknown-elf" ] && [ -f /usr/bin/ranlib -o -f /bin/ranlib ] )" \
    LANGUAGES="c " \
    HOST_PREFIX="" HOST_PREFIX_1="loser-" \
    LIBGCC2_CFLAGS="-O2  -DCROSS_COMPILE -DIN_GCC    -g -I./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc  ${flags}" \
    MULTILIB_CFLAGS="${flags}" \
    LIBGCC1="" LIBGCC2="libgcc2.a" \
    dir="${dir}" stmp-multilib-sub; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
done
make[3]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/gcc'
rm -f libgcc2.a
if [ -d . ]; then \
  cd .; \
  rm -f libgcc.a ecrti.o ecrtn.o scrt0.o scrti.o scrtn.o; \
else true; \
fi
make GCC_FOR_TARGET="./xgcc -B./" \
  AR="ar" AR_FLAGS="rc" CC="gcc" CFLAGS="-g" \
  HOST_PREFIX="" HOST_PREFIX_1="loser-" \
  LANGUAGES="c " \
  LIBGCC2_CFLAGS="-O2  -DCROSS_COMPILE -DIN_GCC    -g -I./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc   -mstrict-align" libgcc2.a
make[4]: Entering directory `/usr/local/src/egcs-1.1b-build/ppc-elf/gcc'
rm -f tmplibgcc2.a
for name in _muldi3 _divdi3 _moddi3 _udivdi3 _umoddi3 _negdi2 _lshrdi3 _ashldi3 _ashrdi3 _ffsdi2 _udiv_w_sdiv _udivmoddi4 _cmpdi2 _ucmpdi2 _floatdidf _floatdisf _fixunsdfsi _fixunssfsi _fixunsdfdi _fixdfdi _fixunssfdi _fixsfdi _fixxfdi _fixunsxfdi _floatdixf _fixunsxfsi _fixtfdi _fixunstfdi _floatditf __gcc_bcmp _varargs __dummy _eprintf _bb _shtab _clear_cache _trampoline __main _exit _ctors _pure; \
do \
  echo ${name}; \
  ./xgcc -B./ -O2  -DCROSS_COMPILE -DIN_GCC    -g -I./include   -g1  -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc   -mstrict-align -I. -I../../../egcs-1.1b/gcc -I../../../egcs-1.1b/gcc/config -c -DL${name} \
      ../../../egcs-1.1b/gcc/libgcc2.c -o ${name}.o; \
  if [ $? -eq 0 ] ; then true; else exit 1; fi; \
  ar rc tmplibgcc2.a ${name}.o; \
  rm -f ${name}.o; \
done
_muldi3
make[4]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/gcc'
make[3]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/gcc'
make[2]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/gcc'
make[1]: Leaving directory `/usr/local/src/egcs-1.1b-build/ppc-elf/gcc'