Broken arc toolchain

Alexey Brodkin Alexey.Brodkin at synopsys.com
Sun Jul 11 00:03:37 CEST 2021


Hi Tom and Simon,

So there're a couple of things involved indeed.

  1.  As Tom correctly mentioned we used to use SNSP pre-built tools for ARC in TravisCI previously. And frankly the reason was we needed something GCC 8.x based while on some other arches such a new GCC triggered extra problems, see https://lists.denx.de/pipermail/u-boot/2018-May/329577.html. So I updated ARC pre-built versions and we kept using it.
  2.  Now, that particular "mcpu" was never added into upstream GCC because we wanted to re-implement it a bit nicer, thus any up-to-date vanilla GCC won't accept it as opposed to tools built from SNPS' GCC port [which has it https://github.com/foss-for-synopsys-dwc-arc-processors/gcc/commit/84a3ee3844f9967a1b6c5923b9da4e6720c1d5bb].
  3.  IIRC "-mcpu=hs4x_rel31" is basically an umbrella option for some options combination based on generic "-mcpu=hs4x" so we may probably update HSDK-4xD flags to be buildable by vanialla GGC.

But anyways the simples short-term solution is to use our pre-built tools, latest of which are avaialble here https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/tag/arc-2021.03-release. And for U-Boot elf32 version is what I would suggest to use, so please use https://github.com/foss-for-synopsys-dwc-arc-processors/toolchain/releases/download/arc-2021.03-release/arc_gnu_2021.03_prebuilt_elf32_le_linux_install.tar.gz.

Moreover since by default for ARC we use U-Boot built-in libgcc the same one little-endian toolchain might be safely used for building our big-endian configs equally well.

If more info or actions needed, please let me know.

-Alexey


________________________________
From: Tom Rini
Sent: Saturday, July 10, 2021 11:22 PM
To: Simon Glass
Cc: U-Boot Mailing List; Alexey Brodkin; Eugeniy Paltsev
Subject: Re: Broken arc toolchain

On Sat, Jul 10, 2021 at 02:11:30PM -0600, Simon Glass wrote:

> Hi,
>
> I see this:
>
> $ buildman --fetch-arch arc
>
> Downloading toolchain for arch 'arc'
> Checking: https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/9.2.0/
> Downloading: https://www.kernel.org/pub/tools/crosstool/files/bin/x86_64/9.2.0/x86_64-gcc-9.2.0-nolibc-arc-linux.tar.xz
>  Unpacking to: /home/sglass/.buildman-toolchains
> Testing
>       - looking in
> '/home/sglass/.buildman-toolchains/gcc-9.2.0-nolibc/arc-linux/.'
>       - looking in
> '/home/sglass/.buildman-toolchains/gcc-9.2.0-nolibc/arc-linux/bin'
>          - found
> '/home/sglass/.buildman-toolchains/gcc-9.2.0-nolibc/arc-linux/bin/arc-linux-gcc'
>       - looking in
> '/home/sglass/.buildman-toolchains/gcc-9.2.0-nolibc/arc-linux/usr/bin'
> Tool chain test:  OK, arch='arc', priority 5
>
> $ buildman -A hsdk_4xd
> /home/sglass/.buildman-toolchains/gcc-9.2.0-nolibc/arc-linux/bin/arc-linux-
> $ buildman hsdk_4xd
> ...
> arc-linux-gcc: error: unrecognized argument in option '-mcpu=hs4x_rel31
>
>
> Do you have any thoughts on what is wrong, please?

There's two parts.  The first part is I keep forgetting to update
buildman to fetch the latest toolchains from kernel.org, it should be
grabbing 11.1.0 now, not 9.2.0.  The second part is that arc, nds32 and
xtensa have non-standard toolchain locations, see
tools/docker/Dockerfile for where to fetch.

--
Tom


More information about the U-Boot mailing list