On Wed, 2026-02-04 at 12:00 +0000, Paul Barker 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.
After I sent this, I spotted a patch for module.bbclass to check that CONFIG_MODULES is enabled [1]. Doing the same thing in a new module-rust.bbclass to check for CONFIG_RUST may be exactly what we need. [1]: https://lore.kernel.org/openembedded-core/[email protected]/T/#u > > 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? > > Best regards, > -- Paul Barker
signature.asc
Description: This is a digitally signed message part
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#230516): https://lists.openembedded.org/g/openembedded-core/message/230516 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]] -=-=-=-=-=-=-=-=-=-=-=-
