SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

 
 
Changelog for libbpf-devel-1.4.3-1.1.x86_64.rpm :

* Tue Jun 04 2024 Shung-Hsi Yu - update to 1.4.3:
* Fix libbpf unintentionally dropping FD_CLOEXEC flag when (internally) duping FDs
* Sat May 11 2024 Fredrik Lönnegren - update to 1.4.2:
* Another struct_ops-focused bug fix release. It addresses a few more corner cases when dealing with SEC(\"struct_ops\") programs.
* It also improves error messaging around common use case of declaring struct_ops BPF program and not referencing it from SEC(\".struct_ops\") variable (backed by struct_ops BPF map).
* This release should improve overall experience of using BPF struct_ops functionality.
* Thu May 02 2024 Fredrik Lönnegren - update to 1.4.1:
* Bug fix release fixing logic around determining whether to autoload SEC(\"struct_ops\") programs in cases when old kernel doesn\'t support some optional callbacks and user reset them to NULL from BPF skeleton.
* Wed Apr 03 2024 Shung-Hsi Yu - update to 1.4.0:
* support for BPF token throughout low-level and high-level APIs (see also LIBBPF_BPF_TOKEN_PATH envvar)
* struct_ops functionality around handling multi-kernel compatibility using BPF CO-RE principles and approaches
* BPF arena map support
* support __arena tagged global variables, which are automatically put into BPF arena map
* BPF cookie support for raw tracepoint BPF programs in attach APIs loaded or created, respectively
* add SEC(\"sk_skb/verdict\") support
* support global subprog argument tagging for for kprobe/uprobe, and perf_event BPF program with newly added __arg_ctx, __arg_nonnull, __arg_nullable, __arg_trusted, and __arg_arena annotations
* add bpf_core_cast() macro, improving ergonomics of bpf_rdonly_cast() BPF helper
* __long() macro added for specifying 64-bit values when declaring BTF-defined maps
* better GCC-BPF support in BPF CO-RE macros in bpf_core_read.h header
* show specific error messages when attempting to use struct bpf_program/bpf_map instances there were not loaded or created
* fix inner map\'s max_entries setting logic
* btf_ext__raw_data() and btf__new_split() APIs are added back
* ignore DWARF sections in BPF linker sanity checks, improving handling of some corner cases
* fix potential NULL dereference when handling corrupted ELF files.
* Sat Nov 25 2023 Dirk Müller - update to 1.3.0:
* support for `netfilter` programs is added `SEC(\"netfilter\")` is now available
* API function `bpf_program__attach_netfilter()` is now available
* support for `tcx` BPF programs is added:
* the following new SEC definitions are now available: SEC(\"tc/egress\"), SEC(\"tc/ingress\"), SEC(\"tcx/egress\"), SEC(\"tcx/ingress\")
* the following SEC definitions are now considered legacy: SEC(\"tc\"), SEC(\"action\"), SEC(\"classifier\")
* functions `bpf_prog_attach_opts()` and `bpf_prog_query_opts()` are extended to work with `tcx` programs, plus two new API functions are added:
* the following new SEC definitions are now available: SEC(\"uprobe.multi\"), SEC(\"uprobe.multi.s\"), SEC(\"uretprobe.multi\"), SEC(\"uretprobe.multi.s\")
* support for section `SEC(\"usdt.s\")` is added for sleepable `usdt` programs;
* support for Unix domain socket cgroup BPF programs is added the following new SEC definitions are now available: SEC(\"cgroup/connect_unix\"),SEC(\"cgroup/sendmsg_unix\"), SEC(\"cgroup/recvmsg_unix\"), SEC(\"cgroup/getpeername_unix\"), SEC(\"cgroup/getsockname_unix\")
* new `LIBBPF_OPTS_RESET()` utility macro;
* new `bpf_object__unpin()` function to complement existing `bpf_object__pin()`;
* new API functions for work with ring buffers
* uprobe SEC matcher extended to allow golang symbols;
* uprobe support for symbols versioning;
* `bpf_map__set_value_size()` can now be used to resize memory mapped region for memory mapped maps;
* `struct bpf_xdp_query_opts` extended with `xdp_zc_max_segs` output field;
* basic BTF sanity check pass added to reject bogus BTF.
* fix for btf_dump__dump_type_data() when type contains bitfields;
* fix for correct work of offsetof() and container_of() macro with CO-RE;
* no longer attempt to load modules BTF when resolving CO-RE relocations if CAP_SYS_ADMIN are absent;
* regex based function search for \"kprobe.multi/\" programs no longer attempts to trace functions that cannot be traced;
* bpf_program__set_type() no longer resets sec_def if it is set to a custom fallback SEC handler;
* fix for memory leak possible after bpf_program__set_attach_target() call;
* Fri Jul 14 2023 Shung-Hsi Yu - update to v1.2.2:
* fix a regression in perf tool caused by libbpf resetting its custom catch-all SEC() handler on explicit bpf_program__set_type() call
* fix possible double-free in USDT-related libbpf code, which happens when libbpf runs out of space in __bpf_usdt_specs map due to having too many unique USDT specs
* Tue May 02 2023 Dirk Müller - update to 1.2.0:
* completely overhauled \"Libbpf overview\" landing documentation page;
* support for BPF link-based `struct_ops` programs:
* `SEC(\".struct_ops.link\")` annotations;
* `bpf_map__attach_struct_ops()` attach API;
* `bpf_link__update_map()` link update API;
* support sleepable `SEC(\"struct_ops.s\")` programs
* improved thread-safety of libbpf print callbacks and `libbpf_set_print()`
* improve handling and reporting of missing BPF kfuncs
* `bpf_{btf,link,map,prog}_get_info_by_fd()` APIs
* `bpf_xdp_query_opts()` supports fetching XDP/XSK supported features;
* `perf_buffer__new()` allows customizing notification/sampling period now;
* BPF verifier logging improvements:
* pass-through BPF verifier log level and flags to kernel as is
* support `log_true_size` for getting required log buffer size to fit BPF verifier log completely;
* allow precise control over kprobe/uprobe attach mode: legacy, perf-based, link-based.
* fix legacy kprobe events names sanitization;
* fix clobbering errno in some cases;
* fix BPF map\'s `BPF_F_MMAPABLE` flag sanitization;
* fix BPF-side USDT support code on s390x architecture;
* fix `BPF_PROBE_READ{_STR}_INTO()` on s390x architecture;
* fix kernel version setting for Debian kernels;
* fix netlink protocol handling in some cases;
* improve robustness of attaching to legacy kprobes and uprobes;
* fix double-free during static linking empty ELF sections;
* a bunch of other small fixes here and there.
* Thu Jan 05 2023 Shung-Hsi Yu - Remove requirement of linux-glibc-devel >= 5.16 for devel package
* Thu Dec 22 2022 Dirk Müller - update to v1.1.0: User space-side features and APIs:
* user-space ring buffer (BPF_MAP_TYPE_USER_RINGBUF) support;
* new documentation page 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
* 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.- drop libbpf-Use-elf_getshdrnum-instead-of-e_shnum.patch, libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch, libbpf-Fix-memory-leak-in-parse_usdt_arg.patch libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch (upstream)
* Tue Nov 08 2022 Shung-Hsi Yu - Fix out-of-bound heap write (boo#1194248 boo#1194249 CVE-2021-45940 CVE-2021-45941) + libbpf-Use-elf_getshdrnum-instead-of-e_shnum.patch- Fix use-after-free in btf_dump_name_dups (boo#1204391 CVE-2022-3534) + libbpf-Fix-use-after-free-in-btf_dump_name_dups.patch- Fix memory leak in parse_usdt_arg() (boo#1204393 CVE-2022-3533) + libbpf-Fix-memory-leak-in-parse_usdt_arg.patch- Fix null pointer dereference in find_prog_by_sec_insn() (boo#1204502 CVE-2022-3606) + libbpf-Fix-null-pointer-dereference-in-find_prog_by_.patch
* Tue Oct 04 2022 Dirk Müller - update to 1.0.1:
* fix inadvertently changed struct bpf_object_open_opts memory layout;
* fix btf.h header relying on struct enum64 type defined in kernel UAPI headers;
* fix NULL pointer exception in API btf_dump__dump_type_data;
* remove struct btf_map_def accidentally left in bpf_helpers.h header.
* All deprecated APIs and features removed!
* support for syscall-specific kprobe/kretprobe (SEC(\"ksyscall/\") and SEC(\"kretsyscall/\"));
* support for sleepable uprobe BPF programs (SEC(\"uprobe.s\"));
* support for per-cgroup LSM BPF programs (SEC(\"lsm_cgroup\"));
* support for new BPF CO-RE relocation TYPE_MATCHES;
* bpf_prog_load() and bpf_map_create() are now smarter about handling program and map name on old kernels (it will be ignored if kernel doesn\'t support names);
* BTF_KIND_ENUM64 support;
* increase tracing attachment (kprobe/uprobe/tracepoint) robustness by using tracefs or debugfs, whichever is mounted;
* new APIs for converting BPF enums to their string representation:
* libbpf_bpf_prog_type_str();
* libbpf_bpf_map_type_str();
* libbpf_bpf_link_type_str();
* libbpf_bpf_attach_type_str();
* bpf_program__set_autoattach() and bpf_program__autoattach() to allow opting out from auto-attaching of BPF program by BPF skeleton;
* perf_buffer__buffer() API to give access to underlying per-CPU buffer for BPF ringbuf;
* bpf_obj_get_opts() API for more flexible fetching of BPF kernel objects\' information.- see https://github.com/libbpf/libbpf/releases/tag/v1.0.0 for detailed changelog
* Wed Aug 03 2022 Callum Farmer - Update to release 0.8.1:
* make shared xsk creation network namespace aware
* Thu May 19 2022 Shung-Hsi Yu - Update to release 0.8.0
* New features and APIs: - support auto-resolution of binaries and shared libraries from PATH, if necessary; - support attaching by function names (only by IP was supported before); - support attaching to USDTs (SEC(\"usdt/...\") and bpf_program__attach_usdt()) with initially supported architectures: x86-64 (amd64); x86 (i386); s390x; ARM64 (aarch64); RISC V (riscv); - improved BPF verifier log reporting for CO-RE relocation failures (no more obscure \"invalid func unknown#195896080\" errors); - auto-adjust BPF ringbuf size according to host kernel\'s page size requirements; - high-level BPF map APIs: bpf_map__lookup_elem(), bpf_map__update_elem(), etc that validate key/value buffer sizes; - bpf_link_create() can create all bpf_link-based (including raw_tp, fentry/fexit, etc), falling back to bpf_raw_tracepoint_open() on old kernels transparently; - support opting out from auto-loading BPF programs declaratively with SEC(\"?...\"); - support opting out from auto-creation of declarative BPF maps with bpf_map__set_autocreate(); - support multi-kprobes (SEC(\"kprobe.multi/...\") and bpf_program__attach_kprobe_multi_opts()); - support target-less SEC() programs (e.g., SEC(\"kprobe\"), SEC(\"tp\"), etc); - support BPF sub-skeletons for \"incomplete\" BPF object files (requires matching bpftool to generate .subskel.h); - BPF cookie support for fentry/fexit/fmod_ret BPF programs (bpf_program__attach_trace_opts()); - support for custom SEC() handlers (libbpf_register_prog_handler()).
* BPF-side API - BPF-side USDT APIs. See new usdt.bpf.h header:
* BPF_USDT() program wrapper macro; bpf_usdt_arg(), bpf_usdt_arg_cnt(),
* bpf_usdt_cookie() helpers; - new bpf_core_field_offset() CO-RE helper and support bpf_core_field_size(type, field) forms; - barrier() and barrier_var() macros for improving BPF code generation; - __kptr and __kptr_ref tags added; - ARC architecture support in bpf_tracing.h header; - new BPF helpers:
* bpf_skb_set_tstamp();
* bpf_ima_file_hash();
* bpf_kptr_xchg();
* bpf_map_lookup_percpu_elem().
* Bug fixes - netlink bug fixes; - libbpf.pc fixes to support patch releases properly; - BPF_MAP_TYPE_PERF_EVENT_ARRAY map auto-pinning fix; - minor CO-RE fixes and improvements for some corner cases; - various other small fixes and improvements.
* Thu Mar 10 2022 Jeff Mahoney - Enable building and packaging of static library. Explicitly enable fat LTO objects.
* Mon Mar 07 2022 Jan Engelhardt - Python is not used during build; remove it and help break a cycle.
* Fri Mar 04 2022 Jan Engelhardt - Update to release 0.7.0
* legacy BPF map definitions (using struct bpf_map_def) are deprecated when LIBBPF_STRICT_MAP_DEFINITIONS is passed to libbpf_set_strict_mode(). Please use BTF-defined map definitions.
* ability to control and capture BPF verifier log output on per-object and per-program level
* CO-RE support and other improvements for \"light skeleton\"
* improved compilation when system BTF UAPI headers are outdated
* Sat Dec 11 2021 Jan Engelhardt - Update to release 0.6.1
* Introduce legacy kprobe events support
* Add legacy uprobe attaching support
* Support uniform BTF-defined key/value specification across all BPF maps
* Support kernel module function calls
* Support detecting and attaching of writable tracepoint program
* Add bloom filter map implementation
* Add typeless and weak ksym support to gen_loader
* Add RISC-V (RV64) support to bpf_tracing.h
* Deprecate AF_XDP support
* Support BTF_KIND_TYPE_TAG
* Mon Sep 27 2021 Shung-Hsi Yu - Update to 0.5.0: + New features and user-space APIs: - libbpf_set_strict_mode() allowing to opt-in into backwards incompatible libbpf-1.0 changes. See \"Libbpf: the road to 1.0\" and \"Libbpf 1.0 migration guide\" for more details. - streamlined error reporting for low-level APIs, high-level error-returning APIs, and pointer-returning APIs (as a libbpf-1.0 opt-in); - \"Light\" BPF skeleton support; - BPF_PROG_TYPE_SYSCALL support; - BPF perf link support for kprobe, uprobe, tracepoint, and perf_event BPF programs; - BPF cookie support for kprobe, uprobe, tracepoint, and perf_event BPF programs through bpf_program__attach_[ku]probe_opts() APIs; - allow to specify ref_ctr_off for USDT semaphores through bpf_program__attach_uprobe_opts() API; - btf_custom_path support in bpf_object_open_opts, allowing to specify custom BTF for CO-RE relocations; - sk_reuseport/migrate program type support; - btf_dump__dump_type_data() API, allowing to dump binary data according to BTF type description; - btf__load_into_kernel() and btf__load_from_kernel_by_id(), and split BTF variants of them; - btf__load_vmlinux_btf() and btf__load_module_btf() APIs; - bpf_map__initial_value() API to get initial value of mmap-ed BPF maps; - bpf_map_lookup_and_delete_elem_flags() API. + BPF-side APIs and features: - support for weak typed __ksym externs; - BPF timer helpers: bpf_timer_init(), bpf_timer_set_callback(), bpf_timer_start(), bpf_timer_cancel(); - bpf_get_attach_cookie() helper to get BPF cookie from BPF program side; - bpf_get_func_ip() helper; - bpf_sys_bpf() helper; - bpf_task_pt_regs() helper; - bpf_btf_find_by_name_kind() helper; - usability improvements for bpf_tracing.h when target architecture is missing. + Bug fixes and compatibility improvements: - improve BPF support detection on old Red Hat kernels with backported BPF patches; - improvements for LTO builds with GCC 10+; - pass NLM_F_EXCL when creating TC qdisc; - better support of BPF map reuse on old kernels; - fix the bug resulting in sometimes closing FD 0, which wasn\'t created and owned by libbpf itself.- Remove patches merged upstream + libdir.patch + libbpf-Fix-build-with-latest-gcc-binutils-with-LTO.patch
* Fri Aug 27 2021 Michal Suchanek - Fix LTO build (bsc#1188749). + libbpf-Fix-build-with-latest-gcc-binutils-with-LTO.patch
* Fri Aug 20 2021 Michal Suchanek - Depend on new enough Linux headers.
* Mon Aug 02 2021 Callum Farmer - Create libbpf0-32bit needed by libdwarves1-32bit
* Sat Jul 17 2021 Michal Suchanek - libbpf is now a separate project, stop building from the kernel (bsc#1188419 jsc#SLE-17288 jsc#SLE-18805).- Fix LIBSUBDIR + libdir.patch
 
ICM