diff --git a/ci-nightly.sh b/ci-nightly.sh index 46b19c5b7..bdb364f53 100755 --- a/ci-nightly.sh +++ b/ci-nightly.sh @@ -30,4 +30,3 @@ cargo batch \ cargo build --release --manifest-path embassy-executor/Cargo.toml --target avr-unknown-gnu-atmega328 -Z build-std=core,alloc --features nightly,arch-avr,avr-device/atmega328p cargo build --release --manifest-path embassy-executor/Cargo.toml --target avr-unknown-gnu-atmega328 -Z build-std=core,alloc --features nightly,arch-avr,integrated-timers,avr-device/atmega328p - diff --git a/ci.sh b/ci.sh index ee2f320b5..36a6dea30 100755 --- a/ci.sh +++ b/ci.sh @@ -2,6 +2,12 @@ set -eo pipefail +# check-cfg is stable on rustc 1.79 but not cargo 1.79. +# however, our cargo-batch is currently based on cargo 1.80, which does support check-cfg. +# so, force build.rs scripts to emit check-cfg commands. +# when 1.80 hits stable we can make build.rs unconditionally emit check-cfg and remove all this. +export EMBASSY_FORCE_CHECK_CFG=1 + export RUSTFLAGS=-Dwarnings export DEFMT_LOG=trace,embassy_hal_internal=debug,embassy_net_esp_hosted=debug,cyw43=info,cyw43_pio=info,smoltcp=info if [[ -z "${CARGO_TARGET_DIR}" ]]; then diff --git a/embassy-executor/build_common.rs b/embassy-executor/build_common.rs index 2c65f8529..0487eb3c5 100644 --- a/embassy-executor/build_common.rs +++ b/embassy-executor/build_common.rs @@ -70,6 +70,10 @@ impl CfgSet { } fn is_rustc_nightly() -> bool { + if env::var_os("EMBASSY_FORCE_CHECK_CFG").is_some() { + return true; + } + let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc")); let output = Command::new(rustc) diff --git a/embassy-hal-internal/build_common.rs b/embassy-hal-internal/build_common.rs index 2c65f8529..0487eb3c5 100644 --- a/embassy-hal-internal/build_common.rs +++ b/embassy-hal-internal/build_common.rs @@ -70,6 +70,10 @@ impl CfgSet { } fn is_rustc_nightly() -> bool { + if env::var_os("EMBASSY_FORCE_CHECK_CFG").is_some() { + return true; + } + let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc")); let output = Command::new(rustc) diff --git a/embassy-stm32/build_common.rs b/embassy-stm32/build_common.rs index 2c65f8529..0487eb3c5 100644 --- a/embassy-stm32/build_common.rs +++ b/embassy-stm32/build_common.rs @@ -70,6 +70,10 @@ impl CfgSet { } fn is_rustc_nightly() -> bool { + if env::var_os("EMBASSY_FORCE_CHECK_CFG").is_some() { + return true; + } + let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc")); let output = Command::new(rustc) diff --git a/embassy-sync/build_common.rs b/embassy-sync/build_common.rs index 2c65f8529..0487eb3c5 100644 --- a/embassy-sync/build_common.rs +++ b/embassy-sync/build_common.rs @@ -70,6 +70,10 @@ impl CfgSet { } fn is_rustc_nightly() -> bool { + if env::var_os("EMBASSY_FORCE_CHECK_CFG").is_some() { + return true; + } + let rustc = env::var_os("RUSTC").unwrap_or_else(|| OsString::from("rustc")); let output = Command::new(rustc) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 57185e217..037fc5c6a 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.78" +channel = "1.79" components = [ "rust-src", "rustfmt", "llvm-tools" ] targets = [ "thumbv7em-none-eabi",