Libbpf v1.1 has been released ([0])! It's been almost 3 months since v1.0.1 release, and as you can see from the changelog below, v1.1 doesn't add much new functionality. Instead, there is a rather large number of various bug fixes and improvements, all over the API surface, improving usability and stability of the library. Which seems like a good thing and is a sign of libbpf's maturity and completeness. Thank you to all the contributors that are constantly making libbpf a better BPF loader library! ## User space-side features and APIs: - user-space ring buffer (`BPF_MAP_TYPE_USER_RINGBUF`) support; - new [documentation page](https://libbpf.readthedocs.io/en/latest/program_types.html) listing all recognized `SEC()` definitions; - BTF dedup improvements: - unambiguous fwd declaration resolution for structs and unions; - better handling of some corner cases with identical structs and arrays; - mixed enum and enum64 forward declaration resolution logic; - `bpf_{link,btf,pro,mapg}_get_fd_by_id_opts()` and `bpf_get_fd_by_id_opts()` APIs; - libbpf supports loading raw BTF for BPF CO-RE from known search paths; - support for new cgroup local storage (`BPF_MAP_TYPE_CGRP_STORAGE`); - libbpf will only add `BPF_F_MMAPABLE` flag for data maps with *global* (i.e., non-static) vars; - latest Linux UAPI headers with lots of changes synced into include/uapi/linux. ## BPF-side features and APIs; - `BPF_PROG2()` macro added that supports struct-by-value arguments; - new BPF helpers: - `bpf_user_ringbuf_drain()`; - `cgrp_storage_get()` and `cgrp_storage_delete()`. ## Bug fixes - BTF-to-C converter fixes: - better handling of padding corner cases; - `btf__align_of()` determines packed structs better now; - improved handling of enums of non-standard sizes; - USDT spec parsing improvements; - overflow handling fixes for ringbufs; - Makefile fixes to support cross-compilation for 32-bit targets; - fix crash if `SEC("freplace")` programs don't have `attach_prog_fd` set; - better handling of file existence checks when running as non-root with enhanced capabilities; - a bunch of small fixes: - ELF handling improvements; - fix memory leak in USDT argument parsing logic; - fix NULL dereferences in few corner cases; - improved netlink attribute iteration handling. [0] https://github.com/libbpf/libbpf/releases/tag/v1.1.0 [1] Full Changelog: https://github.com/libbpf/libbpf/compare/v1.0.1...v1.1.0 -- Andrii