fix: cargo fix: always inherit the jobserver

This commit is contained in:
Eric Huss 2023-12-30 15:10:04 -08:00
parent 2ed2dbd8ce
commit 448c437ef0

View file

@ -379,6 +379,11 @@ pub fn fix_exec_rustc(config: &Config, lock_addr: &str) -> CargoResult<()> {
rustc.retry_with_argfile(true);
rustc.env_remove(FIX_ENV_INTERNAL);
args.apply(&mut rustc);
// Removes `FD_CLOEXEC` set by `jobserver::Client` to ensure that the
// compiler can access the jobserver.
if let Some(client) = config.jobserver_from_env() {
rustc.inherit_jobserver(client);
}
trace!("start rustfixing {:?}", args.file);
let json_error_rustc = {
@ -451,11 +456,6 @@ pub fn fix_exec_rustc(config: &Config, lock_addr: &str) -> CargoResult<()> {
// things like colored output to work correctly.
rustc.arg(arg);
}
// Removes `FD_CLOEXEC` set by `jobserver::Client` to pass jobserver
// as environment variables specify.
if let Some(client) = config.jobserver_from_env() {
rustc.inherit_jobserver(client);
}
debug!("calling rustc to display remaining diagnostics: {rustc}");
exit_with(rustc.status()?);
}