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 <bro...@redhat.com>
> ---
>  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

Reply via email to