[PATCH] kbuild: rust: remove unneeded `@rustc_cfg` to avoid ICE

5 views
Skip to first unread message

Miguel Ojeda

unread,
Apr 22, 2024, 5:13:20 AMApr 22
to Masahiro Yamada, Miguel Ojeda, Wedson Almeida Filho, Alex Gaynor, Nathan Chancellor, Nick Desaulniers, Nicolas Schier, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, David Gow, Brendan Higgins, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, kuni...@googlegroups.com, linux-k...@vger.kernel.org, linux-...@vger.kernel.org, pat...@lists.linux.dev, sta...@vger.kernel.org
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: sta...@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 <oj...@kernel.org>
---
rust/Makefile | 1 -
1 file changed, 1 deletion(-)

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 \

base-commit: 4cece764965020c22cff7665b18a012006359095
--
2.44.0

Alice Ryhl

unread,
Apr 22, 2024, 5:25:58 AMApr 22
to Miguel Ojeda, Masahiro Yamada, Wedson Almeida Filho, Alex Gaynor, Nathan Chancellor, Nick Desaulniers, Nicolas Schier, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, David Gow, Brendan Higgins, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, kuni...@googlegroups.com, linux-k...@vger.kernel.org, linux-...@vger.kernel.org, pat...@lists.linux.dev, sta...@vger.kernel.org
On Mon, Apr 22, 2024 at 11:13 AM Miguel Ojeda <oj...@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: sta...@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 <oj...@kernel.org>

Reviewed-by: Alice Ryhl <alic...@google.com>

Miguel Ojeda

unread,
Apr 22, 2024, 8:43:41 PMApr 22
to Miguel Ojeda, Masahiro Yamada, Wedson Almeida Filho, Alex Gaynor, Nathan Chancellor, Nick Desaulniers, Nicolas Schier, Boqun Feng, Gary Guo, Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl, David Gow, Brendan Higgins, linux-...@vger.kernel.org, rust-fo...@vger.kernel.org, kuni...@googlegroups.com, linux-k...@vger.kernel.org, linux-...@vger.kernel.org, pat...@lists.linux.dev, sta...@vger.kernel.org
On Mon, Apr 22, 2024 at 11:13 AM Miguel Ojeda <oj...@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: sta...@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 <oj...@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
Reply all
Reply to author
Forward
0 new messages