mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-16 05:26:07 +00:00
33549fcf37
During the discussion before supporting rust on riscv, it was decided not to support gcc yet, due to differences in extension handling compared to llvm (only the version of libclang matching the c compiler is supported). Recently Jason Montleon reported [1] that building with gcc caused build issues, due to unsupported arguments being passed to libclang. After some discussion between myself and Miguel, it is better to disable gcc + rust builds to match the original intent, and subsequently support it when an appropriate set of extensions can be deduced from the version of libclang. Closes: https://lore.kernel.org/all/20240917000848.720765-2-jmontleo@redhat.com/ [1] Link: https://lore.kernel.org/all/20240926-battering-revolt-6c6a7827413e@spud/ [2] Fixes: 70a57b247251a ("RISC-V: enable building 64-bit kernels with rust support") Cc: stable@vger.kernel.org Reported-by: Jason Montleon <jmontleo@redhat.com> Signed-off-by: Conor Dooley <conor.dooley@microchip.com> Acked-by: Miguel Ojeda <ojeda@kernel.org> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Link: https://lore.kernel.org/r/20241001-playlist-deceiving-16ece2f440f5@spud Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
25 lines
1.0 KiB
ReStructuredText
25 lines
1.0 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
|
|
============= ================ ==============================================
|
|
``arm64`` Maintained Little Endian only.
|
|
``loongarch`` Maintained \-
|
|
``riscv`` Maintained ``riscv64`` and LLVM/Clang only.
|
|
``um`` Maintained \-
|
|
``x86`` Maintained ``x86_64`` only.
|
|
============= ================ ==============================================
|
|
|