blob: f5792b2992dcba5f3df69d84b375c22d10447981 [file] [log] [blame]
Bob Haarmanac82f6c2020-09-08 18:59:40 +00001Take the name of the linker from the CC environment variable, if set.
2This uses unwrap_or(...) rather than unwrap_or_else(|| ...) because
3the latter fails to compile with mrustc-0.9.
4
5diff --git a/rustc-1.29.0-src/src/librustc_codegen_llvm/back/link.rs b/rustc-1.29.0-src/src/librustc_codegen_llvm/back/link.rs
6index 845a66c..cd5b0bd 100644
7--- a/rustc-1.29.0-src/src/librustc_codegen_llvm/back/link.rs
8+++ b/rustc-1.29.0-src/src/librustc_codegen_llvm/back/link.rs
9@@ -84,6 +84,7 @@ pub fn get_linker(sess: &Session) -> (PathBuf, Command) {
10
11 let msvc_tool = windows_registry::find_tool(&sess.opts.target_triple.triple(), "link.exe");
12
13+ let cc = env::var("CC").unwrap_or("cc".into());
14 let linker_path = sess.opts.cg.linker.as_ref().map(|s| &**s)
15 .or(sess.target.target.options.linker.as_ref().map(|s| s.as_ref()))
16 .unwrap_or(match sess.linker_flavor() {
17@@ -92,7 +93,7 @@ pub fn get_linker(sess: &Session) -> (PathBuf, Command) {
18 }
19 LinkerFlavor::Em if cfg!(windows) => "emcc.bat".as_ref(),
20 LinkerFlavor::Em => "emcc".as_ref(),
21- LinkerFlavor::Gcc => "cc".as_ref(),
22+ LinkerFlavor::Gcc => cc.as_ref(),
23 LinkerFlavor::Ld => "ld".as_ref(),
24 LinkerFlavor::Lld(_) => "lld".as_ref(),
25 });