[PATCH] buildman: Switch ARC toolchain to the upstream version

Alexey Brodkin Alexey.Brodkin at synopsys.com
Thu Jul 13 16:07:32 CEST 2023


Hi Tom,

> > Back in the day we relied a lot on Synopsys own build of the GNU tools
> > for ARC processors, but since then we worked hard on getting all our changes
> > upstream and for a couple of years now we have ARCompact (AKA ARCv1)
> > and ARCv2 processors supported very well in upstream GCC, Binutils, GDB etc.
> >
> > And so there's no need to use Synopsys forks any longer, thus we remove
> > all the references to that form and use upstream components as majority
> > of other architectures in U-Boot.
> >
> > Thanks to Tom for pointing to that left-over!
> >
> > Signed-off-by: Alexey Brodkin <abrodkin at synopsys.com>
> > Cc: Simon Glass <sjg at chromium.org>
> > Cc: Tom Rini <trini at konsulko.com>
> > Reviewed-by: Tom Rini <trini at konsulko.com>
> > Reviewed-by: Simon Glass <sjg at chromium.org>
> 
> So I tested this locally and I have a problem:
> Building current source for 1 boards (1 thread, 16 jobs per thread)
>        arc:  +   hsdk_4xd
> +(hsdk_4xd) arc-linux-gcc: error: unrecognized argument in option '-mcpu=hs4x_rel31'
> +(hsdk_4xd) arc-linux-gcc: note: valid arguments to '-mcpu=' are: arc600 arc600_mul32x16 arc600_mul64 arc600_norm arc601 arc601_mul32x16 arc601_mul64 arc601_norm arc700 arcem archs em em4 em4_dmips em4_fpuda em4_fpus em_mini hs hs34 hs38 hs38_linux hs4x hs4xd nps400 quarkse_em
> +(hsdk_4xd) make[2]: *** [scripts/Makefile.autoconf:82: u-boot.cfg] Error 1
> +(hsdk_4xd) make[2]: *** [scripts/Makefile.autoconf:52: include/autoconf.mk.dep] Error 1
> +(hsdk_4xd) make[1]: *** No rule to make target 'include/config/auto.conf', needed by 'include/config/uboot.release'.  Stop.
> +(hsdk_4xd) make: *** [Makefile:177: sub-make] Error 2
> 
> I assume it's a straight-forward fix.

Good catch. I did run test on most of ARC boards except this one
as I forgot that it really differs from the original "hsdk" :)

So, that failure happens because of missing patch on GCC12, which
adds that new "mcpu", see [1]. It's now a part of GCC 13 and so I would suggest
the following "fix":
------------------------>8-----------------------
diff --git a/tools/buildman/toolchain.py b/tools/buildman/toolchain.py
index 0ecd8458b9..e34d8db25c 100644
--- a/tools/buildman/toolchain.py
+++ b/tools/buildman/toolchain.py
@@ -499,7 +499,7 @@ class Toolchains:
         if arch == 'aarch64':
             arch = 'arm64'
         base = 'https://www.kernel.org/pub/tools/crosstool/files/bin'
-        versions = ['12.2.0', '11.1.0']
+        versions = ['13.1.0', '12.2.0', '11.1.0']
         links = []
         for version in versions:
             url = '%s/%s/%s/' % (base, arch, version)
------------------------>8-----------------------

I.e. bumping default toolchains to GCC 13.x.
Do you think it's doable at this point?

[1] https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=7501eec65c60701f72621d04eeb5342bad2fe4fb

-Alexey


More information about the U-Boot mailing list