Makefile (467dd91e2f783d34b2205751bdf88bcdcac55984) Makefile (d41bc48bfab2076f7db88d079a3a3203dd9c4a54)
1# SPDX-License-Identifier: GPL-2.0
2include ../../../build/Build.include
3include ../../../scripts/Makefile.arch
4include ../../../scripts/Makefile.include
5
6CXX ?= $(CROSS_COMPILE)g++
7
8CURDIR := $(abspath .)

--- 9 unchanged lines hidden (view full) ---

18ifneq ($(wildcard $(GENHDR)),)
19 GENFLAGS := -DHAVE_GENHDR
20endif
21
22BPF_GCC ?= $(shell command -v bpf-gcc;)
23SAN_CFLAGS ?=
24CFLAGS += -g -O0 -rdynamic -Wall $(GENFLAGS) $(SAN_CFLAGS) \
25 -I$(CURDIR) -I$(INCLUDE_DIR) -I$(GENDIR) -I$(LIBDIR) \
1# SPDX-License-Identifier: GPL-2.0
2include ../../../build/Build.include
3include ../../../scripts/Makefile.arch
4include ../../../scripts/Makefile.include
5
6CXX ?= $(CROSS_COMPILE)g++
7
8CURDIR := $(abspath .)

--- 9 unchanged lines hidden (view full) ---

18ifneq ($(wildcard $(GENHDR)),)
19 GENFLAGS := -DHAVE_GENHDR
20endif
21
22BPF_GCC ?= $(shell command -v bpf-gcc;)
23SAN_CFLAGS ?=
24CFLAGS += -g -O0 -rdynamic -Wall $(GENFLAGS) $(SAN_CFLAGS) \
25 -I$(CURDIR) -I$(INCLUDE_DIR) -I$(GENDIR) -I$(LIBDIR) \
26 -I$(TOOLSINCDIR) -I$(APIDIR) -I$(OUTPUT) \
27 -Dbpf_prog_load=bpf_prog_test_load \
28 -Dbpf_load_program=bpf_test_load_program
26 -I$(TOOLSINCDIR) -I$(APIDIR) -I$(OUTPUT)
27LDFLAGS += $(SAN_CFLAGS)
29LDLIBS += -lcap -lelf -lz -lrt -lpthread
30
31# Silence some warnings when compiled with clang
32ifneq ($(LLVM),)
33CFLAGS += -Wno-unused-command-line-argument
34endif
35
36# Order correspond to 'make run_tests' order

--- 4 unchanged lines hidden (view full) ---

41 test_tcpnotify_user test_sysctl \
42 test_progs-no_alu32
43
44# Also test bpf-gcc, if present
45ifneq ($(BPF_GCC),)
46TEST_GEN_PROGS += test_progs-bpf_gcc
47endif
48
28LDLIBS += -lcap -lelf -lz -lrt -lpthread
29
30# Silence some warnings when compiled with clang
31ifneq ($(LLVM),)
32CFLAGS += -Wno-unused-command-line-argument
33endif
34
35# Order correspond to 'make run_tests' order

--- 4 unchanged lines hidden (view full) ---

40 test_tcpnotify_user test_sysctl \
41 test_progs-no_alu32
42
43# Also test bpf-gcc, if present
44ifneq ($(BPF_GCC),)
45TEST_GEN_PROGS += test_progs-bpf_gcc
46endif
47
49TEST_GEN_FILES = test_lwt_ip_encap.o \
50 test_tc_edt.o
51TEST_FILES = xsk_prereqs.sh \
52 $(wildcard progs/btf_dump_test_case_*.c)
48TEST_GEN_FILES = test_lwt_ip_encap.o test_tc_edt.o
49TEST_FILES = xsk_prereqs.sh $(wildcard progs/btf_dump_test_case_*.c)
53
54# Order correspond to 'make run_tests' order
55TEST_PROGS := test_kmod.sh \
56 test_xdp_redirect.sh \
57 test_xdp_redirect_multi.sh \
58 test_xdp_meta.sh \
59 test_xdp_veth.sh \
60 test_offload.py \

