On Mon, Dec 29, 2025 at 7:25 AM Harish Sadineni <
[email protected]> wrote:

>
> 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 <[email protected]> wrote:
> >> From: Harish Sadineni <[email protected]>
> >>
> >> 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
>
>
Right. This is what I've had to do for the other subsystems and so
far we've mostly avoided large copies.



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

If we are making such a relatively large addition, both the commit
message and above the copy in the code .. explain in detail what
the rust directory does / generates during make prepare and what
it provides that a kernel module build requires.

Cheers,

Bruce




> > Bruce
> >
> >> Signed-off-by: Harish Sadineni <[email protected]>
> >> ---
> >>   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
>


-- 
- 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 (#228605): 
https://lists.openembedded.org/g/openembedded-core/message/228605
Mute This Topic: https://lists.openembedded.org/mt/116959156/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to