Linux kernel compilation failed with error: FPA is unsupported in the AAPCS

Mikael Pettersson mikpe at it.uu.se
Wed Dec 8 09:21:10 EST 2010


Prasad Joshi writes:
 > On Wed, Dec 8, 2010 at 1:37 PM, Jamie Iles <jamie at jamieiles.com> wrote:
 > > On Wed, Dec 08, 2010 at 01:04:17PM +0000, Prasad Joshi wrote:
 > >> Hello All,
 > >>
 > >> I am trying to compile the linux 2.6.36 kernel for arm-linux. This is
 > >> the error I am getting during compilation.
 > >>
 > >> clfs at prasad-desktop:/mnt/clfs/sources/linux-2.6.36$ make
 > >> ARCH=${CLFS_ARCH} CROSS_COMPILE=${CLFS_TARGET}- zImage modules
 > >>   CHK     include/linux/version.h
 > >>   CHK     include/generated/utsrelease.h
 > >> make[1]: `include/generated/mach-types.h' is up to date.
 > >>   CC      kernel/bounds.s
 > >> kernel/bounds.c:1:0: error: FPA is unsupported in the AAPCS
 > >> make[1]: *** [kernel/bounds.s] Error 1
 > >> make: *** [prepare0] Error 2
 > >>
 > >> These are the environment variables
 > >> export BUILD="-mabi=arm-linux"
 > >> export CLFS_ARCH="arm"
 > >> export CLFS_TARGET="arm-unknown-linux-uclibc"
 > >> export CLFS_HOST="x86_64-cross-linux-gnu"
 > >> export CLFS_ENDIAN="little"
 > >> export CC="arm-unknown-linux-uclibc-gcc"
 > >> export CXX="arm-unknown-linux-uclibc-g++"
 > >> export AR="arm-unknown-linux-uclibc-ar"
 > >> export AS="arm-unknown-linux-uclibc-as"
 > >> export LD="arm-unknown-linux-uclibc-ld"
 > >> export RANLIB="arm-unknown-linux-uclibc-ranlib"
 > >> export READELF="arm-unknown-linux-uclibc-readelf"
 > >> export STRIP="arm-unknown-linux-uclibc-strip"
 > >>
 > >> clfs at prasad-desktop:/mnt/clfs/sources/linux-2.6.36$
 > >> arm-unknown-linux-uclibc-gcc -v
 > >> Using built-in specs.
 > >> COLLECT_GCC=arm-unknown-linux-uclibc-gcc
 > >> COLLECT_LTO_WRAPPER=/mnt/clfs/cross-tools/libexec/gcc/arm-unknown-linux-uclibc/4.5.1/lto-wrapper
 > >> Target: arm-unknown-linux-uclibc
 > >> Configured with: ../gcc-4.5.1/configure --prefix=/mnt/clfs/cross-tools
 > >> --build=x86_64-cross-linux-gnu --host=x86_64-cross-linux-gnu
 > >> --target=arm-unknown-linux-uclibc --with-sysroot=/mnt/clfs
 > >> --disable-nls --disable-shared --with-mpfr=/mnt/clfs/cross-tools
 > >> --with-gmp=/mnt/clfs/cross-tools --without-headers --with-newlib
 > >> --disable-decimal-float --disable-libgomp --disable-libmudflap
 > >> --disable-libssp --disable-threads --enable-languages=c :
 > >> (reconfigured) ../gcc-4.5.1/configure --prefix=/mnt/clfs/cross-tools
 > >> --build=x86_64-cross-linux-gnu --target=arm-unknown-linux-uclibc
 > >> --host=x86_64-cross-linux-gnu --with-sysroot=/mnt/clfs --disable-nls
 > >> --enable-shared --enable-languages=c --enable-c99 --enable-long-long
 > >> --with-mpfr=/mnt/clfs/cross-tools --with-gmp=/mnt/clfs/cross-tools
 > >> Thread model: posix
 > >> gcc version 4.5.1 (GCC)
 > > If your kernel is configured for EABI (CONFIG_AEABI=y) then you'll need a
 > > compiler built for EABI. You can find one at
 > > http://kernel.org/pub/tools/crosstool/files/bin/ that doesn't have a libc.
 > >
 > 
 > Thanks a lot Jamie and Mikael. I can not follow what is EABI or OABI.
 > But while configuring the linux kernel I enabled EABI. After disabling
 > it, make is running smoothly.
 > 
 > I have one more (silly) question on same, my intention behind
 > compiling the linux kernel is to boot RealView ARM under QEMU. Would
 > disabling EABI would make kernel unbootable with QEMU?

The kernel, no, but user-space won't work if it's EABI while the kernel
is OABI.  I'm guessing your user-space is arm-unknown-linux-uclibc, which
presumably is OABI, so an OABI kernel should be selected.

However, OABI is becoming obsolete and unsupported.  New projects should
be EABI.



More information about the linux-arm-kernel mailing list