about summary refs log tree commit diff
diff options
context:
space:
mode:
authoronur-ozkan <work@onurozkan.dev>2025-05-29 15:39:54 +0300
committeronur-ozkan <work@onurozkan.dev>2025-05-29 15:40:07 +0300
commit0565d43060298260e84c2aaa1f12bf8bf6198703 (patch)
treed897626fd67e46b47ccc89bcc152ced2ddbae082
parent38081f22c2d7380f272aa1d7fa9b935637701c2d (diff)
downloadrust-0565d43060298260e84c2aaa1f12bf8bf6198703.tar.gz
rust-0565d43060298260e84c2aaa1f12bf8bf6198703.zip
resolve stage0 sysroot from rustc
Instead of manually navigating directories based on stage0 rustc, use `--print sysroot`
to get the sysroot directly. This also works when using the bootstrap `rustc` shim.

Signed-off-by: onur-ozkan <work@onurozkan.dev>
-rw-r--r--src/bootstrap/src/core/config/config.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/bootstrap/src/core/config/config.rs b/src/bootstrap/src/core/config/config.rs
index 3b8c3655b8d..d4b5a809215 100644
--- a/src/bootstrap/src/core/config/config.rs
+++ b/src/bootstrap/src/core/config/config.rs
@@ -1832,7 +1832,9 @@ impl Config {
                 .join(exe("rustc", config.build))
         };
 
-        config.initial_sysroot = config.initial_rustc.ancestors().nth(2).unwrap().into();
+        config.initial_sysroot = t!(PathBuf::from_str(
+            output(Command::new(&config.initial_rustc).args(["--print", "sysroot"])).trim()
+        ));
 
         config.initial_cargo_clippy = cargo_clippy;