forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
dev-util/bcc: Version bump to 0.10.0
Had to drop the patch to unbundle libbpf, the upstream build system makes too many assumptions about it's presence. Copyright: Sony Interactive Entertainment Inc. Package-Manager: Portage-2.3.67, Repoman-2.3.14 Signed-off-by: Patrick McLean <[email protected]>
- Loading branch information
1 parent
1677a68
commit 05f1e15
Showing
3 changed files
with
269 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
DIST bcc-0.10.0.tar.gz 2052430 BLAKE2B 562aa95d34ba329ce966bca3164af45fe6d78487e5f0d370a0a90c5d91af75b4adcc5aa1e6578bf598e55dc51394c5a218fc19e2b57b2f7241cc3fe1f3a4e513 SHA512 92ba0f57d22af610ac81661526fed8bec80d502bcbc8aa5048ba7c50911247c020832db23afdcf9b555b142cd387c228cf7baa0ddc94067165403e362227f235 | ||
DIST bcc-0.6.0.tar.gz 1986593 BLAKE2B 514c2c781eb94d99560232d8050b5664ce3565622b236e78cd111be27b3482849965600a1d574f59243917672f00bb3cef65cab63103f6c4a5cf62024c683d9b SHA512 1a8edf6da22f3119a74cf43f03ec83b97ed2f6fc18828d750d8a695ac1451b6b3209e5d2cf48bc87f53fa9447e8813a018a58d31588d477e4aa364a2d0217e80 | ||
DIST bcc-0.7.0.tar.gz 2009289 BLAKE2B 370b553521289d983d1165633e76a5e405250b9b09dbf3e78c127d232908e73facce06097ce4dbf0bbccda929b6715a9b7460affe123556087c8ca00b8d62c0b SHA512 ebe6c4cbecba2d587c69af71ddc8cb451b2b8e1d49ef887f291c813320c2c60d49357500fc2751d5b418df2be1d02763c385d89de6efa6e10f049c25acf01b4e | ||
DIST bcc-0.9.0-linux-5-bpf.patch.xz 28524 BLAKE2B f0369e50eabd7b1eb9a492b9652cd7647c7c7fda3b01db1e7f2bf716e76357d07d67193b31189b98309e26895ac3dd5c755d4cef6bc592e4674f40710c33539c SHA512 fc5b828a5826da2cf1e1a76758c635f5443d202aecbe3f269d78abcaa0117ad7658bea6c43e7b60e1ecc6bcc65bd19b100217758a1203d278ddb03c5837c43f1 | ||
DIST bcc-0.9.0.tar.gz 2036984 BLAKE2B cebbeb57f06af90442d28be1633a54c198bf796786c4fcca3a83dea03bc76949f958dd24f7d85feb2e3402576410f965754f3d031076486b7d378493c56035e8 SHA512 373080181380ec3bcb13469e29ff1f792e924a2df00a614da4647ed54060ad216525dd0f49c5d0afba7946a6d2f4e3475af97250a33db825945af3d165294091 | ||
DIST libbpf-0.0.3.tar.gz 127328 BLAKE2B eaa1be54f0a7fcc6fd41eb2adaad2f405f76db3bd7c7466a5484ead1cca5a9fe775e331838cd5645d7399cb5b1a5b2fcb3814fb45643660fd3f7d84b9986bae6 SHA512 ee489d968cd9a20a1f091dcd2696d3807ab0db2a001613684402de2c696391eea033f3bd961eaf1d0df95c1e15f4f0ccfb7003ff98c3f08f24a7e9a8db22cdad |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# Copyright 1999-2019 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=7 | ||
|
||
PYTHON_COMPAT=( python2_7 python3_{5,6,7} ) | ||
|
||
inherit cmake-utils linux-info python-single-r1 python-utils-r1 | ||
|
||
EGIT_COMMIT="v${PV}" | ||
LIBBPF_VER="0.0.3" | ||
|
||
DESCRIPTION="Tools for BPF-based Linux IO analysis, networking, monitoring, and more" | ||
HOMEPAGE="https://iovisor.github.io/bcc/" | ||
|
||
# This bundles libbpf, I tried to unbundle it, but I am not good enough | ||
# with cmake to do it. Patches accepted... | ||
SRC_URI="https://github.com/iovisor/bcc/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz | ||
https://github.com/libbpf/libbpf/archive/${LIBBPF_VER}.tar.gz -> libbpf-${LIBBPF_VER}.tar.gz" | ||
|
||
LICENSE="Apache-2.0" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~arm64 ~x86" | ||
IUSE="+luajit test" | ||
REQUIRED_USE="${PYTHON_REQUIRED_USE}" | ||
|
||
RDEPEND=">=sys-kernel/linux-headers-4.18 | ||
>=dev-libs/elfutils-0.166:= | ||
sys-devel/clang:= | ||
>=sys-devel/llvm-3.7.1:=[llvm_targets_BPF(+)] | ||
luajit? ( dev-lang/luajit ) | ||
${PYTHON_DEPS}" | ||
DEPEND="${RDEPEND} | ||
test? ( | ||
|| ( | ||
net-misc/iputils[arping] | ||
net-analyzer/arping | ||
) | ||
net-analyzer/netperf | ||
net-misc/iperf:* | ||
)" | ||
BDEPEND="dev-util/cmake | ||
virtual/pkgconfig" | ||
|
||
S=${WORKDIR}/${PN}-${EGIT_COMMIT#v} | ||
|
||
PATCHES=( | ||
"${FILESDIR}/bcc-0.9.0-no-luajit-automagic-dep.patch" | ||
) | ||
|
||
# tests need root access | ||
RESTRICT="test" | ||
|
||
pkg_pretend() { | ||
local CONFIG_CHECK="~BPF ~BPF_SYSCALL ~NET_CLS_BPF ~NET_ACT_BPF | ||
~BPF_JIT ~BPF_EVENTS ~DEBUG_INFO ~FUNCTION_TRACER ~KALLSYMS_ALL | ||
~KPROBES" | ||
|
||
check_extra_config | ||
} | ||
|
||
pkg_setup() { | ||
python-single-r1_pkg_setup | ||
} | ||
|
||
src_prepare() { | ||
rmdir src/cc/libbpf || die | ||
mv "${WORKDIR}"/libbpf-${LIBBPF_VER} src/cc/libbpf || die | ||
|
||
cmake-utils_src_prepare | ||
} | ||
|
||
src_configure() { | ||
local mycmakeargs=( | ||
-DREVISION=${PV%%_*} | ||
$(usex luajit '-DWITH_LUAJIT=1' '' '' '') | ||
) | ||
|
||
cmake-utils_src_configure | ||
} | ||
|
||
src_install() { | ||
cmake-utils_src_install | ||
python_fix_shebang "${ED}" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,182 @@ | ||
diff --git a/CMakeLists.txt b/CMakeLists.txt | ||
index 94aac856..bd454226 100644 | ||
--- a/CMakeLists.txt | ||
+++ b/CMakeLists.txt | ||
@@ -9,12 +9,6 @@ endif() | ||
|
||
enable_testing() | ||
|
||
-# populate submodules (libbpf) | ||
-if(NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/src/cc/libbpf/src) | ||
- execute_process(COMMAND git submodule update --init --recursive | ||
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) | ||
-endif() | ||
- | ||
include(cmake/GetGitRevisionDescription.cmake) | ||
include(cmake/version.cmake) | ||
include(CMakeDependentOption) | ||
@@ -61,6 +55,9 @@ FOREACH(DIR ${LLVM_INCLUDE_DIRS}) | ||
include_directories("${DIR}/../tools/clang/include") | ||
ENDFOREACH() | ||
|
||
+find_package(PkgConfig) | ||
+pkg_check_modules(LIBBPF REQUIRED libbpf) | ||
+ | ||
# Set to a string path if system places kernel lib directory in | ||
# non-default location. | ||
if(NOT DEFINED BCC_KERNEL_MODULES_DIR) | ||
diff --git a/examples/cpp/CMakeLists.txt b/examples/cpp/CMakeLists.txt | ||
index 906c9aaf..210f0f75 100644 | ||
--- a/examples/cpp/CMakeLists.txt | ||
+++ b/examples/cpp/CMakeLists.txt | ||
@@ -3,7 +3,7 @@ | ||
|
||
include_directories(${CMAKE_SOURCE_DIR}/src/cc) | ||
include_directories(${CMAKE_SOURCE_DIR}/src/cc/api) | ||
-include_directories(${CMAKE_SOURCE_DIR}/src/cc/libbpf/include/uapi) | ||
+include_directories(${LIBBPF_INCLUDE_DIRS}) | ||
|
||
option(INSTALL_CPP_EXAMPLES "Install C++ examples. Those binaries are statically linked and can take plenty of disk space" OFF) | ||
|
||
diff --git a/examples/cpp/pyperf/CMakeLists.txt b/examples/cpp/pyperf/CMakeLists.txt | ||
index 6f963c66..e8dd66f6 100644 | ||
--- a/examples/cpp/pyperf/CMakeLists.txt | ||
+++ b/examples/cpp/pyperf/CMakeLists.txt | ||
@@ -3,7 +3,7 @@ | ||
|
||
include_directories(${CMAKE_SOURCE_DIR}/src/cc) | ||
include_directories(${CMAKE_SOURCE_DIR}/src/cc/api) | ||
-include_directories(${CMAKE_SOURCE_DIR}/src/cc/libbpf/include/uapi) | ||
+include_directories(${LIBBPF_INCLUDE_DIRS}) | ||
|
||
add_executable(PyPerf PyPerf.cc PyPerfUtil.cc PyPerfBPFProgram.cc PyPerfLoggingHelper.cc PyPerfDefaultPrinter.cc Py36Offsets.cc) | ||
target_link_libraries(PyPerf bcc-static) | ||
diff --git a/introspection/CMakeLists.txt b/introspection/CMakeLists.txt | ||
index 88df6e84..de8a6464 100644 | ||
--- a/introspection/CMakeLists.txt | ||
+++ b/introspection/CMakeLists.txt | ||
@@ -3,11 +3,11 @@ | ||
|
||
include_directories(${CMAKE_SOURCE_DIR}/src/cc) | ||
include_directories(${CMAKE_SOURCE_DIR}/src/cc/api) | ||
-include_directories(${CMAKE_SOURCE_DIR}/src/cc/libbpf/include/uapi) | ||
+include_directories(${LIBBPF_INCLUDE_DIRS}) | ||
|
||
option(INSTALL_INTROSPECTION "Install BPF introspection tools" ON) | ||
|
||
add_executable(bps bps.c) | ||
-target_link_libraries(bps bpf-static) | ||
+target_link_libraries(bps ${LIBBPF_LIBRARIES}) | ||
|
||
install (TARGETS bps DESTINATION share/bcc/introspection) | ||
diff --git a/src/cc/CMakeLists.txt b/src/cc/CMakeLists.txt | ||
index bd34fd48..dfbeb596 100644 | ||
--- a/src/cc/CMakeLists.txt | ||
+++ b/src/cc/CMakeLists.txt | ||
@@ -10,8 +10,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/frontends/clang) | ||
include_directories(${LLVM_INCLUDE_DIRS}) | ||
include_directories(${LIBELF_INCLUDE_DIRS}) | ||
# todo: if check for kernel version | ||
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/libbpf/include) | ||
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/libbpf/include/uapi) | ||
+include_directories(${LIBBPF_INCLUDE_DIRS}) | ||
add_definitions(${LLVM_DEFINITIONS}) | ||
configure_file(libbcc.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libbcc.pc @ONLY) | ||
|
||
@@ -28,13 +27,6 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DLLVM_MAJOR_VERSION=${CMAKE_MATCH_1}") | ||
|
||
include(static_libstdc++) | ||
|
||
-file(GLOB libbpf_sources "libbpf/src/*.c") | ||
-add_library(bpf-static STATIC libbpf.c perf_reader.c ${libbpf_sources}) | ||
-set_target_properties(bpf-static PROPERTIES OUTPUT_NAME bcc_bpf) | ||
-add_library(bpf-shared SHARED libbpf.c perf_reader.c ${libbpf_sources}) | ||
-set_target_properties(bpf-shared PROPERTIES VERSION ${REVISION_LAST} SOVERSION 0) | ||
-set_target_properties(bpf-shared PROPERTIES OUTPUT_NAME bcc_bpf) | ||
- | ||
set(bcc_common_sources bcc_common.cc bpf_module.cc bcc_btf.cc exported_files.cc) | ||
if (${LLVM_PACKAGE_VERSION} VERSION_EQUAL 6 OR ${LLVM_PACKAGE_VERSION} VERSION_GREATER 6) | ||
set(bcc_common_sources ${bcc_common_sources} bcc_debug.cc) | ||
@@ -79,12 +71,12 @@ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${llvm_lib_exclude_f | ||
|
||
# bcc_common_libs_for_a for archive libraries | ||
# bcc_common_libs_for_s for shared libraries | ||
-set(bcc_common_libs_for_a b_frontend clang_frontend bpf-static | ||
+set(bcc_common_libs_for_a b_frontend clang_frontend | ||
-Wl,--whole-archive ${clang_libs} ${llvm_libs} -Wl,--no-whole-archive | ||
- ${LIBELF_LIBRARIES}) | ||
+ ${LIBELF_LIBRARIES} ${LIBBPF_LIBRARIES}) | ||
set(bcc_common_libs_for_s ${bcc_common_libs_for_a}) | ||
-set(bcc_common_libs_for_lua b_frontend clang_frontend bpf-static | ||
- ${clang_libs} ${llvm_libs} ${LIBELF_LIBRARIES}) | ||
+set(bcc_common_libs_for_lua b_frontend clang_frontend | ||
+ ${clang_libs} ${llvm_libs} ${LIBELF_LIBRARIES} ${LIBBPF_LIBRARIES}) | ||
|
||
if(ENABLE_CPP_API) | ||
add_subdirectory(api) | ||
@@ -111,8 +103,7 @@ set(bcc-lua-static ${bcc-lua-static} ${bcc_common_libs_for_lua}) | ||
install(TARGETS bcc-shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||
install(FILES ${bcc_table_headers} DESTINATION include/bcc) | ||
install(FILES ${bcc_api_headers} DESTINATION include/bcc) | ||
-install(DIRECTORY libbpf/include/uapi/linux/ DESTINATION include/bcc/compat/linux FILES_MATCHING PATTERN "*.h") | ||
+#install(DIRECTORY libbpf/include/uapi/linux/ DESTINATION include/bcc/compat/linux FILES_MATCHING PATTERN "*.h") | ||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libbcc.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) | ||
endif(ENABLE_CLANG_JIT) | ||
install(FILES ${bcc_common_headers} DESTINATION include/bcc) | ||
-install(TARGETS bpf-shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) | ||
diff --git a/src/cc/bcc_btf.cc b/src/cc/bcc_btf.cc | ||
index 12816757..29e4c707 100644 | ||
--- a/src/cc/bcc_btf.cc | ||
+++ b/src/cc/bcc_btf.cc | ||
@@ -19,8 +19,8 @@ | ||
#include <string.h> | ||
#include "linux/btf.h" | ||
#include "libbpf.h" | ||
-#include "libbpf/src/libbpf.h" | ||
-#include "libbpf/src/btf.h" | ||
+#include <bpf/libbpf.h> | ||
+#include <bpf/btf.h> | ||
#include <vector> | ||
|
||
#define BCC_MAX_ERRNO 4095 | ||
diff --git a/src/cc/bpf_module.cc b/src/cc/bpf_module.cc | ||
index 836c458f..eb03ce59 100644 | ||
--- a/src/cc/bpf_module.cc | ||
+++ b/src/cc/bpf_module.cc | ||
@@ -43,7 +43,7 @@ | ||
#include "exported_files.h" | ||
#include "libbpf.h" | ||
#include "bcc_btf.h" | ||
-#include "libbpf/src/bpf.h" | ||
+#include <bpf/bpf.h> | ||
|
||
namespace ebpf { | ||
|
||
diff --git a/src/cc/libbpf.c b/src/cc/libbpf.c | ||
index 63f4894e..83147dbe 100644 | ||
--- a/src/cc/libbpf.c | ||
+++ b/src/cc/libbpf.c | ||
@@ -52,8 +52,8 @@ | ||
// TODO: Remove this when CentOS 6 support is not needed anymore | ||
#include "setns.h" | ||
|
||
-#include "libbpf/src/bpf.h" | ||
-#include "libbpf/src/libbpf.h" | ||
+#include <bpf/bpf.h> | ||
+#include <bpf/libbpf.h> | ||
|
||
// TODO: remove these defines when linux-libc-dev exports them properly | ||
|
||
diff --git a/tests/cc/CMakeLists.txt b/tests/cc/CMakeLists.txt | ||
index a47abe14..ae710eb4 100644 | ||
--- a/tests/cc/CMakeLists.txt | ||
+++ b/tests/cc/CMakeLists.txt | ||
@@ -3,7 +3,7 @@ | ||
|
||
include_directories(${CMAKE_SOURCE_DIR}/src/cc) | ||
include_directories(${CMAKE_SOURCE_DIR}/src/cc/api) | ||
-include_directories(${CMAKE_SOURCE_DIR}/src/cc/libbpf/include/uapi) | ||
+include_directories(${LIBBPF_INCLUDE_DIRS}) | ||
|
||
add_executable(test_static test_static.c) | ||
target_link_libraries(test_static bcc-static) |