about summary refs log tree commit diff
diff options
context:
space:
mode:
authorArlo Siemsen <arsiem@microsoft.com>2024-01-04 11:40:56 -0600
committerArlo Siemsen <arsiem@microsoft.com>2024-01-04 11:40:56 -0600
commit4b7e0a0b56aa2446e670dfd6558380a1039a86aa (patch)
tree1af87ca3f92d0758fc0265dba48405e1c0609b2b
parent139fb2214675fed8143a12f6287a3a1e6e2e866d (diff)
downloadrust-4b7e0a0b56aa2446e670dfd6558380a1039a86aa.tar.gz
rust-4b7e0a0b56aa2446e670dfd6558380a1039a86aa.zip
Handle vendored sources when remapping paths
-rw-r--r--src/bootstrap/src/core/builder.rs19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/bootstrap/src/core/builder.rs b/src/bootstrap/src/core/builder.rs
index 4e20babc55a..3770d0687b2 100644
--- a/src/bootstrap/src/core/builder.rs
+++ b/src/bootstrap/src/core/builder.rs
@@ -1799,15 +1799,20 @@ impl<'a> Builder<'a> {
         }
 
         if self.config.rust_remap_debuginfo {
-            // FIXME: handle vendored sources
-            let registry_src = t!(home::cargo_home()).join("registry").join("src");
             let mut env_var = OsString::new();
-            for entry in t!(std::fs::read_dir(registry_src)) {
-                if !env_var.is_empty() {
-                    env_var.push("\t");
-                }
-                env_var.push(t!(entry).path());
+            if self.config.vendor {
+                let vendor = self.build.src.join("vendor");
+                env_var.push(vendor);
                 env_var.push("=/rust/deps");
+            } else {
+                let registry_src = t!(home::cargo_home()).join("registry").join("src");
+                for entry in t!(std::fs::read_dir(registry_src)) {
+                    if !env_var.is_empty() {
+                        env_var.push("\t");
+                    }
+                    env_var.push(t!(entry).path());
+                    env_var.push("=/rust/deps");
+                }
             }
             cargo.env("RUSTC_CARGO_REGISTRY_SRC_TO_REMAP", env_var);
         }