You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
864db336c6
V2: Moved program into selftests/bpf from tools/libbpf This program can be used on its own for testing/debugging if a BPF ELF-object file can be loaded with libbpf (from tools/lib/bpf). If something is wrong with the ELF object, the program have a --debug mode that will display the ELF sections and especially the skipped sections. This allows for quickly identifying the problematic ELF section number, which can be corrolated with the readelf tool. The program signal error via return codes, and also have a --quiet mode, which is practical for use in scripts like selftests/bpf. Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
65 lines
1.8 KiB
Makefile
65 lines
1.8 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
LIBDIR := ../../../lib
|
|
BPFDIR := $(LIBDIR)/bpf
|
|
APIDIR := ../../../include/uapi
|
|
GENDIR := ../../../../include/generated
|
|
GENHDR := $(GENDIR)/autoconf.h
|
|
|
|
ifneq ($(wildcard $(GENHDR)),)
|
|
GENFLAGS := -DHAVE_GENHDR
|
|
endif
|
|
|
|
CFLAGS += -Wall -O2 -I$(APIDIR) -I$(LIBDIR) -I$(GENDIR) $(GENFLAGS) -I../../../include
|
|
LDLIBS += -lcap -lelf -lrt -lpthread
|
|
|
|
TEST_GEN_PROGS = test_verifier test_tag test_maps test_lru_map test_lpm_map test_progs \
|
|
test_align test_verifier_log test_dev_cgroup test_tcpbpf_user
|
|
|
|
TEST_GEN_FILES = test_pkt_access.o test_xdp.o test_l4lb.o test_tcp_estats.o test_obj_id.o \
|
|
test_pkt_md_access.o test_xdp_redirect.o test_xdp_meta.o sockmap_parse_prog.o \
|
|
sockmap_verdict_prog.o dev_cgroup.o sample_ret0.o test_tracepoint.o \
|
|
test_l4lb_noinline.o test_xdp_noinline.o test_stacktrace_map.o \
|
|
sample_map_ret0.o test_tcpbpf_kern.o test_libbpf_open
|
|
|
|
TEST_PROGS := test_kmod.sh test_xdp_redirect.sh test_xdp_meta.sh \
|
|
test_offload.py
|
|
|
|
include ../lib.mk
|
|
|
|
BPFOBJ := $(OUTPUT)/libbpf.a cgroup_helpers.c
|
|
|
|
$(TEST_GEN_PROGS): $(BPFOBJ)
|
|
|
|
.PHONY: force
|
|
|
|
# force a rebuild of BPFOBJ when its dependencies are updated
|
|
force:
|
|
|
|
$(BPFOBJ): force
|
|
$(MAKE) -C $(BPFDIR) OUTPUT=$(OUTPUT)/
|
|
|
|
CLANG ?= clang
|
|
LLC ?= llc
|
|
|
|
PROBE := $(shell $(LLC) -march=bpf -mcpu=probe -filetype=null /dev/null 2>&1)
|
|
|
|
# Let newer LLVM versions transparently probe the kernel for availability
|
|
# of full BPF instruction set.
|
|
ifeq ($(PROBE),)
|
|
CPU ?= probe
|
|
else
|
|
CPU ?= generic
|
|
endif
|
|
|
|
CLANG_FLAGS = -I. -I./include/uapi -I../../../include/uapi \
|
|
-Wno-compare-distinct-pointer-types
|
|
|
|
$(OUTPUT)/test_l4lb_noinline.o: CLANG_FLAGS += -fno-inline
|
|
$(OUTPUT)/test_xdp_noinline.o: CLANG_FLAGS += -fno-inline
|
|
|
|
$(OUTPUT)/%.o: %.c
|
|
$(CLANG) $(CLANG_FLAGS) \
|
|
-O2 -target bpf -emit-llvm -c $< -o - | \
|
|
$(LLC) -march=bpf -mcpu=$(CPU) -filetype=obj -o $@
|