about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorbit-aloo <sshourya17@gmail.com>2025-09-15 19:20:05 +0530
committerbit-aloo <sshourya17@gmail.com>2025-09-21 20:56:09 +0530
commita12969e0d10387ad17755879e98cf5097a937473 (patch)
tree262ea7e427dad00373edc2f5311d82e1b4e2beb6 /src/bootstrap
parent1bc19932e6f0a5ce098af6f3d59e28a61abbc631 (diff)
downloadrust-a12969e0d10387ad17755879e98cf5097a937473.tar.gz
rust-a12969e0d10387ad17755879e98cf5097a937473.zip
walk up the ancestors
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/src/core/config/config.rs13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
index 19fcaeaaa24..003cf3f2f9c 100644
--- a/src/bootstrap/src/core/config/config.rs
+++ b/src/bootstrap/src/core/config/config.rs
@@ -683,14 +683,15 @@ impl Config {
         };
 
         let initial_rustc = build_rustc.unwrap_or_else(|| {
-            let out = if cfg!(test) { Path::new("../../build").to_path_buf() } else { out.clone() };
-
+            let out = if cfg!(test) {
+                std::env::current_dir().unwrap().ancestors().nth(2).unwrap().join("build")
+            } else {
+                out.clone()
+            };
             download_beta_toolchain(&dwn_ctx, &out);
+            let target = if cfg!(test) { get_host_target() } else { host_target };
 
-            out.join(if cfg!(test) { get_host_target() } else { host_target })
-                .join("stage0")
-                .join("bin")
-                .join(exe("rustc", host_target))
+            out.join(target).join("stage0").join("bin").join(exe("rustc", host_target))
         });
 
         let initial_sysroot = t!(PathBuf::from_str(