ARM: 9441/1: rust: Enable Rust support for ARMv7
authorChristian Schrrefl <chrisi.schrefl@gmail.com>
Thu, 30 Jan 2025 23:03:45 +0000 (00:03 +0100)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Wed, 26 Mar 2025 13:31:16 +0000 (13:31 +0000)
commitccb8ce526807fcbd4578d6619100d8ec48769ea8
treeed5866eb6449aa0faca7adaef095eebcf46ae051
parentf9733aa925d99268e3c1f284d3e62e6a643dcc1d
ARM: 9441/1: rust: Enable Rust support for ARMv7

This commit allows building ARMv7 kernels with Rust support.

The rust core library expects some __eabi_... functions
that are not implemented in the kernel.
Those functions are some float operations and __aeabi_uldivmod.
For now those are implemented with define_panicking_intrinsics!.

This is based on the code by Sven Van Asbroeck from the original
rust branch and inspired by the AArch version by Jamie Cunliffe.

I have tested the rust samples and a custom simple MMIO module
on hardware (De1SoC FPGA + Arm A9 CPU).

Tested-by: Rudraksha Gupta <guptarud@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Acked-by: Miguel Ojeda <ojeda@kernel.org>
Tested-by: Miguel Ojeda <ojeda@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Christian Schrefl <chrisi.schrefl@gmail.com>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Documentation/rust/arch-support.rst
arch/arm/Kconfig
arch/arm/Makefile
rust/Makefile
rust/compiler_builtins.rs
scripts/generate_rust_target.rs