mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-08-05 16:54:27 +00:00

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>
25 lines
1.1 KiB
ReStructuredText
25 lines
1.1 KiB
ReStructuredText
.. SPDX-License-Identifier: GPL-2.0
|
|
|
|
Arch Support
|
|
============
|
|
|
|
Currently, the Rust compiler (``rustc``) uses LLVM for code generation,
|
|
which limits the supported architectures that can be targeted. In addition,
|
|
support for building the kernel with LLVM/Clang varies (please see
|
|
Documentation/kbuild/llvm.rst). This support is needed for ``bindgen``
|
|
which uses ``libclang``.
|
|
|
|
Below is a general summary of architectures that currently work. Level of
|
|
support corresponds to ``S`` values in the ``MAINTAINERS`` file.
|
|
|
|
============= ================ ==============================================
|
|
Architecture Level of support Constraints
|
|
============= ================ ==============================================
|
|
``arm`` Maintained ARMv7 Little Endian only.
|
|
``arm64`` Maintained Little Endian only.
|
|
``loongarch`` Maintained \-
|
|
``riscv`` Maintained ``riscv64`` and LLVM/Clang only.
|
|
``um`` Maintained \-
|
|
``x86`` Maintained ``x86_64`` only.
|
|
============= ================ ==============================================
|
|
|