From: Harish Sadineni <[email protected]> Rust support in the upstream kernel on riscv64 currently only works with the LLVM/Clang toolchain, not gcc [1]. Add a sanity check that fails the build with a clear error message if TOOLCHAIN is not set to "clang" when building a riscv64 kernel with rust support enabled, pointing the user to the required local.conf/recipe override.
Also add lld-native as a dependency for riscv64, since lld is required when linking the kernel with clang. [1] https://docs.kernel.org/rust/arch-support.html Signed-off-by: Harish Sadineni <[email protected]> --- meta/classes-recipe/kernel-yocto-rust.bbclass | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/meta/classes-recipe/kernel-yocto-rust.bbclass b/meta/classes-recipe/kernel-yocto-rust.bbclass index 49f2bfc1ae..3f9b2ef6ee 100644 --- a/meta/classes-recipe/kernel-yocto-rust.bbclass +++ b/meta/classes-recipe/kernel-yocto-rust.bbclass @@ -25,3 +25,19 @@ do_kernel_configme:append () { # More details in: https://lists.openembedded.org/g/openembedded-core/message/229336 # Disable ccache for kernel build if kernel rust support is enabled to workaround this. CCACHE_DISABLE ?= "1" + +# Rust support in the kernel on riscv64 only works with the LLVM/Clang +# toolchain, not gcc: +# https://docs.kernel.org/rust/arch-support.html +# +python () { + if d.getVar('TARGET_ARCH') == 'riscv64' and d.getVar('TOOLCHAIN') != 'clang': + bb.fatal("Rust support in the kernel on riscv64 requires the clang toolchain, " \ + "but TOOLCHAIN is set to '%s'. Set TOOLCHAIN:riscv64 = \"clang\" in kernel recipe (or)" \ + "set TOOLCHAIN:pn-linux-yocto = \"clang\" in local.conf to build a riscv64 kernel with rust enabled. "\ + "see https://docs.kernel.org/rust/arch-support.html for details." % d.getVar('TOOLCHAIN')) +} + +# lld is required when building the kernel with clang. +DEPENDS:append:riscv64 = " lld-native" +RUST_KERNEL_TASK_DEPENDS:append:riscv64 = " lld-native:do_populate_sysroot" -- 2.51.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#240959): https://lists.openembedded.org/g/openembedded-core/message/240959 Mute This Topic: https://lists.openembedded.org/mt/120281263/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
