From 72e8aab6c8be8663c5b6ff6b606a51debf512f7d Mon Sep 17 00:00:00 2001 From: Dave Tucker Date: Wed, 28 Feb 2024 09:32:56 +0000 Subject: [PATCH] docs(aya-obj): Add CHANGELOG Signed-off-by: Dave Tucker --- aya-obj/CHANGELOG.md | 509 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 509 insertions(+) create mode 100644 aya-obj/CHANGELOG.md diff --git a/aya-obj/CHANGELOG.md b/aya-obj/CHANGELOG.md new file mode 100644 index 00000000..2bc98d0f --- /dev/null +++ b/aya-obj/CHANGELOG.md @@ -0,0 +1,509 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## Unreleased + +### Chore + + - Use the cargo workspace package table + This allows for inheritance of common fields from the workspace root. + The following fields have been made common: + + - authors + - license + - repository + - homepage + - edition + - Appease clippy unused imports + +### Other + + - appease new nightly clippy lints + ``` + error: unnecessary use of `get("foo").is_some()` + --> aya-obj/src/obj.rs:1690:26 + | + 1690 | assert!(obj.maps.get("foo").is_some()); + | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key("foo")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check + note: the lint level is defined here + --> aya-obj/src/lib.rs:68:9 + | + 68 | #![deny(clippy::all, missing_docs)] + | ^^^^^^^^^^^ + = note: `#[deny(clippy::unnecessary_get_then_check)]` implied by `#[deny(clippy::all)]` + + error: unnecessary use of `get("foo").is_some()` + --> aya-obj/src/obj.rs:1777:26 + | + 1777 | assert!(obj.maps.get("foo").is_some()); + | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key("foo")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check + + error: unnecessary use of `get("bar").is_some()` + --> aya-obj/src/obj.rs:1778:26 + | + 1778 | assert!(obj.maps.get("bar").is_some()); + | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key("bar")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check + + error: unnecessary use of `get("baz").is_some()` + --> aya-obj/src/obj.rs:1779:26 + | + 1779 | assert!(obj.maps.get("baz").is_some()); + | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key("baz")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check + + error: unnecessary use of `get(".bss").is_some()` + --> aya-obj/src/obj.rs:1799:26 + | + 1799 | assert!(obj.maps.get(".bss").is_some()); + | ^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(".bss")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check + + error: unnecessary use of `get(".rodata").is_some()` + --> aya-obj/src/obj.rs:1810:26 + | + 1810 | assert!(obj.maps.get(".rodata").is_some()); + | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(".rodata")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check + + error: unnecessary use of `get(".rodata.boo").is_some()` + --> aya-obj/src/obj.rs:1821:26 + | + 1821 | assert!(obj.maps.get(".rodata.boo").is_some()); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(".rodata.boo")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check + + error: unnecessary use of `get(".data").is_some()` + --> aya-obj/src/obj.rs:1832:26 + | + 1832 | assert!(obj.maps.get(".data").is_some()); + | ^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(".data")` + | + = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_get_then_check + + error: unnecessary use of `get(".data.boo").is_some()` + --> aya-obj/src/obj.rs:1843:26 + | + 1843 | assert!(obj.maps.get(".data.boo").is_some()); + | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `contains_key(".data.boo")` + ``` + - Handle lack of match of enum variants correctly + When comparing `local_spec` with `target_spec` for enum relocations, + we can encounter a situation when a matchinng variant in a candidate + spec doesn't exist. + + Before this change, such case wasn't handled explicitly, therefore + resulted in returning currently constructed `target_spec` at the + end. The problem is that such `target_spec` was, due to lack of + match, incomplete. It didn't contain any `accessors` nor `parts`. + + Later usage of such incomplete `target_spec` was leading to panics, + since the code operating on enums' `target_spec` expects at least + one `accessor` to be available. + - don't parse labels as programs + Fixes a bug introduced by https://github.com/aya-rs/aya/pull/413 where + we were generating a bunch of spurious LBB* programs. + - remove redundant keys + `default-features = false` is already in the root Cargo.toml. + - group_imports = "StdExternalCrate" + High time we stop debating this; let the robots do the work. + - make maps work on kernels not supporting ProgIds + On startup, the kernel is probed for support of chained program ids for + CpuMap, DevMap and DevMapHash, and will patch maps at load time to have + the proper size. Then, at runtime, the support is checked and will error + out if a program id is passed when the kernel does not support it. + - add support for map-bound XDP programs + Such programs are to be bound to cpumap or devmap instead of the usual + network interfaces. + - `MapFd` and `SockMapFd` are owned + - reduce indirection in section parsing + Remove repetition of permitted cgroup attach types. Make optionality of + name more explicit rather than pretending both kind and name are equal + to section. + - MapData::fd is non-optional + The primary driver of change here is that `MapData::create` is now a + factory function that returns `Result` rather than mutating + `&mut self`. The remaining changes are consequences of that change, the + most notable of which is the removal of several errors which are no + longer possible. + - Add clang-format + - s/types.types[i]/*t/ where possible + We already have a mutable reference in scope, use it where possible. + - Mutate BTF in-place without clone + The BTF we're working on is Cow anyway so modifying in-place is fine. + All we need to do is store some information before we start our + mutable iteration to avoid concurrently borrowing types both mutably and + immutably. + - use Self instead of restating the type + - avoid multiple vector allocations + Rather than creating an empty vector and iteratively appending - which + might induce intermediate allocations - create an ExactSizeIterator and + collect it into a vector, which should produce exactly one allocation. + - Fix (func|line)_info multiple progs in section + This commit fixes the (func|line)_info when we have multiple programs in + the same section. The integration test reloc.bpf.c serves as our test + case here. This required filtering down the (func|line)_info to only + that in scope of the current symbol + then adjusting the offets to + appease the kernel. + - Remove name from ProgramSection + The name here is never used as we get the program name from the symbol + table instead. + - Propagate sleepable into ProgramSection + - Find programs using the symbol table + This makes a few changes to the way that Aya reads the ELF object + files. + + 1. To find programs in a section, we use the symbols table. This allows + for cases where multiple programs could appear in the same section. + 2. When parsing our ELF file we build symbols_by_section_index as an + optimization as we use it for legacy maps, BTF maps and now programs. + + As a result of theses changes the "NAME" used in `bpf.prog_mut("NAME")` + is now ALWAYS the same as the function name in the eBPF code, making the + user experience more consistent. + - better panic messages + Always include operands in failing assertions. Use assert_matches over + manual match + panic. + - Define dependencies on the workspace level + This way we will avoid version mismatches and make differences in + features across our crates clearer. + - avoid an allocation + - remove dead code + This logic moved in bb595c4e69ff0c72c8327e7f64d43ca7a4bc16a3. The + mutation here prevented the compiler from noticing. + - don't allocate static strings + - aya-obj: Make it possible to externally assemble BtfEnum + - Make Features part of the public API + This commit adds a new probe for bpf_attach_cookie, which would be used + to implement USDT probes. Since USDT probes aren't currently supported, + we this triggers a dead_code warning in clippy. + + There are cases where exposing FEATURES - our lazy static - is actually + helpful to users of the library. For example, they may wish to choose to + load a different version of their bytecode based on current features. + Or, in the case of an orchestrator like bpfd, we might want to allow + users to describe which features their program needs and return nice + error message is one or more nodes in their cluster doesn't support the + necessary feature set. + + To do this without breaking the API, we make all the internal members of + the `Features` and `BtfFeatures` structs private, and add accessors for + them. We then add a `features()` API to avoid leaking the + lazy_static. + - allow global value to be optional + This allow to not error out when a global symbol is missing from the object. + - update hashbrown requirement from 0.13 to 0.14 + Updates the requirements on [hashbrown](https://github.com/rust-lang/hashbrown) to permit the latest version. + - [Changelog](https://github.com/rust-lang/hashbrown/blob/master/CHANGELOG.md) + - [Commits](https://github.com/rust-lang/hashbrown/compare/v0.13.1...v0.14.0) + + --- + updated-dependencies: + - dependency-name: hashbrown + dependency-type: direct:production + ... + - update rbpf requirement from 0.1.0 to 0.2.0 + Updates the requirements on [rbpf](https://github.com/qmonnet/rbpf) to permit the latest version. + - [Commits](https://github.com/qmonnet/rbpf/compare/v0.1.0...v0.2.0) + + --- + updated-dependencies: + - dependency-name: rbpf + dependency-type: direct:production + ... + - Make relocations less strict + Missing relocations at load time shouldn't cause an error in aya-obj + but instead poison related instructions. + + This makes struct flavors work. + - Apply BTF relocations to all functions + This fix aya wrong logic causing non entrypoint functions to not have + any BTF relocations working. + + Also fix missing section_offset computation for instruction offset in + multiple spots. + - Do not create data maps on kernel without global data support + Fix map creation failure when a BPF have a data section on older + kernel. (< 5.2) + + If the BPF uses that section, relocation will fail accordingly and + report an error. + - Fix ProgramSection::from_str for bss and rodata sections + - Move program's functions to the same map + - update object requirement from 0.30 to 0.31 + Updates the requirements on [object](https://github.com/gimli-rs/object) to permit the latest version. + - [Release notes](https://github.com/gimli-rs/object/releases) + - [Changelog](https://github.com/gimli-rs/object/blob/master/CHANGELOG.md) + - [Commits](https://github.com/gimli-rs/object/compare/0.30.0...0.31.0) + + --- + updated-dependencies: + - dependency-name: object + dependency-type: direct:production + ... + - flip feature "no_std" to feature "std" + This fixes `cargo build --all-features` by sidestepping the feature + unification problem described in The Cargo Book[0]. + + Add `cargo hack --feature-powerset` to CI to enforce that this doesn't + regress (and that all combinations of features work). + + Since error_in_core is nightly-only, use core-error and a fake std + module to allow aya-obj to build without std on stable. + + [0] https://doc.rust-lang.org/cargo/reference/features.html#feature-unification + - Add sanitize code for kernels without bpf_probe_read_kernel + Required for kernel before 5.5. + + Also move Features to aya-obj. + - fix DATASEC to STRUCT conversion + This fix the following issues: + - Previously the DATASEC name wasn't sanitized resulting on "Invalid + name" returned by old kernels. + - The newly created BTF struct had a size of 0 making old kernels refuse + it. + + This was tested on Debian 10 with kernel 4.19.0-21. + - support relocations across multiple text sections + fixes + Fix R_BPF_64_64 text relocations in sections other than .text (for + instance .text.unlikely). Also fix misc bugs triggered by integration + tests. + - change two drain() calls to into_iter() + - rework `maps` section parsing + Avoid allocations and add comments explaining how things work. + - fix compilation with nightly + - More discrete feature logging + Just use the Debug formatter vs. printing a message for each probe. + - Make features a lazy_static + - Add multibuffer support for XDP + - Add support for multibuffer programs + This adds support for loading XDP programs that are multi-buffer + capable, which is signalled using the xdp.frags section name. When this + is set, we should set the BPF_F_XDP_HAS_FRAGS flag when loading the + program into the kernel. + - btf: add support for BTF_KIND_ENUM64 + - btf: fix relocations for signed enums (32 bits) + Enums now carry a signed bit in the info flags. Take it into account + when applying enum relocations. + - btf: switch ComputedRelocationValue::value to u64 + This is in preparation of adding Enum64 relocation support + - Add new map types + Include all new map types which were included in the last libbpf update + (5d13fd5acaa9). + - Update `BPF_MAP_TYPE_CGROUP_STORAGE` name to `BPF_MAP_TYPE_CGRP_STORAGE` + It changed in libbpf + - update documentation and versioning info + - Set the version number of `aya-obj` to `0.1.0`. + - Update the description of the `aya-obj` crate. + - Add a section in README and rustdoc warning about the unstable API. + - add documentation on program names + This commit adds documentation on how program names are parsed from + section names, as is used by `aya_obj::Object.programs` as HashMap keys, + and updates the examples into using program names. + - fix rustfmt diffs and typos + - add no_std feature + The crate has few libstd dependencies. Since it should be platform- + independent in principle, making it no_std like the object crate would + seem reasonable. + + However, the feature `error_in_core` is not yet stabilized, and the + thiserror crate currently offers no no_std support. When the feature + no_std is selected, we enable the `error_in_core` feature, switch to + thiserror-core and replace the HashMap with the one in hashbrown. + - add integration tests against rbpf + - add basic documentation to public members + Types relevant to maps are moved into aya_obj::maps. + Some members are marked `pub(crate)` again. + - migrate aya::obj into a separate crate + To split the crate into two, several changes were made: + 1. Most `pub(crate)` are now `pub` to allow access from Aya; + 2. Parts of BpfError are merged into, for example, RelocationError; + 3. BTF part of Features is moved into the new crate; + 4. `#![deny(missing_docs)]` is removed temporarily; + 5. Some other code gets moved into the new crate, mainly: + - aya::{bpf_map_def, BtfMapDef, PinningType}, + - aya::programs::{CgroupSock*AttachType}, + + The new crate is currenly allowing missing_docs. Member visibility + will be adjusted later to minimize exposure of implementation details. + - migrate bindgen destination + +### Test + + - avoid lossy string conversions + We can be strict in tests. + +### Commit Statistics + + + + - 143 commits contributed to the release over the course of 422 calendar days. + - 62 commits were understood as [conventional](https://www.conventionalcommits.org). + - 1 unique issue was worked on: [#608](https://github.com/aya-rs/aya/issues/608) + +### Commit Details + + + +
view details + + * **[#608](https://github.com/aya-rs/aya/issues/608)** + - Fix load errors for empty (but existent) BTF/BTF.ext sections ([`5894c4c`](https://github.com/aya-rs/aya/commit/5894c4ce82948c7e5fe766f41b690d036fcca907)) + * **Uncategorized** + - Appease new nightly clippy lints ([`3369169`](https://github.com/aya-rs/aya/commit/3369169aaca6510a47318fc29bbdb801b60b1c21)) + - Merge pull request #882 from dave-tucker/metadata ([`0fadd69`](https://github.com/aya-rs/aya/commit/0fadd695377b8a3f0d9a3af3bc8140f0f1bed8d2)) + - Use the cargo workspace package table ([`b3e7ef7`](https://github.com/aya-rs/aya/commit/b3e7ef741c5b8d09fc7dc8302576f8174be75ff4)) + - Merge pull request #885 from dave-tucker/nightly-up ([`2d72197`](https://github.com/aya-rs/aya/commit/2d721971cfae39e168f0dc4dac1f219490c16fbf)) + - Appease clippy unused imports ([`770a95e`](https://github.com/aya-rs/aya/commit/770a95e0779a6a943c2f5439334fa208ac2ca7e6)) + - Handle lack of match of enum variants correctly ([`c05a3b6`](https://github.com/aya-rs/aya/commit/c05a3b69b7a94036c380bd64c6de51377987077c)) + - Don't parse labels as programs ([`35e21ae`](https://github.com/aya-rs/aya/commit/35e21ae0079d38e90d90fc85d29580c8b44b16d4)) + - Merge pull request #812 from tamird/redundant-cargo ([`715d490`](https://github.com/aya-rs/aya/commit/715d49022eefb152ef8817c730d9eac2b3e6d66f)) + - Remove redundant keys ([`cc48523`](https://github.com/aya-rs/aya/commit/cc48523347c2be5520779ef8eeadc6d3a68649d0)) + - Merge pull request #797 from aya-rs/rustfmt-group-imports ([`373fb7b`](https://github.com/aya-rs/aya/commit/373fb7bf06ba80ee4c120d8c112f5e810204c472)) + - Group_imports = "StdExternalCrate" ([`d16e607`](https://github.com/aya-rs/aya/commit/d16e607fd4b6258b516913071fdacafeb2bbbff9)) + - Merge pull request #527 from Tuetuopay/xdpmaps ([`7f9ce06`](https://github.com/aya-rs/aya/commit/7f9ce062f4b8b5cefbe07d8ea47363266f7eacd1)) + - Aya, bpf: misc fixes following review comments ([`579e3ce`](https://github.com/aya-rs/aya/commit/579e3cee22ae8e932efb0894ca7fd9ceb91ca7fa)) + - Make maps work on kernels not supporting ProgIds ([`00dc7a5`](https://github.com/aya-rs/aya/commit/00dc7a5bd4468b7d86d7f167a49e78d89016e2ac)) + - Add support for map-bound XDP programs ([`139f382`](https://github.com/aya-rs/aya/commit/139f3826383daba9a10dc7aacc079f31d28980fc)) + - Merge pull request #770 from aya-rs/mapfd-is-owned ([`41d01f6`](https://github.com/aya-rs/aya/commit/41d01f638bc81306749dd0f6aa7d2a677f4de27b)) + - `MapFd` and `SockMapFd` are owned ([`f415926`](https://github.com/aya-rs/aya/commit/f41592663cda156082255b93db145cfdd19378e5)) + - Merge pull request #766 from aya-rs/obj-better-sense ([`e9690df`](https://github.com/aya-rs/aya/commit/e9690df834b502575321ba32fd09f93eaacb03fa)) + - Reduce indirection in section parsing ([`c139627`](https://github.com/aya-rs/aya/commit/c139627f8f180638b786b5e3cd48b8473d96fe56)) + - Merge pull request #742 from aya-rs/avoid-utf-assumption ([`8ffd9bb`](https://github.com/aya-rs/aya/commit/8ffd9bb236a4dfc7694bbdac2b6ea1236b238582)) + - Avoid lossy string conversions ([`572d047`](https://github.com/aya-rs/aya/commit/572d047e37111b732be49ef3ad6fb16f70aa4063)) + - Merge pull request #758 from aya-rs/map-fd-not-option ([`1d5f764`](https://github.com/aya-rs/aya/commit/1d5f764d07c06fa25167d1d4cf341913d4f0cd01)) + - MapData::fd is non-optional ([`89bc255`](https://github.com/aya-rs/aya/commit/89bc255f1d14d72a61064b9b40b641b58f8970e0)) + - Merge pull request #749 from dave-tucker/clang-format ([`8ce1c00`](https://github.com/aya-rs/aya/commit/8ce1c00ad8b4ac1362eaf24d99eafd848546c9d3)) + - Add clang-format ([`0212400`](https://github.com/aya-rs/aya/commit/02124002c88d7a89d6c9afd89857c4c301e09801)) + - Merge pull request #734 from aya-rs/reduce-slicing ([`d3513e7`](https://github.com/aya-rs/aya/commit/d3513e7010cdab04a3d8bb5c7e7518ff67548302)) + - S/types.types[i]/*t/ where possible ([`dfb6020`](https://github.com/aya-rs/aya/commit/dfb6020a1dc1d0ee28426bd9e3086dd449f643f7)) + - Merge pull request #725 from dave-tucker/enum64 ([`2a55fc7`](https://github.com/aya-rs/aya/commit/2a55fc7bd3a15340b5b644d668f3a387bbdb09d3)) + - Aya, aya-obj: Implement ENUM64 fixups ([`e38e256`](https://github.com/aya-rs/aya/commit/e38e2566e3393034b37c299e50c6a4b70d51ad1d)) + - Merge pull request #731 from dave-tucker/noclone-btf ([`e210012`](https://github.com/aya-rs/aya/commit/e21001226fc05840867f43f6a4455a4c919e3b91)) + - Mutate BTF in-place without clone ([`098d436`](https://github.com/aya-rs/aya/commit/098d4364bd0fb8551f0515cb84afda6aff23ed7f)) + - Merge pull request #726 from aya-rs/btf-iter-alloc ([`761e4dd`](https://github.com/aya-rs/aya/commit/761e4ddbe3abf8b9177ebd6984465fe66696728a)) + - Use Self instead of restating the type ([`826e0e5`](https://github.com/aya-rs/aya/commit/826e0e5050e9bf9e0cdff6d2a20c1169820d0e57)) + - Avoid multiple vector allocations ([`2a054d7`](https://github.com/aya-rs/aya/commit/2a054d76ae167e7c2a6b4bfb1cf51770f93d394a)) + - Merge pull request #721 from dave-tucker/fix-funcinfo ([`1979da9`](https://github.com/aya-rs/aya/commit/1979da92a722bacd9c984865a4c7108e22fb618f)) + - Fix (func|line)_info multiple progs in section ([`79ea64c`](https://github.com/aya-rs/aya/commit/79ea64ca7fd3cc1b17573b539fd8fa8e76644beb)) + - Merge pull request #720 from dave-tucker/programsection-noname ([`e915379`](https://github.com/aya-rs/aya/commit/e9153792f1c18caa5899edc7c05487eb291415a4)) + - Remove name from ProgramSection ([`cca9b8f`](https://github.com/aya-rs/aya/commit/cca9b8f1a7e345a39d852bd18a43974871d3ed4b)) + - Merge pull request #711 from dave-tucker/sleepable ([`77e9603`](https://github.com/aya-rs/aya/commit/77e9603976b58491427df049a163e1945bc0bf27)) + - Propagate sleepable into ProgramSection ([`677e7bd`](https://github.com/aya-rs/aya/commit/677e7bda4a826aca858311670d1592162b682dff)) + - Merge pull request #413 from dave-tucker/fix-names-once-and-for-all ([`e833a71`](https://github.com/aya-rs/aya/commit/e833a71b022b39fa7c7a904b74ef0c55ff7c19ee)) + - Merge pull request #704 from aya-rs/better-panic ([`868a9b0`](https://github.com/aya-rs/aya/commit/868a9b00b3701a4e035dc1d70cac934ef836655b)) + - Find programs using the symbol table ([`bf7fdff`](https://github.com/aya-rs/aya/commit/bf7fdff1cef28961f096d1c1e00181e0a0c2d14e)) + - Better panic messages ([`17f25a6`](https://github.com/aya-rs/aya/commit/17f25a67934ad10443a4fbb62a563b5f6edcaa5f)) + - Merge pull request #699 from aya-rs/cache-again-god-damn-it ([`e95f76a`](https://github.com/aya-rs/aya/commit/e95f76a5b348070dd6833d37ea16db04f6afa612)) + - Do not escape newlines on Err(LoadError).unwrap() ([`8961be9`](https://github.com/aya-rs/aya/commit/8961be95268d2a4464ef75b0898cf07f9ba44470)) + - Merge pull request #667 from vadorovsky/workspace-dependencies ([`f554d42`](https://github.com/aya-rs/aya/commit/f554d421053bc34266afbf8e00b28705ab4b41d2)) + - Define dependencies on the workspace level ([`96fa08b`](https://github.com/aya-rs/aya/commit/96fa08bd82233268154edf30b106876f5a4f0e30)) + - Merge pull request #665 from aya-rs/dead-code-rm ([`893ab76`](https://github.com/aya-rs/aya/commit/893ab76afaa9f729967eec47cc211f0a46f6268e)) + - Avoid an allocation ([`6f2a8c8`](https://github.com/aya-rs/aya/commit/6f2a8c8a5c47098fb5e5a75ecebdff493d486c97)) + - Remove dead code ([`d71d1e1`](https://github.com/aya-rs/aya/commit/d71d1e199382379036dc4760e4edbd5e637e07c3)) + - Merge pull request #656 from aya-rs/kernel-version-fml ([`232cd45`](https://github.com/aya-rs/aya/commit/232cd45e41031060238d37fc7f08eb3d63fa2eeb)) + - Replace matches with assert_matches ([`961f45d`](https://github.com/aya-rs/aya/commit/961f45da37616b912d2d4ed594036369f3f8285b)) + - Merge pull request #650 from aya-rs/test-cleanup ([`61608e6`](https://github.com/aya-rs/aya/commit/61608e64583f9dc599eef9b8db098f38a765b285)) + - Run tests with powerset of features ([`8e9712a`](https://github.com/aya-rs/aya/commit/8e9712ac024cbc05dfe8ba09a9dd725e56e34a51)) + - Merge pull request #648 from aya-rs/clippy-more ([`a840a17`](https://github.com/aya-rs/aya/commit/a840a17308c1c27867e67baa62942738c5bd2caf)) + - Clippy over tests and integration-ebpf ([`e621a09`](https://github.com/aya-rs/aya/commit/e621a09181d0a5ddb6289d8b13d4b89a71de63f1)) + - Merge pull request #643 from aya-rs/procfs ([`6e9aba5`](https://github.com/aya-rs/aya/commit/6e9aba55fe8d23aa337b29a1cab890bb54816068)) + - Remove verifier log special case ([`b5ebcb7`](https://github.com/aya-rs/aya/commit/b5ebcb7cc5fd0f719567b97f682a0ea0f8e0dc13)) + - Merge pull request #641 from aya-rs/logger-messages-plz ([`4c0983b`](https://github.com/aya-rs/aya/commit/4c0983bca962e0e9b2711805ae7fbc6b53457c34)) + - Hide details of VerifierLog ([`6b94b20`](https://github.com/aya-rs/aya/commit/6b94b2080dc4c122954beea814b2a1a4569e9aa3)) + - Use procfs crate for kernel version parsing ([`b611038`](https://github.com/aya-rs/aya/commit/b611038d5b41a45ca70553550dbdef9aa1fd117c)) + - Merge pull request #642 from aya-rs/less-strings ([`32be47a`](https://github.com/aya-rs/aya/commit/32be47a23b94902caadcc7bb1612adbd18318eca)) + - Don't allocate static strings ([`27120b3`](https://github.com/aya-rs/aya/commit/27120b328aac5f992eed98b03216a9880a381749)) + - Merge pull request #635 from marysaka/misc/aya-obj-enum-public ([`5c86b7e`](https://github.com/aya-rs/aya/commit/5c86b7ee950762d1cc37fc39c788e670869db231)) + - Aya-obj: Make it possible to externally assemble BtfEnum ([`d9dfd94`](https://github.com/aya-rs/aya/commit/d9dfd94f29be8c28b7fe0ef4ab560db49f7514fb)) + - Merge pull request #531 from dave-tucker/probe-cookie ([`bc0d021`](https://github.com/aya-rs/aya/commit/bc0d02143f5bc6103cca27d5f0c7a40beacd0668)) + - Make Features part of the public API ([`47f764c`](https://github.com/aya-rs/aya/commit/47f764c19185a69a00f3925239797caa98cd5afe)) + - Merge pull request #632 from marysaka/feat/global-data-optional ([`b2737d5`](https://github.com/aya-rs/aya/commit/b2737d5b0d18ce09202ca9eb2ce772b1144ea6b8)) + - Allow global value to be optional ([`93435fc`](https://github.com/aya-rs/aya/commit/93435fc85400aa036f3890c43c78c9c9eb4baa96)) + - Merge pull request #626 from aya-rs/dependabot/cargo/hashbrown-0.14 ([`26c6b92`](https://github.com/aya-rs/aya/commit/26c6b92ef1d58d0703a4a020db02dca65911456c)) + - Update hashbrown requirement from 0.13 to 0.14 ([`f5f8083`](https://github.com/aya-rs/aya/commit/f5f8083441afd2daed9344fc2031878d574efaf1)) + - Merge pull request #623 from aya-rs/dependabot/cargo/rbpf-0.2.0 ([`53ec1f2`](https://github.com/aya-rs/aya/commit/53ec1f23ea4efe7c686a6a4fb8bb166c8d444dc8)) + - Update rbpf requirement from 0.1.0 to 0.2.0 ([`fa3dd4b`](https://github.com/aya-rs/aya/commit/fa3dd4bef252566aa26577a0d42b2ff59ac2ff2a)) + - Merge pull request #563 from marysaka/fix/reloc-less-strict ([`85ad019`](https://github.com/aya-rs/aya/commit/85ad0197e0e0e30c99f3af63584f9c569b752a50)) + - Make relocations less strict ([`35eaa50`](https://github.com/aya-rs/aya/commit/35eaa50736d9e894eb5122b1070afd7b0442eae6)) + - Merge pull request #602 from marysaka/fix/btf-reloc-all-functions ([`3a9a54f`](https://github.com/aya-rs/aya/commit/3a9a54fd9b2f69e2427accbe0451761ecc537197)) + - Merge pull request #616 from nak3/fix-bump ([`3211d2c`](https://github.com/aya-rs/aya/commit/3211d2c92801d8208c76856cb271f2b7772a0313)) + - Apply BTF relocations to all functions ([`c4e721f`](https://github.com/aya-rs/aya/commit/c4e721f3d334a7c2e5e6d6cd6f4ade0f1334be72)) + - [codegen] Update libbpf to f7eb43b90f4c8882edf6354f8585094f8f3aade0Update libbpf to f7eb43b90f4c8882edf6354f8585094f8f3aade0 ([`0bc886f`](https://github.com/aya-rs/aya/commit/0bc886f1634443d202e24f56cb74d3dce2e66e37)) + - Merge pull request #585 from probulate/tag-len-value ([`5165bf2`](https://github.com/aya-rs/aya/commit/5165bf2f99cdc228122bdab505c2059723e95a9f)) + - Merge pull request #605 from marysaka/fix/global-data-reloc-ancient-kernels ([`9c437aa`](https://github.com/aya-rs/aya/commit/9c437aafd96bebc5c90fdc7f370b5415174b1019)) + - Merge pull request #604 from marysaka/fix/section-kind-from-str ([`3a9058e`](https://github.com/aya-rs/aya/commit/3a9058e7625b56ac26d6bb592dd4c3a93c61d6b0)) + - Do not create data maps on kernel without global data support ([`591e212`](https://github.com/aya-rs/aya/commit/591e21267a9bc9adca9818095de5a695cee7ee9b)) + - Fix ProgramSection::from_str for bss and rodata sections ([`18b3d75`](https://github.com/aya-rs/aya/commit/18b3d75d096e3c90f8c5b2f7292637a3369f96a6)) + - Build tests with all features ([`4e2f832`](https://github.com/aya-rs/aya/commit/4e2f8322cc6ee7ef06a1d5718405964e8da14d18)) + - Move program's functions to the same map ([`9e1109b`](https://github.com/aya-rs/aya/commit/9e1109b3ce70a3668771bd11a7fda101eec3ab93)) + - Merge pull request #597 from nak3/test-clippy ([`7cd1c64`](https://github.com/aya-rs/aya/commit/7cd1c642e35d271c75eb1e9d65988e539a90f2bf)) + - Drop unnecessary mut ([`e67025b`](https://github.com/aya-rs/aya/commit/e67025b66f08592bb7e9a3273d56eb5669b16d90)) + - Merge pull request #577 from aya-rs/dependabot/cargo/object-0.31 ([`deb054a`](https://github.com/aya-rs/aya/commit/deb054afa45cfb9ffb7b213f34fc549c9503c0dd)) + - Merge pull request #545 from epompeii/lsm_sleepable ([`120b59d`](https://github.com/aya-rs/aya/commit/120b59dd2e42805cf5880ada8f1bd0ba5faf4a44)) + - Update object requirement from 0.30 to 0.31 ([`4c78f7f`](https://github.com/aya-rs/aya/commit/4c78f7f1a014cf54d54c805233a0f29eb1ca5eeb)) + - Merge pull request #586 from probulate/no-std-inversion ([`45efa63`](https://github.com/aya-rs/aya/commit/45efa6384ffbcff82ca55e151c446d930147abf0)) + - Flip feature "no_std" to feature "std" ([`33a0a2b`](https://github.com/aya-rs/aya/commit/33a0a2b604e77b63b771b9d0e167c894793492b5)) + - Merge branch 'aya-rs:main' into lsm_sleepable ([`1f2006b`](https://github.com/aya-rs/aya/commit/1f2006bfde865cc4308643b21d51cf4a8e69d6d4)) + - Merge pull request #583 from 0xrawsec/fix-builtin-linkage ([`b2d5059`](https://github.com/aya-rs/aya/commit/b2d5059ac250b4017ba723e594292f0356c31811)) + - - comment changed to be more precise - adapted test to be more readable ([`1464bdc`](https://github.com/aya-rs/aya/commit/1464bdc1d4393e1a4ab5cff3833f784444b1d175)) + - Added memmove, memcmp to the list of function changed to BTF_FUNC_STATIC ([`72c1572`](https://github.com/aya-rs/aya/commit/72c15721781f758c65cd4b94def8e907e42d8c35)) + - Fixed indent ([`a51c9bc`](https://github.com/aya-rs/aya/commit/a51c9bc532f101302a38cd866b40a5014fa61c54)) + - Removed useless line break and comments ([`5b4fc9e`](https://github.com/aya-rs/aya/commit/5b4fc9ea93f32da4c58be4b261905b883c9ea20b)) + - Add debug messages ([`74bc754`](https://github.com/aya-rs/aya/commit/74bc754862df5571a4fafb18260bc1e5c4acd9b2)) + - Merge pull request #582 from marysaka/feature/no-kern-read-sanitizer ([`b5c2928`](https://github.com/aya-rs/aya/commit/b5c2928b0e0d20c48157a5862f0d2c3dd5dbb784)) + - Add sanitize code for kernels without bpf_probe_read_kernel ([`1132b6e`](https://github.com/aya-rs/aya/commit/1132b6e01b86856aa1fddf179fcc7e3825e79406)) + - Fixed BTF linkage of memset and memcpy to static ([`4e41da6`](https://github.com/aya-rs/aya/commit/4e41da6a86418e4e2a9241b42301a1abe38e7372)) + - Merge pull request #581 from marysaka/fix/datasec-struct-conversion ([`858f77b`](https://github.com/aya-rs/aya/commit/858f77bf2cfb457765b7deb81ba75fb706c71954)) + - Fix DATASEC to STRUCT conversion ([`4e33fa0`](https://github.com/aya-rs/aya/commit/4e33fa011e87cdc2fc59025b9e531b4872651cd0)) + - Merge pull request #572 from alessandrod/reloc-fixes ([`542ada3`](https://github.com/aya-rs/aya/commit/542ada3fe7f9d4d06542253361acc5fadce3f24b)) + - Support relocations across multiple text sections + fixes ([`93ac3e9`](https://github.com/aya-rs/aya/commit/93ac3e94bcb47864670c124dfe00e16ed2ab6f5e)) + - Change two drain() calls to into_iter() ([`b25a089`](https://github.com/aya-rs/aya/commit/b25a08981986cac4f511433d165560576a8c9856)) + - Aya, aya-obj: refactor map relocations ([`401ea5e`](https://github.com/aya-rs/aya/commit/401ea5e8482ece34b6c88de85ec474bdfc577fd4)) + - Rework `maps` section parsing ([`5c4f1d6`](https://github.com/aya-rs/aya/commit/5c4f1d69a60e0c5324512a7cfbc4467b7f5d0bca)) + - Review ([`85714d5`](https://github.com/aya-rs/aya/commit/85714d5cf3622da49d1442c34caa63451d9efe48)) + - Macro ([`6dfb9d8`](https://github.com/aya-rs/aya/commit/6dfb9d82af9c178f4effd7a0c9095442816a014c)) + - Obj ([`6a25d4d`](https://github.com/aya-rs/aya/commit/6a25d4ddec42e3408bd823fccc6e64c33575bc5c)) + - Fix compilation with nightly ([`dfbe120`](https://github.com/aya-rs/aya/commit/dfbe1207c1bbd105d1daa9b08cec0e9803b5464e)) + - Merge pull request #537 from aya-rs/codegen ([`8684a57`](https://github.com/aya-rs/aya/commit/8684a5783db6953b28e42bbbcdc52514fc4e6c37)) + - [codegen] Update libbpf to a41e6ef3251cba858021b90c33abb9efdb17f575Update libbpf to a41e6ef3251cba858021b90c33abb9efdb17f575 ([`24f15ea`](https://github.com/aya-rs/aya/commit/24f15ea25f413633f8c498ee5be046e797acebae)) + - More discrete feature logging ([`7479c1d`](https://github.com/aya-rs/aya/commit/7479c1dd6c1356bddb0401dbeea65618674524c9)) + - Make features a lazy_static ([`ce22ca6`](https://github.com/aya-rs/aya/commit/ce22ca668f3e7c0f9832d28370457204537d2e50)) + - Merge pull request #519 from dave-tucker/frags ([`bc83f20`](https://github.com/aya-rs/aya/commit/bc83f208b11542607e02751126a68b1ca568873b)) + - Add multibuffer support for XDP ([`376c486`](https://github.com/aya-rs/aya/commit/376c48640033fdbf8b5199641f353587273f8a32)) + - Add support for multibuffer programs ([`a18693b`](https://github.com/aya-rs/aya/commit/a18693b42dc986bde06b07540e261ecac59eef24)) + - Merge pull request #453 from alessandrod/btf-kind-enum64 ([`e8e2767`](https://github.com/aya-rs/aya/commit/e8e276730e7351888a71f1196ca1bfbc06c22432)) + - Btf: add support for BTF_KIND_ENUM64 ([`9a6f814`](https://github.com/aya-rs/aya/commit/9a6f8143a1a4c5c88a373701d74d96596c75242f)) + - Merge pull request #501 from alessandrod/fix-enum32-relocs ([`f81b1b9`](https://github.com/aya-rs/aya/commit/f81b1b9f3ec1de5241d8882da56f1d8d7c22d994)) + - Btf: fix relocations for signed enums (32 bits) ([`4482db4`](https://github.com/aya-rs/aya/commit/4482db42d86c657826efe80f484f57a601ed2f38)) + - Btf: switch ComputedRelocationValue::value to u64 ([`d6b976c`](https://github.com/aya-rs/aya/commit/d6b976c6f1f6163680c179502f4f454d0cec747e)) + - Fix lints ([`9f4ef6f`](https://github.com/aya-rs/aya/commit/9f4ef6f67df397c7e243435ccb3bdd517fd467cf)) + - Merge pull request #487 from vadorovsky/new-map-types ([`42c4a8b`](https://github.com/aya-rs/aya/commit/42c4a8be7c502d7e7508c636f7c1cb28296c26b8)) + - Add new map types ([`3d03c8a`](https://github.com/aya-rs/aya/commit/3d03c8a8e0a9033be8c1ab020129db7790cc7493)) + - Merge pull request #483 from aya-rs/codegen ([`0399991`](https://github.com/aya-rs/aya/commit/03999913833ad576d9ba7d1c0123703f49b340a5)) + - Update `BPF_MAP_TYPE_CGROUP_STORAGE` name to `BPF_MAP_TYPE_CGRP_STORAGE` ([`cb28533`](https://github.com/aya-rs/aya/commit/cb28533e2f9eb0b2cd80f4bf9515cdec31763749)) + - [codegen] Update libbpf to 3423d5e7cdab356d115aef7f987b4a1098ede448Update libbpf to 3423d5e7cdab356d115aef7f987b4a1098ede448 ([`5d13fd5`](https://github.com/aya-rs/aya/commit/5d13fd5acaa90efedb76d371b69431ac9a262fdd)) + - Merge pull request #475 from yesh0/aya-obj ([`897957a`](https://github.com/aya-rs/aya/commit/897957ac84370cd1ee463bdf2ff4859333b41012)) + - Update documentation and versioning info ([`9c451a3`](https://github.com/aya-rs/aya/commit/9c451a3357317405dd8e2e4df7d006cee943adcc)) + - Add documentation on program names ([`772af17`](https://github.com/aya-rs/aya/commit/772af170aea2feccb5e98cc84125e9e31b9fbe9a)) + - Fix rustfmt diffs and typos ([`9ec3447`](https://github.com/aya-rs/aya/commit/9ec3447e891ca770a65f8ff9b71884f25530f515)) + - Add no_std feature ([`30f1fab`](https://github.com/aya-rs/aya/commit/30f1fabc05654e8d11dd2648767895123c141c3b)) + - Add integration tests against rbpf ([`311ead6`](https://github.com/aya-rs/aya/commit/311ead6760ce53e9503af00391e6631f7387ab4a)) + - Add basic documentation to public members ([`e52497c`](https://github.com/aya-rs/aya/commit/e52497cb9c02123ae450ca36fb6f898d24b25c4b)) + - Migrate aya::obj into a separate crate ([`ac49827`](https://github.com/aya-rs/aya/commit/ac49827e204801079be2b87160a795ef412bd6cb)) + - Migrate bindgen destination ([`81bc307`](https://github.com/aya-rs/aya/commit/81bc307dce452f0aacbfbe8c304089d11ddd8c5e)) +
+