RISC-V: enable building 64-bit kernels with rust support
authorMiguel Ojeda <ojeda@kernel.org>
Tue, 9 Apr 2024 17:25:16 +0000 (18:25 +0100)
committerPalmer Dabbelt <palmer@rivosinc.com>
Sun, 28 Apr 2024 21:50:34 +0000 (14:50 -0700)
commit70a57b247251aabadd67795c3097c0fcc616e533
tree67d97ccdefffbbf84a4ba3cb750739ac25cba0a5
parent300ce44cbe2924aa83330fc5f24e035665f51b03
RISC-V: enable building 64-bit kernels with rust support

The rust modules work on 64-bit RISC-V, with no twiddling required.
Select HAVE_RUST and provide the required flags to kbuild so that the
modules can be used. The Makefile and Kconfig changes are lifted from
work done by Miguel in the Rust-for-Linux tree, hence his authorship.
Following the rabbit hole, the Makefile changes originated in a script,
created based on config files originally added by Gary, hence his
co-authorship.

32-bit is broken in core rust code, so support is limited to 64-bit:
ld.lld: error: undefined symbol: __udivdi3

As 64-bit RISC-V is now supported, add it to the arch support table.

Co-developed-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Gary Guo <gary@garyguo.net>
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
Co-developed-by: Conor Dooley <conor.dooley@microchip.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20240409-silencer-book-ce1320f06aab@spud
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Documentation/rust/arch-support.rst
arch/riscv/Kconfig
arch/riscv/Makefile
scripts/generate_rust_target.rs