From: Daan De Meyer Date: Fri, 9 Sep 2022 08:38:03 +0000 (+0200) Subject: Try to load libbpf.so.1 as well X-Git-Tag: v252-rc1~7^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a967e28873816806a8f1e7c6c7d1ac28369f8b9;p=thirdparty%2Fsystemd.git Try to load libbpf.so.1 as well libbpf had a soname bump. Our usage of libbpf is compatible with both libbpf.so.0 and libbpf.so.1, so let's try to load from both. --- diff --git a/src/shared/bpf-dlopen.c b/src/shared/bpf-dlopen.c index 07c237cc2f1..ad5432a9494 100644 --- a/src/shared/bpf-dlopen.c +++ b/src/shared/bpf-dlopen.c @@ -3,6 +3,7 @@ #include "dlfcn-util.h" #include "bpf-dlopen.h" #include "log.h" +#include "strv.h" #if HAVE_LIBBPF static void *bpf_dl = NULL; @@ -45,8 +46,9 @@ static int bpf_print_func(enum libbpf_print_level level, const char *fmt, va_lis int dlopen_bpf(void) { int r; - r = dlopen_many_sym_or_warn( - &bpf_dl, "libbpf.so.0", LOG_DEBUG, + FOREACH_STRING(f, "libbpf.so.1", "libbpf.so.0") { + r = dlopen_many_sym_or_warn( + &bpf_dl, f, LOG_DEBUG, DLSYM_ARG(bpf_link__destroy), DLSYM_ARG(bpf_link__fd), DLSYM_ARG(bpf_map__fd), @@ -67,6 +69,9 @@ int dlopen_bpf(void) { DLSYM_ARG(libbpf_probe_bpf_prog_type), DLSYM_ARG(libbpf_set_print), DLSYM_ARG(libbpf_get_error)); + if (r >= 0) + break; + } if (r < 0) return r;