summaryrefslogtreecommitdiff
path: root/dev-util/bpftrace/files/bpftrace-0.17.0-use-std-optional.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-util/bpftrace/files/bpftrace-0.17.0-use-std-optional.patch')
-rw-r--r--dev-util/bpftrace/files/bpftrace-0.17.0-use-std-optional.patch44
1 files changed, 44 insertions, 0 deletions
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);