New features
- Add support for signing BPF programs before loading them, using a private PEM key and X.509 certificate. This comes at the cost of an additional build dependency to OpenSSL's development library. (6b9405a, 2d37198, 865da8c)
- Add a new command
bpftool token listshowing information for each BPF virtual file system mount point containing BPF token information. (91d14c3, 70d7843, 3cfb156, 9a1d7b3, 00ade8b) - Add support for instructions array maps (
insn_arraykeyword), and teach the disassembler about indirect jump instructions. (6a7a050, 3db1faa) - Support merging multiple module BTF objects with
bpftool btf dump file <path1> file <path2> .... (1664891) - Add a
prependoption for loading tcx programs (bpftool net attach tcx_ingress name tc_prog dev lo prepend) to insert the program at the beginning of the chain. (e22710d) - Add support for
fsessionattach type for cgroup programs. (0f57bca) - Improve the error message when dumping a JIT-ed BPF program returns no instructions, to hint at
kernel.kptr_restrictthat might interfere with the dump. (0b99945) - Update the
bpftool-progmanual page to mention newer ekfuncbpf_stream_vprintk_impl()rather than the legacybpf_stream_vprintk(). (640fb7c)
Bug fixes
- Fix truncated Netlink dumps. (f38edf1)
- Fix a missing closing parenthesis when dumping BTF and printing an item with unsupported BTF kind. (60f3d88)
- Fix symbol matching logic for showing multi-kprobe links to account for Control-flow Enforcement Technology (CET) for x86_64 architectures. (43342f4, bdf9e48)
Build fixes
- Fix dependencies order for static build. (2381434)
- Make skeleton C++ compatible with explicit casts. (8b1712f)
- Build, and fix the resulting warnings, with
-fms-extensions, to support for anonymous structs or unions. This is required because the kernel now builds with these extensions as well, and may leak anonymous structs or unions into thevmlinux.hBTF header generated and used by bpftool. (829b8a6) - Fix
uninitialized-const-pointerwarnings for clang >= 21. (8ed27e2)
Other internal changes
- Remove duplicate
string.hheader inclusion in one source file. (66fec80)
Continuous deployment
Known bugs
- Static builds on Ubuntu 24.04 relying on the libbfd-based disassembler may fail, because of missing linker flags to add the zstd and sframe libraries. Workarounds include using the LLVM-based disassembler instead, using no disassembler, using libbfd < 2.40, or manually overwriting all
LIBSflags when building bpftool (it's ugly but it works). (#73)
Full Changelog: v7.6.0...v7.7.0