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