--- 42 unchanged lines hidden (view full) ---

103MAKEFLAGS += --no-print-directory
104submake_extras := feature_display=0
105endif
106
107# override lib.mk's default rules
108OVERRIDE_TARGETS := 1
109override define CLEAN
110 $(call msg,CLEAN)
50
51# Order correspond to 'make run_tests' order
52TEST_PROGS := test_kmod.sh \
53 test_xdp_redirect.sh \
54 test_xdp_redirect_multi.sh \
55 test_xdp_meta.sh \
56 test_xdp_veth.sh \
57 test_offload.py \

--- 42 unchanged lines hidden (view full) ---

100MAKEFLAGS += --no-print-directory
101submake_extras := feature_display=0
102endif
103
104# override lib.mk's default rules
105OVERRIDE_TARGETS := 1
106override define CLEAN
107 $(call msg,CLEAN)
111 $(Q)$(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(EXTRA_CLEAN)
108 $(Q)$(RM) -r $(TEST_GEN_PROGS)
109 $(Q)$(RM) -r $(TEST_GEN_PROGS_EXTENDED)
110 $(Q)$(RM) -r $(TEST_GEN_FILES)
111 $(Q)$(RM) -r $(EXTRA_CLEAN)
112 $(Q)$(MAKE) -C bpf_testmod clean
113 $(Q)$(MAKE) docs-clean
114endef
115
116include ../lib.mk
117
118SCRATCH_DIR := $(OUTPUT)/tools
119BUILD_DIR := $(SCRATCH_DIR)/build

--- 45 unchanged lines hidden (view full) ---

165 $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
166
167$(OUTPUT)/%:%.c
168 $(call msg,BINARY,,$@)
169 $(Q)$(LINK.c) $^ $(LDLIBS) -o $@
170
171$(OUTPUT)/urandom_read: urandom_read.c
172 $(call msg,BINARY,,$@)
112 $(Q)$(MAKE) -C bpf_testmod clean
113 $(Q)$(MAKE) docs-clean
114endef
115
116include ../lib.mk
117
118SCRATCH_DIR := $(OUTPUT)/tools
119BUILD_DIR := $(SCRATCH_DIR)/build

--- 45 unchanged lines hidden (view full) ---

165 $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
166
167$(OUTPUT)/%:%.c
168 $(call msg,BINARY,,$@)
169 $(Q)$(LINK.c) $^ $(LDLIBS) -o $@
170
171$(OUTPUT)/urandom_read: urandom_read.c
172 $(call msg,BINARY,,$@)
173 $(Q)$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS) -Wl,--build-id=sha1
173 $(Q)$(CC) $(LDFLAGS) $< $(LDLIBS) -Wl,--build-id=sha1 -o $@
174
175$(OUTPUT)/bpf_testmod.ko: $(VMLINUX_BTF) $(wildcard bpf_testmod/Makefile bpf_testmod/*.[ch])
176 $(call msg,MOD,,$@)
177 $(Q)$(RM) bpf_testmod/bpf_testmod.ko # force re-compilation
178 $(Q)$(MAKE) $(submake_extras) -C bpf_testmod
179 $(Q)cp bpf_testmod/bpf_testmod.ko $@
180
174
175$(OUTPUT)/bpf_testmod.ko: $(VMLINUX_BTF) $(wildcard bpf_testmod/Makefile bpf_testmod/*.[ch])
176 $(call msg,MOD,,$@)
177 $(Q)$(RM) bpf_testmod/bpf_testmod.ko # force re-compilation
178 $(Q)$(MAKE) $(submake_extras) -C bpf_testmod
179 $(Q)cp bpf_testmod/bpf_testmod.ko $@
180
181$(OUTPUT)/test_stub.o: test_stub.c $(BPFOBJ)
182 $(call msg,CC,,$@)
183 $(Q)$(CC) -c $(CFLAGS) -o $@ $<
184
185DEFAULT_BPFTOOL := $(HOST_SCRATCH_DIR)/sbin/bpftool
186
187$(OUTPUT)/runqslower: $(BPFOBJ) | $(DEFAULT_BPFTOOL) $(RUNQSLOWER_OUTPUT)
188 $(Q)$(MAKE) $(submake_extras) -C $(TOOLSDIR)/bpf/runqslower \
189 OUTPUT=$(RUNQSLOWER_OUTPUT) VMLINUX_BTF=$(VMLINUX_BTF) \
190 BPFTOOL_OUTPUT=$(BUILD_DIR)/bpftool/ \
191 BPFOBJ_OUTPUT=$(BUILD_DIR)/libbpf \
192 BPFOBJ=$(BPFOBJ) BPF_INCLUDE=$(INCLUDE_DIR) && \
193 cp $(RUNQSLOWER_OUTPUT)runqslower $@
194
195TEST_GEN_PROGS_EXTENDED += $(DEFAULT_BPFTOOL)
196
181DEFAULT_BPFTOOL := $(HOST_SCRATCH_DIR)/sbin/bpftool
182
183$(OUTPUT)/runqslower: $(BPFOBJ) | $(DEFAULT_BPFTOOL) $(RUNQSLOWER_OUTPUT)
184 $(Q)$(MAKE) $(submake_extras) -C $(TOOLSDIR)/bpf/runqslower \
185 OUTPUT=$(RUNQSLOWER_OUTPUT) VMLINUX_BTF=$(VMLINUX_BTF) \
186 BPFTOOL_OUTPUT=$(BUILD_DIR)/bpftool/ \
187 BPFOBJ_OUTPUT=$(BUILD_DIR)/libbpf \
188 BPFOBJ=$(BPFOBJ) BPF_INCLUDE=$(INCLUDE_DIR) && \
189 cp $(RUNQSLOWER_OUTPUT)runqslower $@
190
191TEST_GEN_PROGS_EXTENDED += $(DEFAULT_BPFTOOL)
192
197$(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED): $(OUTPUT)/test_stub.o $(BPFOBJ)
193$(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED): $(BPFOBJ)
198
194
199$(OUTPUT)/test_dev_cgroup: cgroup_helpers.c
200$(OUTPUT)/test_skb_cgroup_id_user: cgroup_helpers.c
201$(OUTPUT)/test_sock: cgroup_helpers.c
202$(OUTPUT)/test_sock_addr: cgroup_helpers.c
203$(OUTPUT)/test_sockmap: cgroup_helpers.c
204$(OUTPUT)/test_tcpnotify_user: cgroup_helpers.c trace_helpers.c
205$(OUTPUT)/get_cgroup_id_user: cgroup_helpers.c
206$(OUTPUT)/test_cgroup_storage: cgroup_helpers.c
207$(OUTPUT)/test_sock_fields: cgroup_helpers.c
208$(OUTPUT)/test_sysctl: cgroup_helpers.c
195$(OUTPUT)/test_dev_cgroup: cgroup_helpers.c testing_helpers.o
196$(OUTPUT)/test_skb_cgroup_id_user: cgroup_helpers.c testing_helpers.o
197$(OUTPUT)/test_sock: cgroup_helpers.c testing_helpers.o
198$(OUTPUT)/test_sock_addr: cgroup_helpers.c testing_helpers.o
199$(OUTPUT)/test_sockmap: cgroup_helpers.c testing_helpers.o
200$(OUTPUT)/test_tcpnotify_user: cgroup_helpers.c trace_helpers.c testing_helpers.o
201$(OUTPUT)/get_cgroup_id_user: cgroup_helpers.c testing_helpers.o
202$(OUTPUT)/test_cgroup_storage: cgroup_helpers.c testing_helpers.o
203$(OUTPUT)/test_sock_fields: cgroup_helpers.c testing_helpers.o
204$(OUTPUT)/test_sysctl: cgroup_helpers.c testing_helpers.o
205$(OUTPUT)/test_tag: testing_helpers.o
206$(OUTPUT)/test_lirc_mode2_user: testing_helpers.o
207$(OUTPUT)/xdping: testing_helpers.o
208$(OUTPUT)/flow_dissector_load: testing_helpers.o
209$(OUTPUT)/test_maps: testing_helpers.o
210$(OUTPUT)/test_verifier: testing_helpers.o
209
210BPFTOOL ?= $(DEFAULT_BPFTOOL)
211$(DEFAULT_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) \
212 $(HOST_BPFOBJ) | $(HOST_BUILD_DIR)/bpftool
213 $(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \
214 CC=$(HOSTCC) LD=$(HOSTLD) \
215 EXTRA_CFLAGS='-g -O0' \
216 OUTPUT=$(HOST_BUILD_DIR)/bpftool/ \

--- 9 unchanged lines hidden (view full) ---

226 prefix= OUTPUT=$(OUTPUT)/ DESTDIR=$(OUTPUT)/ $@
227
228docs-clean:
229 $(Q)$(MAKE) $(submake_extras) \
230 -f Makefile.docs \
231 prefix= OUTPUT=$(OUTPUT)/ DESTDIR=$(OUTPUT)/ $@
232
233$(BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \
211
212BPFTOOL ?= $(DEFAULT_BPFTOOL)
213$(DEFAULT_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) \
214 $(HOST_BPFOBJ) | $(HOST_BUILD_DIR)/bpftool
215 $(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \
216 CC=$(HOSTCC) LD=$(HOSTLD) \
217 EXTRA_CFLAGS='-g -O0' \
218 OUTPUT=$(HOST_BUILD_DIR)/bpftool/ \

--- 9 unchanged lines hidden (view full) ---

228 prefix= OUTPUT=$(OUTPUT)/ DESTDIR=$(OUTPUT)/ $@
229
230docs-clean:
231 $(Q)$(MAKE) $(submake_extras) \
232 -f Makefile.docs \
233 prefix= OUTPUT=$(OUTPUT)/ DESTDIR=$(OUTPUT)/ $@
234
235$(BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \
234 ../../../include/uapi/linux/bpf.h \
236 $(APIDIR)/linux/bpf.h \
235 | $(BUILD_DIR)/libbpf
236 $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \
237 EXTRA_CFLAGS='-g -O0' \
238 DESTDIR=$(SCRATCH_DIR) prefix= all install_headers
239
240ifneq ($(BPFOBJ),$(HOST_BPFOBJ))
237 | $(BUILD_DIR)/libbpf
238 $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \
239 EXTRA_CFLAGS='-g -O0' \
240 DESTDIR=$(SCRATCH_DIR) prefix= all install_headers
241
242ifneq ($(BPFOBJ),$(HOST_BPFOBJ))
241$(HOST_BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \
242 ../../../include/uapi/linux/bpf.h \
243 | $(HOST_BUILD_DIR)/libbpf
243$(HOST_BPFOBJ): $(wildcard $(BPFDIR)/*.[ch] $(BPFDIR)/Makefile) \
244 $(APIDIR)/linux/bpf.h \
245 | $(HOST_BUILD_DIR)/libbpf
244 $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) \
245 EXTRA_CFLAGS='-g -O0' \
246 OUTPUT=$(HOST_BUILD_DIR)/libbpf/ CC=$(HOSTCC) LD=$(HOSTLD) \
247 DESTDIR=$(HOST_SCRATCH_DIR)/ prefix= all install_headers
248endif
249
250$(INCLUDE_DIR)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL) | $(INCLUDE_DIR)
251ifeq ($(VMLINUX_H),)

--- 47 unchanged lines hidden (view full) ---

299$(OUTPUT)/flow_dissector_load.o: flow_dissector_load.h
300
301# Build BPF object using Clang
302# $1 - input .c file
303# $2 - output .o file
304# $3 - CFLAGS
305define CLANG_BPF_BUILD_RULE
306 $(call msg,CLNG-BPF,$(TRUNNER_BINARY),$2)
246 $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) \
247 EXTRA_CFLAGS='-g -O0' \
248 OUTPUT=$(HOST_BUILD_DIR)/libbpf/ CC=$(HOSTCC) LD=$(HOSTLD) \
249 DESTDIR=$(HOST_SCRATCH_DIR)/ prefix= all install_headers
250endif
251
252$(INCLUDE_DIR)/vmlinux.h: $(VMLINUX_BTF) $(BPFTOOL) | $(INCLUDE_DIR)
253ifeq ($(VMLINUX_H),)

--- 47 unchanged lines hidden (view full) ---

301$(OUTPUT)/flow_dissector_load.o: flow_dissector_load.h
302
303# Build BPF object using Clang
304# $1 - input .c file
305# $2 - output .o file
306# $3 - CFLAGS
307define CLANG_BPF_BUILD_RULE
308 $(call msg,CLNG-BPF,$(TRUNNER_BINARY),$2)
307 $(Q)$(CLANG) $3 -O2 -target bpf -c $1 -o $2 -mcpu=v3
309 $(Q)$(CLANG) $3 -O2 -target bpf -c $1 -mcpu=v3 -o $2
308endef
309# Similar to CLANG_BPF_BUILD_RULE, but with disabled alu32
310define CLANG_NOALU32_BPF_BUILD_RULE
311 $(call msg,CLNG-BPF,$(TRUNNER_BINARY),$2)
310endef
311# Similar to CLANG_BPF_BUILD_RULE, but with disabled alu32
312define CLANG_NOALU32_BPF_BUILD_RULE
313 $(call msg,CLNG-BPF,$(TRUNNER_BINARY),$2)
312 $(Q)$(CLANG) $3 -O2 -target bpf -c $1 -o $2 -mcpu=v2
314 $(Q)$(CLANG) $3 -O2 -target bpf -c $1 -mcpu=v2 -o $2
313endef
314# Build BPF object using GCC
315define GCC_BPF_BUILD_RULE
316 $(call msg,GCC-BPF,$(TRUNNER_BINARY),$2)
317 $(Q)$(BPF_GCC) $3 -O2 -c $1 -o $2
318endef
319
320SKEL_BLACKLIST := btf__% test_pinning_invalid.c test_sk_assign.c

--- 145 unchanged lines hidden (view full) ---

466
467endef
468
469# Define test_progs test runner.
470TRUNNER_TESTS_DIR := prog_tests
471TRUNNER_BPF_PROGS_DIR := progs
472TRUNNER_EXTRA_SOURCES := test_progs.c cgroup_helpers.c trace_helpers.c \
473 network_helpers.c testing_helpers.c \
315endef
316# Build BPF object using GCC
317define GCC_BPF_BUILD_RULE
318 $(call msg,GCC-BPF,$(TRUNNER_BINARY),$2)
319 $(Q)$(BPF_GCC) $3 -O2 -c $1 -o $2
320endef
321
322SKEL_BLACKLIST := btf__% test_pinning_invalid.c test_sk_assign.c

--- 145 unchanged lines hidden (view full) ---

468
469endef
470
471# Define test_progs test runner.
472TRUNNER_TESTS_DIR := prog_tests
473TRUNNER_BPF_PROGS_DIR := progs
474TRUNNER_EXTRA_SOURCES := test_progs.c cgroup_helpers.c trace_helpers.c \
475 network_helpers.c testing_helpers.c \
474 btf_helpers.c flow_dissector_load.h
476 btf_helpers.c flow_dissector_load.h
475TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko \
476 ima_setup.sh \
477 $(wildcard progs/btf_dump_test_case_*.c)
478TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
477TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko \
478 ima_setup.sh \
479 $(wildcard progs/btf_dump_test_case_*.c)
480TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
479TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS)
480TRUNNER_BPF_CFLAGS += -DENABLE_ATOMICS_TESTS
481TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS) -DENABLE_ATOMICS_TESTS
481$(eval $(call DEFINE_TEST_RUNNER,test_progs))
482
483# Define test_progs-no_alu32 test runner.
484TRUNNER_BPF_BUILD_RULE := CLANG_NOALU32_BPF_BUILD_RULE
485TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS)
486$(eval $(call DEFINE_TEST_RUNNER,test_progs,no_alu32))
487
488# Define test_progs BPF-GCC-flavored test runner.

--- 38 unchanged lines hidden (view full) ---

527 $(Q)$(CC) $(CFLAGS) -O2 -c $(filter %.c,$^) $(LDLIBS) -o $@
528$(OUTPUT)/bench_rename.o: $(OUTPUT)/test_overhead.skel.h
529$(OUTPUT)/bench_trigger.o: $(OUTPUT)/trigger_bench.skel.h
530$(OUTPUT)/bench_ringbufs.o: $(OUTPUT)/ringbuf_bench.skel.h \
531 $(OUTPUT)/perfbuf_bench.skel.h
532$(OUTPUT)/bench_bloom_filter_map.o: $(OUTPUT)/bloom_filter_bench.skel.h
533$(OUTPUT)/bench.o: bench.h testing_helpers.h $(BPFOBJ)
534$(OUTPUT)/bench: LDLIBS += -lm
482$(eval $(call DEFINE_TEST_RUNNER,test_progs))
483
484# Define test_progs-no_alu32 test runner.
485TRUNNER_BPF_BUILD_RULE := CLANG_NOALU32_BPF_BUILD_RULE
486TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS)
487$(eval $(call DEFINE_TEST_RUNNER,test_progs,no_alu32))
488
489# Define test_progs BPF-GCC-flavored test runner.

--- 38 unchanged lines hidden (view full) ---

528 $(Q)$(CC) $(CFLAGS) -O2 -c $(filter %.c,$^) $(LDLIBS) -o $@
529$(OUTPUT)/bench_rename.o: $(OUTPUT)/test_overhead.skel.h
530$(OUTPUT)/bench_trigger.o: $(OUTPUT)/trigger_bench.skel.h
531$(OUTPUT)/bench_ringbufs.o: $(OUTPUT)/ringbuf_bench.skel.h \
532 $(OUTPUT)/perfbuf_bench.skel.h
533$(OUTPUT)/bench_bloom_filter_map.o: $(OUTPUT)/bloom_filter_bench.skel.h
534$(OUTPUT)/bench.o: bench.h testing_helpers.h $(BPFOBJ)
535$(OUTPUT)/bench: LDLIBS += -lm
535$(OUTPUT)/bench: $(OUTPUT)/bench.o $(OUTPUT)/testing_helpers.o \
536$(OUTPUT)/bench: $(OUTPUT)/bench.o \
537 $(OUTPUT)/testing_helpers.o \
538 $(OUTPUT)/trace_helpers.o \
536 $(OUTPUT)/bench_count.o \
537 $(OUTPUT)/bench_rename.o \
538 $(OUTPUT)/bench_trigger.o \
539 $(OUTPUT)/bench_ringbufs.o \
540 $(OUTPUT)/bench_bloom_filter_map.o
541 $(call msg,BINARY,,$@)
539 $(OUTPUT)/bench_count.o \
540 $(OUTPUT)/bench_rename.o \
541 $(OUTPUT)/bench_trigger.o \
542 $(OUTPUT)/bench_ringbufs.o \
543 $(OUTPUT)/bench_bloom_filter_map.o
544 $(call msg,BINARY,,$@)
542 $(Q)$(CC) $(LDFLAGS) -o $@ $(filter %.a %.o,$^) $(LDLIBS)
545 $(Q)$(CC) $(LDFLAGS) $(filter %.a %.o,$^) $(LDLIBS) -o $@
543
544EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(SCRATCH_DIR) $(HOST_SCRATCH_DIR) \
545 prog_tests/tests.h map_tests/tests.h verifier/tests.h \
546 feature \
547 $(addprefix $(OUTPUT)/,*.o *.skel.h *.lskel.h no_alu32 bpf_gcc bpf_testmod.ko)
548
549.PHONY: docs docs-clean
546
547EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(SCRATCH_DIR) $(HOST_SCRATCH_DIR) \
548 prog_tests/tests.h map_tests/tests.h verifier/tests.h \
549 feature \
550 $(addprefix $(OUTPUT)/,*.o *.skel.h *.lskel.h no_alu32 bpf_gcc bpf_testmod.ko)
551
552.PHONY: docs docs-clean