summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHolger Hoffstätte <holger@applied-asynchrony.com>2023-03-19 13:40:51 +0100
committerMichał Górny <mgorny@gentoo.org>2023-03-19 18:34:31 +0100
commit25470c4c3bcdad4ae67fbe3a65b21682fe0fe670 (patch)
treef7405cf5141125bb93da3f8f48845be632b4c3e8
parentdev-util/bcc: bump LLVM_MAX_SLOT to 16 (diff)
downloadgentoo-25470c4c3bcdad4ae67fbe3a65b21682fe0fe670.tar.gz
gentoo-25470c4c3bcdad4ae67fbe3a65b21682fe0fe670.tar.bz2
gentoo-25470c4c3bcdad4ae67fbe3a65b21682fe0fe670.zip
dev-util/bpftrace: fixes for llvm-16
Closes: https://bugs.gentoo.org/902135 Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com> Closes: https://github.com/gentoo/gentoo/pull/30234 Signed-off-by: Michał Górny <mgorny@gentoo.org>
-rw-r--r--dev-util/bpftrace/bpftrace-0.17.0-r3.ebuild (renamed from dev-util/bpftrace/bpftrace-0.17.0-r2.ebuild)2
-rw-r--r--dev-util/bpftrace/files/bpftrace-0.17.0-llvm-16.patch26
-rw-r--r--dev-util/bpftrace/files/bpftrace-0.17.0-use-std-optional.patch44
3 files changed, 72 insertions, 0 deletions
diff --git a/dev-util/bpftrace/bpftrace-0.17.0-r2.ebuild b/dev-util/bpftrace/bpftrace-0.17.0-r3.ebuild
index f976f34e8416..161c441420f7 100644
--- a/dev-util/bpftrace/bpftrace-0.17.0-r2.ebuild
+++ b/dev-util/bpftrace/bpftrace-0.17.0-r3.ebuild
@@ -55,6 +55,8 @@ PATCHES=(
"${FILESDIR}/bpftrace-0.17.0-install-libs.patch"
"${FILESDIR}/bpftrace-0.15.0-dont-compress-man.patch"
"${FILESDIR}/bpftrace-0.11.4-old-kernels.patch"
+ "${FILESDIR}/bpftrace-0.17.0-llvm-16.patch"
+ "${FILESDIR}/bpftrace-0.17.0-use-std-optional.patch"
)
pkg_pretend() {
diff --git a/dev-util/bpftrace/files/bpftrace-0.17.0-llvm-16.patch b/dev-util/bpftrace/files/bpftrace-0.17.0-llvm-16.patch
new file mode 100644
index 000000000000..5d845c134bea
--- /dev/null
+++ b/dev-util/bpftrace/files/bpftrace-0.17.0-llvm-16.patch
@@ -0,0 +1,26 @@
+
+From: https://github.com/iovisor/bpftrace/pull/2528
+
+From a91064d7fb26626d79719c2e2a13cc2acab9549a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 10 Mar 2023 00:08:27 -0800
+Subject: [PATCH] cmake: Raise max llvm major version to 16
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0a7914f580d..341ac7e9c1f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -165,7 +165,7 @@ else()
+ endif()
+
+ set(MIN_LLVM_MAJOR 6)
+- set(MAX_LLVM_MAJOR 15)
++ set(MAX_LLVM_MAJOR 16)
+
+ 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/dev-util/bpftrace/files/bpftrace-0.17.0-use-std-optional.patch b/dev-util/bpftrace/files/bpftrace-0.17.0-use-std-optional.patch
new file mode 100644
index 000000000000..21b4b7e6c267
--- /dev/null
+++ b/dev-util/bpftrace/files/bpftrace-0.17.0-use-std-optional.patch
@@ -0,0 +1,44 @@
+
+From: https://github.com/iovisor/bpftrace/pull/2525
+
+From a794397394aa836f776da17c8e08876a2f64d477 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Mar 2023 21:30:27 -0700
+Subject: [PATCH] ast: Use std::optional in CodegenLLVM::CodegenLLVM call
+
+Fixes build with clang-16
+
+src/ast/passes/codegen_llvm.cpp:63:53: error: use of undeclared identifier 'Optional'; did you mean 'std::optional'?
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ast/passes/codegen_llvm.cpp | 16 +++++++++++-----
+ 1 file changed, 11 insertions(+), 5 deletions(-)
+
+diff --git a/src/ast/passes/codegen_llvm.cpp b/src/ast/passes/codegen_llvm.cpp
+index 616ff89ddbc..fe440adf373 100644
+--- a/src/ast/passes/codegen_llvm.cpp
++++ b/src/ast/passes/codegen_llvm.cpp
+@@ -56,11 +56,17 @@ CodegenLLVM::CodegenLLVM(Node *root, BPFtrace &bpftrace)
+ throw std::runtime_error(
+ "Could not find bpf llvm target, does your llvm support it?");
+
+- target_machine_.reset(target->createTargetMachine(LLVMTargetTriple,
+- "generic",
+- "",
+- TargetOptions(),
+- Optional<Reloc::Model>()));
++ target_machine_.reset(
++ target->createTargetMachine(LLVMTargetTriple,
++ "generic",
++ "",
++ TargetOptions(),
++#if LLVM_VERSION_MAJOR >= 16
++ std::optional<Reloc::Model>()
++#else
++ Optional<Reloc::Model>()
++#endif
++ ));
+ target_machine_->setOptLevel(llvm::CodeGenOpt::Aggressive);
+
+ module_->setTargetTriple(LLVMTargetTriple);