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

Prasad Joshi
2010-12-08T14:03:06Z

On Wed, Dec 8, 2010 at 1:37 PM, Jamie Iles <jamie@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?

> Jamie
>