1config BR2_PACKAGE_BCC 2 bool "bcc" 3 depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS 4 depends on BR2_USE_MMU # python3 5 depends on BR2_TOOLCHAIN_USES_GLIBC # hardcode GNU tuple (x86_64-unknown-linux-gnu) 6 depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # clang 7 depends on BR2_INSTALL_LIBSTDCPP # clang 8 depends on BR2_HOST_GCC_AT_LEAST_7 # clang 9 depends on BR2_USE_WCHAR # clang, python3 10 depends on BR2_TOOLCHAIN_HAS_THREADS # clang, python3 11 depends on !BR2_STATIC_LIBS # clang, python3 12 select BR2_PACKAGE_CLANG 13 select BR2_PACKAGE_ELFUTILS 14 select BR2_PACKAGE_FLEX # needs FlexLexer.h 15 select BR2_PACKAGE_HOST_ZIP 16 select BR2_PACKAGE_LLVM 17 select BR2_PACKAGE_LLVM_BPF 18 select BR2_PACKAGE_PYTHON3 19 help 20 BPF Compiler Collection (BCC) 21 22 BCC is a toolkit for creating efficient kernel tracing and 23 manipulation programs, and includes several useful tools and 24 examples. It makes use of extended BPF (Berkeley Packet 25 Filters), formally known as eBPF, a new feature that was 26 first added to Linux 3.15. Much of what BCC uses requires 27 Linux 4.1 and above. 28 29 Note: Before using bcc, you need either need to : 30 - For kernel_ver = [4.1, 5.2) : Copy kernel source code 31 to target folder /lib/module/<kernel_ver>/build. 32 - Or kernel_ver >= 5.2 : Compile kernel with CONFIG_IKHEADERS 33 and use generated headers under /sys/kernel/kheaders.tar.xz 34 to populate /lib/module/<kernel_ver>/build. 35 36 That's because the clang frontend build eBPF code at runtime. 37 38 https://github.com/iovisor/bcc 39 http://www.ebpf.io 40 41comment "bcc needs a glibc toolchain, C++, gcc >= 7, host gcc >= 7" 42 depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS 43 depends on BR2_USE_MMU 44 depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP \ 45 || !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_HOST_GCC_AT_LEAST_7 46