summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rust/files
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/rust/files')
-rw-r--r--meta/recipes-devtools/rust/files/0001-cargo-do-not-write-host-information-into-compilation.patch51
-rw-r--r--meta/recipes-devtools/rust/files/cargo-path.patch37
2 files changed, 51 insertions, 37 deletions
diff --git a/meta/recipes-devtools/rust/files/0001-cargo-do-not-write-host-information-into-compilation.patch b/meta/recipes-devtools/rust/files/0001-cargo-do-not-write-host-information-into-compilation.patch
new file mode 100644
index 0000000000..a6ee867605
--- /dev/null
+++ b/meta/recipes-devtools/rust/files/0001-cargo-do-not-write-host-information-into-compilation.patch
@@ -0,0 +1,51 @@
1From 065d7c263091118437465d714d8a29dbb6296921 Mon Sep 17 00:00:00 2001
2From: Alexander Kanavin <alex@linutronix.de>
3Date: Mon, 13 May 2024 14:57:54 +0200
4Subject: [PATCH] cargo: do not write host information into compilation unit
5 hashes
6
7This breaks reproducibility in cross-builds where the cross-target
8can be the same, but build hosts are different, as seen with
9"rustc --version -v":
10...
11host: x86_64-unknown-linux-gnu
12
13vs.
14
15host: aarch64-unknown-linux-gnu
16
17This can possibly be improved by only hashing host info if the build
18is a native one (e.g. there's no --target option passed to cargo
19invocation) but I'm not sure how.
20
21Upstream-Status: Inappropriate [reported at https://github.com/rust-lang/cargo/issues/13922]
22Signed-off-by: Alexander Kanavin <alex@linutronix.de>
23---
24 .../src/cargo/core/compiler/context/compilation_files.rs | 4 ++--
25 1 file changed, 2 insertions(+), 2 deletions(-)
26
27diff --git a/src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs b/src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs
28index d83dbf10c..b2ad8d9f3 100644
29--- a/src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs
30+++ b/src/tools/cargo/src/cargo/core/compiler/context/compilation_files.rs
31@@ -652,7 +652,7 @@ fn hash_rustc_version(bcx: &BuildContext<'_, '_>, hasher: &mut StableHasher) {
32 if vers.pre.is_empty() || bcx.config.cli_unstable().separate_nightlies {
33 // For stable, keep the artifacts separate. This helps if someone is
34 // testing multiple versions, to avoid recompiles.
35- bcx.rustc().verbose_version.hash(hasher);
36+ //bcx.rustc().verbose_version.hash(hasher);
37 return;
38 }
39 // On "nightly"/"beta"/"dev"/etc, keep each "channel" separate. Don't hash
40@@ -665,7 +665,7 @@ fn hash_rustc_version(bcx: &BuildContext<'_, '_>, hasher: &mut StableHasher) {
41 // Keep "host" since some people switch hosts to implicitly change
42 // targets, (like gnu vs musl or gnu vs msvc). In the future, we may want
43 // to consider hashing `unit.kind.short_name()` instead.
44- bcx.rustc().host.hash(hasher);
45+ //bcx.rustc().host.hash(hasher);
46 // None of the other lines are important. Currently they are:
47 // binary: rustc <-- or "rustdoc"
48 // commit-hash: 38114ff16e7856f98b2b4be7ab4cd29b38bed59a
49--
502.39.2
51
diff --git a/meta/recipes-devtools/rust/files/cargo-path.patch b/meta/recipes-devtools/rust/files/cargo-path.patch
deleted file mode 100644
index 9a50c40220..0000000000
--- a/meta/recipes-devtools/rust/files/cargo-path.patch
+++ /dev/null
@@ -1,37 +0,0 @@
1Fix the cargo binary path error and ensure that it is fetched
2during rustc bootstrap in rust oe-selftest.
3
4======================================================================
5ERROR: test_cargoflags (bootstrap_test.BuildBootstrap)
6----------------------------------------------------------------------
7Traceback (most recent call last):
8 File "/home/build-st/tmp/work/cortexa57-poky-linux/rust/1.74.1/rustc-1.74.1-src/src/bootstrap/bootstrap_test.py", line 157, in test_cargoflags
9 args, _ = self.build_args(env={"CARGOFLAGS": "--timings"})
10 File "/home/build-st/tmp/work/cortexa57-poky-linux/rust/1.74.1/rustc-1.74.1-src/src/bootstrap/bootstrap_test.py", line 154, in build_args
11 return build.build_bootstrap_cmd(env), env
12 File "/home/build-st/tmp/work/cortexa57-poky-linux/rust/1.74.1/rustc-1.74.1-src/src/bootstrap/bootstrap.py", line 960, in build_bootstrap_cmd
13 raise Exception("no cargo executable found at `{}`".format(
14Exception: no cargo executable found at `/home/build-st/tmp/work/cortexa57-poky-linux/rust/1.74.1/rustc-1.74.1-src/build/x86_64-unknown-linux-gnu/stage0/bin/cargo`
15
16Upstream-Status: Submitted [https://github.com/rust-lang/rust/pull/120125]
17
18Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
19---
20diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
21--- a/src/bootstrap/bootstrap.py
22+++ b/src/bootstrap/bootstrap.py
23@@ -954,9 +954,11 @@
24 if "RUSTFLAGS_BOOTSTRAP" in env:
25 env["RUSTFLAGS"] += " " + env["RUSTFLAGS_BOOTSTRAP"]
26
27- env["PATH"] = os.path.join(self.bin_root(), "bin") + \
28- os.pathsep + env["PATH"]
29- if not os.path.isfile(self.cargo()):
30+ cargo_bin_path = os.path.join(self.bin_root(), "bin", "cargo")
31+ if not os.path.isfile(cargo_bin_path):
32+ cargo_bin_path = os.getenv("RUST_TARGET_PATH") + "rust-snapshot/bin/cargo"
33+ env["PATH"] = os.path.dirname(cargo_bin_path) + os.pathsep + env["PATH"]
34+ else:
35 raise Exception("no cargo executable found at `{}`".format(
36 self.cargo()))
37 args = [self.cargo(), "build", "--manifest-path",