public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
From: Harish Sadineni <Harish.Sadineni@windriver.com>
To: Bruce Ashfield <bruce.ashfield@gmail.com>
Cc: openembedded-core@lists.openembedded.org,
	Randy.MacLeod@windriver.com, Sundeep.Kokkonda@windriver.com,
	yoann.congal@smile.fr, elmehdi.younes@smile.fr
Subject: Re: [PATCH 10/16] kernel-devsrc: copying rust-kernel source to $kerneldir/build
Date: Mon, 29 Dec 2025 16:55:40 +0530	[thread overview]
Message-ID: <a0143cb6-96bf-4181-b1f4-df7db2e77563@windriver.com> (raw)
In-Reply-To: <CADkTA4MO1Xxi_p+w6jV5ZCiVCG+QrK9o2KHucBK5TZruf1BjWQ@mail.gmail.com>


On 12/27/2025 8:39 PM, Bruce Ashfield wrote:
> CAUTION: This email comes from a non Wind River email account!
> Do not click links or open attachments unless you recognize the sender and know the content is safe.
>
> On Sat, Dec 27, 2025 at 7:33 AM <Harish.Sadineni@windriver.com> wrote:
>> From: Harish Sadineni <Harish.Sadineni@windriver.com>
>>
>> In sdk while running: 'make prepare' in kernel-source directory after enabling rust config,
>> it will throw errors since only makefile is present in rust kernel sources.
> Can you show exactly how much of the infrastructure is needed for
> make prepare to succeed ? We've gone through a lot of effort over
> the years to not copy whole directories, many which have plenty
> of source code just like the rust directories do.
>
> If we can just copy the Makefiles and Kbuild files + a few elements
> that are needed for regeneration, that is ideal.
Without this patch:

After populating the SDK and sourcing the environment, in the kernel 
source directory I run 'make rustavailable', then 'make scripts',
and enable Rust support (RUST) in the kernel configuration. When running 
'make prepare', the build fails.

The failure is due to missing Rust infrastructure. To understand the 
minimum required set, I attempted to add files incrementally based on 
the reported errors.
This resulted in the following dependency chain:

Initial failure during make prepare:

RUSTC   L rust/core.o
EXPORTS rust/exports_core_generated.h
make[2]: *** No rule to make target 'rust/bindings/bindings_helper.h',
            needed by 'rust/bindings/bindings_generated.rs'.  Stop.

After adding rust/bindings/bindings_helper.h:

make[2]: *** No rule to make target 'rust/bindgen_parameters',
            needed by 'rust/bindings/bindings_generated.rs'.  Stop.

After adding rust/bindgen_parameters:

BINDGEN rust/bindings/bindings_generated.rs
make[2]: *** No rule to make target 'rust/helpers/helpers.c',
            needed by 'rust/bindings/bindings_helpers_generated.rs'. Stop.

After adding rust/helpers/helpers.c, bindgen fails due to additional C 
source dependencies:

rust/helpers/helpers.c:10:10: fatal error: 'auxiliary.c' file not found
rust/helpers/helpers.c:11:10: fatal error: 'blk.c' file not found


At this point, it becomes apparent that make prepare continues to pull 
in further Rust and C source dependencies(chain of dependency is very 
large),
and in practice ends up requiring most of the Rust infrastructure rather 
than just a small set of Makefiles or files.

