From: Harish.Sadineni@windriver.com
To: openembedded-core@lists.openembedded.org
Cc: Randy.MacLeod@windriver.com, Sundeep.Kokkonda@windriver.com,
bruce.ashfield@gmail.com, yoann.congal@smile.fr,
elmehdi.younes@smile.fr
Subject: [PATCH 00/16] Enable rust support for linux kernel
Date: Sat, 27 Dec 2025 03:32:35 -0800 [thread overview]
Message-ID: <20251227113251.773795-1-Harish.Sadineni@windriver.com> (raw)
From: Harish Sadineni <Harish.Sadineni@windriver.com>
This patch series introduces Rust support into the linux-yocto kernel recipe
and related build infrastructure in the Yocto Project. The goal is to enable
building the Linux kernel with Rust components and provide support for building
kernel module which is written in rust and also provide support to build
rust kernel modules in sdk.
And this series adds test for Linux Rust sample and also added support for out-of-tree kernel
module written in Rust as well as associated test.
Summary of patches:
- Patch 01: Extend 'bindgen-cli' to support 'nativesdk', allowing it to be available in the SDK environment.
- Patch 02: Add required dependencies ('clang-native', 'rust-native', 'bindgen-cli-native') to the kernel to support Rust binding generation.
- Patch 03: Install the Rust standard library source ('library/') into `work-shared` and which will be later copied to
linux-yocto recipe-sysroot-native.
- Patch 04: Added 'rust-kernel' to DISTRO_FEATURES_FILTER_NATIVE and DISTRO_FEATURES_FILTER_NATIVESDK, the 'rust-kernel' feature automatically
propagates from target DISTRO_FEATURES to native/nativesdk builds
- Patch 05: Stage the Rust sources into `recipe-sysroot-native` for kernel build compatibility, making them visible during native builds.
- Patch 06: Update `kernel-yocto.bbclass` to invoke `make rustavailable` during 'do_kernel_configme', ensuring Rust readiness.
- Patch 07: Add kernel configuration support for Rust (via 'kernel-rust.scc'), enabling the Rust build options in kernel config.
- Patch 08: Fixed buildpaths errors when rust is enabled for kernel by appending --remap-path-prefix to RUST_DEBUG_REMAP
- Patch 09: Disabling ccache when rust-kernel is enabled for linux-yocto.
- Patch 10: Copy Rust kernel sources into kernel-devsrc build directory which will be required while running 'make prepare' in sdk.
- Patch 11: Added oe-selftest case for the Linux Rust sample.
- patch 12: Copying include/config/auto.conf in STAGING_KERNEL_BUILDDIR
- patch 13: Export artifacts needed for out-of-tree Rust compilation
- patch 14: Prepare out-of-tree rust module compilation
- patch 15: Added rust-out-of-tree-module recipe in meta-skeleton layer
- patch 16: Added rust-out-of-tree selftest
Patches have been build-tested successfully on:
- qemuarm64
- qemux86-64
Benchmark test-result for x86-64:
+-------------------------------+------------+-----------+-----------+-----------+
| DISTRO_FEATURES | real | user | sys | FS usage |
+-------------------------------+------------+-----------+-----------+-----------+
| rust-kernel (enabled) | 46m1.720s | 0m28.864s | 0m3.696s | 58 GB |
| rust-kernel (disabled) | 30m1.053s | 0m20.091s | 0m2.748s | 33 GB |
+-------------------------------+------------+-----------+-----------+-----------+
The increased in time & fs is due to kernel rust dependencies in
linux-yocto.
Harish Sadineni (9):
bindgen-cli: extend BBCLASSEXTEND to include nativesdk
linux-yocto: conditionally add clang/rust/bindgen-cli-native to
DEPENDS
rust: install Rust library sources for 'make rustavailable' support
bitbake.conf: Include "rust-kernel" in native/nativesdk feature
filters
kernel-yocto: stage rustlib sources for linux-yocto 'make
rustavailable' support
kernel-yocto: add rust support via "make rustavailable" in
do_kernel_configme
linux-yocto: enable Rust support in kernel configuration
kernel-yocto: Fix for buildpaths errors when rust is enabled for
kernel
kernel-devsrc: copying rust-kernel source to $kerneldir/build
Yoann Congal (7):
kernel-yocto.bbclass: Disable ccache when rust-kernel is enabled
selftest/cases/runtime_test: Add test for Linux Rust sample
kernel.bbclass: Copy include/config/auto.conf in
STAGING_KERNEL_BUILDDIR
kernel.bbclass: Export artifacts needed for out-of-tree Rust
compilation
module.bbclass: Prepare out-of-tree rust module compilation
meta-skeleton: Add rust-out-of-tree-module recipe
runtime_test: Add rust-out-of-tree selftest
.../rust-out-of-tree-module_git.bb | 18 ++++++++++
meta/classes-recipe/kernel-yocto.bbclass | 28 +++++++++++++++
meta/classes-recipe/kernel.bbclass | 19 ++++++++++
meta/classes-recipe/module.bbclass | 8 +++++
meta/conf/bitbake.conf | 4 +--
meta/lib/oeqa/selftest/cases/runtime_test.py | 35 +++++++++++++++++++
.../bindgen-cli/bindgen-cli_0.72.1.bb | 2 +-
meta/recipes-devtools/rust/rust_1.91.1.bb | 17 +++++++++
meta/recipes-kernel/linux/kernel-devsrc.bb | 4 +++
meta/recipes-kernel/linux/linux-yocto.inc | 2 ++
meta/recipes-kernel/linux/linux-yocto_6.16.bb | 1 +
meta/recipes-kernel/linux/linux-yocto_6.18.bb | 1 +
12 files changed, 136 insertions(+), 3 deletions(-)
create mode 100644 meta-skeleton/recipes-kernel/rust-out-of-tree-module/rust-out-of-tree-module_git.bb
--
2.49.0
next reply other threads:[~2025-12-27 11:33 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-27 11:32 Harish.Sadineni [this message]
2025-12-27 11:32 ` [PATCH 01/16] bindgen-cli: extend BBCLASSEXTEND to include nativesdk Harish.Sadineni
2025-12-27 11:32 ` [PATCH 02/16] linux-yocto: conditionally add clang/rust/bindgen-cli-native to DEPENDS Harish.Sadineni
2025-12-27 11:32 ` [PATCH 03/16] rust: install Rust library sources for 'make rustavailable' support Harish.Sadineni
2025-12-27 11:32 ` [PATCH 04/16] bitbake.conf: Include "rust-kernel" in native/nativesdk feature filters Harish.Sadineni
2025-12-27 11:32 ` [PATCH 05/16] kernel-yocto: stage rustlib sources for linux-yocto 'make rustavailable' support Harish.Sadineni
2025-12-27 15:03 ` Bruce Ashfield
2025-12-27 11:32 ` [PATCH 06/16] kernel-yocto: add rust support via "make rustavailable" in do_kernel_configme Harish.Sadineni
2025-12-27 15:05 ` Bruce Ashfield
2025-12-29 10:59 ` Harish Sadineni
2025-12-27 11:32 ` [PATCH 07/16] linux-yocto: enable Rust support in kernel configuration Harish.Sadineni
2025-12-27 11:32 ` [PATCH 08/16] kernel-yocto: Fix for buildpaths errors when rust is enabled for kernel Harish.Sadineni
2025-12-27 11:32 ` [PATCH 09/16] kernel-yocto.bbclass: Disable ccache when rust-kernel is enabled Harish.Sadineni
2025-12-27 11:32 ` [PATCH 10/16] kernel-devsrc: copying rust-kernel source to $kerneldir/build Harish.Sadineni
2025-12-27 15:09 ` Bruce Ashfield
2025-12-29 11:25 ` Harish Sadineni
2025-12-29 12:49 ` Bruce Ashfield
2025-12-27 11:32 ` [PATCH 11/16] selftest/cases/runtime_test: Add test for Linux Rust sample Harish.Sadineni
2025-12-27 11:32 ` [PATCH 12/16] kernel.bbclass: Copy include/config/auto.conf in STAGING_KERNEL_BUILDDIR Harish.Sadineni
2025-12-27 11:32 ` [PATCH 13/16] kernel.bbclass: Export artifacts needed for out-of-tree Rust compilation Harish.Sadineni
2025-12-27 11:32 ` [PATCH 14/16] module.bbclass: Prepare out-of-tree rust module compilation Harish.Sadineni
2025-12-27 11:32 ` [PATCH 15/16] meta-skeleton: Add rust-out-of-tree-module recipe Harish.Sadineni
2025-12-27 11:32 ` [PATCH 16/16] runtime_test: Add rust-out-of-tree selftest Harish.Sadineni
2025-12-27 14:59 ` [PATCH 00/16] Enable rust support for linux kernel Bruce Ashfield
2025-12-29 10:51 ` Harish Sadineni
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251227113251.773795-1-Harish.Sadineni@windriver.com \
--to=harish.sadineni@windriver.com \
--cc=Randy.MacLeod@windriver.com \
--cc=Sundeep.Kokkonda@windriver.com \
--cc=bruce.ashfield@gmail.com \
--cc=elmehdi.younes@smile.fr \
--cc=openembedded-core@lists.openembedded.org \
--cc=yoann.congal@smile.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox