summaryrefslogtreecommitdiffstats
path: root/dynamic-layers
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2022-02-14 11:37:58 -0800
committerKhem Raj <raj.khem@gmail.com>2022-02-14 15:25:08 -0800
commit82c6305dbb42b4f85ca6cb5242dec0efa315850f (patch)
tree87a25c4c12a908ab450d78bb82da3af487180aac /dynamic-layers
parente0acc81460f6533e1d14c1c81980fc9fc6d255e8 (diff)
downloadmeta-clang-82c6305dbb42b4f85ca6cb5242dec0efa315850f.tar.gz
bpftrace: Upgrade to 0.14.1
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'dynamic-layers')
-rw-r--r--dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace/0001-support-clang-upto-version-13.patch26
-rw-r--r--dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace/0002-orc-Fix-build-with-clang-13.patch113
-rw-r--r--dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.14.1.bb (renamed from dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.13.0.bb)16
3 files changed, 10 insertions, 145 deletions
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace/0001-support-clang-upto-version-13.patch b/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace/0001-support-clang-upto-version-13.patch
deleted file mode 100644
index d0964ab..0000000
--- a/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace/0001-support-clang-upto-version-13.patch
+++ /dev/null
@@ -1,26 +0,0 @@
1From 3bbf76b52c9061f37ab963fd9b7d8b527df219ba Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Thu, 5 Aug 2021 22:15:27 -0700
4Subject: [PATCH 1/2] support clang upto version 13
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8 CMakeLists.txt | 2 +-
9 1 file changed, 1 insertion(+), 1 deletion(-)
10
11diff --git a/CMakeLists.txt b/CMakeLists.txt
12index 1b59ba2a..156d8ba9 100644
13--- a/CMakeLists.txt
14+++ b/CMakeLists.txt
15@@ -165,7 +165,7 @@ else()
16 endif()
17
18 set(MIN_LLVM_MAJOR 6)
19- set(MAX_LLVM_MAJOR 12)
20+ set(MAX_LLVM_MAJOR 13)
21
22 if((${LLVM_VERSION_MAJOR} VERSION_LESS ${MIN_LLVM_MAJOR}) OR (${LLVM_VERSION_MAJOR} VERSION_GREATER ${MAX_LLVM_MAJOR}))
23 message(SEND_ERROR "Unsupported LLVM version found via ${LLVM_INCLUDE_DIRS}: ${LLVM_VERSION_MAJOR}")
24--
252.33.0
26
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace/0002-orc-Fix-build-with-clang-13.patch b/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace/0002-orc-Fix-build-with-clang-13.patch
deleted file mode 100644
index 85f8d6e..0000000
--- a/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace/0002-orc-Fix-build-with-clang-13.patch
+++ /dev/null
@@ -1,113 +0,0 @@
1From 3bb232ef9eeea769985d550799f6a9d2accaf32a Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 4 Sep 2021 17:28:17 -0700
4Subject: [PATCH 2/2] orc: Fix build with clang >= 13
5
6Fixes errors like
7src/ast/bpforc/bpforcv2.cpp:3:9: error: constructor for 'bpftrace::BpfOrc' must explicitly initialize the member 'ES' which does not have a default constructor
8BpfOrc::BpfOrc(TargetMachine *TM, DataLayout DL)
9 ^
10
11Fixes https://github.com/iovisor/bpftrace/issues/1963
12
13Signed-off-by: Khem Raj <raj.khem@gmail.com>
14---
15 src/ast/bpforc/bpforc.h | 18 ++++++++++++++++--
16 src/ast/bpforc/bpforcv2.cpp | 23 ++++++++++++-----------
17 2 files changed, 28 insertions(+), 13 deletions(-)
18
19diff --git a/src/ast/bpforc/bpforc.h b/src/ast/bpforc/bpforc.h
20index 1b929dfd..76913279 100644
21--- a/src/ast/bpforc/bpforc.h
22+++ b/src/ast/bpforc/bpforc.h
23@@ -72,8 +72,12 @@ private:
24 std::unique_ptr<TargetMachine> TM;
25 DataLayout DL;
26 #if LLVM_VERSION_MAJOR >= 7
27+#ifdef LLVM_ORC_V2
28+ std::unique_ptr<ExecutionSession> ES;
29+#else // LLVM_ORC_V1
30 ExecutionSession ES;
31 #endif
32+#endif
33 #if LLVM_VERSION_MAJOR >= 7 && LLVM_VERSION_MAJOR < 12
34 std::shared_ptr<SymbolResolver> Resolver;
35 #endif
36@@ -98,7 +102,17 @@ private:
37 #endif
38
39 public:
40- BpfOrc(TargetMachine *TM, DataLayout DL);
41+#if LLVM_VERSION_MAJOR >= 13
42+ ~BpfOrc()
43+ {
44+ if (auto Err = ES->endSession())
45+ ES->reportError(std::move(Err));
46+ }
47+#endif
48+ BpfOrc(TargetMachine *TM,
49+ DataLayout DL,
50+ std::unique_ptr<ExecutionSession> ES);
51+
52 void compile(std::unique_ptr<Module> M);
53
54 /* Helper for creating a orc object, responsible for creating internal objects
55@@ -134,7 +148,7 @@ public:
56 #ifdef LLVM_ORC_V2
57 Expected<JITEvaluatedSymbol> lookup(StringRef Name)
58 {
59- return ES.lookup({ &MainJD }, Mangle(Name.str()));
60+ return ES->lookup({ &MainJD }, Mangle(Name.str()));
61 }
62 #endif
63 };
64diff --git a/src/ast/bpforc/bpforcv2.cpp b/src/ast/bpforc/bpforcv2.cpp
65index 9876625b..ca8d214e 100644
66--- a/src/ast/bpforc/bpforcv2.cpp
67+++ b/src/ast/bpforc/bpforcv2.cpp
68@@ -1,21 +1,21 @@
69 // Included by bpforc.cpp
70
71-BpfOrc::BpfOrc(TargetMachine *TM, DataLayout DL)
72+BpfOrc::BpfOrc(TargetMachine *TM,
73+ DataLayout DL,
74+ std::unique_ptr<ExecutionSession> ES)
75 : TM(std::move(TM)),
76 DL(std::move(DL)),
77- ObjectLayer(ES,
78- [this]() {
79- return std::make_unique<MemoryManager>(sections_);
80- }),
81- CompileLayer(ES,
82+ ES(std::move(ES)),
83+ ObjectLayer(*this->ES,
84+ []() { return std::make_unique<SectionMemoryManager>(); }),
85+ CompileLayer(*this->ES,
86 ObjectLayer,
87 std::make_unique<SimpleCompiler>(*this->TM)),
88- Mangle(ES, this->DL),
89+ Mangle(*this->ES, this->DL),
90 CTX(std::make_unique<LLVMContext>()),
91- MainJD(cantFail(ES.createJITDylib("<main>")))
92+ MainJD(cantFail(this->ES->createJITDylib("<main>")))
93 {
94 }
95-
96 LLVMContext &BpfOrc::getContext()
97 {
98 return *CTX.getContext();
99@@ -34,8 +34,9 @@ std::unique_ptr<BpfOrc> BpfOrc::Create()
100 // return unique_ptrs
101 auto DL = cantFail(JTMB.getDefaultDataLayoutForTarget());
102 auto TM = cantFail(JTMB.createTargetMachine());
103-
104- return std::make_unique<BpfOrc>(TM.release(), std::move(DL));
105+ auto EPC = SelfExecutorProcessControl::Create();
106+ auto ES = std::make_unique<ExecutionSession>(std::move(*EPC));
107+ return std::make_unique<BpfOrc>(TM.release(), std::move(DL), std::move(ES));
108 }
109
110 void BpfOrc::compile(std::unique_ptr<Module> M)
111--
1122.33.0
113
diff --git a/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.13.0.bb b/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.14.1.bb
index f521d33..21078b9 100644
--- a/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.13.0.bb
+++ b/dynamic-layers/openembedded-layer/recipes-devtools/bpftrace/bpftrace_0.14.1.bb
@@ -13,23 +13,27 @@ DEPENDS += "bison-native \
13 libbpf \ 13 libbpf \
14 " 14 "
15 15
16PV .= "+git${SRCREV}" 16#PV .= "+git${SRCREV}"
17RDEPENDS:${PN} += "bash python3 xz" 17RDEPENDS:${PN} += "bash python3 xz"
18 18
19SRC_URI = "git://github.com/iovisor/bpftrace;branch=master \ 19SRC_URI = "git://github.com/iovisor/bpftrace;branch=v0.14_release;protocol=https \
20 file://0001-support-clang-upto-version-13.patch \
21 file://0002-orc-Fix-build-with-clang-13.patch \
22 " 20 "
23SRCREV = "9b929db174be11888f60d16b1b090e4603bc3a51" 21SRCREV = "20e48420ba3a5c6f3630ab25b6b5c28d950b5bb4"
24 22
25S = "${WORKDIR}/git" 23S = "${WORKDIR}/git"
26 24
27inherit cmake 25inherit cmake
28 26
27def llvm_major_version(d):
28 pvsplit = d.getVar('LLVMVERSION').split('.')
29 return pvsplit[0]
30
31LLVM_MAJOR_VERSION = "${@llvm_major_version(d)}"
32
29EXTRA_OECMAKE = " \ 33EXTRA_OECMAKE = " \
30 -DCMAKE_ENABLE_EXPORTS=1 \ 34 -DCMAKE_ENABLE_EXPORTS=1 \
31 -DCMAKE_BUILD_TYPE=Release \ 35 -DCMAKE_BUILD_TYPE=Release \
32 -DLLVM_REQUESTED_VERSION=13 \ 36 -DLLVM_REQUESTED_VERSION=${LLVM_MAJOR_VERSION} \
33 -DBUILD_TESTING=OFF \ 37 -DBUILD_TESTING=OFF \
34 -DENABLE_MAN=OFF \ 38 -DENABLE_MAN=OFF \
35" 39"