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'


You are correct, that is the root of the issue.

Can you add -v to that gcc invocation and post the output?

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

> Hi,
>
> I am pretty sure the root cause is this:
> ~/OpenProj/linux-beagleboard/scripts$  arm-cortex_a8-linux-gnueabihf
> -Werror -march=armv7-a -c -x c /dev/null -o "$$TMP"
> cc1: error: -mfloat-abi=hard: selected processor lacks an FPU
>
> Why does the arm-cortex_a8-linux-gnueabihf toolchain built by ct-ng
> emit this error? Which make the Kbuild believe the CC not support
> armv7-a!
>
>
> Kind regards,
> Lewis
>
> On Fri, Mar 22, 2019 at 11:30 AM Lewis Zhou <lewisou@gmail.com> wrote:
> >
> > Hi,
> >
> > I was using  arm-cortex_a8-linux-gnueabihf built by ct-ng to compile
> > Linux-4.19 and got a stranger cc-option  -march=armv5t
> > -Wa,-march=armv7-a which is believed to cause the make failure.
> >
> > After some investigations, I guess that a line in the
> > ./arch/arm/Makefile below generated the strange cc-option:
> >
> > arch-$(CONFIG_CPU_32v7)   =-D__LINUX_ARM_ARCH__=7 $(call
> > cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
> >
> > But I have no idea why. I have tried the arm-linux-gnueabihf package
> > on Ubuntu, that works ok.
> >
> > Kind regards,
> > Lewis
> >
> > On Thu, Mar 21, 2019 at 4:40 PM Austin Morton <austinpmorton@gmail.com>
> wrote:
> > >
> > > 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]