On Wed, 2026-03-04 at 09:43 -0800, Sadineni, Harish via lists.openembedded.org wrote: > From: Harish Sadineni <[email protected]> > > Conditionally add 'clang-native', 'rust-native' and 'bindgen-cli-native' to > 'DEPENDS' > when Kernel Rust Support is enabled. > > These tools are required for building Rust-enabled kernels and for > generating Rust FFI bindings via bindgen during the kernel build. > > This ensures the additional dependencies are only pulled in when > Rust support is explicitly enabled, avoiding unnecessary native > dependencies for non-Rust kernel builds. > > Signed-off-by: Harish Sadineni <[email protected]> > --- > meta/recipes-kernel/linux/linux-yocto.inc | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/meta/recipes-kernel/linux/linux-yocto.inc > b/meta/recipes-kernel/linux/linux-yocto.inc > index 4d0a726bb6..b7961bbcdf 100644 > --- a/meta/recipes-kernel/linux/linux-yocto.inc > +++ b/meta/recipes-kernel/linux/linux-yocto.inc > @@ -76,11 +76,14 @@ do_install:append(){ > KERNEL_FEATURES:append:qemuall = " features/kernel-sample/kernel-sample.scc" > > KERNEL_DEBUG ?= "" > +KERNEL_RUST_SUPPORT ?= "" > # These used to be version specific, but are now common dependencies. New > # tools / dependencies will continue to be added in version specific recipes. > DEPENDS += '${@bb.utils.contains_any("ARCH", [ "x86", "arm64", "powerpc" ], > "elfutils-native", "", d)}' > DEPENDS += "openssl-native util-linux-native" > DEPENDS += "gmp-native libmpc-native" > +RUST_KERNEL_DEPENDS ?= "${@bb.utils.contains('KERNEL_RUST_SUPPORT', 'True', > 'clang-native rust-native bindgen-cli-native', '', d)}" > +DEPENDS += "${RUST_KERNEL_DEPENDS}" > > # Some options depend on CONFIG_PAHOLE_VERSION, so need to make > pahole-native available before do_kernel_configme > do_kernel_configme[depends] += '${@bb.utils.contains("KERNEL_DEBUG", "True", > "pahole-native:do_populate_sysroot", "", d)}'
I thought we were going to try and use KERNEL_FEATURES for this? The implementation of KERNEL_RUST_SUPPORT is problematic as it only works for the value of "True", not "true", or "1" or 1 or any other thing people might dream up. "Contains" isn't really an appropriate mechanism for a boolean either. You can use bb.utils.to_boolean() as a way to better obtain a boolean value from a random variable. Cheers, Richard
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#232695): https://lists.openembedded.org/g/openembedded-core/message/232695 Mute This Topic: https://lists.openembedded.org/mt/118136909/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
