about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMateusz Mikuła <mati865@gmail.com>2020-07-16 22:45:41 +0200
committerMateusz Mikuła <mati865@gmail.com>2020-07-16 22:47:11 +0200
commit08990e5c7554d4d6a0440debc2edc99c8e9565c8 (patch)
treee5557ec38a0b44820ae68a40a9b316d816d98dcb
parent6ee1b62c811a6eb68d6db6dfb91f66a49956749b (diff)
downloadrust-08990e5c7554d4d6a0440debc2edc99c8e9565c8.tar.gz
rust-08990e5c7554d4d6a0440debc2edc99c8e9565c8.zip
MinGW: disable self-contained mode when cross compiling
When cross compiling users have to provide own linker and libraries anyway.
Using rust provided MinGW crt objects is harmful here and has no benefits.
-rw-r--r--src/librustc_codegen_ssa/back/link.rs4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/librustc_codegen_ssa/back/link.rs b/src/librustc_codegen_ssa/back/link.rs
index 3adaa07db91..63ed094acb7 100644
--- a/src/librustc_codegen_ssa/back/link.rs
+++ b/src/librustc_codegen_ssa/back/link.rs
@@ -1295,7 +1295,9 @@ fn crt_objects_fallback(sess: &Session, crate_type: CrateType) -> bool {
         Some(CrtObjectsFallback::Musl) => sess.crt_static(Some(crate_type)),
         // FIXME: Find some heuristic for "native mingw toolchain is available",
         // likely based on `get_crt_libs_path` (https://github.com/rust-lang/rust/pull/67429).
-        Some(CrtObjectsFallback::Mingw) => sess.target.target.target_vendor != "uwp",
+        Some(CrtObjectsFallback::Mingw) => {
+            sess.host == sess.target.target && sess.target.target.target_vendor != "uwp"
+        }
         // FIXME: Figure out cases in which WASM needs to link with a native toolchain.
         Some(CrtObjectsFallback::Wasm) => true,
         None => false,