diff options
Diffstat (limited to 'meta/recipes-devtools/rust/files/0001-Handle-vendored-sources-when-remapping-paths.patch')
-rw-r--r-- | meta/recipes-devtools/rust/files/0001-Handle-vendored-sources-when-remapping-paths.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/meta/recipes-devtools/rust/files/0001-Handle-vendored-sources-when-remapping-paths.patch b/meta/recipes-devtools/rust/files/0001-Handle-vendored-sources-when-remapping-paths.patch new file mode 100644 index 0000000000..a46ee14402 --- /dev/null +++ b/meta/recipes-devtools/rust/files/0001-Handle-vendored-sources-when-remapping-paths.patch | |||
@@ -0,0 +1,46 @@ | |||
1 | From 5e37ea7cb9d99d91f2c5ac6edf19ff777f95bb88 Mon Sep 17 00:00:00 2001 | ||
2 | From: Arlo Siemsen <arsiem@microsoft.com> | ||
3 | Date: Thu, 4 Jan 2024 11:40:56 -0600 | ||
4 | Subject: [PATCH] Handle vendored sources when remapping paths | ||
5 | |||
6 | Upstream-Status: Submitted [https://github.com/rust-lang/rust/pull/119582] | ||
7 | Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> | ||
8 | --- | ||
9 | src/bootstrap/src/core/builder.rs | 19 ++++++++++++------- | ||
10 | 1 file changed, 12 insertions(+), 7 deletions(-) | ||
11 | |||
12 | diff --git a/src/bootstrap/src/core/builder.rs b/src/bootstrap/src/core/builder.rs | ||
13 | index cd276674dee6..48fdb2c7f7b7 100644 | ||
14 | --- a/src/bootstrap/src/core/builder.rs | ||
15 | +++ b/src/bootstrap/src/core/builder.rs | ||
16 | @@ -1789,15 +1789,20 @@ pub fn cargo( | ||
17 | } | ||
18 | |||
19 | if self.config.rust_remap_debuginfo { | ||
20 | - // FIXME: handle vendored sources | ||
21 | - let registry_src = t!(home::cargo_home()).join("registry").join("src"); | ||
22 | let mut env_var = OsString::new(); | ||
23 | - for entry in t!(std::fs::read_dir(registry_src)) { | ||
24 | - if !env_var.is_empty() { | ||
25 | - env_var.push("\t"); | ||
26 | - } | ||
27 | - env_var.push(t!(entry).path()); | ||
28 | + if self.config.vendor { | ||
29 | + let vendor = self.build.src.join("vendor"); | ||
30 | + env_var.push(vendor); | ||
31 | env_var.push("=/rust/deps"); | ||
32 | + } else { | ||
33 | + let registry_src = t!(home::cargo_home()).join("registry").join("src"); | ||
34 | + for entry in t!(std::fs::read_dir(registry_src)) { | ||
35 | + if !env_var.is_empty() { | ||
36 | + env_var.push("\t"); | ||
37 | + } | ||
38 | + env_var.push(t!(entry).path()); | ||
39 | + env_var.push("=/rust/deps"); | ||
40 | + } | ||
41 | } | ||
42 | cargo.env("RUSTC_CARGO_REGISTRY_SRC_TO_REMAP", env_var); | ||
43 | } | ||
44 | -- | ||
45 | 2.39.0 | ||
46 | |||