On Sat, Dec 27, 2025 at 7:33 AM <[email protected]> wrote:
>
> From: Harish Sadineni <[email protected]>
>
> 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.

What are the changes in this version compared to the last ?

I didn't get a chance to look at the previous series in detail, but will look
at this one. Knowing what was done in the different iterations is
helpful in guiding what I look at.

Bruce

>
> 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
>


-- 
- 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 (#228572): 
https://lists.openembedded.org/g/openembedded-core/message/228572
Mute This Topic: https://lists.openembedded.org/mt/116959146/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to