On 3/9/2026 9:59 PM, Bruce Ashfield wrote:
**
*CAUTION: This email comes from a non Wind River email account!*
Do not click links or open attachments unless you recognize the sender
and know the content is safe.
On Mon, Mar 9, 2026 at 12:10 PM Harish Sadineni
<[email protected]> wrote:
On 3/9/2026 4:56 PM, Richard Purdie wrote:
CAUTION: This email comes from a non Wind River email account!
Do not click links or open attachments unless you recognize the sender and
know the content is safe.
On Wed, 2026-03-04 at 09:43 -0800, Sadineni, Harish vialists.openembedded.org
<https://urldefense.com/v3/__http://lists.openembedded.org__;!!AjveYdw8EvQ!cWPq0za66UhcuPm1JB9FSYJ5JMWWpL_480vZLcrK0BTZbuoPaFvjdJly1r2bF4S-jo8X5LrrrXkmL3xU90Zr5Er_U2VxaLk$>
wrote:
From: Harish Sadineni<[email protected]>
<mailto:[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]>
<mailto:[email protected]>
---
meta/recipes-kernel/linux/linux-yocto.inc
<https://urldefense.com/v3/__http://linux-yocto.inc__;!!AjveYdw8EvQ!cWPq0za66UhcuPm1JB9FSYJ5JMWWpL_480vZLcrK0BTZbuoPaFvjdJly1r2bF4S-jo8X5LrrrXkmL3xU90Zr5Er_ybuc9RA$>
| 3 +++
1 file changed, 3 insertions(+)
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc
<https://urldefense.com/v3/__http://linux-yocto.inc__;!!AjveYdw8EvQ!cWPq0za66UhcuPm1JB9FSYJ5JMWWpL_480vZLcrK0BTZbuoPaFvjdJly1r2bF4S-jo8X5LrrrXkmL3xU90Zr5Er_ybuc9RA$>
b/meta/recipes-kernel/linux/linux-yocto.inc
<https://urldefense.com/v3/__http://linux-yocto.inc__;!!AjveYdw8EvQ!cWPq0za66UhcuPm1JB9FSYJ5JMWWpL_480vZLcrK0BTZbuoPaFvjdJly1r2bF4S-jo8X5LrrrXkmL3xU90Zr5Er_ybuc9RA$>
index 4d0a726bb6..b7961bbcdf 100644
--- a/meta/recipes-kernel/linux/linux-yocto.inc
<https://urldefense.com/v3/__http://linux-yocto.inc__;!!AjveYdw8EvQ!cWPq0za66UhcuPm1JB9FSYJ5JMWWpL_480vZLcrK0BTZbuoPaFvjdJly1r2bF4S-jo8X5LrrrXkmL3xU90Zr5Er_ybuc9RA$>
+++ b/meta/recipes-kernel/linux/linux-yocto.inc
<https://urldefense.com/v3/__http://linux-yocto.inc__;!!AjveYdw8EvQ!cWPq0za66UhcuPm1JB9FSYJ5JMWWpL_480vZLcrK0BTZbuoPaFvjdJly1r2bF4S-jo8X5LrrrXkmL3xU90Zr5Er_ybuc9RA$>
@@ -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)}"
<mailto:$%[email protected]('KERNEL_RUST_SUPPORT','True','clang-nativerust-nativebindgen-cli-native','',d)%7D>
+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?
Hi Richard,
I have tried this but i got circular dependency error with
KERNEL_FEATURES. So, I opted using variable KERNEL_RUST_SUPPORT.
I'm curious about that. Can you share the details ? (diff and the
bitbake error)
As discussed previously, I attempted to use the following in
meta/recipes-kernel/linux/linux-yocto_6.18.bb:
KERNEL_FEATURES:append = " ${@bb.utils.contains('KERNEL_FEATURES',
'rust-kernel', ' features/kernel-rust/kernel-rust.scc', '', d)}"
This resulted in a BitBake variable dependency chain failure. The issue
occurs because the expression is trying to read KERNEL_FEATURES
while simultaneously modifying KERNEL_FEATURES, which creates a circular
dependency.
example:
The variable dependency chain for the failure is: KERNEL_FEATURES ->
KERNEL_FEATURES -> KERNEL_FEATURES -> KERNEL_FEATURES...
Thanks,
Harish
Bruce
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.
Understood, Earlier i took reference from the code that already
present in that file.
I have updated the code we will send v8.
Thanks,
Harish
Cheers,
Richard
--
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#232730):
https://lists.openembedded.org/g/openembedded-core/message/232730
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]]
-=-=-=-=-=-=-=-=-=-=-=-