On Thu, Aug 27, 2020 at 10:53:36AM +0200, Jesper Dangaard Brouer wrote: > 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. > > This is related to the complaint and troubleshooting in link: > Link: https://lore.kernel.org/lkml/20200818122007.2d1cfe2d@carbon/ sry, I forgot about this one.. the change looks good to me Acked-by: Jiri Olsa <jolsa@xxxxxxxxxx> thanks, jirka > > 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) \ > >