Skip to content

Commit 3078290

Browse files
committed
Do not allow building anything on stage 0
1 parent 1e8576f commit 3078290

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

src/bootstrap/defaults/bootstrap.library.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# These defaults are meant for contributors to the standard library and documentation.
22
[build]
33
bench-stage = 1
4-
build-stage = 1
54
check-stage = 1
65
test-stage = 1
76

src/bootstrap/src/core/config/config.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -975,7 +975,7 @@ impl Config {
975975
|| install_stage.is_some()
976976
|| check_stage.is_some()
977977
|| bench_stage.is_some();
978-
// See https://github.com/rust-lang/compiler-team/issues/326
978+
979979
config.stage = match config.cmd {
980980
Subcommand::Check { .. } => flags.stage.or(check_stage).unwrap_or(0),
981981
Subcommand::Clippy { .. } | Subcommand::Fix => flags.stage.or(check_stage).unwrap_or(1),
@@ -1003,6 +1003,15 @@ impl Config {
10031003
| Subcommand::Vendor { .. } => flags.stage.unwrap_or(0),
10041004
};
10051005

1006+
// Now check that the selected stage makes sense, and if not, print a warning and end
1007+
match (config.stage, &config.cmd) {
1008+
(0, Subcommand::Build) => {
1009+
eprintln!("WARNING: cannot build anything on stage 0. Use at least stage 1.");
1010+
exit!(1)
1011+
}
1012+
_ => {}
1013+
}
1014+
10061015
// CI should always run stage 2 builds, unless it specifically states otherwise
10071016
#[cfg(not(test))]
10081017
if flags.stage.is_none() && config.is_running_on_ci {

0 commit comments

Comments
 (0)