Skip to content

Commit

Permalink
rustc: Spawn cmd /c for .bat scripts
Browse files Browse the repository at this point in the history
This fixes an accidental regression #46335 where the behavior of
`Path::ends_with` is different from `str::ends_with` (paths operate over
components, strs operate over chars).
  • Loading branch information
alexcrichton committed Jan 16, 2018
1 parent 3f92e8d commit 6defae3
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions src/librustc_trans/back/link.rs
Original file line number Diff line number Diff line change
Expand Up @@ -69,13 +69,14 @@ pub fn get_linker(sess: &Session) -> (PathBuf, Command, Vec<(OsString, OsString)
// was tagged as #42791) and some more info can be found on #44443 for
// emscripten itself.
let cmd = |linker: &Path| {
if cfg!(windows) && linker.ends_with(".bat") {
let mut cmd = Command::new("cmd");
cmd.arg("/c").arg(linker);
cmd
} else {
Command::new(linker)
if let Some(linker) = linker.to_str() {
if cfg!(windows) && linker.ends_with(".bat") {
let mut cmd = Command::new("cmd");
cmd.arg("/c").arg(linker);
return cmd
}
}
Command::new(linker)
};

if let Some(ref linker) = sess.opts.cg.linker {
Expand Down

0 comments on commit 6defae3

Please sign in to comment.