On Wed, Feb 4, 2026 at 7:00 AM Paul Barker via lists.openembedded.org <paul= [email protected]> wrote:
> On Thu, 2026-01-29 at 08:38 -0800, Sadineni, Harish via > lists.openembedded.org wrote: > > From: Harish Sadineni <[email protected]> > > > > v5: > > - Regression in autobuilder with v4 series is due to applying v4 series > together with following patch > > "llvm: enable LLVMgold.so build by adding binutils dependency"( > https://lists.openembedded.org/g/openembedded-core/message/229387) > > is fixed by droping Alistair Francis's patch( > https://lists.openembedded.org/g/openembedded-core/message/229091). > > - Updated patch "rust: install Rust library sources for 'make > rustavailable' support" to install > > rust standard library sources for rust-native. > > > > v4: > > - Resolved patchtest failures. > > > > v3: > > - Removed the DISTRO_FEATURES dependency for installing Rust library > sources in the Rust recipe, > > - Extended support for on target rust kernel module developmet by > installing Rust library sources and > > introduced packaging of the Rust standard library sources in a > dedicated ${PN}-src-lib package. > > - Integrated Alistair Francis's patch( > https://lists.openembedded.org/g/openembedded-core/message/229091) > > that uses the Rust bootstrap tool to install Rust library sources for > rust-native. > > - Dropped the patch that added rust-kernel to native/nativesdk feature > filters in bitbake.conf. > > - Updated flags in the make-mod-scripts recipe to fix build failures > when building Rust out-of-tree > > module recipes. > > - Dropped the bindgen-cli patch extending BBCLASSEXTEND to include > > nativesdk, as it has been merged into oe-core. > > > > v2: > > - Combined [PATCH 05/16][0] & [PATCH 06/16][1] from v1. > > - Updated commit message and added in code comments for patch "[PATCH > 09/15] kernel-devsrc: copying > > rust-kernel source to $kerneldir/build" > > > > [0] https://lists.openembedded.org/g/openembedded-core/message/228559 > > [1] https://lists.openembedded.org/g/openembedded-core/message/228560 > > > > v1: > > The previous series was RFC v4, "Enable Rust support for Linux kernel" > > (https://lists.openembedded.org/g/openembedded-core/message/226623). > > > > In addition, Yoann Congal posted RFC v2, "Kernel Rust out-of-tree module > support" > > (https://lists.openembedded.org/g/openembedded-core/message/227281), > which builds on top of RFC v4. > > > > The current patch series is a unified version that combines both efforts. > > Compared to the earlier series, the main changes are: > > > > -Kernel configuration fragments have been moved to yocto-kernel-cache. > > -The kernel fragments have been removed from SRC_URI and from the files > > directory previously stored underrecipes-kernel/linux/files. > > -Updated the "[PATCH 11/16] selftest/cases/runtime_test: Add test for > Linux Rust sample" > > by appending KERNEL_EXTRA_FEATURES:append = > 'features/kernel-sample/kernel-rust-sample.scc' > > instead of adding this directly in the linux-yocto recipe. > > > > > > 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: Add required dependencies ('clang-native', > 'rust-native','bindgen-cli-native') to the kernel to support Rust binding > generation. > > - Patch 02: Install the Rust standard library source ('library/') for > native,target and sdk. > > - Patch 03: Updated `kernel-yocto.bbclass` to invoke `make > rustavailable` during 'do_kernel_configme', ensuring Rust readiness. > > - Patch 04: Add kernel configuration support for Rust (via > 'kernel-rust.scc'), enabling the Rust build options in kernel config. > > - Patch 05: Fixed buildpaths errors when rust is enabled for kernel by > appending --remap-path-prefix to RUST_DEBUG_REMAP > > - Patch 06: split `HOSTCC` flag to align with to linux-yocto and fix > build issue with make-mod-scripts recipe. > > - Patch 07: Disabling ccache when rust-kernel is enabled for linux-yocto. > > - Patch 08: Copy Rust kernel sources into kernel-devsrc build directory > which will be required while running 'make prepare' in sdk. > > - Patch 09: Added oe-selftest case for the Linux Rust sample. > > - patch 10: Copying include/config/auto.conf in STAGING_KERNEL_BUILDDIR > > - patch 11: Export artifacts needed for out-of-tree Rust compilation > > - patch 12: Prepare out-of-tree rust module compilation > > - patch 13: Added rust-out-of-tree-module recipe in meta-skeleton layer > > - Patch 14: Fixed buildpaths errors for rust-out-of-tree-module recipe > by appending --remap-path-prefix to RUST_DEBUG_REMAP > > - patch 15: 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 | > > > +-------------------------------+------------+-----------+-----------+-----------+ > > We discussed these patches on Monday and have some feedback on the > design. Things are nearly correct, we do want to ensure that the user > experience is good before merging this though as people will quickly > start to depend on it. > > We think it would be better if Rust support was controlled by > KERNEL_FEATURES instead of DISTRO_FEATURES. This option now only impacts > the kernel and any kernel module recipes. It also may need to change > depending on MACHINE which makes it not a good fit for DISTRO_FEATURES - > e.g. one BSP may use an older LTS kernel with no required Rust code and > a different BSP may use a newer kernel and need a driver written in Rust > for the board to function. > > We should add a new module-rust.bbclass instead of extending > module.bbclass with conditional logic. This can be included by any > modules which use Rust and handle any common setup. It can also check > for the presence of required files (scripts/target.json & rust/*) in the > kernel's shared workdir, and perhaps the kernel config so that we can > give a sensible error message if they are missing. This means that > module-rust.bbclass doesn't need to check KERNEL_FEATURES for > rust-kernel, it can just look at the shared workdir (probably in > do_configure) to make sure that we're ready to build a Rust module. > > If we can't use KERNEL_FEATURES, then perhaps a new KERNEL_RUST_SUPPORT > variable would work. In either case, this should only be checked in the > kernel recipe itself. > > Bruce - what do you think about KERNEL_FEATURES being used in this way? > It's a reasonable idea. KERNEL_FEATURES are supposed to abstract the individual CONFIG_ items from spreading throughout the code base so checking KERNEL_FEATURES is acceptable for coordinating different parts of kernel infrastructure. I'll just repeat my feedback that I sent earlier (and also to your other reply in this email), that I prefer to make the tasks in the bbclasses conditional, not have them checking for conditionals within the tasks. Bruce > > Best regards, > > -- > Paul Barker > > > > > -- - 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 (#230528): https://lists.openembedded.org/g/openembedded-core/message/230528 Mute This Topic: https://lists.openembedded.org/mt/117528967/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
