egcs-1.1b or gcc-2.8.1 for powerpc cross-compiler ?
Brendan Simon (brendan@dgs.monash.edu.au)
Thu, 29 Oct 1998 20:54:33 +1100
This is a multi-part message in MIME format.
--------------D6EAF2311C20EB3A87FA7632
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
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.
--------------D6EAF2311C20EB3A87FA7632
Content-Type: text/plain; charset=us-ascii;
name="err-ppc-eabi"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="err-ppc-eabi"
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]#
--------------D6EAF2311C20EB3A87FA7632
Content-Type: text/plain; charset=us-ascii;
name="err-m68k-coff"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="err-m68k-coff"
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'
--------------D6EAF2311C20EB3A87FA7632
Content-Type: text/plain; charset=us-ascii;
name="err-ppc-elf"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="err-ppc-elf"
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'
--------------D6EAF2311C20EB3A87FA7632--
________________________________________________
To get help for the crossgcc list, send mail to
crossgcc-request@cygnus.com with the text 'help'
(without the quotes) in the body of the message.