Rollup merge of #142160 - Urgau:check-cfg-bootstrap-only-rustc, r=Kobzol
Only allow `bootstrap` cfg in rustc & related Fixes https://github.com/rust-lang/rust/issues/142150 r? bootstrap
This commit is contained in:
commit
ad378be221
3 changed files with 14 additions and 9 deletions
|
|
@ -20,7 +20,7 @@
|
|||
/// ```
|
||||
#[unstable(feature = "iter_macro", issue = "none", reason = "generators are unstable")]
|
||||
#[allow_internal_unstable(coroutines, iter_from_coroutine)]
|
||||
#[cfg_attr(not(bootstrap), rustc_builtin_macro)]
|
||||
#[rustc_builtin_macro]
|
||||
pub macro iter($($t:tt)*) {
|
||||
/* compiler-builtin */
|
||||
}
|
||||
|
|
|
|||
|
|
@ -636,6 +636,15 @@ impl Builder<'_> {
|
|||
for (restricted_mode, name, values) in EXTRA_CHECK_CFGS {
|
||||
if restricted_mode.is_none() || *restricted_mode == Some(mode) {
|
||||
rustflags.arg(&check_cfg_arg(name, *values));
|
||||
|
||||
if *name == "bootstrap" {
|
||||
// Cargo doesn't pass RUSTFLAGS to proc_macros:
|
||||
// https://github.com/rust-lang/cargo/issues/4423
|
||||
// Thus, if we are on stage 0, we explicitly set `--cfg=bootstrap`.
|
||||
// We also declare that the flag is expected, which we need to do to not
|
||||
// get warnings about it being unexpected.
|
||||
hostflags.arg(check_cfg_arg(name, *values));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -645,13 +654,6 @@ impl Builder<'_> {
|
|||
if stage == 0 {
|
||||
hostflags.arg("--cfg=bootstrap");
|
||||
}
|
||||
// Cargo doesn't pass RUSTFLAGS to proc_macros:
|
||||
// https://github.com/rust-lang/cargo/issues/4423
|
||||
// Thus, if we are on stage 0, we explicitly set `--cfg=bootstrap`.
|
||||
// We also declare that the flag is expected, which we need to do to not
|
||||
// get warnings about it being unexpected.
|
||||
hostflags.arg("-Zunstable-options");
|
||||
hostflags.arg("--check-cfg=cfg(bootstrap)");
|
||||
|
||||
// FIXME: It might be better to use the same value for both `RUSTFLAGS` and `RUSTDOCFLAGS`,
|
||||
// but this breaks CI. At the very least, stage0 `rustdoc` needs `--cfg bootstrap`. See
|
||||
|
|
|
|||
|
|
@ -81,7 +81,10 @@ const LLD_FILE_NAMES: &[&str] = &["ld.lld", "ld64.lld", "lld-link", "wasm-ld"];
|
|||
/// (Mode restriction, config name, config values (if any))
|
||||
#[expect(clippy::type_complexity)] // It's fine for hard-coded list and type is explained above.
|
||||
const EXTRA_CHECK_CFGS: &[(Option<Mode>, &str, Option<&[&'static str]>)] = &[
|
||||
(None, "bootstrap", None),
|
||||
(Some(Mode::Rustc), "bootstrap", None),
|
||||
(Some(Mode::Codegen), "bootstrap", None),
|
||||
(Some(Mode::ToolRustc), "bootstrap", None),
|
||||
(Some(Mode::ToolStd), "bootstrap", None),
|
||||
(Some(Mode::Rustc), "llvm_enzyme", None),
|
||||
(Some(Mode::Codegen), "llvm_enzyme", None),
|
||||
(Some(Mode::ToolRustc), "llvm_enzyme", None),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue