Detect Chocolatey MinGW installation

This commit is contained in:
Mateusz Mikuła 2020-02-21 16:47:04 +01:00
parent b3b252b401
commit 4904b9c228
1 changed files with 10 additions and 3 deletions

View File

@ -1002,15 +1002,22 @@ fn get_crt_libs_path(sess: &Session) -> Option<PathBuf> {
x if x == "x86" => "i686",
x => x,
};
let mingw_bits = &sess.target.target.target_pointer_width;
let mingw_dir = format!("{}-w64-mingw32", mingw_arch);
// Here we have path/bin/gcc but we need path/
let mut path = linker_path;
path.pop();
path.pop();
// Based on Clang MinGW driver
let probe_paths = vec!["lib", "sys-root/mingw/lib"];
// Loosely based on Clang MinGW driver
let probe_paths = vec![
path.join(&mingw_dir).join("lib"), // Typical path
path.join(&mingw_dir).join("sys-root/mingw/lib"), // Rare path
path.join(format!(
"lib/mingw/tools/install/mingw{}/{}/lib",
&mingw_bits, &mingw_dir
)), // Chocolatey is creative
];
for probe_path in probe_paths {
let probe_path = path.join(&mingw_dir).join(&probe_path);
if probe_path.join("crt2.o").exists() {
return Some(probe_path);
};