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]

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


I had this same problem.  I believe I had to set my path so that the
gas(as - gnu assembler) path  was first in my path.  Otherwise it
seemed that xgcc (intermediate compiler) was calling gas(as) from my
/usr/bin.

What the real fix is I dont know. :)

Vaughan




---Brendan Simon <brendan@dgs.monash.edu.au> wrote:
>
> 
> 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'
> 

_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com

________________________________________________
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.