When using unstable features with the Rust compiler, you must either use a nightly compiler release or set the RUSTC_BOOTSTRAP environment variable. Otherwise, the compiler will emit a compiler error. This environment variable is missing when rustc-option is executed, so add the environment variable. This change is necessary to avoid two kinds of problems: 1. When using rustc-option to test whether a -Z flag is available, the check will always fail, even if the flag is available. 2. If KBUILD_RUSTFLAGS happens to contain any -Z flags from the environment, even if unrelated to the flag being tested, then all invocations of rustc-option everywhere will fail. I was not actually able to trigger the second kind of problem with the makefiles that exist today, but it seems like it could easily start being a problem due to complicated interactions between changes. It is better to fix this now so it doesn't surprise us later. I added the flag under try-run as this seemed like the easiest way to make sure that the fix applies to all variations of rustc-option, including new ones added in the future. Signed-off-by: Alice Ryhl <aliceryhl@xxxxxxxxxx> --- scripts/Makefile.compiler | 1 + 1 file changed, 1 insertion(+) diff --git a/scripts/Makefile.compiler b/scripts/Makefile.compiler index 057305eae85c..50eada69aed9 100644 --- a/scripts/Makefile.compiler +++ b/scripts/Makefile.compiler @@ -21,6 +21,7 @@ TMPOUT = $(if $(KBUILD_EXTMOD),$(firstword $(KBUILD_EXTMOD))/).tmp_$$$$ # automatically cleaned up. try-run = $(shell set -e; \ TMP=$(TMPOUT)/tmp; \ + RUSTC_BOOTSTRAP=1; \ trap "rm -rf $(TMPOUT)" EXIT; \ mkdir -p $(TMPOUT); \ if ($(1)) >/dev/null 2>&1; \ --- base-commit: 8cf0b93919e13d1e8d4466eb4080a4c4d9d66d7b change-id: 20241008-rustc-option-bootstrap-607e5bf3114c Best regards, -- Alice Ryhl <aliceryhl@xxxxxxxxxx>