Re: [PATCH 02/18] rust: kbuild: introduce `core-flags` and `core-skip_flags`

From: John Hubbard

Date: Mon Nov 10 2025 - 14:25:12 EST


On 11/10/25 1:50 AM, Miguel Ojeda wrote:
> In the next commits we are introducing `*-{cfgs,skip_flags,flags}`
> variables for other crates.
>
> Thus do so here for `core`, which simplifies a bit the `Makefile`
> (including the next commit) and makes it more consistent.
>
> This means we stop passing `-Wrustdoc::unescaped_backticks` to `rustc`
> and `-Wunreachable_pub` to `rustdoc`, i.e. we skip more, which is fine
> since it shouldn't have an effect.
>
> Signed-off-by: Miguel Ojeda <ojeda@xxxxxxxxxx>
> ---
> rust/Makefile | 19 ++++++++++++++-----
> 1 file changed, 14 insertions(+), 5 deletions(-)
>
> diff --git a/rust/Makefile b/rust/Makefile
> index 3e545c1a0ff4..a001aae0da9d 100644
> --- a/rust/Makefile
> +++ b/rust/Makefile
> @@ -60,11 +60,20 @@ rustdoc_test_quiet=--test-args -q
> rustdoc_test_kernel_quiet=>/dev/null
> endif
>
> -core-cfgs = \
> +core-cfgs := \

I agree that switching to ":=" for this kind of Makefile variable
is a good move. However, it should be mentioned in the commit log
so that it doesn't look like it was accidentally introduced.


thanks,
--
John Hubbard

> --cfg no_fp_fmt_parse
>
> core-edition := $(if $(call rustc-min-version,108700),2024,2021)
>
> +core-skip_flags := \
> + --edition=2021 \
> + -Wunreachable_pub \
> + -Wrustdoc::unescaped_backticks
> +
> +core-flags := \
> + --edition=$(core-edition) \
> + $(core-cfgs)
> +
> # `rustdoc` did not save the target modifiers, thus workaround for
> # the time being (https://github.com/rust-lang/rust/issues/144521).
> rustdoc_modifiers_workaround := $(if $(call rustc-min-version,108800),-Cunsafe-allow-abi-mismatch=fixed-x18)
> @@ -125,8 +134,8 @@ rustdoc-macros: $(src)/macros/lib.rs rustdoc-clean FORCE
>
> # Starting with Rust 1.82.0, skipping `-Wrustdoc::unescaped_backticks` should
> # not be needed -- see https://github.com/rust-lang/rust/pull/128307.
> -rustdoc-core: private skip_flags = --edition=2021 -Wrustdoc::unescaped_backticks
> -rustdoc-core: private rustc_target_flags = --edition=$(core-edition) $(core-cfgs)
> +rustdoc-core: private skip_flags = $(core-skip_flags)
> +rustdoc-core: private rustc_target_flags = $(core-flags)
> rustdoc-core: $(RUST_LIB_SRC)/core/src/lib.rs rustdoc-clean FORCE
> +$(call if_changed,rustdoc)
>
> @@ -508,9 +517,9 @@ $(obj)/helpers/helpers.o: $(src)/helpers/helpers.c $(recordmcount_source) FORCE
> $(obj)/exports.o: private skip_gendwarfksyms = 1
>
> $(obj)/core.o: private skip_clippy = 1
> -$(obj)/core.o: private skip_flags = --edition=2021 -Wunreachable_pub
> +$(obj)/core.o: private skip_flags = $(core-skip_flags)
> $(obj)/core.o: private rustc_objcopy = $(foreach sym,$(redirect-intrinsics),--redefine-sym $(sym)=__rust$(sym))
> -$(obj)/core.o: private rustc_target_flags = --edition=$(core-edition) $(core-cfgs)
> +$(obj)/core.o: private rustc_target_flags = $(core-flags)
> $(obj)/core.o: $(RUST_LIB_SRC)/core/src/lib.rs \
> $(wildcard $(objtree)/include/config/RUSTC_VERSION_TEXT) FORCE
> +$(call if_changed_rule,rustc_library)