diff --git a/testing/bcc/10-include-stddef.patch b/testing/bcc/10-include-stddef.patch new file mode 100644 index 0000000000000000000000000000000000000000..6751c69aa4b85c86fcacb766fcac0a40d98b668a --- /dev/null +++ b/testing/bcc/10-include-stddef.patch @@ -0,0 +1,48 @@ +diff --git a/src/cc/api/BPF.cc b/src/cc/api/BPF.cc +index 473784c0..e3fb2d3f 100644 +--- a/src/cc/api/BPF.cc ++++ b/src/cc/api/BPF.cc +@@ -15,6 +15,7 @@ + */ + + #include <linux/bpf.h> ++#include <linux/stddef.h> + #include <linux/perf_event.h> + #include <unistd.h> + #include <cstdio> +diff --git a/src/cc/api/BPFTable.cc b/src/cc/api/BPFTable.cc +index 67e8a8f2..eab58610 100644 +--- a/src/cc/api/BPFTable.cc ++++ b/src/cc/api/BPFTable.cc +@@ -16,6 +16,7 @@ + + #include <fcntl.h> + #include <linux/elf.h> ++#include <linux/stddef.h> + #include <linux/perf_event.h> + #include <sys/epoll.h> + #include <unistd.h> +diff --git a/src/cc/libbpf.c b/src/cc/libbpf.c +index 9b0024dc..1aa6c9a6 100644 +--- a/src/cc/libbpf.c ++++ b/src/cc/libbpf.c +@@ -25,6 +25,7 @@ + #include <linux/bpf.h> + #include <linux/bpf_common.h> + #include <linux/if_packet.h> ++#include <linux/stddef.h> + #include <linux/perf_event.h> + #include <linux/pkt_cls.h> + #include <linux/rtnetlink.h> +diff --git a/src/cc/perf_reader.c b/src/cc/perf_reader.c +index 3cab0153..c378559e 100644 +--- a/src/cc/perf_reader.c ++++ b/src/cc/perf_reader.c +@@ -25,6 +25,7 @@ + #include <sys/mman.h> + #include <sys/types.h> + #include <unistd.h> ++#include <linux/stddef.h> + #include <linux/perf_event.h> + + #include "libbpf.h" diff --git a/testing/bcc/20-libbpf-include-stddef.patch b/testing/bcc/20-libbpf-include-stddef.patch new file mode 100644 index 0000000000000000000000000000000000000000..34523b230695e0497a6c714ce23cd94146848976 --- /dev/null +++ b/testing/bcc/20-libbpf-include-stddef.patch @@ -0,0 +1,12 @@ +diff --git a/src/cc/libbpf/src/libbpf.c b/src/cc/libbpf/src/libbpf.c +index b38dcbe..bc3ac5d 100644 +--- a/src/cc/libbpf/src/libbpf.c ++++ b/src/cc/libbpf/src/libbpf.c +@@ -29,6 +29,7 @@ + #include <linux/filter.h> + #include <linux/list.h> + #include <linux/limits.h> ++#include <linux/stddef.h> + #include <linux/perf_event.h> + #include <linux/ring_buffer.h> + #include <sys/stat.h> diff --git a/testing/bcc/20-use-system-libbpf.patch b/testing/bcc/20-use-system-libbpf.patch new file mode 100644 index 0000000000000000000000000000000000000000..8f1b0c3fe56dd5f8a99f2227fcd3bedc3052e6cd --- /dev/null +++ b/testing/bcc/20-use-system-libbpf.patch @@ -0,0 +1,132 @@ +diff --git a/introspection/CMakeLists.txt b/introspection/CMakeLists.txt +index 88df6e84..22f934f2 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(/usr/include/uapi) + + option(INSTALL_INTROSPECTION "Install BPF introspection tools" ON) + + add_executable(bps bps.c) +-target_link_libraries(bps bpf-static) ++target_link_libraries(bps bccbpf-static) + + install (TARGETS bps DESTINATION share/bcc/introspection) +diff --git a/introspection/bps.c b/introspection/bps.c +index 4993b8e7..61fc6693 100644 +--- a/introspection/bps.c ++++ b/introspection/bps.c +@@ -8,6 +8,7 @@ + #include <unistd.h> + #include <ctype.h> + #include <sysexits.h> ++#include <linux/bpf.h> + + #include "libbpf.h" + +diff --git a/src/cc/CMakeLists.txt b/src/cc/CMakeLists.txt +index 59a59856..8dd3535d 100644 +--- a/src/cc/CMakeLists.txt ++++ b/src/cc/CMakeLists.txt +@@ -10,8 +10,8 @@ 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(/usr/include) ++include_directories(/usr/include/uapi) + add_definitions(${LLVM_DEFINITIONS}) + configure_file(libbcc.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libbcc.pc @ONLY) + +@@ -28,12 +28,13 @@ 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 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 bpf) ++add_library(bccbpf-static STATIC libbpf.c perf_reader.c) ++set_target_properties(bccbpf-static PROPERTIES OUTPUT_NAME bccbpf) ++target_link_libraries(bccbpf-static bpf) ++add_library(bccbpf-shared SHARED libbpf.c perf_reader.c) ++set_target_properties(bccbpf-shared PROPERTIES VERSION ${REVISION_LAST} SOVERSION 0) ++set_target_properties(bccbpf-shared PROPERTIES OUTPUT_NAME bccbpf) ++target_link_libraries(bccbpf-shared 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) +@@ -79,11 +80,11 @@ 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 bccbpf-static bpf + -Wl,--whole-archive ${clang_libs} ${llvm_libs} -Wl,--no-whole-archive + ${LIBELF_LIBRARIES}) + set(bcc_common_libs_for_s ${bcc_common_libs_for_a}) +-set(bcc_common_libs_for_lua b_frontend clang_frontend bpf-static ++set(bcc_common_libs_for_lua b_frontend clang_frontend bccbpf-static bpf + ${clang_libs} ${llvm_libs} ${LIBELF_LIBRARIES}) + + if(ENABLE_CPP_API) +@@ -115,4 +116,4 @@ install(DIRECTORY libbpf/include/uapi/linux/ DESTINATION include/bcc/compat/linu + 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}) ++install(TARGETS bccbpf-shared LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +diff --git a/src/cc/bcc_btf.cc b/src/cc/bcc_btf.cc +index 881959af..0c6d86a2 100644 +--- a/src/cc/bcc_btf.cc ++++ b/src/cc/bcc_btf.cc +@@ -17,10 +17,12 @@ + #include "bcc_btf.h" + #include <stdarg.h> + #include <string.h> ++ ++#include <linux/bpf.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 cf6ea8f3..c5684b84 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 9b0024dc..69452623 100644 +--- a/src/cc/libbpf.c ++++ b/src/cc/libbpf.c +@@ -51,8 +51,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/testing/bcc/APKBUILD b/testing/bcc/APKBUILD index 5d85b03a3a2fb66d43cfb2572309010b77b461a4..01e5d5f28eaf76f14f00a2fd6319e35753af3056 100644 --- a/testing/bcc/APKBUILD +++ b/testing/bcc/APKBUILD @@ -1,17 +1,27 @@ # Maintainer: Adam Jensen <acjensen@gmail.com> pkgname=bcc -pkgver=0.8.0 +pkgver=0.9.0 pkgrel=0 pkgdesc="A toolkit for creating efficient kernel tracing and manipulation programs" url="https://github.com/iovisor/bcc/" -arch="aarch64 x86_64" +arch="aarch64 x86 x86_64" license="Apache-2.0" # bcc's test suite requires privileged access to run BPF programs options="!check" -depends="python" +depends="libbpf python" makedepends="tar git llvm7-dev llvm7-static clang-dev clang-static cmake flex-dev - bison luajit-dev build-base iperf linux-headers elfutils-dev zlib-dev" -source="$pkgname-$pkgver.tar.gz::https://github.com/iovisor/$pkgname/archive/v$pkgver.tar.gz" + bison luajit-dev build-base iperf linux-headers elfutils-dev zlib-dev + libbpf-dev" +source="$pkgname-$pkgver.tar.gz::https://github.com/iovisor/$pkgname/archive/v$pkgver.tar.gz + 10-include-stddef.patch + 20-use-system-libbpf.patch" + +prepare() { + rm -rf tests/* && touch tests/CMakeLists.txt + rm -rf examples/* && touch examples/CMakeLists.txt + + default_prepare +} build() { mkdir -p "$builddir/build" @@ -25,4 +35,6 @@ package() { make install DESTDIR="$pkgdir" } -sha512sums="e46bd8076f6a440b05fd4f94e14d05365d685bfef43d466831a82891a1c131aed22028d29e5be5dd957f00fc3e31d84a96021adf90ae7dbcd7bbf888a7c19774 bcc-0.8.0.tar.gz" +sha512sums="373080181380ec3bcb13469e29ff1f792e924a2df00a614da4647ed54060ad216525dd0f49c5d0afba7946a6d2f4e3475af97250a33db825945af3d165294091 bcc-0.9.0.tar.gz +5c2b470b107365bd4fb9465909190d3c7d253a45d61b420e09d719906e6f8d90c99e012857ab03ee09e3348c598ac4feb1296011f845a158944e158571503015 10-include-stddef.patch +c7cf67ff8fe3437b62c50cc54de612e7d3af294cc3c7c271acc6826ea39e0dcf6edcae48f8f8834ea3527cc8ce3f7693bc6ad74b395f8dd709052cd720d02e79 20-use-system-libbpf.patch"