1 # SPDX-License-Identifier: GPL-2.0
4 BPFDIR
:= $(LIBDIR
)/bpf
5 APIDIR
:= ..
/..
/..
/include/uapi
6 GENDIR
:= ..
/..
/..
/..
/include/generated
7 GENHDR
:= $(GENDIR
)/autoconf.h
9 ifneq ($(wildcard $(GENHDR
)),)
10 GENFLAGS
:= -DHAVE_GENHDR
13 CFLAGS
+= -Wall
-O2
-I
$(APIDIR
) -I
$(LIBDIR
) -I
$(GENDIR
) $(GENFLAGS
) -I..
/..
/..
/include
14 LDLIBS
+= -lcap
-lelf
-lrt
-lpthread
16 # Order correspond to 'make run_tests' order
17 TEST_GEN_PROGS
= test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \
18 test_align test_verifier_log test_dev_cgroup test_tcpbpf_user
20 TEST_GEN_FILES
= test_pkt_access.o test_xdp.o test_l4lb.o test_tcp_estats.o test_obj_id.o \
21 test_pkt_md_access.o test_xdp_redirect.o test_xdp_meta.o sockmap_parse_prog.o \
22 sockmap_verdict_prog.o dev_cgroup.o sample_ret0.o test_tracepoint.o \
23 test_l4lb_noinline.o test_xdp_noinline.o test_stacktrace_map.o \
24 sample_map_ret0.o test_tcpbpf_kern.o
26 # Order correspond to 'make run_tests' order
27 TEST_PROGS
:= test_kmod.sh \
29 test_xdp_redirect.sh \
33 # Compile but not part of 'make run_tests'
34 TEST_GEN_PROGS_EXTENDED
= test_libbpf_open
38 BPFOBJ
:= $(OUTPUT
)/libbpf.a cgroup_helpers.c
40 $(TEST_GEN_PROGS
): $(BPFOBJ
)
42 $(TEST_GEN_PROGS_EXTENDED
): $(OUTPUT
)/libbpf.a
46 # force a rebuild of BPFOBJ when its dependencies are updated
50 $(MAKE
) -C
$(BPFDIR
) OUTPUT
=$(OUTPUT
)/
55 PROBE
:= $(shell $(LLC
) -march
=bpf
-mcpu
=probe
-filetype
=null
/dev
/null
2>&1)
57 # Let newer LLVM versions transparently probe the kernel for availability
58 # of full BPF instruction set.
65 CLANG_FLAGS
= -I.
-I.
/include/uapi
-I..
/..
/..
/include/uapi \
66 -Wno-compare-distinct-pointer-types
68 $(OUTPUT
)/test_l4lb_noinline.o
: CLANG_FLAGS
+= -fno-inline
69 $(OUTPUT
)/test_xdp_noinline.o
: CLANG_FLAGS
+= -fno-inline
72 $(CLANG
) $(CLANG_FLAGS
) \
73 -O2
-target bpf
-emit-llvm
-c
$< -o
- | \
74 $(LLC
) -march
=bpf
-mcpu
=$(CPU
) -filetype
=obj
-o
$@