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

Reply via email to