[PATCH bpf-next v2 09/10] selftests: Remove tools/lib/bpf from include path

From: Toke HÃiland-JÃrgensen
Date: Wed Jan 15 2020 - 09:13:12 EST


From: Toke HÃiland-JÃrgensen <toke@xxxxxxxxxx>

To make sure no new files are introduced that doesn't include the bpf/
prefix in its #include, remove tools/lib/bpf from the include path
entirely, and use tools/lib instead. To fix the original issue with
bpf_helper_defs.h being stale, change the Makefile rule to regenerate the
file in the lib/bpf dir instead of having a local copy in selftests.

Signed-off-by: Toke HÃiland-JÃrgensen <toke@xxxxxxxxxx>
---
tools/testing/selftests/bpf/.gitignore | 3 ++-
tools/testing/selftests/bpf/Makefile | 16 ++++++++--------
2 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/tools/testing/selftests/bpf/.gitignore b/tools/testing/selftests/bpf/.gitignore
index 1d14e3ab70be..17dd02651dee 100644
--- a/tools/testing/selftests/bpf/.gitignore
+++ b/tools/testing/selftests/bpf/.gitignore
@@ -33,10 +33,11 @@ libbpf.pc
libbpf.so.*
test_hashmap
test_btf_dump
+test_cgroup_attach
+test_select_reuseport
xdping
test_cpp
*.skel.h
/no_alu32
/bpf_gcc
/tools
-bpf_helper_defs.h
diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile
index cd98ae875e30..4889cc3ead4b 100644
--- a/tools/testing/selftests/bpf/Makefile
+++ b/tools/testing/selftests/bpf/Makefile
@@ -21,7 +21,7 @@ LLC ?= llc
LLVM_OBJCOPY ?= llvm-objcopy
BPF_GCC ?= $(shell command -v bpf-gcc;)
CFLAGS += -g -Wall -O2 $(GENFLAGS) -I$(CURDIR) -I$(APIDIR) -I$(LIBDIR) \
- -I$(BPFDIR) -I$(GENDIR) -I$(TOOLSINCDIR) \
+ -I$(GENDIR) -I$(TOOLSINCDIR) \
-Dbpf_prog_load=bpf_prog_test_load \
-Dbpf_load_program=bpf_test_load_program
LDLIBS += -lcap -lelf -lz -lrt -lpthread
@@ -129,7 +129,7 @@ $(OUTPUT)/runqslower: force
$(Q)$(MAKE) $(submake_extras) -C $(TOOLSDIR)/bpf/runqslower \
OUTPUT=$(CURDIR)/tools/

-BPFOBJ := $(OUTPUT)/libbpf.a
+BPFOBJ := $(BPFDIR)/libbpf.a

$(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED): $(OUTPUT)/test_stub.o $(BPFOBJ)

@@ -155,17 +155,17 @@ force:
DEFAULT_BPFTOOL := $(OUTPUT)/tools/sbin/bpftool
BPFTOOL ?= $(DEFAULT_BPFTOOL)

-$(DEFAULT_BPFTOOL): force
+$(DEFAULT_BPFTOOL): force $(BPFOBJ)
$(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \
prefix= DESTDIR=$(OUTPUT)/tools/ install

$(BPFOBJ): force
- $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(OUTPUT)/
+ $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BPFDIR)/ $(BPFOBJ)

-BPF_HELPERS := $(OUTPUT)/bpf_helper_defs.h $(wildcard $(BPFDIR)/bpf_*.h)
-$(OUTPUT)/bpf_helper_defs.h: $(BPFOBJ)
+BPF_HELPERS := $(BPFDIR)/bpf_helper_defs.h $(wildcard $(BPFDIR)/bpf_*.h)
+$(BPFDIR)/bpf_helper_defs.h: $(BPFOBJ)
$(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) \
- OUTPUT=$(OUTPUT)/ $(OUTPUT)/bpf_helper_defs.h
+ OUTPUT=$(BPFDIR)/ $(BPFDIR)/bpf_helper_defs.h

# Get Clang's default includes on this system, as opposed to those seen by
# '-target bpf'. This fixes "missing" files on some architectures/distros,
@@ -186,7 +186,7 @@ MENDIAN=$(if $(IS_LITTLE_ENDIAN),-mlittle-endian,-mbig-endian)
CLANG_SYS_INCLUDES = $(call get_sys_includes,$(CLANG))
BPF_CFLAGS = -g -D__TARGET_ARCH_$(SRCARCH) $(MENDIAN) \
-I$(OUTPUT) -I$(CURDIR) -I$(CURDIR)/include/uapi \
- -I$(APIDIR) -I$(LIBDIR) -I$(BPFDIR) -I$(abspath $(OUTPUT)/../usr/include)
+ -I$(APIDIR) -I$(LIBDIR) -I$(abspath $(OUTPUT)/../usr/include)

CLANG_CFLAGS = $(CLANG_SYS_INCLUDES) \
-Wno-compare-distinct-pointer-types