Takács Áron kirjoitti:
I have a working cross toolchain form arm (gcc-3.3.2, binutils-2.17). I have
to update gcc in order to compile recent kernels.
I downloaded gcc-4.1.1, created the gcc-build directory and configured gcc as
follows:
.../gcc-4.1.1/configure --target=arm-linux --prefix=/opt/arm-linux
--enable-languages=c,c++ --with-cpu=xscale --host=i686-pc-linux-gnu
--disable-nls --enable-threads=posix --enable-symvers=gnu
--enable-__cxa_atexit --enable-shared --enable-c99 --enable-long-long
--without-fp
"RTFM", consult the 'gcc/config.gcc' for the configure options for
gcc-4.1.1, etc. ! The ones working with gcc-3.3 maybe don't work
any more :-( For instance the 'gcc/config.gcc' has for ARM the
following configure options handled:
------------------- clip --------------------------------
case "$with_arch" in
"" \
| armv[23456] | armv2a | armv3m | armv4t | armv5t \
| armv5te | armv6j |armv6k | armv6z | armv6zk \
| iwmmxt | ep9312)
# OK
;;
*)
echo "Unknown arch used in
--with-arch=$with_arch" 1>&2
exit 1
;;
esac
case "$with_float" in
"" \
| soft | hard | softfp)
# OK
;;
*)
echo "Unknown floating point type used in
--with-float=$with_f
loat" 1>&2
exit 1
;;
esac
case "$with_fpu" in
"" \
| fpa | fpe2 | fpe3 | maverick | vfp )
# OK
;;
*)
echo "Unknown fpu used in --with-fpu=$with_fpu" 2>&1
exit 1
;;
esac
case "$with_abi" in
"" \
| apcs-gnu | atpcs | aapcs | iwmmxt )
#OK
;;
*)
echo "Unknown ABI used in --with-abi=$with_abi"
exit 1
;;
esac
------------------- clip --------------------------------
The "-with-cpu=xscale" most probably is recognized but not the
rest, instead of them you should use those supported in gcc-4.1.1 !
Generally it looks like being complicated to find the "right" options
for XScale from the previous ones, and I cannot help in that... And
if you are going to continue to use your existing target C libraries,
the defaults for the new complier (got with the configure options)
maybe should be just the same, so maybe you are the best expert
in what you would need...
After that I did "make all", and got the following errors:
......
/opt/arm-linux/bin/arm-linux-ld: ERROR: libgcc/./_moddi3_s.o uses hardware FP,
whereas ./libgcc_s.so.1.tmp uses software FP
After trying options which "should" work in the GCC configure and
if they still fail, please ask again...