Re: Broken arc toolchain

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/84a3ee384...]. 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/t.... 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/d....
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... 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

Hi Alexey,
On Sat, 10 Jul 2021 at 16:03, Alexey Brodkin Alexey.Brodkin@synopsys.com wrote:
Hi Tom and Simon,
So there're a couple of things involved indeed.
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. 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/84a3ee384...]. 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/t.... 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/d....
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.
Thanks for the instructions. I was able to make it work.
I hope you can get your toolchain things upstream soon!
Regards, Simon
-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... 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
participants (2)
-
Alexey Brodkin
-
Simon Glass