From ea715742ad158a993b72322b9fedd829fbe2edf0 Mon Sep 17 00:00:00 2001 From: Viktor Malik Date: Mon, 6 Nov 2023 07:57:51 +0100 Subject: [PATCH] Rebuild for LLVM 17 Resolves: RHEL-10690 --- ...-0.16.0-Adjust-to-build-with-llvm-17.patch | 90 +++++++++++++++++++ bpftrace.spec | 7 +- 2 files changed, 96 insertions(+), 1 deletion(-) create mode 100644 bpftrace-0.16.0-Adjust-to-build-with-llvm-17.patch diff --git a/bpftrace-0.16.0-Adjust-to-build-with-llvm-17.patch b/bpftrace-0.16.0-Adjust-to-build-with-llvm-17.patch new file mode 100644 index 0000000..966f9a1 --- /dev/null +++ b/bpftrace-0.16.0-Adjust-to-build-with-llvm-17.patch @@ -0,0 +1,90 @@ +From 45f0302773923accd7cc324d839b733c27c92f38 Mon Sep 17 00:00:00 2001 +From: Khem Raj +Date: Thu, 6 Jul 2023 08:59:41 -0700 +Subject: [PATCH] Adjust to build with llvm 17 + +- PassManagerBuilder has been removed +- itaniumDemangle() API signature has changed +- update MAX_LLVM_MAJOR in CMakeLists.txt +- update bcc and libbpf submodules to their latest versions to allow + building bcc with llvm 17 +- replaced JITEvaluatedSymbol by ExecutorSymbolDef in ORC + +Signed-off-by: Khem Raj +Signed-off-by: Viktor Malik +--- + CMakeLists.txt | 2 +- + src/ast/bpforc/bpforc.h | 2 +- + src/ast/passes/codegen_llvm.cpp | 4 ++++ + src/cxxdemangler/cxxdemangler_llvm.cpp | 4 ++++ + 4 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 433153be..a11a5c36 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -169,7 +169,7 @@ else() + endif() + + set(MIN_LLVM_MAJOR 6) +- set(MAX_LLVM_MAJOR 16) ++ set(MAX_LLVM_MAJOR 17) + + if((${LLVM_VERSION_MAJOR} VERSION_LESS ${MIN_LLVM_MAJOR}) OR (${LLVM_VERSION_MAJOR} VERSION_GREATER ${MAX_LLVM_MAJOR})) + message(SEND_ERROR "Unsupported LLVM version found via ${LLVM_INCLUDE_DIRS}: ${LLVM_VERSION_MAJOR}") +diff --git a/src/ast/bpforc/bpforc.h b/src/ast/bpforc/bpforc.h +index 58914419..8d2f1e63 100644 +--- a/src/ast/bpforc/bpforc.h ++++ b/src/ast/bpforc/bpforc.h +@@ -157,7 +157,7 @@ public: + } + + #ifdef LLVM_ORC_V2 +- Expected lookup(StringRef Name) ++ Expected lookup(StringRef Name) + { + return ES->lookup({ &MainJD }, Mangle(Name.str())); + } +diff --git a/src/ast/passes/codegen_llvm.cpp b/src/ast/passes/codegen_llvm.cpp +index 2b888087..a75a0fd1 100644 +--- a/src/ast/passes/codegen_llvm.cpp ++++ b/src/ast/passes/codegen_llvm.cpp +@@ -7,7 +7,9 @@ + #include + #include + ++#if LLVM_VERSION_MAJOR <= 16 + #include ++#endif + #include + #include + #include +@@ -17,7 +19,9 @@ + #include + #endif + #include ++#if LLVM_VERSION_MAJOR <= 16 + #include ++#endif + + #include "arch/arch.h" + #include "ast.h" +diff --git a/src/cxxdemangler/cxxdemangler_llvm.cpp b/src/cxxdemangler/cxxdemangler_llvm.cpp +index e9a9db24..1b0bf7ea 100644 +--- a/src/cxxdemangler/cxxdemangler_llvm.cpp ++++ b/src/cxxdemangler/cxxdemangler_llvm.cpp +@@ -6,7 +6,11 @@ namespace bpftrace { + + char* cxxdemangle(const char* mangled) + { ++#if LLVM_VERSION_MAJOR <= 16 + return llvm::itaniumDemangle(mangled, nullptr, nullptr, nullptr); ++#else ++ return llvm::itaniumDemangle(mangled); ++#endif + } + + } // namespace bpftrace +-- +2.41.0 + diff --git a/bpftrace.spec b/bpftrace.spec index 5dd8fdc..65213ea 100644 --- a/bpftrace.spec +++ b/bpftrace.spec @@ -2,7 +2,7 @@ Name: bpftrace Version: 0.16.0 -Release: 4%{?dist} +Release: 5%{?dist} Summary: High-level tracing language for Linux eBPF License: ASL 2.0 @@ -20,6 +20,7 @@ Patch1: %{name}-%{version}-tools-old-mdflush.bt-fix-BPFTRACE_HAVE_BTF-ma Patch2: %{name}-%{version}-tcpdrop-Fix-ERROR-Error-attaching-probe-kprobe-tcp_d.patch Patch3: %{name}-%{version}-RHEL8-remove-not-existing-attachpoints-from-tools.patch Patch4: %{name}-%{version}-cmake-Raise-max-llvm-major-version-to-16.patch +Patch5: %{name}-%{version}-Adjust-to-build-with-llvm-17.patch Patch10: %{name}-%{version}-RHEL-8-aarch64-fixes-statsnoop-and-opensnoop.patch # Arches will be included as upstream support is added and dependencies are @@ -111,6 +112,10 @@ cp %{buildroot}/%{_datadir}/%{name}/tools/old/mdflush.bt %{buildroot}/%{_datadir %exclude %{_datadir}/%{name}/tools/old %changelog +* Mon Nov 06 2023 - 0.16.0-5 +- Rebuild for LLVM17 +- Resolves: RHEL-10690 + * Fri Jun 09 2023 Viktor Malik - 0.16.0-3 - Add forgotten patch raising LLVM version in CMake - Resolves: rhbz#2192950