[PATCH] ARM: fix build error with GCC 4.5.0

Mikael Pettersson mikpe at it.uu.se
Thu Nov 4 17:21:51 EDT 2010


Måns Rullgård writes:
 > Rabin Vincent <rabin at rab.in> writes:
 > 
 > > Fix the following error which occurs when building an ARM kernel with
 > > GCC 4.5.0:
 > >
 > >   arm-linux-gcc -Wp,-MD,kernel/.bounds.s.d  -nostdinc
 > >   [command line edited to remove paths]
 > >   -D__KERNEL__ -mlittle-endian
 > >   -Wall -Wundef
 > >   -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
 > >   -Werror-implicit-function-declaration -Wno-format-security
 > >   -fno-delete-null-pointer-checks -Os -marm -fno-dwarf2-cfi-asm
 > >   -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -D__LINUX_ARM_ARCH__=5
 > >   -march=armv5te -mtune=arm9tdmi -msoft-float -Uarm -fomit-frame-pointer -g
 > >   -DCC_HAVE_ASM_GOTO    -D"KBUILD_STR(s)=#s"
 > >   -D"KBUILD_BASENAME=KBUILD_STR(bounds)"  -D"KBUILD_MODNAME=KBUILD_STR(bounds)"
 > >   -fverbose-asm -S -o kernel/bounds.s kernel/bounds.c
 > >   kernel/bounds.c:1:0: error: FPA is unsupported in the AAPCS
 > >
 > > Signed-off-by: Rabin Vincent <rabin at rab.in>
 > > ---
 > > Seen with this compiler:
 > >
 > > http://kernel.org/pub/tools/crosstool/files/bin/x86_64/4.5.0/x86_64-gcc-4.5.0-nolibc_arm-linux.tar.bz2
 > >
 > >  arch/arm/Makefile |    2 +-
 > >  1 files changed, 1 insertions(+), 1 deletions(-)
 > >
 > > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
 > > index b87aed0..c06d9ed 100644
 > > --- a/arch/arm/Makefile
 > > +++ b/arch/arm/Makefile
 > > @@ -91,7 +91,7 @@ tune-$(CONFIG_CPU_FEROCEON)	:=$(call cc-option,-mtune=marvell-f,-mtune=xscale)
 > >  tune-$(CONFIG_CPU_V6)		:=$(call cc-option,-mtune=arm1136j-s,-mtune=strongarm)
 > >
 > >  ifeq ($(CONFIG_AEABI),y)
 > > -CFLAGS_ABI	:=-mabi=aapcs-linux -mno-thumb-interwork
 > > +CFLAGS_ABI	:=-mabi=aapcs-linux -mno-thumb-interwork -mfpu=vfp
 > 
 > The real question is why something is trying to use floating-point.
 > It shouldn't.

Indeed. I suspect an improperly patched or configured gcc-4.5.0,
or broken kernel sources. Especially considering that the kernel
passes -msoft-float to gcc (see above).

I know gcc-4.5.0 configured for arm-linux-gnueabi built working EABI
kernels a few months ago.



More information about the linux-arm-kernel mailing list