* [PATCH v4 01/16] linux-yocto: conditionally add clang/rust/bindgen-cli-native to DEPENDS
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 02/16] rust: Install the Rust source Harish.Sadineni
` (15 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Harish Sadineni <Harish.Sadineni@windriver.com>
Conditionally add 'clang-native', 'rust-native' and 'bindgen-cli-native' to 'DEPENDS'
when rust-kernel distro feature is enabled to support Rust-based kernel modules or
features that require generating Rust FFI bindings using bindgen during the kernel
build process.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/recipes-kernel/linux/linux-yocto.inc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/meta/recipes-kernel/linux/linux-yocto.inc b/meta/recipes-kernel/linux/linux-yocto.inc
index 4d0a726bb6..41b12b6f14 100644
--- a/meta/recipes-kernel/linux/linux-yocto.inc
+++ b/meta/recipes-kernel/linux/linux-yocto.inc
@@ -81,6 +81,8 @@ KERNEL_DEBUG ?= ""
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('DISTRO_FEATURES', 'rust-kernel', '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)}'
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 02/16] rust: Install the Rust source
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 01/16] linux-yocto: conditionally add clang/rust/bindgen-cli-native to DEPENDS Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 03/16] rust: install Rust library sources for target & sdk Harish.Sadineni
` (14 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Alistair Francis <alistair.francis@wdc.com>
When building the Linux kernel with Rust support enabled the kernel
expects to find the Rust source as the kernel build system will cross
compile the core library.
This patch uses the Rust tooling to install the Rust source (of size ~50MB)
when we install the compiller as well.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
...-host-documentation-is-built-before-.patch | 60 +++++++++++++++++++
meta/recipes-devtools/rust/rust-source.inc | 1 +
meta/recipes-devtools/rust/rust_1.92.0.bb | 2 +
3 files changed, 63 insertions(+)
create mode 100644 meta/recipes-devtools/rust/files/0001-bootstrap-Ensure-host-documentation-is-built-before-.patch
diff --git a/meta/recipes-devtools/rust/files/0001-bootstrap-Ensure-host-documentation-is-built-before-.patch b/meta/recipes-devtools/rust/files/0001-bootstrap-Ensure-host-documentation-is-built-before-.patch
new file mode 100644
index 0000000000..e561266d70
--- /dev/null
+++ b/meta/recipes-devtools/rust/files/0001-bootstrap-Ensure-host-documentation-is-built-before-.patch
@@ -0,0 +1,60 @@
+From 2e89bf7969ac6d77b7c6a38265b1eabc8ec6df7a Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Fri, 9 Jan 2026 08:35:43 +1000
+Subject: [PATCH] bootstrap: Ensure host documentation is built before tarball
+ is created
+
+`run_default_doc_steps()` is called to ensure the documentation is built
+by `Docs::run()` and it should build the documentation if it isn't
+already built.
+
+When running the `install src` command I'm seeing failures as the
+`builder.doc_out(host)` directory does not exist. This is because
+`match_paths_to_steps_and_run()` doesn't actually build any
+documentation as the `paths.is_empty()` causes an early return. This
+results in install failures as the `*/doc` src directory doesn't exist.
+
+This patch passes the paths to `run_host_step_descriptions()` when building
+documentation to ensure it is correctly built.
+
+This fixes installing the Rust source code in OpenEmbedded.
+
+Upstream-Status: Submitted [https://github.com/rust-lang/rust/pull/150845]
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ src/bootstrap/src/core/build_steps/dist.rs | 2 +-
+ src/bootstrap/src/core/builder/mod.rs | 5 +++++
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/bootstrap/src/core/build_steps/dist.rs b/src/bootstrap/src/core/build_steps/dist.rs
+index f47b0c0b007..2fbb068632e 100644
+--- a/src/bootstrap/src/core/build_steps/dist.rs
++++ b/src/bootstrap/src/core/build_steps/dist.rs
+@@ -83,7 +83,7 @@ fn run(self, builder: &Builder<'_>) -> Option<GeneratedTarball> {
+ // FIXME: explicitly enumerate the steps that should be executed here, and gather their
+ // documentation, rather than running all default steps and then read their output
+ // from a shared directory.
+- builder.run_default_doc_steps();
++ builder.run_host_default_doc_steps();
+
+ let dest = "share/doc/rust/html";
+
+diff --git a/src/bootstrap/src/core/builder/mod.rs b/src/bootstrap/src/core/builder/mod.rs
+index 4a04b97c549..16c1c324be0 100644
+--- a/src/bootstrap/src/core/builder/mod.rs
++++ b/src/bootstrap/src/core/builder/mod.rs
+@@ -1117,6 +1117,11 @@ pub fn execute_cli(&self) {
+ self.run_step_descriptions(&Builder::get_step_descriptions(self.kind), &self.paths);
+ }
+
++ /// Run all default documentation steps to build documentation.
++ pub fn run_host_default_doc_steps(&self) {
++ self.run_step_descriptions(&Builder::get_step_descriptions(Kind::Doc), &self.paths);
++ }
++
+ /// Run all default documentation steps to build documentation.
+ pub fn run_default_doc_steps(&self) {
+ self.run_step_descriptions(&Builder::get_step_descriptions(Kind::Doc), &[]);
+--
+2.52.0
+
diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc
index d7d44510e4..2c1caed858 100644
--- a/meta/recipes-devtools/rust/rust-source.inc
+++ b/meta/recipes-devtools/rust/rust-source.inc
@@ -8,6 +8,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n
file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} \
file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} \
file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} \
+ file://0001-bootstrap-Ensure-host-documentation-is-built-before-.patch;patchdir=${RUSTSRC} \
"
SRC_URI[rust.sha256sum] = "ebee170bfe4c4dfc59521a101de651e5534f4dae889756a5c97ca9ea40d0c307"
diff --git a/meta/recipes-devtools/rust/rust_1.92.0.bb b/meta/recipes-devtools/rust/rust_1.92.0.bb
index a25f65f674..af739df88a 100644
--- a/meta/recipes-devtools/rust/rust_1.92.0.bb
+++ b/meta/recipes-devtools/rust/rust_1.92.0.bb
@@ -6,6 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=11a3899825f4376896e438c8c753f8dc"
inherit rust
inherit cargo_common
+inherit pkgconfig
DEPENDS += "llvm"
# native rust uses cargo/rustc from binary snapshots to bootstrap
@@ -282,6 +283,7 @@ do_install () {
rust_do_install() {
rust_runx install
+ rust_runx install src
}
rust_do_install:class-nativesdk() {
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 03/16] rust: install Rust library sources for target & sdk
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 01/16] linux-yocto: conditionally add clang/rust/bindgen-cli-native to DEPENDS Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 02/16] rust: Install the Rust source Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 04/16] kernel-yocto: enable Rust kernel support via 'make rustavailable' Harish.Sadineni
` (13 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Harish Sadineni <Harish.Sadineni@windriver.com>
The `make rustavailable` process (1) expects the Rust standard library source files (e.g., `lib.rs`)
to be present in the `library/` directory under `rustlib/src/rust/`.
This patch ensures the required sources are available by:
- Installing the `library/` directory (of size ~50MB) into `${D}${libdir}/rustlib/src/rust` for `target` class,
making them available in them available on target.
- Installing the `library/` directory (of size ~50MB) into `${SDKPATHNATIVE}/usr/lib/rustlib/src/rust` for the
`nativesdk` class, making them available in them available in sdk.
- packaging `${libdir}/rustlib/src/rust` sepearately with `${PN}-src-lib`.
1) See the kernel tree for Documentation/rust/quick-start.rst in the section: Requirements: Building
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/rust/quick-start.rst#n145
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/recipes-devtools/rust/rust_1.92.0.bb | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/meta/recipes-devtools/rust/rust_1.92.0.bb b/meta/recipes-devtools/rust/rust_1.92.0.bb
index af739df88a..eaab6a1c16 100644
--- a/meta/recipes-devtools/rust/rust_1.92.0.bb
+++ b/meta/recipes-devtools/rust/rust_1.92.0.bb
@@ -265,10 +265,11 @@ do_test_compile () {
ALLOW_EMPTY:${PN} = "1"
-PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt"
+PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt ${PN}-src-lib"
FILES:${PN}-rustdoc = "${bindir}/rustdoc"
FILES:${PN}-tools-clippy = "${bindir}/cargo-clippy ${bindir}/clippy-driver"
FILES:${PN}-tools-rustfmt = "${bindir}/rustfmt"
+FILES:${PN}-src-lib = "${libdir}/rustlib/src/rust"
RDEPENDS:${PN}-rustdoc = "${PN}"
RDEPENDS:${PN}-tools-clippy = "${PN}"
@@ -316,6 +317,11 @@ rust_do_install:class-nativesdk() {
export CARGO_TARGET_${RUST_HOST_TRIPLE}_RUNNER="\$OECORE_NATIVE_SYSROOT/lib/${SDKLOADER}"
export CC_$RUST_HOST_CC="${CCACHE}${HOST_PREFIX}gcc"
EOF
+
+ install -d ${D}${SDKPATHNATIVE}/usr/lib/rustlib/src/rust
+ cp -r ${S}/library ${D}${SDKPATHNATIVE}/usr/lib/rustlib/src/rust
+ find ${D}${libdir}/rustlib/src/rust/ -name "*.sh" -type f -delete
+
}
FILES:${PN} += "${base_prefix}/environment-setup.d"
@@ -336,6 +342,11 @@ rust_do_install:class-target() {
install -d ${D}${libdir}/rustlib/${RUST_HOST_SYS}
install -m 0644 ${WORKDIR}/rust-targets/${RUST_HOST_SYS}.json ${D}${libdir}/rustlib/${RUST_HOST_SYS}/target.json
+ install -d ${D}${libdir}/rustlib/src/rust
+ cp -r ${S}/library/ ${D}${libdir}/rustlib/src/rust/
+ find ${D}${libdir}/rustlib/src/rust/ -name "*.sh" -type f -delete
+ install -m 0644 ${WORKDIR}/rust-targets/${RUST_HOST_SYS}.json ${D}${libdir}/rustlib/${RUST_HOST_SYS}/${RUST_HOST_SYS}.json
+
chown root:root ${D}/ -R
rm ${D}${libdir}/rustlib/uninstall.sh
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 04/16] kernel-yocto: enable Rust kernel support via 'make rustavailable'.
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (2 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 03/16] rust: install Rust library sources for target & sdk Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 05/16] linux-yocto: enable Rust support in kernel configuration Harish.Sadineni
` (12 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Harish Sadineni <Harish.Sadineni@windriver.com>
This change adds support for Rust-enabled kernel builds by:
-Extending do_kernel_configme dependencies to include rust-native,
clang-native, and bindgen-cli-native.
-Invoking make rustavailable during do_kernel_configme() to prepare the
kernel build environment for Rust.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/classes-recipe/kernel-yocto.bbclass | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/meta/classes-recipe/kernel-yocto.bbclass b/meta/classes-recipe/kernel-yocto.bbclass
index e53bf15194..4323c4c80a 100644
--- a/meta/classes-recipe/kernel-yocto.bbclass
+++ b/meta/classes-recipe/kernel-yocto.bbclass
@@ -463,8 +463,14 @@ do_kernel_configme[depends] += "virtual/cross-binutils:do_populate_sysroot"
do_kernel_configme[depends] += "virtual/cross-cc:do_populate_sysroot"
do_kernel_configme[depends] += "bc-native:do_populate_sysroot bison-native:do_populate_sysroot"
do_kernel_configme[depends] += "kern-tools-native:do_populate_sysroot"
+RUST_KERNEL_TASK_DEPENDS ?= "${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', ' \
+ rust-native:do_populate_sysroot \
+ clang-native:do_populate_sysroot \
+ bindgen-cli-native:do_populate_sysroot', '', d)}"
+do_kernel_configme[depends] += "${RUST_KERNEL_TASK_DEPENDS}"
do_kernel_configme[dirs] += "${S} ${B}"
do_kernel_configme() {
+
do_kernel_metadata config
# translate the kconfig_mode into something that merge_config.sh
@@ -506,6 +512,10 @@ do_kernel_configme() {
echo "# Global settings from linux recipe" >> ${B}/.config
echo "CONFIG_LOCALVERSION="\"${LINUX_VERSION_EXTENSION}\" >> ${B}/.config
fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', 'true', 'false', d)}; then
+ oe_runmake -C ${S} O=${B} rustavailable
+ fi
}
addtask kernel_configme before do_configure after do_patch
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 05/16] linux-yocto: enable Rust support in kernel configuration
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (3 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 04/16] kernel-yocto: enable Rust kernel support via 'make rustavailable' Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 06/16] kernel-yocto: Fix for buildpaths errors when rust is enabled for kernel Harish.Sadineni
` (11 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Harish Sadineni <Harish.Sadineni@windriver.com>
Add initial support for building the Linux kernel with Rust enabled:
- Update `linux-yocto_${PV}.bb` to:
- Append `features/kernel-rust/kernel-rust.scc` to `KERNEL_FEATURES`.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/recipes-kernel/linux/linux-yocto_6.16.bb | 1 +
meta/recipes-kernel/linux/linux-yocto_6.18.bb | 1 +
2 files changed, 2 insertions(+)
diff --git a/meta/recipes-kernel/linux/linux-yocto_6.16.bb b/meta/recipes-kernel/linux/linux-yocto_6.16.bb
index 408f14b451..e468fdc0d7 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.16.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.16.bb
@@ -77,3 +77,4 @@ KERNEL_FEATURES:append:powerpc64le = " arch/powerpc/powerpc-debug.scc"
# Check again during next major version upgrade
KERNEL_FEATURES:remove:riscv32 = "features/debug/debug-kernel.scc"
INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel"
+KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', ' features/kernel-rust/kernel-rust.scc', '', d)}"
diff --git a/meta/recipes-kernel/linux/linux-yocto_6.18.bb b/meta/recipes-kernel/linux/linux-yocto_6.18.bb
index 599a3d13b8..3c2bf02221 100644
--- a/meta/recipes-kernel/linux/linux-yocto_6.18.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_6.18.bb
@@ -77,3 +77,4 @@ KERNEL_FEATURES:append:powerpc64le = " arch/powerpc/powerpc-debug.scc"
# Check again during next major version upgrade
KERNEL_FEATURES:remove:riscv32 = "features/debug/debug-kernel.scc"
INSANE_SKIP:kernel-vmlinux:qemuppc64 = "textrel"
+KERNEL_FEATURES:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', ' features/kernel-rust/kernel-rust.scc', '', d)}"
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 06/16] kernel-yocto: Fix for buildpaths errors when rust is enabled for kernel
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (4 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 05/16] linux-yocto: enable Rust support in kernel configuration Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 07/16] make-mod-scripts: split `HOSTCC` flag to align with to linux-yocto Harish.Sadineni
` (10 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Harish Sadineni <Harish.Sadineni@windriver.com>
Fixes for buildpaths errors after enabling rust for linux-kernel
Co-authored-by: El Mehdi YOUNES <elmehdi.younes@smile.fr>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/classes-recipe/kernel-yocto.bbclass | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/meta/classes-recipe/kernel-yocto.bbclass b/meta/classes-recipe/kernel-yocto.bbclass
index 4323c4c80a..cd5daaf33b 100644
--- a/meta/classes-recipe/kernel-yocto.bbclass
+++ b/meta/classes-recipe/kernel-yocto.bbclass
@@ -4,6 +4,8 @@
# SPDX-License-Identifier: MIT
#
+INHERIT:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', ' rust-common', '', d)}"
+
# remove tasks that modify the source tree in case externalsrc is inherited
SRCTREECOVEREDTASKS += "do_validate_branches do_kernel_configcheck do_kernel_checkout do_fetch do_unpack do_patch"
PATCH_GIT_USER_EMAIL ?= "kernel-yocto@oe"
@@ -27,6 +29,11 @@ KMETA_AUDIT ?= "yes"
KMETA_AUDIT_WERROR ?= ""
KMETA_CONFIG_FEATURES ?= ""
+RUST_DEBUG_REMAP = "${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', '--remap-path-prefix=${WORKDIR}=${TARGET_DBGSRC_DIR} \
+ --remap-path-prefix=${TMPDIR}/work-shared=${TARGET_DBGSRC_DIR}', '',d)}"
+KRUSTFLAGS:append = " ${RUST_DEBUG_REMAP}"
+EXTRA_OEMAKE:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', ' KRUSTFLAGS="${KRUSTFLAGS}"', '',d)}"
+
# returns local (absolute) path names for all valid patches in the
# src_uri
def find_patches(d,subdir):
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 07/16] make-mod-scripts: split `HOSTCC` flag to align with to linux-yocto
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (5 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 06/16] kernel-yocto: Fix for buildpaths errors when rust is enabled for kernel Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 08/16] kernel-yocto.bbclass: Disable ccache when rust-kernel is enabled Harish.Sadineni
` (9 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Harish Sadineni <Harish.Sadineni@windriver.com>
when compiling rust-out-of-tree module recipe 'make-mod-scripts' failing
with the following error:
HOSTRUSTC scripts/generate_rust_target
error: Unrecognized option: 'i'
This issue occurs because CFLAGS are being passed to HOSTRUSTC.
Updated the flags in the make-mod-scripts recipe to align with
the flags used by linux-yocto.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
index 8fcb5e6eb3..874e16e642 100644
--- a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
+++ b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
@@ -18,7 +18,7 @@ DEV_PKG_DEPENDENCY = ""
DEPENDS += "bc-native bison-native"
DEPENDS += "gmp-native"
-EXTRA_OEMAKE = " HOSTCC="${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
+EXTRA_OEMAKE = " HOSTCC="${BUILD_CC}" HOSTCFLAGS="${BUILD_CFLAGS}" HOSTLDFLAGS="${BUILD_LDFLAGS}" HOSTCPP="${BUILD_CPP}""
EXTRA_OEMAKE += " HOSTCXX="${BUILD_CXX} ${BUILD_CXXFLAGS} ${BUILD_LDFLAGS}" CROSS_COMPILE=${TARGET_PREFIX}"
KERNEL_LOCALVERSION = "${@get_kernellocalversion_file("${STAGING_KERNEL_BUILDDIR}")}"
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 08/16] kernel-yocto.bbclass: Disable ccache when rust-kernel is enabled
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (6 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 07/16] make-mod-scripts: split `HOSTCC` flag to align with to linux-yocto Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 09/16] kernel-devsrc: copying rust-kernel source to $kerneldir/build Harish.Sadineni
` (8 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Yoann Congal <yoann.congal@smile.fr>
Currently, a ccache enabled build fails with:
| HOSTRUSTC scripts/generate_rust_target
| HOSTCC scripts/kallsyms
| HOSTCC scripts/sorttable
| HOSTCC scripts/asn1_compiler
| TOUCH include/generated/gcc-plugins.h
| DESCEND objtool
| error: multiple input filenames provided (first two filenames are gcc and
.../tmp/work-shared/qemux86-64/kernel-source/scripts/generate_rust_target.rs)
when using ccache, value of "HOSTCC=cache gcc" when this value is passing
to rustc, It is thinking gcc is a input file. when ccache is not used "HOSTCC=gcc" is passed.
Disable ccache for kernel build if rust-kernel is enabled to workaround
this.
Signed-off-by: El Mehdi YOUNES <elmehdi.younes@smile.fr>
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/classes-recipe/kernel-yocto.bbclass | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/meta/classes-recipe/kernel-yocto.bbclass b/meta/classes-recipe/kernel-yocto.bbclass
index cd5daaf33b..bfdafbee8c 100644
--- a/meta/classes-recipe/kernel-yocto.bbclass
+++ b/meta/classes-recipe/kernel-yocto.bbclass
@@ -34,6 +34,11 @@ RUST_DEBUG_REMAP = "${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', '--re
KRUSTFLAGS:append = " ${RUST_DEBUG_REMAP}"
EXTRA_OEMAKE:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', ' KRUSTFLAGS="${KRUSTFLAGS}"', '',d)}"
+# TODO: rust-kernel enabled kernel fails to build with:
+# | error: multiple input filenames provided (first two filenames are gcc and .../tmp/work-shared/qemux86-64/kernel-source/scripts/generate_rust_target.rs)
+# Disable ccache for kernel build if rust-kernel is enabled to workaround this.
+CCACHE_DISABLE ?= "${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', '1', '0', d)}"
+
# returns local (absolute) path names for all valid patches in the
# src_uri
def find_patches(d,subdir):
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 09/16] kernel-devsrc: copying rust-kernel source to $kerneldir/build
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (7 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 08/16] kernel-yocto.bbclass: Disable ccache when rust-kernel is enabled Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 10/16] selftest/cases/runtime_test: Add test for Linux Rust sample Harish.Sadineni
` (7 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Harish Sadineni <Harish.Sadineni@windriver.com>
When CONFIG_RUST is enabled, running 'make prepare' in the target & SDK
fails because the Rust kernel infrastructure is incomplete in the staged
kernel sources.
The Rust build system requires a wider set of interdependent sources
during make prepare, including bindgen inputs, C helper sources,
generated headers, and other support files. These are all located under
the kernel rust/ directory.
To ensure make prepare succeeds and to support building Rust-based
kernel modules from the target & SDK, copy the full rust/ directory
(of size 2.5MB) into $kerneldir/build when the rust-kernel distro feature
is enabled.
Additionally, when Rust support is enabled, 'make prepare' generates
.rmeta files (crate metadata in a custom binary format) and shared
objects (.so) that are required for compiling Rust kernel modules.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/recipes-kernel/linux/kernel-devsrc.bb | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb b/meta/recipes-kernel/linux/kernel-devsrc.bb
index 23a9093ede..07f082132b 100644
--- a/meta/recipes-kernel/linux/kernel-devsrc.bb
+++ b/meta/recipes-kernel/linux/kernel-devsrc.bb
@@ -139,6 +139,15 @@ do_install() {
cd ${S}
cp -a scripts $kerneldir/build
+
+ # In sdk, when CONFIG_RUST is enabled, `make prepare` requires the full Rust
+ # kernel infrastructure. The Rust build system pulls in bindgen inputs, C helpers,
+ # generated headers, and generate crate metadata (.rmeta), and shared objects
+ # needed for building Rust kernel modules. Copy the entire rust/ directory (of size 2.5MB)
+ # to avoid failures with 'make prepare'.
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', 'true', 'false', d)}; then
+ cp -a rust ${kerneldir}/build
+ fi
# for v6.1+ (otherwise we are missing multiple default targets)
cp -a --parents Kbuild $kerneldir/build 2>/dev/null || :
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 10/16] selftest/cases/runtime_test: Add test for Linux Rust sample
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (8 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 09/16] kernel-devsrc: copying rust-kernel source to $kerneldir/build Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 11/16] kernel.bbclass: Copy include/config/auto.conf in STAGING_KERNEL_BUILDDIR Harish.Sadineni
` (6 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Yoann Congal <yoann.congal@smile.fr>
This new case tests that the rust_mininal sample inside the kernel source
tree is buildable and works properly: check that the module can be
loaded and that it prints correctly.
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/lib/oeqa/selftest/cases/runtime_test.py | 25 ++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py
index d58ffa80f5..e8374606a4 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -481,3 +481,28 @@ IMAGE_INSTALL:append = " systemtap-runtime"
cmd = "crosstap -r root@192.168.7.2 -s %s/process/ syscalls_by_pid.stp" % systemtap_examples
result = runCmd(cmd)
self.assertEqual(0, result.status, 'crosstap syscalls_by_pid returned a non 0 status:%s' % result.output)
+
+@OETestTag("runqemu")
+class RustKernel(OESelftestTestCase):
+ @classmethod
+ def setUpClass(cls):
+ super(RustKernel, cls).setUpClass()
+ cls.image = "core-image-minimal"
+
+ def test_kernel_rust_sample(self):
+ import textwrap
+ self.write_config(textwrap.dedent("""
+ DISTRO_FEATURES:append = ' rust-kernel'
+ KERNEL_EXTRA_FEATURES:append = ' features/kernel-sample/kernel-rust-sample.scc'
+ CORE_IMAGE_EXTRA_INSTALL += "kernel-module-rust-minimal"
+ """))
+ bitbake(self.image)
+
+ with runqemu(self.image, runqemuparams = "nographic") as qemu:
+ qemu.run_serial("dmesg -c > /dev/null")
+ status, _ = qemu.run_serial("modprobe rust_minimal")
+ self.assertEqual(status, 1, "Loading rust_minimal module failed!")
+ _, output = qemu.run_serial("dmesg")
+ self.logger.debug(f"rust_minimal dmesg output:\n" + textwrap.indent(output, " "))
+ self.assertIn("Rust minimal sample", output, "Kernel Rust sample expected output not found in dmesg")
+
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 11/16] kernel.bbclass: Copy include/config/auto.conf in STAGING_KERNEL_BUILDDIR
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (9 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 10/16] selftest/cases/runtime_test: Add test for Linux Rust sample Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 12/16] kernel.bbclass: Export artifacts needed for out-of-tree Rust compilation Harish.Sadineni
` (5 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Yoann Congal <yoann.congal@smile.fr>
Linux commit aaed5c7739be ("kbuild: slim down package for building
external modules")[0] states that include/config/auto.conf is also a
file needed for out-of-tree build.
This avoids this error when building an out-of-tree Rust kernel module:
| make -C .../tmp/work-shared/qemux86-64/kernel-source M=$PWD
| make[1]: Entering directory '.../tmp/work-shared/qemux86-64/kernel-source'
| make[2]: Entering directory '.../tmp/work/qemux86_64-poky-linux/rust-out-of-tree-module/git/sources/rust-out-of-tree-module-git'
| .../tmp/work-shared/qemux86-64/kernel-source/Makefile:779: .../tmp/work-shared/qemux86-64/kernel-build-artifacts/include/config/auto.conf: No such file or directory
[0]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aaed5c7739be81ebdd6008aedc8befd98c88e67a
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/classes-recipe/kernel.bbclass | 1 +
1 file changed, 1 insertion(+)
diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass
index f989b31c47..30a10b0801 100644
--- a/meta/classes-recipe/kernel.bbclass
+++ b/meta/classes-recipe/kernel.bbclass
@@ -570,6 +570,7 @@ do_shared_workdir () {
cp .config $kerneldir/
mkdir -p $kerneldir/include/config
cp include/config/kernel.release $kerneldir/include/config/kernel.release
+ cp include/config/auto.conf $kerneldir/include/config/auto.conf
if [ -e certs/signing_key.x509 ]; then
# The signing_key.* files are stored in the certs/ dir in
# newer Linux kernels
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 12/16] kernel.bbclass: Export artifacts needed for out-of-tree Rust compilation
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (10 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 11/16] kernel.bbclass: Copy include/config/auto.conf in STAGING_KERNEL_BUILDDIR Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 13/16] module.bbclass: Prepare out-of-tree rust module compilation Harish.Sadineni
` (4 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Yoann Congal <yoann.congal@smile.fr>
Publish artifacts from kernel compilation to allow out-of-tree Rust
compilation:
* scripts/target.json: target definition: architecture, ABI, compiler
options, ...
* rust/: the crates compiled by the kernel available to
out-of-tree-modules
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/classes-recipe/kernel.bbclass | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/meta/classes-recipe/kernel.bbclass b/meta/classes-recipe/kernel.bbclass
index 30a10b0801..dfb8604a68 100644
--- a/meta/classes-recipe/kernel.bbclass
+++ b/meta/classes-recipe/kernel.bbclass
@@ -632,6 +632,24 @@ do_shared_workdir () {
cp -r scripts/gcc-plugins ${kerneldir}/scripts
fi
+ if ${@bb.utils.contains("DISTRO_FEATURES", "rust-kernel", "true", "false", d)}; then
+ # Copy target.json file needed for out-of-tree rust modules
+ if [ -e scripts/target.json ]; then
+ bbnote "Copying scripts/target.json"
+ mkdir -p ${kerneldir}/scripts
+ cp scripts/target.json ${kerneldir}/scripts
+ else
+ bbwarn "scripts/target.json not found in compiled kernel. Out-of-tree rust modules will fail to build."
+ fi
+
+ # Copy rust/ needed by out-of-tree module (firstly for the core rust crate)
+ if [ -e rust/ ]; then
+ bbnote "Copying rust/"
+ cp -r rust ${kerneldir}/
+ else
+ bbwarn "rust/ not found in compiled kernel. Out-of-tree rust modules will fail to build."
+ fi
+ fi
}
# We don't need to stage anything, not the modules/firmware since those would clash with linux-firmware
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 13/16] module.bbclass: Prepare out-of-tree rust module compilation
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (11 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 12/16] kernel.bbclass: Export artifacts needed for out-of-tree Rust compilation Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 14/16] meta-skeleton: Add rust-out-of-tree-module recipe Harish.Sadineni
` (3 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Yoann Congal <yoann.congal@smile.fr>
Conditioned to the "rust-linux" DISTRO_FEATURES:
* Add dependency to rust-native
* Remap ${S} in compiled output to avoid buildpath errors
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/classes-recipe/module.bbclass | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta/classes-recipe/module.bbclass b/meta/classes-recipe/module.bbclass
index 4948e995c5..7dbd4194d1 100644
--- a/meta/classes-recipe/module.bbclass
+++ b/meta/classes-recipe/module.bbclass
@@ -87,3 +87,11 @@ EXPORT_FUNCTIONS do_compile do_install
KERNEL_MODULES_META_PACKAGE = "${PN}"
FILES:${PN} = ""
ALLOW_EMPTY:${PN} = "1"
+
+# Rust module support
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', 'rust-native', '', d)}"
+
+RUST_DEBUG_REMAP ?= "--remap-path-prefix=${S}=${TARGET_DBGSRC_DIR}"
+KRUSTFLAGS:append = " ${RUST_DEBUG_REMAP}"
+EXTRA_OEMAKE:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', \
+ ' KRUSTFLAGS="${KRUSTFLAGS}"', '',d)}"
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 14/16] meta-skeleton: Add rust-out-of-tree-module recipe
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (12 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 13/16] module.bbclass: Prepare out-of-tree rust module compilation Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 15/16] make-mod-scripts: fix for buildpath issues with rust-out-of-tree compilation Harish.Sadineni
` (2 subsequent siblings)
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Yoann Congal <yoann.congal@smile.fr>
Basic template for an out-of-tree Linux kernel module written in Rust.
Mainly to test Rust integration into the kernel.
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
.../rust-out-of-tree-module_git.bb | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
create mode 100644 meta-skeleton/recipes-kernel/rust-out-of-tree-module/rust-out-of-tree-module_git.bb
diff --git a/meta-skeleton/recipes-kernel/rust-out-of-tree-module/rust-out-of-tree-module_git.bb b/meta-skeleton/recipes-kernel/rust-out-of-tree-module/rust-out-of-tree-module_git.bb
new file mode 100644
index 0000000000..642fa80319
--- /dev/null
+++ b/meta-skeleton/recipes-kernel/rust-out-of-tree-module/rust-out-of-tree-module_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Basic template for an out-of-tree Linux kernel module written in Rust"
+HOMEPAGE = "https://github.com/Rust-for-Linux/rust-out-of-tree-module"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit module features_check
+REQUIRED_DISTRO_FEATURES = "rust-kernel"
+
+SRC_URI = "git://github.com/Rust-for-Linux/rust-out-of-tree-module.git;protocol=https;branch=main"
+SRCREV = "00b5a8ee2bf53532d115004d7636b61a54f49802"
+UPSTREAM_CHECK_COMMITS = "1"
+
+EXTRA_OEMAKE += "KDIR=${STAGING_KERNEL_DIR}"
+
+# The inherit of module.bbclass will automatically name module packages with
+# "kernel-module-" prefix as required by the oe-core build environment.
+RPROVIDES:${PN} += "kernel-module-rust-out-of-tree"
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 15/16] make-mod-scripts: fix for buildpath issues with rust-out-of-tree compilation
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (13 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 14/16] meta-skeleton: Add rust-out-of-tree-module recipe Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:29 ` [PATCH v4 16/16] runtime_test: Add rust-out-of-tree selftest Harish.Sadineni
2026-01-20 18:41 ` [PATCH v4 00/16] Enable rust support for linux kernel Sadineni, Harish
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Harish Sadineni <Harish.Sadineni@windriver.com>
Fixes buildpath issues when compiling rust-out-of-tree recipe.
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
.../make-mod-scripts/make-mod-scripts_1.0.bb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
index 874e16e642..d6b2178767 100644
--- a/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
+++ b/meta/recipes-kernel/make-mod-scripts/make-mod-scripts_1.0.bb
@@ -36,3 +36,11 @@ do_configure() {
-C ${STAGING_KERNEL_DIR} O=${STAGING_KERNEL_BUILDDIR} $t
done
}
+
+RUST_DEBUG_REMAP ?= "--remap-path-prefix=${TMPDIR}/work-shared=${TARGET_DBGSRC_DIR} \
+ --remap-path-prefix=${TMPDIR}/work=${TARGET_DBGSRC_DIR} \
+"
+KRUSTFLAGS:append = " ${RUST_DEBUG_REMAP}"
+EXTRA_OEMAKE:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', \
+ ' KRUSTFLAGS="${KRUSTFLAGS}"', '',d)}"
+
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* [PATCH v4 16/16] runtime_test: Add rust-out-of-tree selftest
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (14 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 15/16] make-mod-scripts: fix for buildpath issues with rust-out-of-tree compilation Harish.Sadineni
@ 2026-01-20 18:29 ` Harish.Sadineni
2026-01-20 18:41 ` [PATCH v4 00/16] Enable rust support for linux kernel Sadineni, Harish
16 siblings, 0 replies; 23+ messages in thread
From: Harish.Sadineni @ 2026-01-20 18:29 UTC (permalink / raw)
To: openembedded-core
Cc: Randy.MacLeod, alistair.francis, Sundeep.Kokkonda, bruce.ashfield,
richard.purdie, yoann.congal, elmehdi.younes
From: Yoann Congal <yoann.congal@smile.fr>
This new case tests that the rust-out-of-tree-module recipe compiles and
run properly: check that the dmesg output is as expected.
Signed-off-by: Yoann Congal <yoann.congal@smile.fr>
Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
---
meta/lib/oeqa/selftest/cases/runtime_test.py | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/meta/lib/oeqa/selftest/cases/runtime_test.py b/meta/lib/oeqa/selftest/cases/runtime_test.py
index e8374606a4..461116601d 100644
--- a/meta/lib/oeqa/selftest/cases/runtime_test.py
+++ b/meta/lib/oeqa/selftest/cases/runtime_test.py
@@ -494,8 +494,11 @@ class RustKernel(OESelftestTestCase):
self.write_config(textwrap.dedent("""
DISTRO_FEATURES:append = ' rust-kernel'
KERNEL_EXTRA_FEATURES:append = ' features/kernel-sample/kernel-rust-sample.scc'
- CORE_IMAGE_EXTRA_INSTALL += "kernel-module-rust-minimal"
+ CORE_IMAGE_EXTRA_INSTALL += "kernel-module-rust-minimal kernel-module-rust-out-of-tree"
"""))
+
+ runCmd('bitbake-layers add-layer %s' % os.path.join(get_bb_var("COREBASE"), 'meta-skeleton'))
+ self.add_command_to_tearDown('bitbake-layers remove-layer */meta-skeleton')
bitbake(self.image)
with runqemu(self.image, runqemuparams = "nographic") as qemu:
@@ -506,3 +509,10 @@ class RustKernel(OESelftestTestCase):
self.logger.debug(f"rust_minimal dmesg output:\n" + textwrap.indent(output, " "))
self.assertIn("Rust minimal sample", output, "Kernel Rust sample expected output not found in dmesg")
+ qemu.run_serial("dmesg -c > /dev/null")
+ status, _ = qemu.run_serial("modprobe rust_out_of_tree")
+ self.assertEqual(status, 1, "Loading rust_out_of_tree module failed!")
+ _, output = qemu.run_serial("dmesg")
+ self.logger.debug(f"rust_out_of_tree dmesg output:\n" + textwrap.indent(output, " "))
+ self.assertIn("Rust out-of-tree sample", output, "Out-of-tree Rust sample expected output not found in dmesg")
+
--
2.49.0
^ permalink raw reply related [flat|nested] 23+ messages in thread* Re: [PATCH v4 00/16] Enable rust support for linux kernel
2026-01-20 18:29 [PATCH v4 00/16] Enable rust support for linux kernel Harish.Sadineni
` (15 preceding siblings ...)
2026-01-20 18:29 ` [PATCH v4 16/16] runtime_test: Add rust-out-of-tree selftest Harish.Sadineni
@ 2026-01-20 18:41 ` Sadineni, Harish
2026-01-21 15:16 ` [OE-core] " Antonin Godard
16 siblings, 1 reply; 23+ messages in thread
From: Sadineni, Harish @ 2026-01-20 18:41 UTC (permalink / raw)
To: openembedded-core
[-- Attachment #1: Type: text/plain, Size: 211 bytes --]
This patch series was tested on Autobuilder:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/3193
https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/3056
Thanks,
Harish
[-- Attachment #2: Type: text/html, Size: 507 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread* Re: [OE-core] [PATCH v4 00/16] Enable rust support for linux kernel
2026-01-20 18:41 ` [PATCH v4 00/16] Enable rust support for linux kernel Sadineni, Harish
@ 2026-01-21 15:16 ` Antonin Godard
2026-01-22 11:53 ` Harish Sadineni
0 siblings, 1 reply; 23+ messages in thread
From: Antonin Godard @ 2026-01-21 15:16 UTC (permalink / raw)
To: Harish.Sadineni, openembedded-core
Hi,
On Tue Jan 20, 2026 at 7:41 PM CET, Harish via lists.openembedded.org Sadineni wrote:
> This patch series was tested on Autobuilder:
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/3193
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/3056
Thanks for your efforts on this. However I think it triggers issues in other
builders as you can see from this a-full run (a-full is the complete Autobuilder
testing run):
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3101
For example, the first failure in the list (beaglebone builder):
| error: linking with `/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/wrapper/build-rust-ccld` failed: exit status: 1
| |
| = note: "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/wrapper/build-rust-ccld" "-m64" "/tmp/rustcBDQQCc/symbols.o" "<75 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcBDQQCc/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/recipe-sysroot/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/sources/rustc-1.92.0-src/build/bootstrap/debug/deps/rustdoc-92c720c010da8c74" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-lz" "-lzstd"
| = note: some arguments are omitted. use `--verbose` to show all linker arguments
| = note: /srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/hosttools/ld: cannot find /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/lib/libm.so.6: No such file or directory
| /srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/hosttools/ld: cannot find /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/lib/libmvec.so.1: No such file or directory
| collect2: error: ld returned 1 exit status
https://autobuilder.yoctoproject.org/valkyrie/#/builders/2/builds/3084
https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/5052191/raw_inline
Can you have a look at these failures?
Antonin
--
Antonin Godard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 23+ messages in thread* Re: [OE-core] [PATCH v4 00/16] Enable rust support for linux kernel
2026-01-21 15:16 ` [OE-core] " Antonin Godard
@ 2026-01-22 11:53 ` Harish Sadineni
2026-01-22 14:24 ` Antonin Godard
0 siblings, 1 reply; 23+ messages in thread
From: Harish Sadineni @ 2026-01-22 11:53 UTC (permalink / raw)
To: Antonin Godard, openembedded-core; +Cc: MacLeod, Randy, Kokkonda, Sundeep
On 1/21/2026 8:46 PM, Antonin Godard 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.
>
> Hi,
>
> On Tue Jan 20, 2026 at 7:41 PM CET, Harish via lists.openembedded.org Sadineni wrote:
>> This patch series was tested on Autobuilder:
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/3193
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/3056
> Thanks for your efforts on this. However I think it triggers issues in other
> builders as you can see from this a-full run (a-full is the complete Autobuilder
> testing run):
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3101
>
> For example, the first failure in the list (beaglebone builder):
>
> | error: linking with `/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/wrapper/build-rust-ccld` failed: exit status: 1
> | |
> | = note: "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/wrapper/build-rust-ccld" "-m64" "/tmp/rustcBDQQCc/symbols.o" "<75 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcBDQQCc/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/recipe-sysroot/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/sources/rustc-1.92.0-src/build/bootstrap/debug/deps/rustdoc-92c720c010da8c74" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-lz" "-lzstd"
> | = note: some arguments are omitted. use `--verbose` to show all linker arguments
> | = note: /srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/hosttools/ld: cannot find /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/lib/libm.so.6: No such file or directory
> | /srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/hosttools/ld: cannot find /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/lib/libmvec.so.1: No such file or directory
> | collect2: error: ld returned 1 exit status
>
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/2/builds/3084
> https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/5052191/raw_inline
>
> Can you have a look at these failures?
Thanks for reporting this.
The error indicates that the linker is unable to locate libm.so.6 and
libmvec.so.6 in the recipe sysroot.
These libraries are normally provided by glibc, and this issue does not
appear to be caused by our patches, as we are not able to reproduce it
locally.
Could you please re-test the series once more to confirm?
Thanks,
Harish
>
> Antonin
>
> --
> Antonin Godard, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
^ permalink raw reply [flat|nested] 23+ messages in thread* Re: [OE-core] [PATCH v4 00/16] Enable rust support for linux kernel
2026-01-22 11:53 ` Harish Sadineni
@ 2026-01-22 14:24 ` Antonin Godard
2026-01-26 7:54 ` Antonin Godard
0 siblings, 1 reply; 23+ messages in thread
From: Antonin Godard @ 2026-01-22 14:24 UTC (permalink / raw)
To: Harish.Sadineni, openembedded-core; +Cc: MacLeod, Randy, Kokkonda, Sundeep
Hi,
On Thu Jan 22, 2026 at 12:53 PM CET, Harish via lists.openembedded.org Sadineni wrote:
>
> On 1/21/2026 8:46 PM, Antonin Godard 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.
>>
>> Hi,
>>
>> On Tue Jan 20, 2026 at 7:41 PM CET, Harish via lists.openembedded.org Sadineni wrote:
>>> This patch series was tested on Autobuilder:
>>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/23/builds/3193
>>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/35/builds/3056
>> Thanks for your efforts on this. However I think it triggers issues in other
>> builders as you can see from this a-full run (a-full is the complete Autobuilder
>> testing run):
>>
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3101
>>
>> For example, the first failure in the list (beaglebone builder):
>>
>> | error: linking with `/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/wrapper/build-rust-ccld` failed: exit status: 1
>> | |
>> | = note: "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/wrapper/build-rust-ccld" "-m64" "/tmp/rustcBDQQCc/symbols.o" "<75 object files omitted>" "-Wl,--as-needed" "-Wl,-Bstatic" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib/{libstd-*,libpanic_unwind-*,libobject-*,libmemchr-*,libaddr2line-*,libgimli-*,libcfg_if-*,librustc_demangle-*,libstd_detect-*,libhashbrown-*,librustc_std_workspace_alloc-*,libminiz_oxide-*,libadler2-*,libunwind-*,liblibc-*,librustc_std_workspace_core-*,liballoc-*,libcore-*,libcompiler_builtins-*}.rlib" "-Wl,-Bdynamic" "-lgcc_s" "-lutil" "-lrt" "-lpthread" "-lm" "-ldl" "-lc" "-L" "/tmp/rustcBDQQCc/raw-dylibs" "-Wl,--eh-frame-hdr" "-Wl,-z,noexecstack" "-L" "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/recipe-sysroot/usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/usr/lib" "-L" "<sysroot>/lib/rustlib/x86_64-unknown-linux-gnu/lib" "-o" "/srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/work/x86_64-nativesdk-pokysdk-linux/nativesdk-rust/1.92.0/sources/rustc-1.92.0-src/build/bootstrap/debug/deps/rustdoc-92c720c010da8c74" "-Wl,--gc-sections" "-pie" "-Wl,-z,relro,-z,now" "-nodefaultlibs" "-lz" "-lzstd"
>> | = note: some arguments are omitted. use `--verbose` to show all linker arguments
>> | = note: /srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/hosttools/ld: cannot find /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/lib/libm.so.6: No such file or directory
>> | /srv/pokybuild/yocto-worker/beaglebone/build/build/tmp/hosttools/ld: cannot find /usr/local/oe-sdk-hardcoded-buildpath/sysroots/x86_64-pokysdk-linux/lib/libmvec.so.1: No such file or directory
>> | collect2: error: ld returned 1 exit status
>>
>>
>> https://autobuilder.yoctoproject.org/valkyrie/#/builders/2/builds/3084
>> https://autobuilder.yoctoproject.org/valkyrie/api/v2/logs/5052191/raw_inline
>>
>> Can you have a look at these failures?
> Thanks for reporting this.
> The error indicates that the linker is unable to locate libm.so.6 and
> libmvec.so.6 in the recipe sysroot.
> These libraries are normally provided by glibc, and this issue does not
> appear to be caused by our patches, as we are not able to reproduce it
> locally.
> Could you please re-test the series once more to confirm?
>
> Thanks,
> Harish
Ok, thanks for testing again on your side. It may have been related to another
commit on my branch as I'm not facing the issues again. I'll re-add the series
to my branch - sorry for the false alarm!
Antonin
--
Antonin Godard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 23+ messages in thread* Re: [OE-core] [PATCH v4 00/16] Enable rust support for linux kernel
2026-01-22 14:24 ` Antonin Godard
@ 2026-01-26 7:54 ` Antonin Godard
2026-01-28 17:34 ` Harish Sadineni
0 siblings, 1 reply; 23+ messages in thread
From: Antonin Godard @ 2026-01-26 7:54 UTC (permalink / raw)
To: Harish.Sadineni, openembedded-core; +Cc: MacLeod, Randy, Kokkonda, Sundeep
Hi,
On Thu Jan 22, 2026 at 3:24 PM CET, Antonin Godard via lists.openembedded.org wrote:
[...]
>> Thanks for reporting this.
>> The error indicates that the linker is unable to locate libm.so.6 and
>> libmvec.so.6 in the recipe sysroot.
>> These libraries are normally provided by glibc, and this issue does not
>> appear to be caused by our patches, as we are not able to reproduce it
>> locally.
>> Could you please re-test the series once more to confirm?
>>
>> Thanks,
>> Harish
>
> Ok, thanks for testing again on your side. It may have been related to another
> commit on my branch as I'm not facing the issues again. I'll re-add the series
> to my branch - sorry for the false alarm!
Sorry, but after starting an a-full run with your series again, I started
getting the same errors again:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3110
I've launched an a-full build with the same branches minus your series and I
don't see the errors anymore:
https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3115
You can compare the branches used for the two builds by comparing:
https://git.yoctoproject.org/poky-ci-archive/log/?h=oecore/autobuilder.yoctoproject.org/valkyrie/a-full-3110
https://git.yoctoproject.org/poky-ci-archive/log/?h=bitbake/autobuilder.yoctoproject.org/valkyrie/a-full-3110
https://git.yoctoproject.org/poky-ci-archive/log/?h=meta-yocto/autobuilder.yoctoproject.org/valkyrie/a-full-3110
vs.
https://git.yoctoproject.org/poky-ci-archive/log/?h=oecore/autobuilder.yoctoproject.org/valkyrie/a-full-3115
https://git.yoctoproject.org/poky-ci-archive/log/?h=bitbake/autobuilder.yoctoproject.org/valkyrie/a-full-3115
https://git.yoctoproject.org/poky-ci-archive/log/?h=meta-yocto/autobuilder.yoctoproject.org/valkyrie/a-full-3115
Maybe your build uses some shared state which is why your builds pass?
You can base off your test builds against my a-full-3110 branches above, that
may help.
Regards,
Antonin
--
Antonin Godard, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [OE-core] [PATCH v4 00/16] Enable rust support for linux kernel
2026-01-26 7:54 ` Antonin Godard
@ 2026-01-28 17:34 ` Harish Sadineni
0 siblings, 0 replies; 23+ messages in thread
From: Harish Sadineni @ 2026-01-28 17:34 UTC (permalink / raw)
To: Antonin Godard, openembedded-core
Cc: MacLeod, Randy, Kokkonda, Sundeep, Alistair Francis
[-- Attachment #1: Type: text/plain, Size: 3049 bytes --]
On 1/26/2026 1:24 PM, Antonin Godard 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.
>
> Hi,
>
> On Thu Jan 22, 2026 at 3:24 PM CET, Antonin Godard via lists.openembedded.org wrote:
> [...]
>>> Thanks for reporting this.
>>> The error indicates that the linker is unable to locate libm.so.6 and
>>> libmvec.so.6 in the recipe sysroot.
>>> These libraries are normally provided by glibc, and this issue does not
>>> appear to be caused by our patches, as we are not able to reproduce it
>>> locally.
>>> Could you please re-test the series once more to confirm?
>>>
>>> Thanks,
>>> Harish
>> Ok, thanks for testing again on your side. It may have been related to another
>> commit on my branch as I'm not facing the issues again. I'll re-add the series
>> to my branch - sorry for the false alarm!
> Sorry, but after starting an a-full run with your series again, I started
> getting the same errors again:
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3110
>
> I've launched an a-full build with the same branches minus your series and I
> don't see the errors anymore:
>
> https://autobuilder.yoctoproject.org/valkyrie/#/builders/29/builds/3115
>
> You can compare the branches used for the two builds by comparing:
>
> https://git.yoctoproject.org/poky-ci-archive/log/?h=oecore/autobuilder.yoctoproject.org/valkyrie/a-full-3110
> https://git.yoctoproject.org/poky-ci-archive/log/?h=bitbake/autobuilder.yoctoproject.org/valkyrie/a-full-3110
> https://git.yoctoproject.org/poky-ci-archive/log/?h=meta-yocto/autobuilder.yoctoproject.org/valkyrie/a-full-3110
>
> vs.
>
> https://git.yoctoproject.org/poky-ci-archive/log/?h=oecore/autobuilder.yoctoproject.org/valkyrie/a-full-3115
> https://git.yoctoproject.org/poky-ci-archive/log/?h=bitbake/autobuilder.yoctoproject.org/valkyrie/a-full-3115
> https://git.yoctoproject.org/poky-ci-archive/log/?h=meta-yocto/autobuilder.yoctoproject.org/valkyrie/a-full-3115
>
> Maybe your build uses some shared state which is why your builds pass?
>
> You can base off your test builds against my a-full-3110 branches above, that
> may help.
I was able to reproduce the issue locally.
Failure was happening due to Alistair Francis's patch from my v4 series
(https://lists.openembedded.org/g/openembedded-core/message/229769) when
applied together
with following patch "llvm: enable LLVMgold.so build by adding binutils
dependency(https://lists.openembedded.org/g/openembedded-core/message/229387)"
To avoid this issue, I am dropping Alistair Francis’s patch
(https://lists.openembedded.org/g/openembedded-core/message/229769<https://lists.openembedded.org/g/openembedded-core/message/229769>)
from my patch set.
We will send a v5 series tomorrow.
Thanks,
Harish
>
> Regards,
> Antonin
>
> --
> Antonin Godard, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
[-- Attachment #2: Type: text/html, Size: 5513 bytes --]
^ permalink raw reply [flat|nested] 23+ messages in thread