From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 98381 invoked by alias); 21 Mar 2019 09:15:37 -0000 Mailing-List: contact crossgcc-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: crossgcc-owner@sourceware.org Received: (qmail 98223 invoked by uid 89); 21 Mar 2019 09:15:27 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: Yes, score=6.0 required=5.0 tests=AWL,BAYES_99,BAYES_999,CROSSGCC_BAD,FREEMAIL_FROM,GIT_PATCH_2,HTML_MESSAGE,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.1 spammy=Solutions, Amtsgericht, amtsgericht, lewis X-HELO: mail-oi1-f175.google.com Received: from mail-oi1-f175.google.com (HELO mail-oi1-f175.google.com) (209.85.167.175) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 21 Mar 2019 09:15:22 +0000 Received: by mail-oi1-f175.google.com with SMTP id e22so4113225oiy.0 for ; Thu, 21 Mar 2019 02:15:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=Yp/YCVBPQlRoMnRe8MpB2U2mN3bINo4ypSmpbBPSHv8=; b=NrHcHZS8hQGrhjCgjLlLHohgNPWsRgCZIYoTgJq7vPtiLRbPiozEh4Nnml7O5zJRr6 yOsl6tM5rez0HcZFakHpMXtvJ8fs3PtXNd3SA+CibRUphsp+nEOxj/doK2eYFfJxg87L A8+cYVmzIwlZynmz6xtlTm6bjfO1g6tvweUDqcGY1VkbZcktSVubY5fOGkdgRsbwEqqL x3oah1Jk7bf1pQWu9F0lz/zbpphpB9LFJREZ71lbnM3D0c1vheXSfNgBJB2dm+esGjn3 4N9reTeRAxPucnofPrgSy7a9BVO3nTvpKnvB4W3bzmdU60sh1/pzR0p1Noiyo3LlxnlB G4Tg== MIME-Version: 1.0 References: <20190320075215.7j36mofzoewd5qfa@pengutronix.de> <20190321073332.b3725avve4p6ascg@pengutronix.de> <20190321080614.jmpycfyetz4rugui@pengutronix.de> In-Reply-To: From: Austin Morton Date: Thu, 21 Mar 2019 09:15:00 -0000 Message-ID: Subject: Re: selected processor does not support `rev r7,r7' To: Lewis Zhou Cc: crossgcc maillist , barebox@lists.infradead.org, Sascha Hauer Content-Type: text/plain; charset="UTF-8" X-IsSubscribed: yes X-SW-Source: 2019-03/txt/msg00014.txt.bz2 Looks like Kbuilds cc-option is failing somehow. Can you do a clean build with V=1 and post the whole log? Hopefully that should show the invocations kbuild is doing. Side note, I don't really understand this bit > -march=armv5t -Wa,-march=armv7-a This is telling cc to use march=armv5t and the assembler to use armv7-a. I can't think of a scenario where this would be desired, but maybe I am overlooking something. Without digging too far, the failing object file (memory.o) is a fairly small c file that includes no obvious inline assembly (although I didn't look to far into it's includes), so to me it seems like the compiler is generating assembly that the assembler finds to be invalid. Presumably because they are operating with differing march flags. But anyway, the root issue is that kbuild is incorrectly identifying your compiler does not support armv7-a On Thu, Mar 21, 2019, 04:49 Lewis Zhou wrote: > Hi Austin, > > Here's the list. armv7-a is on the list. > > lewis@lewis-ubuntu:~/x-tools/arm-cortex_a8-linux-gnueabihf/bin$ > ./arm-cortex_a8-linux-gnueabihf-gcc -E -march=help -xc /dev/null > arm-cortex_a8-linux-gnueabihf-gcc: error: unrecognized -march target: help > arm-cortex_a8-linux-gnueabihf-gcc: note: valid arguments are: armv2 > armv2a armv3 armv3m armv4 armv4t armv5 armv5t armv5e armv5te armv5tej > armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m > armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a > armv8.2-a armv8.3-a armv8.4-a armv8-m.base armv8-m.main armv8-r iwmmxt > iwmmxt2 > arm-cortex_a8-linux-gnueabihf-gcc: error: missing argument to '-march=' > > That's strange. When compiling both barebox and linux. I always got errors > like: > > "selected processor does not support `rev r7,r7' > > > Kind regards, > Lewis > > > > On Thu, Mar 21, 2019 at 4:40 PM Austin Morton > 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 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 > >> Date: Thu, Mar 21, 2019 at 4:06 PM > >> Subject: Re: selected processor does not support `rev r7,r7' > >> To: Lewis Zhou > >> Cc: > >> > >> > >> 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 | >