Re: [PATCH v5 4/7] bootconfig: clean build-time tools/bootconfig from make clean
Nicolas Schier <[email protected]>
| Newsgroups | org.kernel.vger.linux-kbuild,org.kernel.vger.bpf,org.kernel.vger.linux-kernel,org.kernel.vger.linux-trace-kernel |
|---|---|
| Organization | FRITZ! Technology GmbH |
| Message-ID | <20260617-heavy-zircon-marmot-9e7fa0@l-nschier-aarch64> |
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 <[email protected]> > --- > 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 <[email protected]> Kind regards, Nicolas