From: Harish Sadineni Date: Wed, 5 Aug 2026 17:46:39 +0000 (-0700) Subject: kernel-yocto-rust: Add clang toolchain check for riscv64 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=2b228490b7ef063cc54165fc2aa582a9abf9aa85;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git kernel-yocto-rust: Add clang toolchain check for riscv64 Rust support in the upstream kernel on riscv64 currently requires the LLVM/Clang toolchain and does not work with gcc [1]. Add a sanity check to skip the recipe if TOOLCHAIN is not set to "clang" when building a riscv64 kernel with rust support enabled, point the user to the local.conf change needed to fix it. [1] https://docs.kernel.org/rust/arch-support.html Signed-off-by: Harish Sadineni Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/kernel-yocto-rust.bbclass b/meta/classes-recipe/kernel-yocto-rust.bbclass index 49f2bfc1ae..c7dc01ba1c 100644 --- a/meta/classes-recipe/kernel-yocto-rust.bbclass +++ b/meta/classes-recipe/kernel-yocto-rust.bbclass @@ -25,3 +25,15 @@ 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" + +python () { + if d.getVar('TARGET_ARCH') == 'riscv64' and d.getVar('TOOLCHAIN') != 'clang': + raise bb.parse.SkipRecipe( + "Rust support in the kernel on riscv64 requires the clang " + "toolchain, but TOOLCHAIN is set to '%s'. Set " + "KERNEL_TOOLCHAIN = \"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') + ) +}