mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 16:24:46 +00:00
Revert "Drop conditionally applied cargo -Zon-broken-pipe=kill
flags"
This reverts commit 5a7058c5a5
.
In [#131059] we found out that `-Zon-broken-pipe=kill` is actually
**load-bearing** [1] for (at least) `rustc` and `rustdoc` to have the
kill-process-on-broken-pipe behavior, e.g. `rustc --print=sysroot |
false` will ICE and `rustdoc --print=sysroot | false` will panic on a
broken pipe.
[#131059]: https://github.com/rust-lang/rust/issues/131059
[1]: https://github.com/rust-lang/rust/issues/131059#issuecomment-2385822033
This commit is contained in:
parent
07f08ffb2d
commit
1c7e8246d5
@ -1053,6 +1053,10 @@ pub fn rustc_cargo(
|
||||
|
||||
cargo.rustdocflag("-Zcrate-attr=warn(rust_2018_idioms)");
|
||||
|
||||
// If the rustc output is piped to e.g. `head -n1` we want the process to be
|
||||
// killed, rather than having an error bubble up and cause a panic.
|
||||
cargo.rustflag("-Zon-broken-pipe=kill");
|
||||
|
||||
if builder.config.llvm_enzyme {
|
||||
cargo.rustflag("-l").rustflag("Enzyme-19");
|
||||
}
|
||||
|
@ -200,10 +200,6 @@ pub fn prepare_tool_cargo(
|
||||
cargo.arg("--features").arg(features.join(", "));
|
||||
}
|
||||
|
||||
// Warning: be very careful with RUSTFLAGS or command-line options, as conditionally applied
|
||||
// RUSTFLAGS or cli flags can lead to hard-to-diagnose rebuilds due to flag differences, causing
|
||||
// previous tool build artifacts to get invalidated.
|
||||
|
||||
// Enable internal lints for clippy and rustdoc
|
||||
// NOTE: this doesn't enable lints for any other tools unless they explicitly add `#![warn(rustc::internal)]`
|
||||
// See https://github.com/rust-lang/rust/pull/80573#issuecomment-754010776
|
||||
@ -213,6 +209,13 @@ pub fn prepare_tool_cargo(
|
||||
// See https://github.com/rust-lang/rust/issues/116538
|
||||
cargo.rustflag("-Zunstable-options");
|
||||
|
||||
// `-Zon-broken-pipe=kill` breaks cargo tests
|
||||
if !path.ends_with("cargo") {
|
||||
// If the output is piped to e.g. `head -n1` we want the process to be killed,
|
||||
// rather than having an error bubble up and cause a panic.
|
||||
cargo.rustflag("-Zon-broken-pipe=kill");
|
||||
}
|
||||
|
||||
cargo
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user