On Wed, Feb 4, 2026 at 7:24 AM Paul Barker <[email protected]> wrote:

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

Except that I don't particularly like that check as it is in that patch,
so I wouldn't recommend copying it.

Make the invocation of the task conditional, not conditional checks
in the tasks.

Bruce



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

-- 
- 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 (#230527): 
https://lists.openembedded.org/g/openembedded-core/message/230527
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