Message ID | 20240819095638.29008-1-Deepesh.Varatharajan@windriver.com |
---|---|
State | Rejected |
Delegated to: | Steve Sakoman |
Headers | show |
Series | [scarthgap] rust: rustdoc reproducibility issue fix | expand |
As this is fixing reproducibility, should it also remove rust from reproducibility exceptions at the same time? Alex On Mon, 19 Aug 2024 at 11:57, deepesh.varatharajan via lists.openembedded.org <deepesh.varatharajan=windriver.com@lists.openembedded.org> wrote: > > From: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> > > The 'codegen-units' option split the crate into multiple compilation units for parallel compilation. > Currently, this split is causing the rustdoc to generate differnt binary between the builds. > To fix this the codegen-units & the lto options are disabled. > > More info about options: > https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units > https://doc.rust-lang.org/rustc/codegen-options/index.html#lto > > Signed-off-by: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com> > Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> > --- > ...ue-fix-cargo-config-for-codegenunits.patch | 29 +++++++++++++++++++ > meta/recipes-devtools/rust/rust-source.inc | 1 + > meta/recipes-devtools/rust/rust_1.75.0.bb | 1 + > 3 files changed, 31 insertions(+) > create mode 100644 meta/recipes-devtools/rust/files/rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch > > diff --git a/meta/recipes-devtools/rust/files/rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch b/meta/recipes-devtools/rust/files/rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch > new file mode 100644 > index 0000000000..fdb2a4a498 > --- /dev/null > +++ b/meta/recipes-devtools/rust/files/rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch > @@ -0,0 +1,29 @@ > +commit e2e7017350d0b5324811fef3b841f98b00273887 > +Author: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com> > +Date: Fri Jul 26 06:35:59 2024 -0700 > + > + rust: rustdoc reproducibility issue fix > + > + The 'codegen-units' option split the crate into multiple compilation units for parallel compilation. > + Currently, this split is causing the rustdoc to generate differnt binary between the builds. > + To fix this the codegen-units & the lto options are disabled. > + > + More info about options: > + https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units > + https://doc.rust-lang.org/rustc/codegen-options/index.html#lto > + > +Upstream-Status: Inappropriate [oe specific] > + > +Signed-off-by: Deepesh Varatharajan <deepesh.varatharajan@windriver.com> > +--- > +--- a/.cargo/config.toml > ++++ b/.cargo/config.toml > +@@ -3,3 +3,7 @@ > + > + [source.vendored-sources] > + directory = "vendor" > ++ > ++[profile.release] > ++codegen-units = 1 > ++ > + > diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc > index b14221b6cb..4ffc9faf18 100644 > --- a/meta/recipes-devtools/rust/rust-source.inc > +++ b/meta/recipes-devtools/rust/rust-source.inc > @@ -13,6 +13,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n > file://target-build-value.patch;patchdir=${RUSTSRC} \ > file://0001-Handle-vendored-sources-when-remapping-paths.patch;patchdir=${RUSTSRC} \ > file://repro-issue-fix-with-v175.patch;patchdir=${RUSTSRC} \ > + file://rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch;patchdir=${RUSTSRC} \ > " > SRC_URI[rust.sha256sum] = "4526f786d673e4859ff2afa0bab2ba13c918b796519a25c1acce06dba9542340" > > diff --git a/meta/recipes-devtools/rust/rust_1.75.0.bb b/meta/recipes-devtools/rust/rust_1.75.0.bb > index c33f31d261..7cd34a61c3 100644 > --- a/meta/recipes-devtools/rust/rust_1.75.0.bb > +++ b/meta/recipes-devtools/rust/rust_1.75.0.bb > @@ -132,6 +132,7 @@ python do_configure() { > config.add_section("rust") > config.set("rust", "rpath", e(True)) > config.set("rust", "remap-debuginfo", e(True)) > + config.set("rust", "lto", "\"off\"") > config.set("rust", "channel", e(d.expand("${RUST_CHANNEL}"))) > > # Whether or not to optimize the compiler and standard library > -- > 2.43.0 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#203498): https://lists.openembedded.org/g/openembedded-core/message/203498 > Mute This Topic: https://lists.openembedded.org/mt/107977579/1686489 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alex.kanavin@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta/recipes-devtools/rust/files/rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch b/meta/recipes-devtools/rust/files/rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch new file mode 100644 index 0000000000..fdb2a4a498 --- /dev/null +++ b/meta/recipes-devtools/rust/files/rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch @@ -0,0 +1,29 @@ +commit e2e7017350d0b5324811fef3b841f98b00273887 +Author: Sundeep KOKKONDA <sundeep.kokkonda@windriver.com> +Date: Fri Jul 26 06:35:59 2024 -0700 + + rust: rustdoc reproducibility issue fix + + The 'codegen-units' option split the crate into multiple compilation units for parallel compilation. + Currently, this split is causing the rustdoc to generate differnt binary between the builds. + To fix this the codegen-units & the lto options are disabled. + + More info about options: + https://doc.rust-lang.org/cargo/reference/profiles.html#codegen-units + https://doc.rust-lang.org/rustc/codegen-options/index.html#lto + +Upstream-Status: Inappropriate [oe specific] + +Signed-off-by: Deepesh Varatharajan <deepesh.varatharajan@windriver.com> +--- +--- a/.cargo/config.toml ++++ b/.cargo/config.toml +@@ -3,3 +3,7 @@ + + [source.vendored-sources] + directory = "vendor" ++ ++[profile.release] ++codegen-units = 1 ++ + diff --git a/meta/recipes-devtools/rust/rust-source.inc b/meta/recipes-devtools/rust/rust-source.inc index b14221b6cb..4ffc9faf18 100644 --- a/meta/recipes-devtools/rust/rust-source.inc +++ b/meta/recipes-devtools/rust/rust-source.inc @@ -13,6 +13,7 @@ SRC_URI += "https://static.rust-lang.org/dist/rustc-${RUST_VERSION}-src.tar.xz;n file://target-build-value.patch;patchdir=${RUSTSRC} \ file://0001-Handle-vendored-sources-when-remapping-paths.patch;patchdir=${RUSTSRC} \ file://repro-issue-fix-with-v175.patch;patchdir=${RUSTSRC} \ + file://rustdoc-repro-issue-fix-cargo-config-for-codegenunits.patch;patchdir=${RUSTSRC} \ " SRC_URI[rust.sha256sum] = "4526f786d673e4859ff2afa0bab2ba13c918b796519a25c1acce06dba9542340" diff --git a/meta/recipes-devtools/rust/rust_1.75.0.bb b/meta/recipes-devtools/rust/rust_1.75.0.bb index c33f31d261..7cd34a61c3 100644 --- a/meta/recipes-devtools/rust/rust_1.75.0.bb +++ b/meta/recipes-devtools/rust/rust_1.75.0.bb @@ -132,6 +132,7 @@ python do_configure() { config.add_section("rust") config.set("rust", "rpath", e(True)) config.set("rust", "remap-debuginfo", e(True)) + config.set("rust", "lto", "\"off\"") config.set("rust", "channel", e(d.expand("${RUST_CHANNEL}"))) # Whether or not to optimize the compiler and standard library