Re: [PATCH bpf-next 1/4] tools/resolve_btfids: Build libbpf and libsubcmd in separate directories

Viktor Jägersküpper
2021-03-10T17:35:08Z

Hi,

> Setting up separate build directories for libbpf and libpsubcmd,
> so it's separated from other objects and we don't get them mixed
> in the future.
>
> It also simplifies cleaning, which is now simple rm -rf.
>
> Also there's no need for FEATURE-DUMP.libbpf and bpf_helper_defs.h
> files in .gitignore anymore.
>
> Acked-by: Song Liu <songliubraving@fb.com>
> Signed-off-by: Jiri Olsa <jolsa@kernel.org>
> ---

when I invoke 'git status' on the master branch of my local git repository
(cloned from stable/linux.git), which I have used to compile several kernels,
it lists two untracked files:

tools/bpf/resolve_btfids/FEATURE-DUMP.libbpf
tools/bpf/resolve_btfids/bpf_helper_defs.h

'git status' doesn't complain about these files with v5.11, and I can't get rid
of them by 'make clean' with v5.11 or v5.12-rc1/rc2. So I used 'git bisect' and
found that this is caused by commit fc6b48f692f89cc48bfb7fd1aa65454dfe9b2d77,
which links to this thread.

Looking at the diff it's obvious because of the change in the .gitignore file,
but I don't know why these files are there and I have never touched anything in
the 'tools' directory.

Can I savely delete the files? Do I even have to delete them before I compile
v5.12-rcX?

Thanks,
Viktor

> tools/bpf/resolve_btfids/.gitignore | 2 --
> tools/bpf/resolve_btfids/Makefile | 26 +++++++++++---------------
> 2 files changed, 11 insertions(+), 17 deletions(-)
>
> diff --git a/tools/bpf/resolve_btfids/.gitignore b/tools/bpf/resolve_btfids/.gitignore
> index a026df7dc280..25f308c933cc 100644
> --- a/tools/bpf/resolve_btfids/.gitignore
> +++ b/tools/bpf/resolve_btfids/.gitignore
> @@ -1,4 +1,2 @@
> -/FEATURE-DUMP.libbpf
> -/bpf_helper_defs.h
> /fixdep
> /resolve_btfids
> diff --git a/tools/bpf/resolve_btfids/Makefile b/tools/bpf/resolve_btfids/Makefile
> index bf656432ad73..1d46a247ec95 100644
> --- a/tools/bpf/resolve_btfids/Makefile
> +++ b/tools/bpf/resolve_btfids/Makefile
> @@ -28,22 +28,22 @@ OUTPUT ?= $(srctree)/tools/bpf/resolve_btfids/
> LIBBPF_SRC := $(srctree)/tools/lib/bpf/
> SUBCMD_SRC := $(srctree)/tools/lib/subcmd/
>
> -BPFOBJ := $(OUTPUT)/libbpf.a
> -SUBCMDOBJ := $(OUTPUT)/libsubcmd.a
> +BPFOBJ := $(OUTPUT)/libbpf/libbpf.a
> +SUBCMDOBJ := $(OUTPUT)/libsubcmd/libsubcmd.a
>
> BINARY := $(OUTPUT)/resolve_btfids
> BINARY_IN := $(BINARY)-in.o
>
> all: $(BINARY)
>
> -$(OUTPUT):
> +$(OUTPUT) $(OUTPUT)/libbpf $(OUTPUT)/libsubcmd:
> $(call msg,MKDIR,,$@)
> - $(Q)mkdir -p $(OUTPUT)
> + $(Q)mkdir -p $(@)
>
> -$(SUBCMDOBJ): fixdep FORCE
> - $(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(OUTPUT)
> +$(SUBCMDOBJ): fixdep FORCE | $(OUTPUT)/libsubcmd
> + $(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(abspath $(dir $@))/ $(abspath $@)
>
> -$(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(OUTPUT)
> +$(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(OUTPUT)/libbpf
> $(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC) OUTPUT=$(abspath $(dir $@))/ $(abspath $@)
>
> CFLAGS := -g \
> @@ -57,23 +57,19 @@ LIBS = -lelf -lz
> export srctree OUTPUT CFLAGS Q
> include $(srctree)/tools/build/Makefile.include
>
> -$(BINARY_IN): fixdep FORCE
> +$(BINARY_IN): fixdep FORCE | $(OUTPUT)
> $(Q)$(MAKE) $(build)=resolve_btfids
>
> $(BINARY): $(BPFOBJ) $(SUBCMDOBJ) $(BINARY_IN)
> $(call msg,LINK,$@)
> $(Q)$(CC) $(BINARY_IN) $(LDFLAGS) -o $@ $(BPFOBJ) $(SUBCMDOBJ) $(LIBS)
>
> -libsubcmd-clean:
> - $(Q)$(MAKE) -C $(SUBCMD_SRC) OUTPUT=$(OUTPUT) clean
> -
> -libbpf-clean:
> - $(Q)$(MAKE) -C $(LIBBPF_SRC) OUTPUT=$(OUTPUT) clean
> -
> -clean: libsubcmd-clean libbpf-clean fixdep-clean
> +clean: fixdep-clean
> $(call msg,CLEAN,$(BINARY))
> $(Q)$(RM) -f $(BINARY); \
> $(RM) -rf $(if $(OUTPUT),$(OUTPUT),.)/feature; \
> + $(RM) -rf $(OUTPUT)/libbpf; \
> + $(RM) -rf $(OUTPUT)/libsubcmd; \
> find $(if $(OUTPUT),$(OUTPUT),.) -name \*.o -or -name \*.o.cmd -or -name \*.o.d | xargs $(RM)
>
> tags:
>