Lines Matching +full:ext +full:- +full:gen

1 # SPDX-License-Identifier: GPL-2.0
18 GENFLAGS := -DHAVE_GENHDR
23 LLVM_OBJCOPY ?= llvm-objcopy
24 BPF_GCC ?= $(shell command -v bpf-gcc;)
26 CFLAGS += -g -rdynamic -Wall -O2 $(GENFLAGS) $(SAN_CFLAGS) \
27 -I$(CURDIR) -I$(INCLUDE_DIR) -I$(GENDIR) -I$(LIBDIR) \
28 -I$(TOOLSINCDIR) -I$(APIDIR) \
29 -Dbpf_prog_load=bpf_prog_test_load \
30 -Dbpf_load_program=bpf_test_load_program
31 LDLIBS += -lcap -lelf -lz -lrt -lpthread
39 test_progs-no_alu32 \
42 # Also test bpf-gcc, if present
44 TEST_GEN_PROGS += test_progs-bpf_gcc
88 # $1 - generic step name (e.g., CC, LINK, etc);
89 # $2 - optional "flavor" specifier; if provided, will be emitted as [flavor];
90 # $3 - target (assumed to be file); only file name will be emitted;
91 # $4 - optional extra arg, emitted as-is, if provided.
97 msg = @printf ' %-8s%s %s%s\n' "$(1)" "$(if $(2), [$(2)])" "$(notdir $(3))" "$(if $(4), $(4))";
98 MAKEFLAGS += --no-print-directory
106 $(Q)$(RM) -r $(TEST_GEN_PROGS) $(TEST_GEN_PROGS_EXTENDED) $(TEST_GEN_FILES) $(EXTRA_CLEAN)
129 $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
133 $(Q)$(LINK.c) $^ $(LDLIBS) -o $@
137 $(Q)$(CC) $(LDFLAGS) -o $@ $< $(LDLIBS) -Wl,--build-id=sha1
141 $(Q)$(CC) -c $(CFLAGS) -o $@ $<
147 /boot/vmlinux-$(shell uname -r)
153 $(Q)$(MAKE) $(submake_extras) -C $(TOOLSDIR)/bpf/runqslower \
177 $(Q)$(MAKE) $(submake_extras) -C $(BPFTOOLDIR) \
180 $(Q)mkdir -p $(BUILD_DIR)/bpftool/Documentation
181 $(Q)RST2MAN_OPTS="--exit-status=1" $(MAKE) $(submake_extras) \
182 -C $(BPFTOOLDIR)/Documentation \
189 $(Q)$(MAKE) $(submake_extras) -C $(BPFDIR) OUTPUT=$(BUILD_DIR)/libbpf/ \
194 $(Q)mkdir -p $@
198 $(call msg,GEN,,$@)
212 $(Q)$(MAKE) $(submake_extras) -C $(TOOLSDIR)/bpf/resolve_btfids \
216 # '-target bpf'. This fixes "missing" files on some architectures/distros,
219 # Use '-idirafter': Don't interfere with include mechanics except where the
222 $(shell $(1) -v -E - </dev/null 2>&1 \
223 | sed -n '/<...> search starts here:/,/End of search list./{ s| \(/.*\)|-idirafter \1|p }')
227 IS_LITTLE_ENDIAN = $(shell $(CC) -dM -E - </dev/null | \
229 MENDIAN=$(if $(IS_LITTLE_ENDIAN),-mlittle-endian,-mbig-endian)
232 BPF_CFLAGS = -g -D__TARGET_ARCH_$(SRCARCH) $(MENDIAN) \
233 -I$(INCLUDE_DIR) -I$(CURDIR) -I$(APIDIR) \
234 -I$(abspath $(OUTPUT)/../usr/include)
237 -Wno-compare-distinct-pointer-types
239 $(OUTPUT)/test_l4lb_noinline.o: BPF_CFLAGS += -fno-inline
240 $(OUTPUT)/test_xdp_noinline.o: BPF_CFLAGS += -fno-inline
245 # $1 - input .c file
246 # $2 - output .o file
247 # $3 - CFLAGS
248 # $4 - LDFLAGS
250 $(call msg,CLNG-LLC,$(TRUNNER_BINARY),$2)
251 $(Q)($(CLANG) $3 -O2 -target bpf -emit-llvm \
252 -c $1 -o - || echo "BPF obj compilation failed") | \
253 $(LLC) -mattr=dwarfris -march=bpf -mcpu=v3 $4 -filetype=obj -o $2
257 $(call msg,CLNG-LLC,$(TRUNNER_BINARY),$2)
258 $(Q)($(CLANG) $3 -O2 -target bpf -emit-llvm \
259 -c $1 -o - || echo "BPF obj compilation failed") | \
260 $(LLC) -march=bpf -mcpu=v2 $4 -filetype=obj -o $2
264 $(call msg,CLNG-BPF,$(TRUNNER_BINARY),$2)
265 $(Q)($(CLANG) $3 -O2 -emit-llvm \
266 -c $1 -o - || echo "BPF obj compilation failed") | \
267 $(LLC) -march=bpf -mcpu=v3 $4 -filetype=obj -o $2
271 $(call msg,GCC-BPF,$(TRUNNER_BINARY),$2)
272 $(Q)$(BPF_GCC) $3 $4 -O2 -c $1 -o $2
280 # $1 - test runner base binary name (e.g., test_progs)
281 # $2 - test runner extra "flavor" (e.g., no_alu32, gcc-bpf, etc)
285 TRUNNER_BINARY := $1$(if $2,-)$2
295 $$(filter-out $(SKEL_BLACKLIST), \
306 # $1 - test runner base binary name (e.g., test_progs)
307 # $2 - test runner extra "flavor" (e.g., no_alu32, gcc-bpf, etc)
310 ifeq ($($(TRUNNER_OUTPUT)-dir),)
311 $(TRUNNER_OUTPUT)-dir := y
314 $(Q)mkdir -p $$@
319 ifeq ($($(TRUNNER_BPF_PROGS_DIR)$(if $2,-)$2-bpfobjs),)
320 $(TRUNNER_BPF_PROGS_DIR)$(if $2,-)$2-bpfobjs := y
333 $$(call msg,GEN-SKEL,$(TRUNNER_BINARY),$$@)
334 $(Q)$$(BPFTOOL) gen skeleton $$< > $$@
338 ifeq ($($(TRUNNER_TESTS_DIR)-tests-hdr),)
339 $(TRUNNER_TESTS_DIR)-tests-hdr := y
341 $$(call msg,TEST-HDR,$(TRUNNER_BINARY),$$@)
345 sed -e 's@\([^\.]*\)\.c@DEFINE_TEST(\1)@'; \
357 $$(call msg,TEST-OBJ,$(TRUNNER_BINARY),$$@)
358 $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -c $(CURDIR)/$$< $$(LDLIBS) -o $$(@F)
365 $$(call msg,EXT-OBJ,$(TRUNNER_BINARY),$$@)
366 $(Q)$$(CC) $$(CFLAGS) -c $$< $$(LDLIBS) -o $$@
369 $(TRUNNER_BINARY)-extras: $(TRUNNER_EXTRA_FILES) | $(TRUNNER_OUTPUT)
371 $$(call msg,EXT-COPY,$(TRUNNER_BINARY),$(TRUNNER_EXTRA_FILES))
372 $(Q)cp -a $$^ $(TRUNNER_OUTPUT)/
378 | $(TRUNNER_BINARY)-extras
380 $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) -o $$@
381 $(Q)$(RESOLVE_BTFIDS) --no-fail --btf btf_data.o $$@
395 TRUNNER_BPF_LDFLAGS := -mattr=+alu32
398 # Define test_progs-no_alu32 test runner.
403 # Define test_progs BPF-GCC-flavored test runner.
429 ls *.c 2> /dev/null | sed -e 's@\(.*\)@#include \"\1\"@'; \
434 $(Q)$(CC) $(CFLAGS) $(filter %.a %.o %.c,$^) $(LDLIBS) -o $@
439 $(Q)$(CXX) $(CFLAGS) $^ $(LDLIBS) -o $@
444 $(Q)$(CC) $(CFLAGS) -c $(filter %.c,$^) $(LDLIBS) -o $@
450 $(OUTPUT)/bench: LDLIBS += -lm
457 $(Q)$(CC) $(LDFLAGS) -o $@ $(filter %.a %.o,$^) $(LDLIBS)