From: Sundeep KOKKONDA Date: Wed, 20 Dec 2023 10:40:20 +0000 (-0800) Subject: rust: rustdoc reproducibility issue fix - disable PGO X-Git-Tag: uninative-4.4~681 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=189c266378c8c4a918cb205b3888577c7ce76856;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git rust: rustdoc reproducibility issue fix - disable PGO The PGO (Profile-guided Optimization) collect data about the typical execution of a program and then use this data to inform optimizations such as inlining, machine-code layout, register allocation, etc. This optimization is by default disabled in rust sources but enabled in Yocto and causing the reproducibility issue in rustdoc binary. To fix the issue this optimization is set to it's default 'false'. More about the optimization: https://doc.rust-lang.org/rustc/profile-guided-optimization.html With the reproducibility issue fixed, we can enable the reproducibility tests again. Signed-off-by: Sundeep KOKKONDA Signed-off-by: Richard Purdie --- diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index 14ccb0b24d5..80e830136f7 100644 --- a/meta/lib/oeqa/selftest/cases/reproducible.py +++ b/meta/lib/oeqa/selftest/cases/reproducible.py @@ -16,8 +16,6 @@ import os import datetime exclude_packages = [ - 'rust-rustdoc', - 'rust-dbg' ] def is_excluded(package): diff --git a/meta/recipes-devtools/rust/rust_1.71.1.bb b/meta/recipes-devtools/rust/rust_1.71.1.bb index 3d176e54c15..bc076997dec 100644 --- a/meta/recipes-devtools/rust/rust_1.71.1.bb +++ b/meta/recipes-devtools/rust/rust_1.71.1.bb @@ -141,13 +141,14 @@ python do_configure() { config.add_section("build") config.set("build", "submodules", e(False)) config.set("build", "docs", e(False)) + config.set("build", "tools", ["rust-demangler",]) rustc = d.expand("${WORKDIR}/rust-snapshot/bin/rustc") config.set("build", "rustc", e(rustc)) # Support for the profiler runtime to generate e.g. coverage report, # PGO etc. - config.set("build", "profiler", e(True)) + config.set("build", "profiler", e(False)) cargo = d.expand("${WORKDIR}/rust-snapshot/bin/cargo") config.set("build", "cargo", e(cargo))