about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMateusz Mikuła <mati865@gmail.com>2020-08-17 14:53:24 +0200
committerMateusz Mikuła <mati865@gmail.com>2020-08-19 19:37:22 +0200
commitfbce8785d4ca784006ff84d8226befe8b372decd (patch)
tree6da16498c6c9c433163571b28c9022dbd64af038
parent0a49057dd35d9bd2fcc9760a054809c30eee2a58 (diff)
downloadrust-fbce8785d4ca784006ff84d8226befe8b372decd.tar.gz
rust-fbce8785d4ca784006ff84d8226befe8b372decd.zip
Fix windows-gnu host cross-compilation
-rw-r--r--src/bootstrap/dist.rs2
-rw-r--r--src/librustc_llvm/build.rs9
2 files changed, 10 insertions, 1 deletions
diff --git a/src/bootstrap/dist.rs b/src/bootstrap/dist.rs
index 98b6be29c07..813abc3df94 100644
--- a/src/bootstrap/dist.rs
+++ b/src/bootstrap/dist.rs
@@ -226,7 +226,7 @@ fn make_win_dist(
         let idx = line.find(':').unwrap();
         let key = &line[..idx];
         let trim_chars: &[_] = &[' ', '='];
-        let value = line[(idx + 1)..].trim_start_matches(trim_chars).split(';').map(PathBuf::from);
+        let value = env::split_paths(line[(idx + 1)..].trim_start_matches(trim_chars));
 
         if key == "programs" {
             bin_path.extend(value);
diff --git a/src/librustc_llvm/build.rs b/src/librustc_llvm/build.rs
index 21b8080714c..25c0b40c495 100644
--- a/src/librustc_llvm/build.rs
+++ b/src/librustc_llvm/build.rs
@@ -151,6 +151,12 @@ fn main() {
             continue;
         }
 
+        // Include path contains host directory, replace it with target
+        if is_crossed && flag.starts_with("-I") {
+            cfg.flag(&flag.replace(&host, &target));
+            continue;
+        }
+
         cfg.flag(flag);
     }
 
@@ -189,6 +195,9 @@ fn main() {
 
     if !is_crossed {
         cmd.arg("--system-libs");
+    } else if target.contains("windows-gnu") {
+        println!("cargo:rustc-link-lib=shell32");
+        println!("cargo:rustc-link-lib=uuid");
     }
     cmd.args(&components);