This is the mail archive of the crossgcc@sourceware.org mailing list for the crossgcc project.

See crosstool-NG for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: selected processor does not support `rev r7,r7'


Any recent version of gcc should spit out a list of supported March values
if invoked with an invalid value. (read gcc 7 or higher).

What does this command output on your compiler?

# gcc -E -march=help -xc /dev/null

https://stackoverflow.com/questions/47299458/how-can-i-determine-what-architectures-gcc-supports

On Thu, Mar 21, 2019, 04:25 Lewis Zhou <lewisou@gmail.com> wrote:

> 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 |
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]