On Wed Apr 1, 2026 at 12:45 PM BST, Miguel Ojeda wrote:
> With the minimum version bump in place, `rustdoc` now always recognizes
> the `--remap-path-prefix` flag.
>
> In addition, the Internal Compiler Error that the comment mentions [1]
> was fixed in Rust 1.87.0 [2], so we still need to skip the flag for
> the normal `rustdoc` case, but not for `--test` since the ICE does not
> reproduce there -- please see commit 2c8725c1dca3 ("rust: kbuild: skip
> `--remap-path-prefix` for `rustdoc`").
>
> Thus update the comment and remove the skipping of the flag for the
> `--test` case.
>
> Note that commit dda135077ecc ("rust: build: remap path to avoid
> absolute path") re-landed the `--remap-path-prefix` flag (together with
> `--remap-path-scope`), so we keep the workaround, i.e. an alternative
> could have been to simply delete the skip entirely, but since we still
> have it and it will be needed when this gets merged, let's keep it.I'm not sure that I parse this. You do remove the filter-out completely below? > > Link: https://github.com/rust-lang/rust/issues/138520 [1] > Link: https://github.com/rust-lang/rust/pull/138556 [2] > Signed-off-by: Miguel Ojeda <[email protected]> > --- > rust/Makefile | 9 ++++----- > 1 file changed, 4 insertions(+), 5 deletions(-) > > diff --git a/rust/Makefile b/rust/Makefile > index 193cf06eea64..708530ee3613 100644 > --- a/rust/Makefile > +++ b/rust/Makefile > @@ -142,10 +142,9 @@ rustdoc_modifiers_workaround := $(if $(call > rustc-min-version,108800),-Cunsafe-a > # Similarly, for doctests (https://github.com/rust-lang/rust/issues/146465). > doctests_modifiers_workaround := $(rustdoc_modifiers_workaround)$(if $(call > rustc-min-version,109100),$(comma)sanitizer) > > -# `rustc` recognizes `--remap-path-prefix` since 1.26.0, but `rustdoc` only > -# since Rust 1.81.0. Moreover, `rustdoc` ICEs on out-of-tree builds since > Rust > -# 1.82.0 (https://github.com/rust-lang/rust/issues/138520). Thus workaround > both > -# issues skipping the flag. The former also applies to `RUSTDOC TK`. > +# `rustdoc` ICEs on out-of-tree builds in Rust < 1.87.0 > +# (https://github.com/rust-lang/rust/issues/138520). Thus workaround the > +# issue skipping the flag. > quiet_cmd_rustdoc = RUSTDOC $(if $(rustdoc_host),H, ) $< > cmd_rustdoc = \ > OBJTREE=$(abspath $(objtree)) \ > @@ -333,7 +332,7 @@ quiet_cmd_rustdoc_test_kernel = RUSTDOC TK $< > rm -rf $(objtree)/$(obj)/test/doctests/kernel; \ > mkdir -p $(objtree)/$(obj)/test/doctests/kernel; \ > OBJTREE=$(abspath $(objtree)) \ > - $(RUSTDOC) --test $(filter-out --remap-path-prefix=%,$(rust_flags)) \ Looks like this is going to conflict with rust-fixes (which adds the --remap-path-scope). Perhaps worth doing a back merge? Best, Gary > + $(RUSTDOC) --test $(rust_flags) \ > -L$(objtree)/$(obj) --extern ffi --extern pin_init \ > --extern kernel --extern build_error --extern macros \ > --extern bindings --extern uapi \
