In version 0.7 the old API is deprecated and without this patch the testsuite fails to build with -Werror with this version. Signed-off-by: Ondrej Mosnacek <omosnace@xxxxxxxxxx> --- tests/bpf/bpf_common.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/tests/bpf/bpf_common.c b/tests/bpf/bpf_common.c index f499034..88aae2f 100644 --- a/tests/bpf/bpf_common.c +++ b/tests/bpf/bpf_common.c @@ -1,12 +1,28 @@ #include "bpf_common.h" +/* + * v0.7 deprecates some functions in favor of a new API (introduced in v0.6). + * Make this work with both to satisfy -Werror (and older distros). + */ +#if defined(LIBBPF_MAJOR_VERSION) +#if LIBBPF_MAJOR_VERSION > 0 || (LIBBPF_MAJOR_VERSION == 0 && \ + LIBBPF_MINOR_VERSION > 6) +#define USE_NEW_API +#endif +#endif + int create_bpf_map(void) { int map_fd, key; long long value = 0; +#ifdef USE_NEW_API + map_fd = bpf_map_create(BPF_MAP_TYPE_ARRAY, NULL, sizeof(key), + sizeof(value), 256, NULL); +#else map_fd = bpf_create_map(BPF_MAP_TYPE_ARRAY, sizeof(key), sizeof(value), 256, 0); +#endif if (map_fd < 0) { fprintf(stderr, "Failed to create BPF map: %s\n", strerror(errno)); @@ -18,17 +34,20 @@ int create_bpf_map(void) int create_bpf_prog(void) { - int prog_fd; - size_t insns_cnt; - struct bpf_insn prog[] = { BPF_MOV64_IMM(BPF_REG_0, 1), BPF_EXIT_INSN(), }; - insns_cnt = sizeof(prog) / sizeof(struct bpf_insn); + size_t insns_cnt = sizeof(prog) / sizeof(struct bpf_insn); + int prog_fd; +#ifdef USE_NEW_API + prog_fd = bpf_prog_load(BPF_PROG_TYPE_SOCKET_FILTER, NULL, "GPF", + prog, insns_cnt, NULL); +#else prog_fd = bpf_load_program(BPF_PROG_TYPE_SOCKET_FILTER, prog, insns_cnt, "GPL", 0, NULL, 0); +#endif if (prog_fd < 0) { fprintf(stderr, "Failed to load BPF prog: %s\n", -- 2.35.1