kumquat-buildroot/package/bcc/Config.in
Jugurtha BELKALEM 146498d13c package/bcc: new package
bcc is a front-end tool for eBPF:
https://github.com/iovisor/bcc/blob/master/README.md
eBPF is the most powerful Linux tracer, and bcc allows writing eBPF
scripts in C and PYTHON3.

bcc can help to troubleshoot issues quickly on embedded systems (as long
as Linux kernel version >= 4.1).

bcc can also make it easy to create observabilty tools, SDN
configuration, ddos mitigation, intrusion detection and secure
containers. More information is available at: https://ebpf.io/

BCC can be tested on the target :
$ mount -t debugfs none /sys/kernel/debug
$ cd /usr/share/bcc/tools
$ ./execsnoop

Signed-off-by: Jugurtha BELKALEM <jugurtha.belkalem@smile.fr>
Signed-off-by: Romain Naour <romain.naour@gmail.com>
Tested-by: Qais Yousef <qais.yousef@arm.com>
Reviewed-by: Qais Yousef <qais.yousef@arm.com>
Cc: Qais Yousef <qyousef@layalina.io>
Signed-off-by: Mat Martineau <martineau@kernel.org>
[Arnout: order dependencies alphabetically, fix Config.in comment]
Signed-off-by: Arnout Vandecappelle <arnout@mind.be>
2024-04-03 23:09:12 +02:00

46 lines
1.7 KiB
Plaintext

config BR2_PACKAGE_BCC
bool "bcc"
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
depends on BR2_USE_MMU # python3
depends on BR2_TOOLCHAIN_USES_GLIBC # hardcode GNU tuple (x86_64-unknown-linux-gnu)
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # clang
depends on BR2_INSTALL_LIBSTDCPP # clang
depends on BR2_HOST_GCC_AT_LEAST_7 # clang
depends on BR2_USE_WCHAR # clang, python3
depends on BR2_TOOLCHAIN_HAS_THREADS # clang, python3
depends on !BR2_STATIC_LIBS # clang, python3
select BR2_PACKAGE_CLANG
select BR2_PACKAGE_ELFUTILS
select BR2_PACKAGE_FLEX # needs FlexLexer.h
select BR2_PACKAGE_HOST_ZIP
select BR2_PACKAGE_LLVM
select BR2_PACKAGE_LLVM_BPF
select BR2_PACKAGE_PYTHON3
help
BPF Compiler Collection (BCC)
BCC is a toolkit for creating efficient kernel tracing and
manipulation programs, and includes several useful tools and
examples. It makes use of extended BPF (Berkeley Packet
Filters), formally known as eBPF, a new feature that was
first added to Linux 3.15. Much of what BCC uses requires
Linux 4.1 and above.
Note: Before using bcc, you need either need to :
- For kernel_ver = [4.1, 5.2) : Copy kernel source code
to target folder /lib/module/<kernel_ver>/build.
- Or kernel_ver >= 5.2 : Compile kernel with CONFIG_IKHEADERS
and use generated headers under /sys/kernel/kheaders.tar.xz
to populate /lib/module/<kernel_ver>/build.
That's because the clang frontend build eBPF code at runtime.
https://github.com/iovisor/bcc
http://www.ebpf.io
comment "bcc needs a glibc toolchain, C++, gcc >= 7, host gcc >= 7"
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
depends on BR2_USE_MMU
depends on !BR2_TOOLCHAIN_USES_GLIBC || !BR2_INSTALL_LIBSTDCPP \
|| !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_HOST_GCC_AT_LEAST_7