public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/7] Enable rust support for linux kernel
@ 2025-10-23 11:25 Harish.Sadineni
  2025-10-23 11:25 ` [RFC PATCH 1/7] bindgen-cli: extend BBCLASSEXTEND to include nativesdk Harish.Sadineni
                   ` (9 more replies)
  0 siblings, 10 replies; 14+ messages in thread
From: Harish.Sadineni @ 2025-10-23 11:25 UTC (permalink / raw)
  To: openembedded-core; +Cc: Sundeep.Kokkonda

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 inside sdk. 

Summary of changes:

- Patch 1: Extend 'bindgen-cli' to support 'nativesdk', allowing it to be available in the SDK environment.
- Patch 2: Add required dependencies ('clang-native', 'bindgen-cli-native') to the kernel to support Rust binding generation.
- Patch 3: Install the Rust standard library source ('library/') into `work-shared` and which will be later copied to 
           linux-yocto recipe-sysroot-native.
- Patch 4: Stage the Rust sources into `recipe-sysroot-native` for kernel build compatibility, making them visible during native builds.
- Patch 5: Update `kernel-yocto.bbclass` to invoke `make rustavailable` during 'do_kernel_configme', ensuring Rust readiness.
- Patch 6: Add kernel configuration support for Rust (via 'rust.cfg' and 'rust.scc'), enabling the Rust build options in kernel config.
- patch 7: Copy Rust kernel sources into kernel-devsrc build directory which will be required while runnig 'make prepare' in sdk.

WIP - need inputs:
1. In patch-3, rust sources are copied from ${RUSTSRC} to ${TMPDIR}/work-shared, which is redundant and improving it in
 more optimized way by extracting rust directly into ${TMPDIR}/work-shared and then use it for both rust & linux-yocto recipes.
 
2. In patch-6, We've suppressed a few build path QA issues with INSANE_SKIP.
We have tried fixing those using DEBUG_PREFIX_MAP & --remap-path-prefix but unable to resolve it.
Are there any flags for kernel or any other inputs?
 
3. If rust.cfg & rust.scc changes are ok, we will send kernel configuration fragment to yocto-kernel-cache.

With above considerations, We did a successful build of Enabling rust in linux kernel and 
Tested a rust-out-of-tree kernel module in sdk for x86-64 & arm64 architectures.

Harish Sadineni (7):
  bindgen-cli: extend BBCLASSEXTEND to include nativesdk
  linux-yocto: add clang-native and bindgen-cli-native to DEPENDS
  rust: install Rust standard library sources for make rustavailable
    support
  rust: 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-devsrc: copying rust-kernel soucre  to $kerneldir/build

 meta/classes-recipe/kernel-yocto.bbclass      |  4 ++++
 .../bindgen-cli/bindgen-cli_0.72.1.bb         |  2 +-
 meta/recipes-devtools/rust/rust_1.90.0.bb     | 13 +++++++++++-
 meta/recipes-kernel/linux/files/rust.cfg      | 20 +++++++++++++++++++
 meta/recipes-kernel/linux/files/rust.scc      |  1 +
 meta/recipes-kernel/linux/kernel-devsrc.bb    |  1 +
 meta/recipes-kernel/linux/linux-yocto.inc     |  7 +++++++
 meta/recipes-kernel/linux/linux-yocto_6.16.bb |  4 ++++
 8 files changed, 50 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-kernel/linux/files/rust.cfg
 create mode 100644 meta/recipes-kernel/linux/files/rust.scc

-- 
2.49.0



^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2025-11-04 19:50 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-23 11:25 [RFC PATCH 0/7] Enable rust support for linux kernel Harish.Sadineni
2025-10-23 11:25 ` [RFC PATCH 1/7] bindgen-cli: extend BBCLASSEXTEND to include nativesdk Harish.Sadineni
2025-10-23 11:25 ` [RFC PATCH 2/7] linux-yocto: add clang-native and bindgen-cli-native to DEPENDS Harish.Sadineni
2025-10-23 11:25 ` [RFC PATCH 3/7] rust: install Rust standard library sources for make rustavailable support Harish.Sadineni
2025-10-23 11:25 ` [RFC PATCH 4/7] rust: stage rustlib sources for linux-yocto " Harish.Sadineni
2025-10-23 11:25 ` [RFC PATCH 5/7] kernel-yocto: add rust support via make rustavailable in do_kernel_configme Harish.Sadineni
2025-10-23 11:25 ` [RFC PATCH 6/7] linux-yocto: enable Rust support in kernel configuration Harish.Sadineni
2025-10-23 15:10   ` El Mehdi YOUNES
2025-11-04 17:43   ` [OE-core] " Randy MacLeod
2025-10-23 11:25 ` [RFC PATCH 7/7] kernel-devsrc: copying rust-kernel soucre to $kerneldir/build Harish.Sadineni
2025-10-23 13:00 ` [OE-core] [RFC PATCH 0/7] Enable rust support for linux kernel Bruce Ashfield
2025-10-23 14:57 ` El Mehdi YOUNES
2025-10-27  6:03 ` [OE-core] " Mathieu Dubois-Briand
2025-11-04 19:50   ` Yoann Congal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox