1 |
commit: 25d51527d29fc9d8d269f2a9d4c96b640b2cbf52 |
2 |
Author: Patrick McLean <chutzpah <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Sep 22 19:04:01 2022 +0000 |
4 |
Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Sep 22 19:04:05 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=25d51527 |
7 |
|
8 |
dev-util/bpftrace: add 0.16.0 (bug #868519) |
9 |
|
10 |
Closes: https://bugs.gentoo.org/868519 |
11 |
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org> |
12 |
|
13 |
dev-util/bpftrace/Manifest | 1 + |
14 |
dev-util/bpftrace/bpftrace-0.16.0.ebuild | 92 +++++++++ |
15 |
.../files/bpftrace-0.16.0-install-libs.patch | 210 +++++++++++++++++++++ |
16 |
dev-util/bpftrace/files/bpftrace-0.16.0-link.patch | 0 |
17 |
4 files changed, 303 insertions(+) |
18 |
|
19 |
diff --git a/dev-util/bpftrace/Manifest b/dev-util/bpftrace/Manifest |
20 |
index f594b9b845c0..308364d6afc1 100644 |
21 |
--- a/dev-util/bpftrace/Manifest |
22 |
+++ b/dev-util/bpftrace/Manifest |
23 |
@@ -1,2 +1,3 @@ |
24 |
DIST bpftrace-0.14.1-llvm14.patch.gz 7377 BLAKE2B 69b3b74bce74a8d4d8d9cc74de352dc33875ae905d8a88c776bbe80862a4f4ac2d450bcb6190da8be880bcc8fb751e3b8172df5454f31dc4bcd3e41edb02e396 SHA512 3269132981a7d2c0263fe9003bbcd2348e186ca0cdc95ada368331fc6e2495ae126c7bd68676438ccb575aafdafa3d17604a28fdc11d8b629eeaee130c1fd614 |
25 |
DIST bpftrace-0.15.0.tar.gz 1006735 BLAKE2B 3ef4bb5f13aa6dea5140b5362e6fc3de21baa1192e2218307895bf29ddeba8d69543e32c2b769bf3456076095ba661b66e1625f2696631d22628311d7f6ec1a4 SHA512 916e9afeab301e62472e570ef77a3b9b27b43251880b64f1c5f151583c59a6c61e9ede50f3607044b27c5a6ce1a654f290153bf3f9237ebc0a823b5e6356187a |
26 |
+DIST bpftrace-0.16.0.gh.tar.gz 1023480 BLAKE2B 20fa877adeaada655462004142a80f107f82a3fa73fd7a7675a477d45ecd3a28115af5d612da2b06e2d760cfa3e574583e4cc4d62f4175c49ecc9d9b3fcceb6e SHA512 52ca4fea4e2f8d2cbf0f9f1bc69af0ee3408201f019006dd2e838b9458cfc01761eba3df24c39e05cf93220d85d0cecc69bb44ec72f9f44cec0eb94479bff734 |
27 |
|
28 |
diff --git a/dev-util/bpftrace/bpftrace-0.16.0.ebuild b/dev-util/bpftrace/bpftrace-0.16.0.ebuild |
29 |
new file mode 100644 |
30 |
index 000000000000..210d78fe7f33 |
31 |
--- /dev/null |
32 |
+++ b/dev-util/bpftrace/bpftrace-0.16.0.ebuild |
33 |
@@ -0,0 +1,92 @@ |
34 |
+# Copyright 2019-2022 Gentoo Authors |
35 |
+# Distributed under the terms of the GNU General Public License v2 |
36 |
+ |
37 |
+EAPI=8 |
38 |
+ |
39 |
+LLVM_MAX_SLOT=16 |
40 |
+ |
41 |
+inherit llvm linux-info cmake toolchain-funcs |
42 |
+ |
43 |
+DESCRIPTION="High-level tracing language for eBPF" |
44 |
+HOMEPAGE="https://github.com/iovisor/bpftrace" |
45 |
+MY_PV="${PV//_/}" |
46 |
+SRC_URI="https://github.com/iovisor/${PN}/archive/v${MY_PV}.tar.gz -> ${P}.gh.tar.gz" |
47 |
+S="${WORKDIR}/${PN}-${MY_PV:-${PV}}" |
48 |
+ |
49 |
+LICENSE="Apache-2.0" |
50 |
+SLOT="0" |
51 |
+KEYWORDS="~amd64 ~arm64 ~x86" |
52 |
+IUSE="fuzzing test" |
53 |
+ |
54 |
+# lots of fixing needed |
55 |
+RESTRICT="test" |
56 |
+ |
57 |
+RDEPEND=" |
58 |
+ >=dev-libs/libbpf-1.0:= |
59 |
+ >=dev-util/bcc-0.25.0:= |
60 |
+ dev-util/systemtap |
61 |
+ <sys-devel/clang-$((${LLVM_MAX_SLOT} + 1)):= |
62 |
+ <sys-devel/llvm-$((${LLVM_MAX_SLOT} + 1)):=[llvm_targets_BPF(+)] |
63 |
+ sys-libs/binutils-libs:= |
64 |
+ virtual/libelf:= |
65 |
+" |
66 |
+DEPEND=" |
67 |
+ ${COMMON_DEPEND} |
68 |
+ dev-libs/cereal:= |
69 |
+ test? ( dev-cpp/gtest ) |
70 |
+" |
71 |
+BDEPEND=" |
72 |
+ sys-apps/sed |
73 |
+ app-arch/xz-utils |
74 |
+ sys-devel/flex |
75 |
+ sys-devel/bison |
76 |
+ virtual/pkgconfig |
77 |
+" |
78 |
+ |
79 |
+QA_DT_NEEDED=" |
80 |
+ /usr/lib.*/libbpftraceresources.so |
81 |
+ /usr/lib.*/libcxxdemangler_llvm.so |
82 |
+" |
83 |
+ |
84 |
+PATCHES=( |
85 |
+ "${FILESDIR}/bpftrace-0.16.0-install-libs.patch" |
86 |
+ "${FILESDIR}/bpftrace-0.15.0-dont-compress-man.patch" |
87 |
+ "${FILESDIR}/bpftrace-0.11.4-old-kernels.patch" |
88 |
+ "${FILESDIR}/bpftrace-0.16.0-link.patch" |
89 |
+) |
90 |
+ |
91 |
+pkg_pretend() { |
92 |
+ local CONFIG_CHECK=" |
93 |
+ ~BPF |
94 |
+ ~BPF_EVENTS |
95 |
+ ~BPF_JIT |
96 |
+ ~BPF_SYSCALL |
97 |
+ ~FTRACE_SYSCALLS |
98 |
+ ~HAVE_EBPF_JIT |
99 |
+ " |
100 |
+ |
101 |
+ check_extra_config |
102 |
+} |
103 |
+ |
104 |
+pkg_setup() { |
105 |
+ llvm_pkg_setup |
106 |
+} |
107 |
+ |
108 |
+src_configure() { |
109 |
+ local -a mycmakeargs=( |
110 |
+ -DSTATIC_LINKING:BOOL=OFF |
111 |
+ # bug 809362, 754648 |
112 |
+ -DBUILD_TESTING:BOOL=$(usex test) |
113 |
+ -DBUILD_FUZZ:BOOL=$(usex fuzzing) |
114 |
+ -DENABLE_MAN:BOOL=OFF |
115 |
+ ) |
116 |
+ |
117 |
+ cmake_src_configure |
118 |
+} |
119 |
+ |
120 |
+src_install() { |
121 |
+ cmake_src_install |
122 |
+ # bug 809362 |
123 |
+ dostrip -x /usr/bin/bpftrace |
124 |
+ doman man/man8/*.? |
125 |
+} |
126 |
|
127 |
diff --git a/dev-util/bpftrace/files/bpftrace-0.16.0-install-libs.patch b/dev-util/bpftrace/files/bpftrace-0.16.0-install-libs.patch |
128 |
new file mode 100644 |
129 |
index 000000000000..290c1065b2ce |
130 |
--- /dev/null |
131 |
+++ b/dev-util/bpftrace/files/bpftrace-0.16.0-install-libs.patch |
132 |
@@ -0,0 +1,210 @@ |
133 |
+diff --git a/CMakeLists.txt b/CMakeLists.txt |
134 |
+index e63bc83c..ada1d370 100644 |
135 |
+--- a/CMakeLists.txt |
136 |
++++ b/CMakeLists.txt |
137 |
+@@ -114,9 +114,10 @@ find_package(FLEX REQUIRED) |
138 |
+ bison_target(bison_parser src/parser.yy ${CMAKE_BINARY_DIR}/parser.tab.cc VERBOSE) |
139 |
+ flex_target(flex_lexer src/lexer.l ${CMAKE_BINARY_DIR}/lex.yy.cc) |
140 |
+ add_flex_bison_dependency(flex_lexer bison_parser) |
141 |
+-add_library(parser ${BISON_bison_parser_OUTPUTS} ${FLEX_flex_lexer_OUTPUTS}) |
142 |
+-target_compile_options(parser PRIVATE "-w") |
143 |
+-target_include_directories(parser PUBLIC src src/ast ${CMAKE_BINARY_DIR}) |
144 |
++add_library(bpftraceparser ${BISON_bison_parser_OUTPUTS} ${FLEX_flex_lexer_OUTPUTS}) |
145 |
++target_compile_options(bpftraceparser PRIVATE "-w") |
146 |
++target_include_directories(bpftraceparser PUBLIC src src/ast ${CMAKE_BINARY_DIR}) |
147 |
++install(TARGETS bpftraceparser LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
148 |
+ |
149 |
+ include(CheckSymbolExists) |
150 |
+ set(CMAKE_REQUIRED_DEFINITIONS -D_GNU_SOURCE) |
151 |
+diff --git a/resources/CMakeLists.txt b/resources/CMakeLists.txt |
152 |
+index a95c60a1..f5c4d676 100644 |
153 |
+--- a/resources/CMakeLists.txt |
154 |
++++ b/resources/CMakeLists.txt |
155 |
+@@ -1,6 +1,7 @@ |
156 |
+-add_library(resources headers.cpp) |
157 |
++add_library(bpftraceresources headers.cpp) |
158 |
+ |
159 |
+-target_include_directories(resources PUBLIC ../src) |
160 |
++target_include_directories(bpftraceresources PUBLIC ../src) |
161 |
++install(TARGETS bpftraceresources LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
162 |
+ |
163 |
+ function(embed_headers output) |
164 |
+ file(WRITE ${output} "#include \"headers.h\"\n\nnamespace bpftrace {\n") |
165 |
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt |
166 |
+index 09b8c1e0..b9e9ac44 100644 |
167 |
+--- a/src/CMakeLists.txt |
168 |
++++ b/src/CMakeLists.txt |
169 |
+@@ -42,7 +42,7 @@ add_library(runtime |
170 |
+ ${BFD_DISASM_SRC} |
171 |
+ ) |
172 |
+ # Ensure flex+bison outputs are built first |
173 |
+-add_dependencies(runtime parser) |
174 |
++add_dependencies(runtime bpftraceparser) |
175 |
+ |
176 |
+ add_library(libbpftrace |
177 |
+ build_info.cpp |
178 |
+@@ -59,6 +59,7 @@ add_executable(${BPFTRACE} |
179 |
+ ) |
180 |
+ |
181 |
+ install(TARGETS ${BPFTRACE} DESTINATION ${CMAKE_INSTALL_BINDIR}) |
182 |
++install(TARGETS libbpftrace LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
183 |
+ target_link_libraries(${BPFTRACE} libbpftrace) |
184 |
+ |
185 |
+ if (BUILD_FUZZ) |
186 |
+@@ -111,6 +112,7 @@ target_include_directories(runtime PRIVATE ${CMAKE_BINARY_DIR}) |
187 |
+ target_include_directories(runtime PRIVATE ${CMAKE_SOURCE_DIR}/src) |
188 |
+ target_include_directories(runtime PRIVATE ${CMAKE_SOURCE_DIR}/src/ast) |
189 |
+ target_compile_definitions(runtime PRIVATE ${BPFTRACE_FLAGS}) |
190 |
++install(TARGETS runtime LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
191 |
+ target_compile_definitions(libbpftrace PRIVATE ${BPFTRACE_FLAGS}) |
192 |
+ |
193 |
+ # Linking |
194 |
+@@ -123,7 +125,8 @@ if(STATIC_LINKING) |
195 |
+ endif(STATIC_LINKING) |
196 |
+ |
197 |
+ |
198 |
+-target_link_libraries(libbpftrace parser resources runtime aot ast arch cxxdemangler_llvm) |
199 |
++target_link_libraries(libbpftrace bpftraceparser bpftraceresources |
200 |
++ runtime aot bpftraceast bpftracearch cxxdemangler_llvm) |
201 |
+ |
202 |
+ if (LIBBPF_BTF_DUMP_FOUND) |
203 |
+ target_link_libraries(runtime ${LIBBPF_LIBRARIES}) |
204 |
+@@ -168,6 +171,7 @@ if(STATIC_LINKING) |
205 |
+ target_link_libraries(runtime LIBELF) |
206 |
+ else() |
207 |
+ target_link_libraries(runtime ${LIBELF_LIBRARIES}) |
208 |
++ target_link_libraries(runtime ${LIBBPF_LIBRARIES}) |
209 |
+ endif(STATIC_LINKING) |
210 |
+ |
211 |
+ if (LIBDW_FOUND) |
212 |
+diff --git a/src/aot/CMakeLists.txt b/src/aot/CMakeLists.txt |
213 |
+index c776d204..a1d0d75e 100644 |
214 |
+--- a/src/aot/CMakeLists.txt |
215 |
++++ b/src/aot/CMakeLists.txt |
216 |
+@@ -1,8 +1,9 @@ |
217 |
+ add_library(aot aot.cpp) |
218 |
+-add_dependencies(aot parser) |
219 |
++add_dependencies(aot bpftraceparser) |
220 |
+ target_include_directories(aot PUBLIC ${CMAKE_SOURCE_DIR}/src) |
221 |
+ target_include_directories(aot PUBLIC ${CMAKE_BINARY_DIR}) |
222 |
+ target_compile_definitions(aot PRIVATE ${BPFTRACE_FLAGS}) |
223 |
++install(TARGETS aot LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
224 |
+ |
225 |
+ # Only build aotrt if supported bcc is used |
226 |
+ # (https://github.com/iovisor/bcc/commit/719191867a25ce07dc96f7faf9b8ccedadc7ec44) |
227 |
+@@ -11,7 +12,7 @@ if(NOT LIBBCC_BPF_CONTAINS_RUNTIME) |
228 |
+ endif() |
229 |
+ |
230 |
+ add_executable(bpftrace-aotrt aot_main.cpp) |
231 |
+-target_link_libraries(bpftrace-aotrt aot runtime arch ast_defs cxxdemangler_stdlib) |
232 |
++target_link_libraries(bpftrace-aotrt aot runtime bpftracearch ast_defs cxxdemangler_stdlib) |
233 |
+ install(TARGETS bpftrace-aotrt DESTINATION ${CMAKE_INSTALL_BINDIR}) |
234 |
+ |
235 |
+ if(LIBPCAP_FOUND) |
236 |
+diff --git a/src/arch/CMakeLists.txt b/src/arch/CMakeLists.txt |
237 |
+index 127c3528..4e05d40a 100644 |
238 |
+--- a/src/arch/CMakeLists.txt |
239 |
++++ b/src/arch/CMakeLists.txt |
240 |
+@@ -1,17 +1,19 @@ |
241 |
+ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") |
242 |
+- add_library(arch aarch64.cpp) |
243 |
++ add_library(bpftracearch aarch64.cpp) |
244 |
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64" OR |
245 |
+ CMAKE_SYSTEM_PROCESSOR STREQUAL "ppc64le") |
246 |
+- add_library(arch ppc64.cpp) |
247 |
++ add_library(bpftracearch ppc64.cpp) |
248 |
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "s390" OR |
249 |
+ CMAKE_SYSTEM_PROCESSOR STREQUAL "s390x") |
250 |
+- add_library(arch s390.cpp) |
251 |
++ add_library(bpftracearch s390.cpp) |
252 |
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") |
253 |
+- add_library(arch x86_64.cpp) |
254 |
++ add_library(bpftracearch x86_64.cpp) |
255 |
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "mips64") |
256 |
+- add_library(arch mips64.cpp) |
257 |
++ add_library(bpftracearch mips64.cpp) |
258 |
+ elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "riscv64") |
259 |
+- add_library(arch riscv64.cpp) |
260 |
++ add_library(bpftracearch riscv64.cpp) |
261 |
+ else() |
262 |
+ message(FATAL_ERROR "Unsupported architecture: ${CMAKE_SYSTEM_PROCESSOR}") |
263 |
+ endif() |
264 |
++ |
265 |
++install(TARGETS bpftracearch LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
266 |
+diff --git a/src/ast/CMakeLists.txt b/src/ast/CMakeLists.txt |
267 |
+index 014295cd..c35f6ac6 100644 |
268 |
+--- a/src/ast/CMakeLists.txt |
269 |
++++ b/src/ast/CMakeLists.txt |
270 |
+@@ -1,6 +1,6 @@ |
271 |
+ add_library(ast_defs ast.cpp) |
272 |
+ |
273 |
+-add_library(ast |
274 |
++add_library(bpftraceast |
275 |
+ async_event_types.cpp |
276 |
+ attachpoint_parser.cpp |
277 |
+ int_parser.cpp |
278 |
+@@ -20,11 +20,13 @@ add_library(ast |
279 |
+ target_include_directories(ast_defs PUBLIC ${CMAKE_SOURCE_DIR}/src) |
280 |
+ target_include_directories(ast_defs PUBLIC ${CMAKE_SOURCE_DIR}/src/ast) |
281 |
+ target_include_directories(ast_defs PUBLIC ${CMAKE_BINARY_DIR}) |
282 |
+-target_link_libraries(ast ast_defs arch bpforc parser) |
283 |
++target_link_libraries(bpftraceast ast_defs bpftracearch bpforc bpftraceparser) |
284 |
++install(TARGETS ast_defs LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
285 |
++install(TARGETS bpftraceast LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
286 |
+ |
287 |
+-add_dependencies(ast_defs parser) |
288 |
++add_dependencies(ast_defs bpftraceparser) |
289 |
+ |
290 |
+-target_compile_definitions(ast PRIVATE ${BPFTRACE_FLAGS}) |
291 |
++target_compile_definitions(bpftraceast PRIVATE ${BPFTRACE_FLAGS}) |
292 |
+ |
293 |
+ if (STATIC_LINKING) |
294 |
+ set(clang_libs |
295 |
+@@ -55,11 +57,11 @@ if (STATIC_LINKING) |
296 |
+ |
297 |
+ |
298 |
+ if(EMBED_USE_LLVM) |
299 |
+- target_link_libraries(ast "-Wl,--start-group" ${CLANG_EMBEDDED_CMAKE_TARGETS} ${LLVM_EMBEDDED_CMAKE_TARGETS} "-Wl,--end-group") |
300 |
++ target_link_libraries(bpftraceast "-Wl,--start-group" ${CLANG_EMBEDDED_CMAKE_TARGETS} ${LLVM_EMBEDDED_CMAKE_TARGETS} "-Wl,--end-group") |
301 |
+ else() |
302 |
+ llvm_map_components_to_libnames(llvm_libs ${llvm_lib_names}) |
303 |
+- target_link_libraries(ast ${clang_libs}) |
304 |
+- target_link_libraries(ast ${llvm_libs}) |
305 |
++ target_link_libraries(bpftraceast ${clang_libs}) |
306 |
++ target_link_libraries(bpftraceast ${llvm_libs}) |
307 |
+ endif() |
308 |
+ |
309 |
+ if(STATIC_LIBC) |
310 |
+@@ -69,13 +71,13 @@ if (STATIC_LINKING) |
311 |
+ else() |
312 |
+ find_library(found_LLVM LLVM HINTS ${LLVM_LIBRARY_DIRS}) |
313 |
+ if(found_LLVM) |
314 |
+- target_link_libraries(ast LLVM) |
315 |
++ target_link_libraries(bpftraceast LLVM) |
316 |
+ else() |
317 |
+ llvm_map_components_to_libnames(_llvm_libs bpfcodegen ipo irreader mcjit orcjit ${LLVM_TARGETS_TO_BUILD}) |
318 |
+ llvm_expand_dependencies(llvm_libs ${_llvm_libs}) |
319 |
+- target_link_libraries(ast ${llvm_libs}) |
320 |
++ target_link_libraries(bpftraceast ${llvm_libs}) |
321 |
+ endif() |
322 |
+- target_link_libraries(ast libclang) |
323 |
++ target_link_libraries(bpftraceast libclang) |
324 |
+ endif() |
325 |
+ |
326 |
+ add_subdirectory(bpforc) |
327 |
+diff --git a/src/ast/bpforc/CMakeLists.txt b/src/ast/bpforc/CMakeLists.txt |
328 |
+index 3f6dbefa..8ccfbb2b 100644 |
329 |
+--- a/src/ast/bpforc/CMakeLists.txt |
330 |
++++ b/src/ast/bpforc/CMakeLists.txt |
331 |
+@@ -1 +1,2 @@ |
332 |
+ add_library(bpforc bpforc.cpp) |
333 |
++install(TARGETS bpforc LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
334 |
+diff --git a/src/cxxdemangler/CMakeLists.txt b/src/cxxdemangler/CMakeLists.txt |
335 |
+index 04cfcdd9..5677aa4b 100644 |
336 |
+--- a/src/cxxdemangler/CMakeLists.txt |
337 |
++++ b/src/cxxdemangler/CMakeLists.txt |
338 |
+@@ -1,2 +1,4 @@ |
339 |
+ add_library(cxxdemangler_stdlib cxxdemangler_stdlib.cpp) |
340 |
+ add_library(cxxdemangler_llvm cxxdemangler_llvm.cpp) |
341 |
++install(TARGETS cxxdemangler_stdlib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
342 |
++install(TARGETS cxxdemangler_llvm LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
343 |
|
344 |
diff --git a/dev-util/bpftrace/files/bpftrace-0.16.0-link.patch b/dev-util/bpftrace/files/bpftrace-0.16.0-link.patch |
345 |
new file mode 100644 |
346 |
index 000000000000..e69de29bb2d1 |