commit:     57cdeba2f33699aa5b5914165130776d8230b71f
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Wed Mar 20 21:27:23 2019 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Mar 20 21:27:46 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57cdeba2

dev-util/bpftrace: Fix compilation with llvm-8 in 0.9

Patch taken from upstream PR:
https://github.com/iovisor/bpftrace/pull/210

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 dev-util/bpftrace/bpftrace-0.9.ebuild             |  1 +
 dev-util/bpftrace/files/bpftrace-0.9-llvm-8.patch | 30 +++++++++++++++++++++++
 2 files changed, 31 insertions(+)

diff --git a/dev-util/bpftrace/bpftrace-0.9.ebuild 
b/dev-util/bpftrace/bpftrace-0.9.ebuild
index b483aed0116..1f481b0f3e2 100644
--- a/dev-util/bpftrace/bpftrace-0.9.ebuild
+++ b/dev-util/bpftrace/bpftrace-0.9.ebuild
@@ -38,6 +38,7 @@ QA_DT_NEEDED="/usr/lib.*/libbpftraceresources.so"
 PATCHES=(
        "${FILESDIR}/bpftrace-0.9_pre20190311-install-libs.patch"
        "${FILESDIR}/bpftrace-mandir.patch"
+       "${FILESDIR}/bpftrace-0.9-llvm-8.patch"
 )
 
 # lots of fixing needed

diff --git a/dev-util/bpftrace/files/bpftrace-0.9-llvm-8.patch 
b/dev-util/bpftrace/files/bpftrace-0.9-llvm-8.patch
new file mode 100644
index 00000000000..14d6a167a86
--- /dev/null
+++ b/dev-util/bpftrace/files/bpftrace-0.9-llvm-8.patch
@@ -0,0 +1,30 @@
+diff --git a/src/bpforc.h b/src/bpforc.h
+index a6ee583..8d0e579 100644
+--- a/src/bpforc.h
++++ b/src/bpforc.h
+@@ -80,8 +80,13 @@ class BpfOrc
+   ExecutionSession ES;
+   std::unique_ptr<TargetMachine> TM;
+   std::shared_ptr<SymbolResolver> Resolver;
++#if LLVM_VERSION_MAJOR >= 8
++  LegacyRTDyldObjectLinkingLayer ObjectLayer;
++  LegacyIRCompileLayer<decltype(ObjectLayer), SimpleCompiler> CompileLayer;
++#else
+   RTDyldObjectLinkingLayer ObjectLayer;
+   IRCompileLayer<decltype(ObjectLayer), SimpleCompiler> CompileLayer;
++#endif
+
+ public:
+   std::map<std::string, std::tuple<uint8_t *, uintptr_t>> sections_;
+@@ -91,7 +96,11 @@ class BpfOrc
+       Resolver(createLegacyLookupResolver(ES,
+         [](const std::string &Name __attribute__((unused))) -> JITSymbol { 
return nullptr; },
+         [](Error Err) { cantFail(std::move(Err), "lookup failed"); })),
++#if LLVM_VERSION_MAJOR >= 8
++      ObjectLayer(ES, [this](VModuleKey) { return 
LegacyRTDyldObjectLinkingLayer::Resources{std::make_shared<MemoryManager>(sections_),
 Resolver}; }),
++#else
+       ObjectLayer(ES, [this](VModuleKey) { return 
RTDyldObjectLinkingLayer::Resources{std::make_shared<MemoryManager>(sections_), 
Resolver}; }),
++#endif
+       CompileLayer(ObjectLayer, SimpleCompiler(*TM)) {}
+
+   void compileModule(std::unique_ptr<Module> M) {

Reply via email to