Hi, everyone,
On Tue, Sep 8, 2026 at 8:29 AM Arnd Bergmann [off-list ref] wrote:
The main limitation here is the CPU bus that does not allow 16-bit
wide data transfers and hence requires the kernel to be built with the
-march=armv3 compiler option that was discontinued in gcc-9.
As gcc-8 is barely supported for compiling the kernel, this one
will not see another LTS kernel release, so remove it now.
Because I think it's cool that the kernel still supports actual Acorn
hardware, I patched gcc 16.2 to restore ARMv3m support:
https://github.com/EthanNelson-Moore/gcc-arm-retro
This ended up being surprisingly straightforward - only a couple
hundred lines changed - and it would be even fewer lines had I not
reverted a commit that adds a use of ldrh instead of fixing it.
It is able to compile a kernel successfully (once you update the GCC
version check to check for -march=armv3m support instead - I can send
my patch). I haven't tested it, but I am fairly confident that it
would run, because the assembler will reject code the compiler
generates with unsupported instructions - this is how I found the
commit I needed to revert.
I am working on a clocksource driver, which uses both timers (to
hopefully fix the awful time drift), and removes the dependency on
LEGACY_TIMER_TICK.
I also have patches for several cleanups to Risc PC-related code.
I am aware that this has no actual use case, but it was fun. No LLM
was used for any part of the work.
Ethan