about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJeremy Drake <github@jdrake.com>2025-05-26 10:31:56 -0700
committerJeremy Drake <github@jdrake.com>2025-05-26 10:31:56 -0700
commit108c16eebd1d3de3641c9cdec48314596d01b1b8 (patch)
tree3111ad35204852a2e786a32b4767210e41d29ba0
parent88b3b520e852e01970c3f519339ba64ed3e7db6d (diff)
downloadrust-108c16eebd1d3de3641c9cdec48314596d01b1b8.tar.gz
rust-108c16eebd1d3de3641c9cdec48314596d01b1b8.zip
bootstrap: translate Windows paths in a way that works for both Cygwin and MSYS2
Cygwin defaults to rooting Windows paths in /cygdrive/X, while MSYS2
configures them to be /X.  Regardless of configuration, drives are
always accessible as /proc/cygdrive/X, so use that.
-rw-r--r--src/bootstrap/src/core/build_steps/install.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/bootstrap/src/core/build_steps/install.rs b/src/bootstrap/src/core/build_steps/install.rs
index 585adf9be16..5419540aa2e 100644
--- a/src/bootstrap/src/core/build_steps/install.rs
+++ b/src/bootstrap/src/core/build_steps/install.rs
@@ -38,7 +38,9 @@ fn sanitize_sh(path: &Path, is_cygwin: bool) -> String {
         if ch.next() != Some('/') {
             return None;
         }
-        Some(format!("/{}/{}", drive, &s[drive.len_utf8() + 2..]))
+        // The prefix for Windows drives in Cygwin/MSYS2 is configurable, but
+        // /proc/cygdrive is available regardless of configuration since 1.7.33
+        Some(format!("/proc/cygdrive/{}/{}", drive, &s[drive.len_utf8() + 2..]))
     }
 }