diff --git a/osdk/src/commands/build/mod.rs b/osdk/src/commands/build/mod.rs index e2f74f571..07e8e2482 100644 --- a/osdk/src/commands/build/mod.rs +++ b/osdk/src/commands/build/mod.rs @@ -209,6 +209,9 @@ fn build_kernel_elf( // We do not really allow unwinding except for kernel testing. However, we need to specify // this to show backtraces when panicking. "-C panic=unwind", + // This is to let rustc know that "cfg(ktest)" is our well-known configuration. + // See the [Rust Blog](https://blog.rust-lang.org/2024/05/06/check-cfg.html) for details. + "--check-cfg cfg(ktest)", ]); if matches!(arch, Arch::X86_64) { diff --git a/osdk/src/commands/mod.rs b/osdk/src/commands/mod.rs index 2011bb572..0e279b933 100644 --- a/osdk/src/commands/mod.rs +++ b/osdk/src/commands/mod.rs @@ -24,6 +24,12 @@ pub fn execute_forwarded_command(subcommand: &str, args: &Vec) -> ! { cargo.arg("--target").arg(get_default_arch().triple()); } cargo.args(args); + + let env_rustflags = std::env::var("RUSTFLAGS").unwrap_or_default(); + let rustflags = env_rustflags + " --check-cfg cfg(ktest)"; + + cargo.env("RUSTFLAGS", rustflags); + let status = cargo.status().expect("Failed to execute cargo"); std::process::exit(status.code().unwrap_or(1)); }