On 1/29/2026 10:09 PM, Sadineni, Harish via lists.openembedded.org wrote:
From: Yoann Congal <[email protected]>

Publish artifacts from kernel compilation to allow out-of-tree Rust
compilation:
* scripts/target.json: target definition: architecture, ABI, compiler
   options, ...
* rust/: the crates compiled by the kernel available to
   out-of-tree-modules
Hi Yoann,

I am dropping this patch “kernel.bbclass: Export artifacts needed for out-of-tree Rust compilation” from my v6 patch series.

Without this patch, target.json and the rust/ directory were already getting published for x86_64. On arm64, target.json will not be created, yet the module is still generated and works fine.

When building rust-out-f-tree-module for arm64 with this patch applied, it emits a warning that Out-of-tree rust modules build will fail due to a missing target.json in kernel. However, in practice, the build completes successfully.

I have tested without this patch on both arm64 and x86_64, both tests were successful.

So, this patch does not appear to be necessary. Are you OK with dropping this patch?

I have pushed the updated changes to the below oe-contrib branch:
https://git.openembedded.org/openembedded-core-contrib/log/?h=deepesh/rust-in-kernel-v6

Additionally, I have extended the ccache disabling to make-mod-scripts (as part of "kernel: Disable ccache when kernel rust support is enabled" patch) and updated "meta-skeleton: Add rust-out-of-tree-module recipe" to align with the new changes.

Thanks,
Harish
Signed-off-by: Yoann Congal <[email protected]>
Signed-off-by: Harish Sadineni <[email protected]>
---
  meta/classes-recipe/kernel.bbclass | 18 ++++++++++++++++++
  1 file changed, 18 insertions(+)

diff --git a/meta/classes-recipe/kernel.bbclass 
b/meta/classes-recipe/kernel.bbclass
index 30a10b0801..dfb8604a68 100644
--- a/meta/classes-recipe/kernel.bbclass
+++ b/meta/classes-recipe/kernel.bbclass
@@ -632,6 +632,24 @@ do_shared_workdir () {
                cp -r scripts/gcc-plugins ${kerneldir}/scripts
        fi
+ if ${@bb.utils.contains("DISTRO_FEATURES", "rust-kernel", "true", "false", d)}; then
+               # Copy target.json file needed for out-of-tree rust modules
+               if [ -e scripts/target.json ]; then
+                       bbnote "Copying scripts/target.json"
+                       mkdir -p ${kerneldir}/scripts
+                       cp scripts/target.json ${kerneldir}/scripts
+               else
+                       bbwarn "scripts/target.json not found in compiled kernel. 
Out-of-tree rust modules will fail to build."
+               fi
+
+               # Copy rust/ needed by out-of-tree module (firstly for the core 
rust crate)
+               if [ -e rust/ ]; then
+                       bbnote "Copying rust/"
+                       cp -r rust ${kerneldir}/
+               else
+                       bbwarn "rust/ not found in compiled kernel. Out-of-tree rust 
modules will fail to build."
+               fi
+       fi
  }
# We don't need to stage anything, not the modules/firmware since those would clash with linux-firmware



-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#230994): 
https://lists.openembedded.org/g/openembedded-core/message/230994
Mute This Topic: https://lists.openembedded.org/mt/117759084/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to