On some systems selftests fail to build, missing the following headers: asm/byteorder.h asm/socket.h asm/swab.h
In the specific case of Ubuntu, this is because the files are in '/usr/include/x86_64-linux-gnu' (see <https://wiki.ubuntu.com/MultiarchSpec>) which is both architecture- and distro-specific. The solution is to add $(KERNEL)/usr/include to the Makefile, so the build references these from the current kernel build and not the running system. Signed-off-by: Sirio Balmelli <si...@b-ad.ch> --- tools/testing/selftests/bpf/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index 9d76218..1ec09c6 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -84,7 +84,10 @@ else CPU ?= generic endif -CLANG_FLAGS = -I. -I./include/uapi -I../../../include/uapi \ +# we are in 'tools/testing/selftests/bpf' +KERNEL=../../../.. +TOOLS=../../.. +CLANG_FLAGS = -I. -I./include/uapi -I$(TOOLS)/include/uapi -I$(KERNEL)/usr/include \ -Wno-compare-distinct-pointer-types $(OUTPUT)/test_l4lb_noinline.o: CLANG_FLAGS += -fno-inline -- 2.7.4