| If the CC environment variable is set, use its value instead of hardcoding "cc". |
| This fixes crbug.com/1090829. |
| |
| diff --git a/src/librustc_codegen_ssa/back/link.rs b/src/librustc_codegen_ssa/back/link.rs |
| index 8725bfa..5984569 100644 |
| --- a/src/librustc_codegen_ssa/back/link.rs |
| +++ b/src/librustc_codegen_ssa/back/link.rs |
| @@ -752,12 +752,12 @@ fn linker_and_flavor(sess: &Session) -> (PathBuf, LinkerFlavor) { |
| (Some(linker), Some(flavor)) => Some((linker, flavor)), |
| // only the linker flavor is known; use the default linker for the selected flavor |
| (None, Some(flavor)) => Some(( |
| - PathBuf::from(match flavor { |
| + match flavor { |
| LinkerFlavor::Em => { |
| if cfg!(windows) { |
| - "emcc.bat" |
| + "emcc.bat".into() |
| } else { |
| - "emcc" |
| + "emcc".into() |
| } |
| } |
| LinkerFlavor::Gcc => { |
| @@ -768,16 +768,19 @@ fn linker_and_flavor(sess: &Session) -> (PathBuf, LinkerFlavor) { |
| // and many modern illumos distributions today |
| // ship GCC as "gcc" without also making it |
| // available as "cc". |
| - "gcc" |
| + "gcc".into() |
| } else { |
| - "cc" |
| + match env::var_os("CC") { |
| + Some(path) => path.into(), |
| + None => "cc".into() |
| + } |
| } |
| } |
| - LinkerFlavor::Ld => "ld", |
| - LinkerFlavor::Msvc => "link.exe", |
| - LinkerFlavor::Lld(_) => "lld", |
| - LinkerFlavor::PtxLinker => "rust-ptx-linker", |
| - }), |
| + LinkerFlavor::Ld => "ld".into(), |
| + LinkerFlavor::Msvc => "link.exe".into(), |
| + LinkerFlavor::Lld(_) => "lld".into(), |
| + LinkerFlavor::PtxLinker => "rust-ptx-linker".into(), |
| + }, |
| flavor, |
| )), |
| (Some(linker), None) => { |