Message ID | 20240422091215.526688-1-ojeda@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kbuild: rust: remove unneeded `@rustc_cfg` to avoid ICE | expand |
On Mon, Apr 22, 2024 at 11:13 AM Miguel Ojeda <ojeda@kernel.org> wrote: > > When KUnit tests are enabled, under very big kernel configurations > (e.g. `allyesconfig`), we can trigger a `rustdoc` ICE [1]: > > RUSTDOC TK rust/kernel/lib.rs > error: the compiler unexpectedly panicked. this is a bug. > > The reason is that this build step has a duplicated `@rustc_cfg` argument, > which contains the kernel configuration, and thus a lot of arguments. The > factor 2 happens to be enough to reach the ICE. > > Thus remove the unneeded `@rustc_cfg`. By doing so, we clean up the > command and workaround the ICE. > > The ICE has been fixed in the upcoming Rust 1.79 [2]. > > Cc: stable@vger.kernel.org > Fixes: a66d733da801 ("rust: support running Rust documentation tests as KUnit ones") > Link: https://github.com/rust-lang/rust/issues/122722 [1] > Link: https://github.com/rust-lang/rust/pull/122840 [2] > Signed-off-by: Miguel Ojeda <ojeda@kernel.org> Reviewed-by: Alice Ryhl <aliceryhl@google.com>
On Mon, Apr 22, 2024 at 11:13 AM Miguel Ojeda <ojeda@kernel.org> wrote: > > When KUnit tests are enabled, under very big kernel configurations > (e.g. `allyesconfig`), we can trigger a `rustdoc` ICE [1]: > > RUSTDOC TK rust/kernel/lib.rs > error: the compiler unexpectedly panicked. this is a bug. > > The reason is that this build step has a duplicated `@rustc_cfg` argument, > which contains the kernel configuration, and thus a lot of arguments. The > factor 2 happens to be enough to reach the ICE. > > Thus remove the unneeded `@rustc_cfg`. By doing so, we clean up the > command and workaround the ICE. > > The ICE has been fixed in the upcoming Rust 1.79 [2]. > > Cc: stable@vger.kernel.org > Fixes: a66d733da801 ("rust: support running Rust documentation tests as KUnit ones") > Link: https://github.com/rust-lang/rust/issues/122722 [1] > Link: https://github.com/rust-lang/rust/pull/122840 [2] > Signed-off-by: Miguel Ojeda <ojeda@kernel.org> Applied to `rust-fixes` early to start getting some testing in -next. Please feel free to send tags for this one. Cheers, Miguel
diff --git a/rust/Makefile b/rust/Makefile index 846e6ab9d5a9..86a125c4243c 100644 --- a/rust/Makefile +++ b/rust/Makefile @@ -175,7 +175,6 @@ quiet_cmd_rustdoc_test_kernel = RUSTDOC TK $< mkdir -p $(objtree)/$(obj)/test/doctests/kernel; \ OBJTREE=$(abspath $(objtree)) \ $(RUSTDOC) --test $(rust_flags) \ - @$(objtree)/include/generated/rustc_cfg \ -L$(objtree)/$(obj) --extern alloc --extern kernel \ --extern build_error --extern macros \ --extern bindings --extern uapi \
When KUnit tests are enabled, under very big kernel configurations (e.g. `allyesconfig`), we can trigger a `rustdoc` ICE [1]: RUSTDOC TK rust/kernel/lib.rs error: the compiler unexpectedly panicked. this is a bug. The reason is that this build step has a duplicated `@rustc_cfg` argument, which contains the kernel configuration, and thus a lot of arguments. The factor 2 happens to be enough to reach the ICE. Thus remove the unneeded `@rustc_cfg`. By doing so, we clean up the command and workaround the ICE. The ICE has been fixed in the upcoming Rust 1.79 [2]. Cc: stable@vger.kernel.org Fixes: a66d733da801 ("rust: support running Rust documentation tests as KUnit ones") Link: https://github.com/rust-lang/rust/issues/122722 [1] Link: https://github.com/rust-lang/rust/pull/122840 [2] Signed-off-by: Miguel Ojeda <ojeda@kernel.org> --- rust/Makefile | 1 - 1 file changed, 1 deletion(-) base-commit: 4cece764965020c22cff7665b18a012006359095