On Fri, Oct 1, 2021 at 4:09 AM Quentin Monnet <quentin@xxxxxxxxxxxxx> wrote: > > API headers from libbpf should not be accessed directly from the > library's source directory. Instead, they should be exported with "make > install_headers". Let's make sure that bpf/preload/iterators/Makefile > installs the headers properly when building. > > Signed-off-by: Quentin Monnet <quentin@xxxxxxxxxxxxx> > --- > kernel/bpf/preload/iterators/Makefile | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > > diff --git a/kernel/bpf/preload/iterators/Makefile b/kernel/bpf/preload/iterators/Makefile > index 28fa8c1440f4..cf549dab3e20 100644 > --- a/kernel/bpf/preload/iterators/Makefile > +++ b/kernel/bpf/preload/iterators/Makefile > @@ -6,9 +6,11 @@ LLVM_STRIP ?= llvm-strip > DEFAULT_BPFTOOL := $(OUTPUT)/sbin/bpftool > BPFTOOL ?= $(DEFAULT_BPFTOOL) > LIBBPF_SRC := $(abspath ../../../../tools/lib/bpf) > -BPFOBJ := $(OUTPUT)/libbpf.a > -BPF_INCLUDE := $(OUTPUT) > -INCLUDES := -I$(OUTPUT) -I$(BPF_INCLUDE) -I$(abspath ../../../../tools/lib) \ > +LIBBPF_OUTPUT := $(abspath $(OUTPUT))/libbpf > +LIBBPF_DESTDIR := $(LIBBPF_OUTPUT) > +LIBBPF_INCLUDE := $(LIBBPF_DESTDIR)/include > +BPFOBJ := $(LIBBPF_OUTPUT)/libbpf.a > +INCLUDES := -I$(OUTPUT) -I$(LIBBPF_INCLUDE) \ > -I$(abspath ../../../../tools/include/uapi) > CFLAGS := -g -Wall > > @@ -44,13 +46,15 @@ $(OUTPUT)/iterators.bpf.o: iterators.bpf.c $(BPFOBJ) | $(OUTPUT) > -c $(filter %.c,$^) -o $@ && \ > $(LLVM_STRIP) -g $@ > > -$(OUTPUT): > +$(OUTPUT) $(LIBBPF_OUTPUT) $(LIBBPF_INCLUDE): > $(call msg,MKDIR,$@) > - $(Q)mkdir -p $(OUTPUT) > + $(Q)mkdir -p $@ > > -$(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) | $(OUTPUT) > +$(BPFOBJ): $(wildcard $(LIBBPF_SRC)/*.[ch] $(LIBBPF_SRC)/Makefile) \ > + | $(LIBBPF_OUTPUT) $(LIBBPF_INCLUDE) Would it make sense for libbpf's Makefile to create include and output directories on its own? We wouldn't need to have these order-only dependencies everywhere, right? > $(Q)$(MAKE) $(submake_extras) -C $(LIBBPF_SRC) \ > - OUTPUT=$(abspath $(dir $@))/ $(abspath $@) > + OUTPUT=$(abspath $(dir $@))/ prefix= \ > + DESTDIR=$(LIBBPF_DESTDIR) $(abspath $@) install_headers > > $(DEFAULT_BPFTOOL): > $(Q)$(MAKE) $(submake_extras) -C ../../../../tools/bpf/bpftool \ > -- > 2.30.2 >