Re: [PATCH v3] arm: rust: Enable Rust support for ARMv7

From: Christian Schrefl
Date: Sat Apr 05 2025 - 16:05:36 EST


Hi Linus,

On 21.03.25 8:24 AM, Linus Walleij wrote:
> Hi Christian,
>
> thanks for your patch!
>
> Sorry for being late to the show. I missed this very nice patch
> that was actually on my personal TODO but I have to much
> to do and also I'm not smart with Rust, but I'm a big supporter.
>
> On Thu, Jan 23, 2025 at 11:40 PM Christian Schrefl
> <chrisi.schrefl@xxxxxxxxx> wrote:
>
>> + select HAVE_RUST if CPU_LITTLE_ENDIAN && CPU_32v7
>
> Nothing in the patch series really explains this restriction, so it
> should be in the commit message. Arnd mentions some atomics
> etc, but we really need to know exactly why this is in the patch.

This should probably work with armv6 targets, for v5 or v4 Targets a
different target would have to be specified in the KBUILD_RUSTFLAGS.

Rust also has some big endian arm targets.

>
> I'm a bit surprised by this since the rustc LLVM backend nowadays
> support all old ARM ISAs. I would have expected:
>
> select HAVE_RUST if AEABI
>
> Ideally this should work on any ARM core, but it's fair to require
> EABI.
>
> The big reason: I think we want to be able to use Rust in kernel
> core components sooner than ARMv5 goes away from the kernel.
>
> If testing is the only issue, I can provide testing on ARMv4, v5,
> ARMv5 BE etc, just tell me how to test. (But I guess it's more than
> that...)

The main reason that I only did this for ARMv7 was that I'm not very
familiar with older arm versions and that I only have v7 hardware for
testing.

I currently don't have much time to work on this, but when/if it
works in qemu I'll send you a message to test it on HW.

Cheers
Christian