perf bpf: Provide a weak btf__load_from_kernel_by_id() for older libbpf versions
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 10 Sep 2021 20:26:53 +0000 (17:26 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 10 Sep 2021 21:32:04 +0000 (18:32 -0300)
The btf__get_from_id() function was deprecated in favour of
btf__load_from_kernel_by_id(), but it is still avaiable, so use it to
provide a weak function btf__load_from_kernel_by_id() for older libbpf
when building perf with LIBBPF_DYNAMIC=1, i.e. using the system's libbpf
package.

Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/bpf-event.c

index 996d025..683f6d6 100644 (file)
 #include "record.h"
 #include "util/synthetic-events.h"
 
 #include "record.h"
 #include "util/synthetic-events.h"
 
+struct btf * __weak btf__load_from_kernel_by_id(__u32 id)
+{
+       struct btf *btf;
+       int err = btf__get_from_id(id, &btf);
+
+       return err ? ERR_PTR(err) : btf;
+}
+
 #define ptr_to_u64(ptr)    ((__u64)(unsigned long)(ptr))
 
 static int snprintf_hex(char *buf, size_t size, unsigned char *data, size_t len)
 #define ptr_to_u64(ptr)    ((__u64)(unsigned long)(ptr))
 
 static int snprintf_hex(char *buf, size_t size, unsigned char *data, size_t len)