Makefile (dd84cfff3cc3b79c9d616f85bd1178df135cbd1a) Makefile (2b4b2621fd6401865b31b9f403e4b936b7439e94)
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 .)

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

77TEST_PROGS_EXTENDED := with_addr.sh \
78 with_tunnels.sh ima_setup.sh \
79 test_xdp_vlan.sh test_bpftool.py
80
81# Compile but not part of 'make run_tests'
82TEST_GEN_PROGS_EXTENDED = test_sock_addr test_skb_cgroup_id_user \
83 flow_dissector_load test_flow_dissector test_tcp_check_syncookie_user \
84 test_lirc_mode2_user xdping test_cpp runqslower bench bpf_testmod.ko \
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 .)

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

77TEST_PROGS_EXTENDED := with_addr.sh \
78 with_tunnels.sh ima_setup.sh \
79 test_xdp_vlan.sh test_bpftool.py
80
81# Compile but not part of 'make run_tests'
82TEST_GEN_PROGS_EXTENDED = test_sock_addr test_skb_cgroup_id_user \
83 flow_dissector_load test_flow_dissector test_tcp_check_syncookie_user \
84 test_lirc_mode2_user xdping test_cpp runqslower bench bpf_testmod.ko \
85 xdpxceiver xdp_redirect_multi
85 xdpxceiver xdp_redirect_multi xdp_synproxy
86
87TEST_CUSTOM_PROGS = $(OUTPUT)/urandom_read
88
89# Emit succinct information message describing current building step
90# $1 - generic step name (e.g., CC, LINK, etc);
91# $2 - optional "flavor" specifier; if provided, will be emitted as [flavor];
92# $3 - target (assumed to be file); only file name will be emitted;
93# $4 - optional extra arg, emitted as-is, if provided.

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

163$(OUTPUT)/%.o: %.c
164 $(call msg,CC,,$@)
165 $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
166
167$(OUTPUT)/%:%.c
168 $(call msg,BINARY,,$@)
169 $(Q)$(LINK.c) $^ $(LDLIBS) -o $@
170
86
87TEST_CUSTOM_PROGS = $(OUTPUT)/urandom_read
88
89# Emit succinct information message describing current building step
90# $1 - generic step name (e.g., CC, LINK, etc);
91# $2 - optional "flavor" specifier; if provided, will be emitted as [flavor];
92# $3 - target (assumed to be file); only file name will be emitted;
93# $4 - optional extra arg, emitted as-is, if provided.

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

