Blame SOURCES/bpftrace-0.13.1-Fix-libbtf-0.6.0-build.patch

50b5d1
From d26accaba6f911cf82be7e9791bf6440213c5627 Mon Sep 17 00:00:00 2001
50b5d1
From: Jerome Marchand <jmarchan@redhat.com>
50b5d1
Date: Wed, 23 Mar 2022 09:47:25 +0100
50b5d1
Subject: [PATCH 4/6] Fix libbtf 0.6.0 build
50b5d1
50b5d1
Libbtf 0.6.0 introduced a new version of btf_dump__new(). The new
50b5d1
version is btf_dump__new_v0_6_0() while the old version was renamed
50b5d1
btf_dump__new_deprecated(). btf_dump__new() is now overloaded,
50b5d1
unfortunately the macro doesn't work on cpp, at least with LLVM 12.
50b5d1
Let's call btf_dump__new_deprecated() explicitely when it's defined.
50b5d1
50b5d1
Signed-off-by: Jerome Marchand <jmarchan@redhat.com>
50b5d1
---
50b5d1
 src/btf.cpp | 9 +++++++++
50b5d1
 1 file changed, 9 insertions(+)
50b5d1
50b5d1
diff --git a/src/btf.cpp b/src/btf.cpp
50b5d1
index a5a5e2c0..fccf0a00 100644
50b5d1
--- a/src/btf.cpp
50b5d1
+++ b/src/btf.cpp
50b5d1
@@ -24,6 +24,15 @@
50b5d1
 #pragma GCC diagnostic pop
50b5d1
 #include <bpf/libbpf.h>
50b5d1
 
50b5d1
+/*
50b5d1
+ * Since libbtf 0.6, btf_dump__new() has been overloaded and now can design
50b5d1
+ * either btf_dump__new_v0_6_0() or btf_dump__new_deprecated(), which is the
50b5d1
+ * same as btf_dump__new() for libbtf < 0.6, and the one we still use.
50b5d1
+ */
50b5d1
+#if LIBBPF_MAJOR_VERSION == 0 && LIBBPF_MINOR_VERSION >= 6
50b5d1
+#define btf_dump__new(a1, a2, a3, a4) btf_dump__new_deprecated(a1, a2, a3, a4)
50b5d1
+#endif
50b5d1
+
50b5d1
 #include "bpftrace.h"
50b5d1
 
50b5d1
 namespace bpftrace {
50b5d1
-- 
50b5d1
2.35.3
50b5d1