# detecting libbpf without LIBBPF_DYNAMIC, so make VF=1 shows libbpf detection status
$(call feature_check,libbpf)
+
+ # Feature test requires libbpf 1.0 so we can assume the following:
+ CFLAGS += -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID
+ CFLAGS += -DHAVE_LIBBPF_BPF_PROG_LOAD
+ CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM
+ CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP
+ CFLAGS += -DHAVE_LIBBPF_BPF_PROGRAM__SET_INSNS
+ CFLAGS += -DHAVE_LIBBPF_BTF__RAW_DATA
+ CFLAGS += -DHAVE_LIBBPF_BPF_MAP_CREATE
+
ifdef LIBBPF_DYNAMIC
ifeq ($(feature-libbpf), 1)
EXTLIBS += -lbpf
$(call detected,CONFIG_LIBBPF_DYNAMIC)
-
- $(call feature_check,libbpf-btf__load_from_kernel_by_id)
- ifeq ($(feature-libbpf-btf__load_from_kernel_by_id), 1)
- CFLAGS += -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID
- endif
- $(call feature_check,libbpf-bpf_prog_load)
- ifeq ($(feature-libbpf-bpf_prog_load), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_PROG_LOAD
- endif
- $(call feature_check,libbpf-bpf_object__next_program)
- ifeq ($(feature-libbpf-bpf_object__next_program), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM
- endif
- $(call feature_check,libbpf-bpf_object__next_map)
- ifeq ($(feature-libbpf-bpf_object__next_map), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP
- endif
- $(call feature_check,libbpf-bpf_program__set_insns)
- ifeq ($(feature-libbpf-bpf_program__set_insns), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_PROGRAM__SET_INSNS
- else
- dummy := $(error Error: libbpf devel library needs to be >= 0.8.0 to build with LIBBPF_DYNAMIC, update or build statically with the version that comes with the kernel sources);
- endif
- $(call feature_check,libbpf-btf__raw_data)
- ifeq ($(feature-libbpf-btf__raw_data), 1)
- CFLAGS += -DHAVE_LIBBPF_BTF__RAW_DATA
- endif
- $(call feature_check,libbpf-bpf_map_create)
- ifeq ($(feature-libbpf-bpf_map_create), 1)
- CFLAGS += -DHAVE_LIBBPF_BPF_MAP_CREATE
- endif
else
- dummy := $(error Error: No libbpf devel library found, please install libbpf-devel);
+ dummy := $(error Error: No libbpf devel library found or older than v1.0, please install/update libbpf-devel);
endif
else
# Libbpf will be built as a static library from tools/lib/bpf.
LIBBPF_STATIC := 1
- CFLAGS += -DHAVE_LIBBPF_BTF__LOAD_FROM_KERNEL_BY_ID
- CFLAGS += -DHAVE_LIBBPF_BPF_PROG_LOAD
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_PROGRAM
- CFLAGS += -DHAVE_LIBBPF_BPF_OBJECT__NEXT_MAP
- CFLAGS += -DHAVE_LIBBPF_BPF_PROGRAM__SET_INSNS
- CFLAGS += -DHAVE_LIBBPF_BTF__RAW_DATA
- CFLAGS += -DHAVE_LIBBPF_BPF_MAP_CREATE
endif
endif