Fwd: selected processor does not support `rev r7,r7'
Lewis Zhou <[email protected]> Thu, 21 Mar 2019 16:24:43 +0800
| Newsgroups | gmane.comp.gcc.cross-compiling |
|---|---|
| Message-ID | <CAD_PvuY8oVy3Ny65bcF2a3LPC0R4+8uXCu6qda6CcbY+Ji+3JQ@mail.gmail.com> |
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 <[email protected]> Date: Thu, Mar 21, 2019 at 4:06 PM Subject: Re: selected processor does not support `rev r7,r7' To: Lewis Zhou <[email protected]> Cc: <[email protected]> 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 |