Re: [RFC PULL] remove arch/h8300
From: Arnd Bergmann
Date: Mon Apr 04 2022 - 17:52:29 EST
On Mon, Apr 4, 2022 at 9:35 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
>
> On Mon, Apr 4, 2022 at 9:14 PM Max Filippov <jcmvbkbc@xxxxxxxxx> wrote:
> > On Mon, Apr 4, 2022 at 12:01 PM Arnd Bergmann <arnd@xxxxxxxx> wrote:
> > > On Mon, Apr 4, 2022 at 7:57 PM Max Filippov <jcmvbkbc@xxxxxxxxx> wrote:
> > > > Please let me know if you observe any specific build/runtime issues.
> > > xtensa-linux-gcc-11.1.0 -DKCONFIG_SEED=
> > ...
> > > /git/arm-soc/arch/xtensa/kernel/head.S: Assembler messages:
> > > /git/arm-soc/arch/xtensa/kernel/head.S:87: Error: invalid register
> > > 'atomctl' for 'wsr' instruction
> >
> > Sure, one cannot use an arbitrary xtensa compiler for the kernel
> > build, the compiler configuration must match the core variant selected
> > in the linux configuration. Specifically, for the nommu_kc705_defconfig
> > the following compiler can be used:
> >
> > https://github.com/foss-xtensa/toolchain/releases/download/2020.07/x86_64-2020.07-xtensa-de212-elf.tar.gz
> >
> > If you build the toolchain yourself using crosstool-ng or buildroot they
> > accept the 'configuration overlay' parameter that does the compiler
> > customization.
> >
> > Perhaps the documentation for this part is what needs to be improved.
>
> It sounds like a bug in the kernel Makefile. On all other architectures,
> you can generally just pick any (recent) compiler and build any kernel,
> as the compiler arguments set the exact target machine type based
> on the kernel config. You can't normally rely on the compiler defaults
> for kernel builds.
FWIW, the compiler I used is the one I built for kernel.org [1] using unmodified
upstream sources The config I used for this is
${SRCTREE}/configure ../log-gcc-configure /home/arnd/git/gcc/configure
--target=xtensa-linux --enable-targets=all
--prefix=/home/arnd/cross/x86_64/gcc-11.1.0-nolibc/xtensa-linux
--enable-languages=c --without-headers --disable-bootstrap
--disable-nls --disable-threads --disable-shared --disable-libmudflap
--disable-libssp --disable-libgomp --disable-decimal-float
--disable-libquadmath --disable-libatomic --disable-libcc1
--disable-libmpx --enable-checking=release
Let me know if I need to enable additional options to get a compiler
that works for all xtensa targets. Usually the --enable-targets=all
is meant to be sufficient.
Arnd
[1] https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/11.1.0/