Fwd: selected processor does not support `rev r7,r7'
Lewis Zhou
lewisou@gmail.com
Thu Mar 21 08:24:00 GMT 2019
Hi,
I recently tried to compile the barebox bootloaer with the
arm-cortex_a8-linux-gnueabihf configuration which is based on the
sample configuration arm-cortex_a8-linux-gnueabi with the hardware
float enabled.
However, the compiler (gcc) seems not support -march=armv7-a flag. I
think something is wrong as the cortex_a8 is a sub-architecture of
armv7-a.
The toolchain failed to compile both the barebox and the linux kernel
(4.19). Please help! Attached is a response from the barebox mailing
list.
Kind regards,
Lewis
---------- Forwarded message ---------
From: Sascha Hauer <s.hauer@pengutronix.de>
Date: Thu, Mar 21, 2019 at 4:06 PM
Subject: Re: selected processor does not support `rev r7,r7'
To: Lewis Zhou <lewisou@gmail.com>
Cc: <barebox@lists.infradead.org>
On Thu, Mar 21, 2019 at 03:53:06PM +0800, Lewis Zhou wrote:
> Hi Sascha,
>
> Here's the log:
>
> make -f scripts/Makefile.build obj=common
>
> arm-cortex_a8-linux-gnueabihf-gcc -Wp,-MD,common/.memory.o.d
> -nostdinc -isystem
> /home/lewis/x-tools/arm-cortex_a8-linux-gnueabihf/lib/gcc/arm-cortex_a8-linux-gnueabihf/8.3.0/include
> -D__KERNEL__ -D__BAREBOX__ -Iinclude
> -I/home/lewis/OpenProj/barebox/dts/include
> -I/home/lewis/OpenProj/barebox/arch/arm/include
> -I/home/lewis/OpenProj/barebox/arch/arm/include -include
> /home/lewis/OpenProj/barebox/include/linux/kconfig.h -fno-builtin
> -ffreestanding -D__ARM__ -fno-strict-aliasing -marm -mlittle-endian
> -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=7
> -march=armv5t -Wa,-march=armv7-a -msoft-float -mthumb
-march=armv5t -Wa,-march=armv7-a shouldn't be here. It comes from this
line in arch/arm/Makefile:
arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 $(call
cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
This means the build process will use "-march=armv7-a" when the compiler
supports it. Apparently it does not, so it will fall back to
"-march=armv5t -Wa,-march=armv7-a". armv5t doesn't support thumb2 code,
only thumb and as it seems thumb does not support the "rev" instruction.
Your compiler should really support "-march=armv7-a". If it doesn't I
really think there is something wrong with it.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the crossgcc
mailing list