summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/rust/files/cargo-path.patch
blob: 9a50c40220187db51d56de305dfeb82e486676c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Fix the cargo binary path error and ensure that it is fetched
during rustc bootstrap in rust oe-selftest.

======================================================================
ERROR: test_cargoflags (bootstrap_test.BuildBootstrap)
----------------------------------------------------------------------
Traceback (most recent call last):
  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
    args, _ = self.build_args(env={"CARGOFLAGS": "--timings"})
  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
    return build.build_bootstrap_cmd(env), env
  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
    raise Exception("no cargo executable found at `{}`".format(
Exception: 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`

Upstream-Status: Submitted [https://github.com/rust-lang/rust/pull/120125]

Signed-off-by: Yash Shinde <Yash.Shinde@windriver.com>
---
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
--- a/src/bootstrap/bootstrap.py
+++ b/src/bootstrap/bootstrap.py
@@ -954,9 +954,11 @@
         if "RUSTFLAGS_BOOTSTRAP" in env:
             env["RUSTFLAGS"] += " " + env["RUSTFLAGS_BOOTSTRAP"]

-        env["PATH"] = os.path.join(self.bin_root(), "bin") + \
-            os.pathsep + env["PATH"]
-        if not os.path.isfile(self.cargo()):
+        cargo_bin_path = os.path.join(self.bin_root(), "bin", "cargo")
+        if not os.path.isfile(cargo_bin_path):
+            cargo_bin_path = os.getenv("RUST_TARGET_PATH") + "rust-snapshot/bin/cargo"
+            env["PATH"] = os.path.dirname(cargo_bin_path) + os.pathsep + env["PATH"]
+        else:
             raise Exception("no cargo executable found at `{}`".format(
                 self.cargo()))
         args = [self.cargo(), "build", "--manifest-path",