Le ven. 9 janv. 2026 à 05:55, Alistair Francis via lists.openembedded.org <[email protected]> a écrit :
> From: Alistair Francis <[email protected]> > > When building the Linux kernel with Rust support enabled the kernel > expects to find the Rust source as the kernel build system will cross > compile the core library. > > This patch uses the Rust tooling to install the Rust source when we > install the compiller as well. > Hello, FYI, there is currently a whole series about enabling rust in the linux-yocto kernel : https://lore.kernel.org/openembedded-core/[email protected]/ How does your series interact with it? If both do the same thing, maybe you can help reviewing Harish's one? Also, the patch you add only mentions adding the *doc* why does that help with linux-yocto searching for rust *code*? Signed-off-by: Alistair Francis <[email protected]> > --- > ...-host-documentation-is-built-before-.patch | 60 +++++++++++++++++++ > meta/recipes-devtools/rust/rust-source.inc | 1 + > meta/recipes-devtools/rust/rust_1.92.0.bb | 4 +- > 3 files changed, 64 insertions(+), 1 deletion(-) > create mode 100644 > meta/recipes-devtools/rust/files/0001-bootstrap-Ensure-host-documentation-is-built-before-.patch > > diff --git > a/meta/recipes-devtools/rust/files/0001-bootstrap-Ensure-host-documentation-is-built-before-.patch > b/meta/recipes-devtools/rust/files/0001-bootstrap-Ensure-host-documentation-is-built-before-.patch > new file mode 100644 > index 0000000000..e561266d70 > --- /dev/null > +++ > b/meta/recipes-devtools/rust/files/0001-bootstrap-Ensure-host-documentation-is-built-before-.patch > @@ -0,0 +1,60 @@ > +From 2e89bf7969ac6d77b7c6a38265b1eabc8ec6df7a Mon Sep 17 00:00:00 2001 > +From: Alistair Francis <[email protected]> > +Date: Fri, 9 Jan 2026 08:35:43 +1000 > +Subject: [PATCH] bootstrap: Ensure host documentation is built before > tarball > + is created > + > +`run_default_doc_steps()` is called to ensure the documentation is built > +by `Docs::run()` and it should build the documentation if it isn't > +already built. > + > +When running the `install src` command I'm seeing failures as the > +`builder.doc_out(host)` directory does not exist. This is because > +`match_paths_to_steps_and_run()` doesn't actually build any > +documentation as the `paths.is_empty()` causes an early return. This > +results in install failures as the `*/doc` src directory doesn't exist. > + > +This patch passes the paths to `run_host_step_descriptions()` when > building > +documentation to ensure it is correctly built. > + > +This fixes installing the Rust source code in OpenEmbedded. > + > +Upstream-Status: Submitted [https://github.com/rust-lang/rust/pull/150845 > ] > +Signed-off-by: Alistair Francis <[email protected]> > +--- > + src/bootstrap/src/core/build_steps/dist.rs | 2 +- > + src/bootstrap/src/core/builder/mod.rs | 5 +++++ > + 2 files changed, 6 insertions(+), 1 deletion(-) > + > +diff --git a/src/bootstrap/src/core/build_steps/dist.rs > b/src/bootstrap/src/core/build_steps/dist.rs > +index f47b0c0b007..2fbb068632e 100644 > +--- a/src/bootstrap/src/core/build_steps/dist.rs > ++++ b/src/bootstrap/src/core/build_steps/dist.rs > +@@ -83,7 +83,7 @@ fn run(self, builder: &Builder<'_>) -> > Option<GeneratedTarball> { > + // FIXME: explicitly enumerate the steps that should be executed > here, and gather their > + // documentation, rather than running all default steps and then > read their output > + // from a shared directory. > +- builder.run_default_doc_steps(); > ++ builder.run_host_default_doc_steps(); > + > + let dest = "share/doc/rust/html"; > + > +diff --git a/src/bootstrap/src/core/builder/mod.rs > b/src/bootstrap/src/core/builder/mod.rs > +index 4a04b97c549..16c1c324be0 100644 > +--- a/src/bootstrap/src/core/builder/mod.rs > ++++ b/src/bootstrap/src/core/builder/mod.rs > +@@ -1117,6 +1117,11 @@ pub fn execute_cli(&self) { > + > self.run_step_descriptions(&Builder::get_step_descriptions(self.kind), > &self.paths); > + } > + > ++ /// Run all default documentation steps to build documentation. > ++ pub fn run_host_default_doc_steps(&self) { > ++ > self.run_step_descriptions(&Builder::get_step_descriptions(Kind::Doc), > &self.paths); > ++ } > ++ > + /// Run all default documentation steps to build documentation. > + pub fn run_default_doc_steps(&self) { > + > self.run_step_descriptions(&Builder::get_step_descriptions(Kind::Doc), > &[]); > +-- > +2.52.0 > + > diff --git a/meta/recipes-devtools/rust/rust-source.inc > b/meta/recipes-devtools/rust/rust-source.inc > index d7d44510e4..8a22d484c1 100644 > --- a/meta/recipes-devtools/rust/rust-source.inc > +++ b/meta/recipes-devtools/rust/rust-source.inc > @@ -8,6 +8,7 @@ SRC_URI += " > https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n > > > file://0001-src-core-build_steps-tool.rs-switch-off-lto-for-rust.patch;patchdir=${RUSTSRC} > \ > > > file://revert-link-std-statically-in-rustc_driver-feature.patch;patchdir=${RUSTSRC} > \ > > > file://0001-riscv32-Define-plain-syscalls-as-their-time64-varian.patch;patchdir=${RUSTSRC} > \ > + > file://0001-bootstrap-Ensure-host-documentation-is-built-before-.patch \ > " > SRC_URI[rust.sha256sum] = > "ebee170bfe4c4dfc59521a101de651e5534f4dae889756a5c97ca9ea40d0c307" > > diff --git a/meta/recipes-devtools/rust/rust_1.92.0.bb > b/meta/recipes-devtools/rust/rust_1.92.0.bb > index a25f65f674..306661b6e4 100644 > --- a/meta/recipes-devtools/rust/rust_1.92.0.bb > +++ b/meta/recipes-devtools/rust/rust_1.92.0.bb > @@ -6,8 +6,9 @@ LIC_FILES_CHKSUM = > "file://COPYRIGHT;md5=11a3899825f4376896e438c8c753f8dc" > > inherit rust > inherit cargo_common > +inherit pkgconfig > > -DEPENDS += "llvm" > +DEPENDS += "llvm openssl" > This new dependency should be explained in the commit message. > # native rust uses cargo/rustc from binary snapshots to bootstrap > # but everything else should use our native builds > DEPENDS:append:class-target = " cargo-native rust-native" > @@ -282,6 +283,7 @@ do_install () { > > rust_do_install() { > rust_runx install > + rust_runx install src > } > > rust_do_install:class-nativesdk() { > -- > 2.52.0 > > > > > -- Yoann Congal Smile ECS
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#229101): https://lists.openembedded.org/g/openembedded-core/message/229101 Mute This Topic: https://lists.openembedded.org/mt/117170671/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
