Re: [PATCH] tools build feature: cleanup feature files on make clean
From: Arnaldo Carvalho de Melo
Date: Thu Sep 03 2020 - 15:04:17 EST
Em Thu, Aug 27, 2020 at 10:53:36AM +0200, Jesper Dangaard Brouer escreveu:
> The system for "Auto-detecting system features" located under
> tools/build/ are (currently) used by perf, libbpf and bpftool. It can
> contain stalled feature detection files, which are not cleaned up by
> libbpf and bpftool on make clean (side-note: perf tool is correct).
>
> Fix this by making the users invoke the make clean target.
>
> Some details about the changes. The libbpf Makefile already had a
> clean-config target (which seems to be copy-pasted from perf), but this
> target was not "connected" (a make dependency) to clean target. Choose
> not to rename target as someone might be using it. Did change the output
> from "CLEAN config" to "CLEAN feature-detect", to make it more clear
> what happens.
Since this mostly touches BPF, should it go via the BPF tree?
- Arnaldo
> This is related to the complaint and troubleshooting in link:
> Link: https://lore.kernel.org/lkml/20200818122007.2d1cfe2d@carbon/
>
> Signed-off-by: Jesper Dangaard Brouer <brouer@xxxxxxxxxx>
> ---
> tools/build/Makefile | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/tools/bpf/bpftool/Makefile b/tools/bpf/bpftool/Makefile
> index 8462690a039b..02c99bc95c69 100644
> --- a/tools/bpf/bpftool/Makefile
> +++ b/tools/bpf/bpftool/Makefile
> @@ -176,7 +176,11 @@ $(OUTPUT)bpftool: $(OBJS) $(LIBBPF)
> $(OUTPUT)%.o: %.c
> $(QUIET_CC)$(CC) $(CFLAGS) -c -MMD -o $@ $<
>
> -clean: $(LIBBPF)-clean
> +feature-detect-clean:
> + $(call QUIET_CLEAN, feature-detect)
> + $(Q)$(MAKE) -C $(srctree)/tools/build/feature/ clean >/dev/null
> +
> +clean: $(LIBBPF)-clean feature-detect-clean
> $(call QUIET_CLEAN, bpftool)
> $(Q)$(RM) -- $(OUTPUT)bpftool $(OUTPUT)*.o $(OUTPUT)*.d
> $(Q)$(RM) -- $(BPFTOOL_BOOTSTRAP) $(OUTPUT)*.skel.h $(OUTPUT)vmlinux.h
> diff --git a/tools/build/Makefile b/tools/build/Makefile
> index 727050c40f09..722f1700d96a 100644
> --- a/tools/build/Makefile
> +++ b/tools/build/Makefile
> @@ -38,6 +38,8 @@ clean:
> $(call QUIET_CLEAN, fixdep)
> $(Q)find $(if $(OUTPUT),$(OUTPUT),.) -name '*.o' -delete -o -name '\.*.cmd' -delete -o -name '\.*.d' -delete
> $(Q)rm -f $(OUTPUT)fixdep
> + $(call QUIET_CLEAN, feature-detect)
> + $(Q)$(MAKE) -C feature/ clean >/dev/null
>
> $(OUTPUT)fixdep-in.o: FORCE
> $(Q)$(MAKE) $(build)=fixdep
> diff --git a/tools/lib/bpf/Makefile b/tools/lib/bpf/Makefile
> index bf8ed134cb8a..bbb89551468a 100644
> --- a/tools/lib/bpf/Makefile
> +++ b/tools/lib/bpf/Makefile
> @@ -269,10 +269,10 @@ install: install_lib install_pkgconfig install_headers
> ### Cleaning rules
>
> config-clean:
> - $(call QUIET_CLEAN, config)
> + $(call QUIET_CLEAN, feature-detect)
> $(Q)$(MAKE) -C $(srctree)/tools/build/feature/ clean >/dev/null
>
> -clean:
> +clean: config-clean
> $(call QUIET_CLEAN, libbpf) $(RM) -rf $(CMD_TARGETS) \
> *~ .*.d .*.cmd LIBBPF-CFLAGS $(BPF_HELPER_DEFS) \
> $(SHARED_OBJDIR) $(STATIC_OBJDIR) \
>
>
--
- Arnaldo