163$(OUTPUT)/%.o: %.c
164 $(call msg,CC,,$@)
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# LLVM's ld.lld doesn't support all the architectures, so use it only on x86
172ifeq ($(SRCARCH),x86)
173LLD := lld
174else
175LLD := ld
176endif
177
171# Filter out -static for liburandom_read.so and its dependent targets so that static builds
172# do not fail. Static builds leave urandom_read relying on system-wide shared libraries.
173$(OUTPUT)/liburandom_read.so: urandom_read_lib1.c urandom_read_lib2.c
174 $(call msg,LIB,,$@)
178# Filter out -static for liburandom_read.so and its dependent targets so that static builds
179# do not fail. Static builds leave urandom_read relying on system-wide shared libraries.
180$(OUTPUT)/liburandom_read.so: urandom_read_lib1.c urandom_read_lib2.c
181 $(call msg,LIB,,$@)
175 $(Q)$(CC) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $^ $(LDLIBS) -fPIC -shared -o $@
182 $(Q)$(CLANG) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $^ $(LDLIBS) \
183 -fuse-ld=$(LLD) -Wl,-znoseparate-code -fPIC -shared -o $@
176
177$(OUTPUT)/urandom_read: urandom_read.c urandom_read_aux.c $(OUTPUT)/liburandom_read.so
178 $(call msg,BINARY,,$@)
184
185$(OUTPUT)/urandom_read: urandom_read.c urandom_read_aux.c $(OUTPUT)/liburandom_read.so
186 $(call msg,BINARY,,$@)
179 $(Q)$(CC) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $(filter %.c,$^) \
180 liburandom_read.so $(LDLIBS) \
181 -Wl,-rpath=. -Wl,--build-id=sha1 -o $@
187 $(Q)$(CLANG) $(filter-out -static,$(CFLAGS) $(LDFLAGS)) $(filter %.c,$^) \
188 liburandom_read.so $(LDLIBS) \
189 -fuse-ld=$(LLD) -Wl,-znoseparate-code \
190 -Wl,-rpath=. -Wl,--build-id=sha1 -o $@
182
183$(OUTPUT)/bpf_testmod.ko: $(VMLINUX_BTF) $(wildcard bpf_testmod/Makefile bpf_testmod/*.[ch])
184 $(call msg,MOD,,$@)
185 $(Q)$(RM) bpf_testmod/bpf_testmod.ko # force re-compilation
186 $(Q)$(MAKE) $(submake_extras) -C bpf_testmod
187 $(Q)cp bpf_testmod/bpf_testmod.ko $@
188
189DEFAULT_BPFTOOL := $(HOST_SCRATCH_DIR)/sbin/bpftool

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

216$(OUTPUT)/test_sock_fields: $(CGROUP_HELPERS) $(TESTING_HELPERS)
217$(OUTPUT)/test_sysctl: $(CGROUP_HELPERS) $(TESTING_HELPERS)
218$(OUTPUT)/test_tag: $(TESTING_HELPERS)
219$(OUTPUT)/test_lirc_mode2_user: $(TESTING_HELPERS)
220$(OUTPUT)/xdping: $(TESTING_HELPERS)
221$(OUTPUT)/flow_dissector_load: $(TESTING_HELPERS)
222$(OUTPUT)/test_maps: $(TESTING_HELPERS)
223$(OUTPUT)/test_verifier: $(TESTING_HELPERS) $(CAP_HELPERS)
191
192$(OUTPUT)/bpf_testmod.ko: $(VMLINUX_BTF) $(wildcard bpf_testmod/Makefile bpf_testmod/*.[ch])
193 $(call msg,MOD,,$@)
194 $(Q)$(RM) bpf_testmod/bpf_testmod.ko # force re-compilation
195 $(Q)$(MAKE) $(submake_extras) -C bpf_testmod
196 $(Q)cp bpf_testmod/bpf_testmod.ko $@
197
198DEFAULT_BPFTOOL := $(HOST_SCRATCH_DIR)/sbin/bpftool

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

225$(OUTPUT)/test_sock_fields: $(CGROUP_HELPERS) $(TESTING_HELPERS)
226$(OUTPUT)/test_sysctl: $(CGROUP_HELPERS) $(TESTING_HELPERS)
227$(OUTPUT)/test_tag: $(TESTING_HELPERS)
228$(OUTPUT)/test_lirc_mode2_user: $(TESTING_HELPERS)
229$(OUTPUT)/xdping: $(TESTING_HELPERS)
230$(OUTPUT)/flow_dissector_load: $(TESTING_HELPERS)
231$(OUTPUT)/test_maps: $(TESTING_HELPERS)
232$(OUTPUT)/test_verifier: $(TESTING_HELPERS) $(CAP_HELPERS)
233$(OUTPUT)/xsk.o: $(BPFOBJ)
234$(OUTPUT)/xdpxceiver: $(OUTPUT)/xsk.o
224
225BPFTOOL ?= $(DEFAULT_BPFTOOL)
226$(DEFAULT_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) \
227 $(HOST_BPFOBJ) | $(HOST_BUILD_DIR)/bpftool
228 $(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \
229 ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
230 EXTRA_CFLAGS='-g -O0' \
231 OUTPUT=$(HOST_BUILD_DIR)/bpftool/ \

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

497TRUNNER_TESTS_DIR := prog_tests
498TRUNNER_BPF_PROGS_DIR := progs
499TRUNNER_EXTRA_SOURCES := test_progs.c cgroup_helpers.c trace_helpers.c \
500 network_helpers.c testing_helpers.c \
501 btf_helpers.c flow_dissector_load.h \
502 cap_helpers.c
503TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko \
504 $(OUTPUT)/liburandom_read.so \
235
236BPFTOOL ?= $(DEFAULT_BPFTOOL)
237$(DEFAULT_BPFTOOL): $(wildcard $(BPFTOOLDIR)/*.[ch] $(BPFTOOLDIR)/Makefile) \
238 $(HOST_BPFOBJ) | $(HOST_BUILD_DIR)/bpftool
239 $(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \
240 ARCH= CROSS_COMPILE= CC=$(HOSTCC) LD=$(HOSTLD) \
241 EXTRA_CFLAGS='-g -O0' \
242 OUTPUT=$(HOST_BUILD_DIR)/bpftool/ \

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

508TRUNNER_TESTS_DIR := prog_tests
509TRUNNER_BPF_PROGS_DIR := progs
510TRUNNER_EXTRA_SOURCES := test_progs.c cgroup_helpers.c trace_helpers.c \
511 network_helpers.c testing_helpers.c \
512 btf_helpers.c flow_dissector_load.h \
513 cap_helpers.c
514TRUNNER_EXTRA_FILES := $(OUTPUT)/urandom_read $(OUTPUT)/bpf_testmod.ko \
515 $(OUTPUT)/liburandom_read.so \
516 $(OUTPUT)/xdp_synproxy \
505 ima_setup.sh \
506 $(wildcard progs/btf_dump_test_case_*.c)
507TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
508TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS) -DENABLE_ATOMICS_TESTS
509$(eval $(call DEFINE_TEST_RUNNER,test_progs))
510
511# Define test_progs-no_alu32 test runner.
512TRUNNER_BPF_BUILD_RULE := CLANG_NOALU32_BPF_BUILD_RULE

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

555 $(Q)$(CC) $(CFLAGS) -O2 -c $(filter %.c,$^) $(LDLIBS) -o $@
556$(OUTPUT)/bench_rename.o: $(OUTPUT)/test_overhead.skel.h
557$(OUTPUT)/bench_trigger.o: $(OUTPUT)/trigger_bench.skel.h
558$(OUTPUT)/bench_ringbufs.o: $(OUTPUT)/ringbuf_bench.skel.h \
559 $(OUTPUT)/perfbuf_bench.skel.h
560$(OUTPUT)/bench_bloom_filter_map.o: $(OUTPUT)/bloom_filter_bench.skel.h
561$(OUTPUT)/bench_bpf_loop.o: $(OUTPUT)/bpf_loop_bench.skel.h
562$(OUTPUT)/bench_strncmp.o: $(OUTPUT)/strncmp_bench.skel.h
517 ima_setup.sh \
518 $(wildcard progs/btf_dump_test_case_*.c)
519TRUNNER_BPF_BUILD_RULE := CLANG_BPF_BUILD_RULE
520TRUNNER_BPF_CFLAGS := $(BPF_CFLAGS) $(CLANG_CFLAGS) -DENABLE_ATOMICS_TESTS
521$(eval $(call DEFINE_TEST_RUNNER,test_progs))
522
523# Define test_progs-no_alu32 test runner.
524TRUNNER_BPF_BUILD_RULE := CLANG_NOALU32_BPF_BUILD_RULE

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

567 $(Q)$(CC) $(CFLAGS) -O2 -c $(filter %.c,$^) $(LDLIBS) -o $@
568$(OUTPUT)/bench_rename.o: $(OUTPUT)/test_overhead.skel.h
569$(OUTPUT)/bench_trigger.o: $(OUTPUT)/trigger_bench.skel.h
570$(OUTPUT)/bench_ringbufs.o: $(OUTPUT)/ringbuf_bench.skel.h \
571 $(OUTPUT)/perfbuf_bench.skel.h
572$(OUTPUT)/bench_bloom_filter_map.o: $(OUTPUT)/bloom_filter_bench.skel.h
573$(OUTPUT)/bench_bpf_loop.o: $(OUTPUT)/bpf_loop_bench.skel.h
574$(OUTPUT)/bench_strncmp.o: $(OUTPUT)/strncmp_bench.skel.h
575$(OUTPUT)/bench_bpf_hashmap_full_update.o: $(OUTPUT)/bpf_hashmap_full_update_bench.skel.h
576$(OUTPUT)/bench_local_storage.o: $(OUTPUT)/local_storage_bench.skel.h
577$(OUTPUT)/bench_local_storage_rcu_tasks_trace.o: $(OUTPUT)/local_storage_rcu_tasks_trace_bench.skel.h
563$(OUTPUT)/bench.o: bench.h testing_helpers.h $(BPFOBJ)
564$(OUTPUT)/bench: LDLIBS += -lm
565$(OUTPUT)/bench: $(OUTPUT)/bench.o \
566 $(TESTING_HELPERS) \
567 $(TRACE_HELPERS) \
568 $(OUTPUT)/bench_count.o \
569 $(OUTPUT)/bench_rename.o \
570 $(OUTPUT)/bench_trigger.o \
571 $(OUTPUT)/bench_ringbufs.o \
572 $(OUTPUT)/bench_bloom_filter_map.o \
573 $(OUTPUT)/bench_bpf_loop.o \
578$(OUTPUT)/bench.o: bench.h testing_helpers.h $(BPFOBJ)
579$(OUTPUT)/bench: LDLIBS += -lm
580$(OUTPUT)/bench: $(OUTPUT)/bench.o \
581 $(TESTING_HELPERS) \
582 $(TRACE_HELPERS) \
583 $(OUTPUT)/bench_count.o \
584 $(OUTPUT)/bench_rename.o \
585 $(OUTPUT)/bench_trigger.o \
586 $(OUTPUT)/bench_ringbufs.o \
587 $(OUTPUT)/bench_bloom_filter_map.o \
588 $(OUTPUT)/bench_bpf_loop.o \
574 $(OUTPUT)/bench_strncmp.o
589 $(OUTPUT)/bench_strncmp.o \
590 $(OUTPUT)/bench_bpf_hashmap_full_update.o \
591 $(OUTPUT)/bench_local_storage.o \
592 $(OUTPUT)/bench_local_storage_rcu_tasks_trace.o
575 $(call msg,BINARY,,$@)
576 $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(filter %.a %.o,$^) $(LDLIBS) -o $@
577
578EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(SCRATCH_DIR) $(HOST_SCRATCH_DIR) \
579 prog_tests/tests.h map_tests/tests.h verifier/tests.h \
580 feature bpftool \
593 $(call msg,BINARY,,$@)
594 $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(filter %.a %.o,$^) $(LDLIBS) -o $@
595
596EXTRA_CLEAN := $(TEST_CUSTOM_PROGS) $(SCRATCH_DIR) $(HOST_SCRATCH_DIR) \
597 prog_tests/tests.h map_tests/tests.h verifier/tests.h \
598 feature bpftool \
581 $(addprefix $(OUTPUT)/,*.o *.skel.h *.lskel.h *.subskel.h no_alu32 bpf_gcc bpf_testmod.ko)
599 $(addprefix $(OUTPUT)/,*.o *.skel.h *.lskel.h *.subskel.h \
600 no_alu32 bpf_gcc bpf_testmod.ko \
601 liburandom_read.so)
582
583.PHONY: docs docs-clean
602
603.PHONY: docs docs-clean