From 321aebfa281bd28e368c684ece57867f6bd0cbe7 Mon Sep 17 00:00:00 2001 From: Sundeep KOKKONDA Date: Wed, 20 Dec 2023 02:40:20 -0800 Subject: 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. (From OE-Core rev: 189c266378c8c4a918cb205b3888577c7ce76856) Signed-off-by: Sundeep KOKKONDA Signed-off-by: Richard Purdie --- meta/lib/oeqa/selftest/cases/reproducible.py | 2 -- meta/recipes-devtools/rust/rust_1.71.1.bb | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/meta/lib/oeqa/selftest/cases/reproducible.py b/meta/lib/oeqa/selftest/cases/reproducible.py index 14ccb0b24d..80e830136f 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 3d176e54c1..bc076997de 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)) -- cgit v1.2.3-54-g00ecf