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

Attachment: 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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to