fn is_excluded(&self, builder: &Builder<'_>, pathset: &PathSet) -> bool {
if builder.config.exclude.iter().any(|e| pathset.has(&e.path, e.kind)) {
- eprintln!("Skipping {:?} because it is excluded", pathset);
+ println!("Skipping {:?} because it is excluded", pathset);
return true;
}
// backtrace, core_simd, std_float, ...), those dependencies have their own features
// but cargo isn't involved in the #[path] and so cannot pass the complete list of
// features, so for that reason we don't enable checking of features for std.
- if mode != Mode::Std {
- cargo.arg("-Zcheck-cfg-features");
- }
+ //
+ // FIXME: Re-enable this after the beta bump as apperently rustc-perf doesn't use the
+ // beta cargo. See https://github.com/rust-lang/rust/pull/96984#issuecomment-1126678773
+ // #[cfg(not(bootstrap))]
+ // if mode != Mode::Std {
+ // cargo.arg("-Zcheck-cfg-features"); // -Zcheck-cfg=features after bump
+ // }
// Enable cfg checking of well known names/values
rustflags
// this), as well as #63012 which is the tracking issue for this
// feature on the rustc side.
cargo.arg("-Zbinary-dep-depinfo");
+ match mode {
+ Mode::ToolBootstrap => {
+ // Restrict the allowed features to those passed by rustbuild, so we don't depend on nightly accidentally.
+ // HACK: because anyhow does feature detection in build.rs, we need to allow the backtrace feature too.
+ rustflags.arg("-Zallow-features=binary-dep-depinfo,backtrace");
+ }
+ Mode::ToolStd => {
+ // Right now this is just compiletest and a few other tools that build on stable.
+ // Allow them to use `feature(test)`, but nothing else.
+ rustflags.arg("-Zallow-features=binary-dep-depinfo,test,backtrace");
+ }
+ Mode::Std | Mode::Rustc | Mode::Codegen | Mode::ToolRustc => {}
+ }
cargo.arg("-j").arg(self.jobs().to_string());
// Remove make-related flags to ensure Cargo can correctly set things up