After applying this patch total size of rust directory  is 1.8MB.
> Bruce
>
>> Signed-off-by: Harish Sadineni <Harish.Sadineni@windriver.com>
>> ---
>>   meta/recipes-kernel/linux/kernel-devsrc.bb | 4 ++++
>>   1 file changed, 4 insertions(+)
>>
>> diff --git a/meta/recipes-kernel/linux/kernel-devsrc.bb b/meta/recipes-kernel/linux/kernel-devsrc.bb
>> index 23a9093ede..1505a1d70c 100644
>> --- a/meta/recipes-kernel/linux/kernel-devsrc.bb
>> +++ b/meta/recipes-kernel/linux/kernel-devsrc.bb
>> @@ -139,6 +139,10 @@ do_install() {
>>           cd ${S}
>>
>>           cp -a scripts $kerneldir/build
>> +
>> +        if ${@bb.utils.contains('DISTRO_FEATURES', 'rust-kernel', 'true', 'false', d)}; then
>> +            cp -a rust ${kerneldir}/build
>> +        fi
>>
>>           # for v6.1+ (otherwise we are missing multiple default targets)
>>           cp -a --parents Kbuild $kerneldir/build 2>/dev/null || :
>> --
>> 2.49.0
>>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II


  reply	other threads:[~2025-12-29 11:25 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-27 11:32 [PATCH 00/16] Enable rust support for linux kernel Harish.Sadineni
2025-12-27 11:32 ` [PATCH 01/16] bindgen-cli: extend BBCLASSEXTEND to include nativesdk Harish.Sadineni
2025-12-27 11:32 ` [PATCH 02/16] linux-yocto: conditionally add clang/rust/bindgen-cli-native to DEPENDS Harish.Sadineni
2025-12-27 11:32 ` [PATCH 03/16] rust: install Rust library sources for 'make rustavailable' support Harish.Sadineni
2025-12-27 11:32 ` [PATCH 04/16] bitbake.conf: Include "rust-kernel" in native/nativesdk feature filters Harish.Sadineni
2025-12-27 11:32 ` [PATCH 05/16] kernel-yocto: stage rustlib sources for linux-yocto 'make rustavailable' support Harish.Sadineni
2025-12-27 15:03   ` Bruce Ashfield
2025-12-27 11:32 ` [PATCH 06/16] kernel-yocto: add rust support via "make rustavailable" in do_kernel_configme Harish.Sadineni
2025-12-27 15:05   ` Bruce Ashfield
2025-12-29 10:59     ` Harish Sadineni
2025-12-27 11:32 ` [PATCH 07/16] linux-yocto: enable Rust support in kernel configuration Harish.Sadineni
2025-12-27 11:32 ` [PATCH 08/16] kernel-yocto: Fix for buildpaths errors when rust is enabled for kernel Harish.Sadineni
2025-12-27 11:32 ` [PATCH 09/16] kernel-yocto.bbclass: Disable ccache when rust-kernel is enabled Harish.Sadineni
2025-12-27 11:32 ` [PATCH 10/16] kernel-devsrc: copying rust-kernel source to $kerneldir/build Harish.Sadineni
2025-12-27 15:09   ` Bruce Ashfield
2025-12-29 11:25     ` Harish Sadineni [this message]
2025-12-29 12:49       ` Bruce Ashfield
2025-12-27 11:32 ` [PATCH 11/16] selftest/cases/runtime_test: Add test for Linux Rust sample Harish.Sadineni
2025-12-27 11:32 ` [PATCH 12/16] kernel.bbclass: Copy include/config/auto.conf in STAGING_KERNEL_BUILDDIR Harish.Sadineni
2025-12-27 11:32 ` [PATCH 13/16] kernel.bbclass: Export artifacts needed for out-of-tree Rust compilation Harish.Sadineni
2025-12-27 11:32 ` [PATCH 14/16] module.bbclass: Prepare out-of-tree rust module compilation Harish.Sadineni
2025-12-27 11:32 ` [PATCH 15/16] meta-skeleton: Add rust-out-of-tree-module recipe Harish.Sadineni
2025-12-27 11:32 ` [PATCH 16/16] runtime_test: Add rust-out-of-tree selftest Harish.Sadineni
2025-12-27 14:59 ` [PATCH 00/16] Enable rust support for linux kernel Bruce Ashfield
2025-12-29 10:51   ` Harish Sadineni

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a0143cb6-96bf-4181-b1f4-df7db2e77563@windriver.com \
    --to=harish.sadineni@windriver.com \
    --cc=Randy.MacLeod@windriver.com \
    --cc=Sundeep.Kokkonda@windriver.com \
    --cc=bruce.ashfield@gmail.com \
    --cc=elmehdi.younes@smile.fr \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=yoann.congal@smile.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox