diff --git a/.cargo/config.toml b/.cargo/config.toml index 9bb4e0808345..f0df939ef506 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -20,6 +20,8 @@ KANI_SYSROOT ={value = "target/kani", relative = true} KANI_BUILD_LIBS ={value = "target/build-libs", relative = true} # Build Kani library without `build-std`. KANI_LEGACY_LIBS ={value = "target/legacy-libs", relative = true} +# This is only required for stable but is a no-op for nightly channels +RUSTC_BOOTSTRAP = "1" [target.'cfg(all())'] rustflags = [ # Global lints/warnings. Need to use underscore instead of -. diff --git a/kani-compiler/src/main.rs b/kani-compiler/src/main.rs index c8a56d3ef062..6bf8e549af76 100644 --- a/kani-compiler/src/main.rs +++ b/kani-compiler/src/main.rs @@ -16,6 +16,9 @@ #![feature(f128)] #![feature(f16)] #![feature(non_exhaustive_omitted_patterns_lint)] +#![feature(cfg_version)] +// Once the `stable` branch is at 1.86 or later, remove this line, since float_next_up_down is stabilized +#![cfg_attr(not(version("1.86")), feature(float_next_up_down))] #![feature(try_blocks)] extern crate rustc_abi; extern crate rustc_ast; diff --git a/kani-driver/src/call_cargo.rs b/kani-driver/src/call_cargo.rs index 4c39b03183b6..9097713a0016 100644 --- a/kani-driver/src/call_cargo.rs +++ b/kani-driver/src/call_cargo.rs @@ -206,6 +206,8 @@ crate-type = ["lib"] // Use CARGO_ENCODED_RUSTFLAGS instead of RUSTFLAGS is preferred. See // https://doc.rust-lang.org/cargo/reference/environment-variables.html .env("CARGO_ENCODED_RUSTFLAGS", rustc_args.join(OsStr::new("\x1f"))) + // This is only required for stable but is a no-op for nightly channels + .env("RUSTC_BOOTSTRAP", "1") .env("CARGO_TERM_PROGRESS_WHEN", "never"); match self.run_build_target(cmd, verification_target.target()) { diff --git a/kani-driver/src/call_single_file.rs b/kani-driver/src/call_single_file.rs index 9a09ce6163f8..f21f83345783 100644 --- a/kani-driver/src/call_single_file.rs +++ b/kani-driver/src/call_single_file.rs @@ -84,6 +84,8 @@ impl KaniSession { let mut cmd = Command::new(&self.kani_compiler); let kani_compiler_args = to_rustc_arg(kani_args); cmd.arg(kani_compiler_args).args(rustc_args); + // This is only required for stable but is a no-op for nightly channels + cmd.env("RUSTC_BOOTSTRAP", "1"); if self.args.common_args.quiet { self.run_suppress(cmd)?; diff --git a/tests/cargo-ui/verbose-cmds/expected b/tests/cargo-ui/verbose-cmds/expected index f883ef972cb3..b47b60d51ff4 100644 --- a/tests/cargo-ui/verbose-cmds/expected +++ b/tests/cargo-ui/verbose-cmds/expected @@ -1,5 +1,5 @@ CARGO_ENCODED_RUSTFLAGS= -cargo +nightly +cargo + Running: `goto-cc Running: `goto-instrument Checking harness dummy_harness...