Re: [PATCH v5 4/7] bootconfig: clean build-time tools/bootconfig from make clean
From: Nicolas Schier
Date: Wed Jun 17 2026 - 09:45:42 EST
On Wed, Jun 17, 2026 at 04:23:36AM -0700, Breno Leitao wrote:
> The previous patch builds tools/bootconfig during 'make prepare' to
> render the embedded bootconfig cmdline, but nothing removes it on
> 'make clean', leaving the compiled tool and its objects behind.
>
> Wire a bootconfig_clean hook into the top-level clean target so the
> compiled tool and its objects are removed by make clean, matching the
> prepare-wired tools/objtool and tools/bpf/resolve_btfids.
>
> The hook runs tools/bootconfig's Makefile via $(MAKE), which the kernel
> build invokes with -rR (MAKEFLAGS += -rR). -rR drops the built-in $(RM)
> variable, so the existing "$(RM) -f ..." clean recipe would expand to a
> bare "-f ..." and fail. Spell the recipe with a literal "rm -f" so it
> keeps working both standalone and when invoked from Kbuild.
>
> Signed-off-by: Breno Leitao <leitao@xxxxxxxxxx>
> ---
> Makefile | 13 ++++++++++++-
> tools/bootconfig/Makefile | 2 +-
> 2 files changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index a7abb3f9a6264..a6e13fa1c1dc1 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1586,6 +1586,17 @@ ifneq ($(wildcard $(objtool_O)),)
> $(Q)$(MAKE) -sC $(abs_srctree)/tools/objtool O=$(objtool_O) srctree=$(abs_srctree) $(patsubst objtool_%,%,$@)
> endif
>
> +PHONY += bootconfig_clean
> +
> +bootconfig_O = $(abspath $(objtree))/tools/bootconfig
> +
> +# tools/bootconfig is only built (via the prepare hook above) when
> +# CONFIG_BOOT_CONFIG_EMBED_CMDLINE is set; skip its clean otherwise.
The wildcard below matches for all in-source builds and also for all
out-of-source builds that _once_ built bootconfig (as the directory will
never be removed). I'd like the comment to be removed, it's obvious
enough what is happening here.
> +bootconfig_clean:
> +ifneq ($(wildcard $(bootconfig_O)),)
> + $(Q)$(MAKE) -sC $(srctree)/tools/bootconfig O=$(bootconfig_O) clean
> +endif
> +
Some additional bike-shedding: I'd rather keep it here as short and
simple altogether:
PHONY += bootconfig_clean
bootconfig_clean: bootconfig_O = $(abs_output))/tools/bootconfig
$(Q)$(MAKE) -sC $(srctree)/tools/bootconfig O=$(bootconfig_O) clean
Nevertheless, for kbuild:
Reviewed-by: Nicolas Schier <n.schier@xxxxxxxxx>
Kind regards,
Nicolas