All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Fill bss maps with zeros The loader should fill bss maps with zeros according to the size of the ELF section. Failure to do so yields weird verifier messages as follows:
cannot access ptr member ops with moff 0 in struct bpf_map with off 0 size 4
Reference to this in the cilium/ebpf code is here [1]. I could not find a reference in libbpf.
bpf_cgroup_iter_order
: used in bpf_link_info.iter.group.order
NFPROTO_*
: used in bpf_link_info.netfilter.pf
nf_inet_hooks
: used in bpf_link_info.netfilter.hooknum
Include linux/netfilter.h
in linux_wrapper.h
for NFPROTO_*
and
nf_inet_hooks
to generate.
MapInfo
:
map_type()
, we treturn new enum MapType
instead of the integer
representation.Option<NonZero*>
type.name_as_str()
, it now uses the feature probe bpf_name()
to
detect if field is available.
Although the feature probe checks for program name, it can also be
used for map name since they were both introduced in the same commit.ProgramInfo
.
program_type()
, we return the new enum ProgramType
instead of
the integer representation.Option<NonZero*>
type.name_as_str()
, it now also uses the feature probe bpf_name()
to detect if field is available or not.prog_info_map_ids()
probe -> map_ids()
fieldprog_info_gpl_compatible()
probe -> gpl_compatible()
field
With the prog_info_map_ids()
probe, the previous implementation that
I had for bpf_prog_get_info_by_fd()
is shortened to use the probe
instead of having to make 2 potential syscalls.
The test_loaded_at()
test is also moved into info tests since it is
better related to the info tests.
BPF_MAP_TYPE_BLOOM_FILTER
& BPF_MAP_TYPE_CGRP_STORAGE
.
New error InvalidTypeBinding<T>
is created to represent when a
parsed/received value binding to a type is invalid.
This is used in the new conversions added here, and also replaces
InvalidMapTypeError
in TryFrom
for bpf_map_type
.
b2ac9fe
`](https://github.com/aya-rs/aya/commit/b2ac9fe85d
))
- Fill bss maps with zeros ([`ca0c32d
`](https://github.com/aya-rs/aya/commit/ca0c32d107
))
- Merge pull request #1055 from aya-rs/codegen ([`59b3873
`](https://github.com/aya-rs/aya/commit/59b3873a92
))
- [codegen] Update libbpf to 80b16457cb
([`f8ad84c
`](https://github.com/aya-rs/aya/commit/f8ad84c3d3
))
- Cgroup_iter_order NFPROTO* nf_inet_hooks ([`366c599
`](https://github.com/aya-rs/aya/commit/366c599c20
))
- Release aya-obj v0.2.0, aya v0.13.0, safety bump aya v0.13.0 ([`c169b72
`](https://github.com/aya-rs/aya/commit/c169b727e6
))
- Appease clippy ([`aa240ba
`](https://github.com/aya-rs/aya/commit/aa240baadf
))
- Merge pull request #1007 from tyrone-wu/aya/info-api ([`15eb935
`](https://github.com/aya-rs/aya/commit/15eb935bce
))
- Revamp MapInfo be more friendly with older kernels ([`fbb0930
`](https://github.com/aya-rs/aya/commit/fbb09304a2
))
- Revamp ProgramInfo be more friendly with older kernels ([`88f5ac3
`](https://github.com/aya-rs/aya/commit/88f5ac3114
))
- Add conversion u32 to enum type for prog, link, & attach type ([`1634fa7
`](https://github.com/aya-rs/aya/commit/1634fa7188
))
- Merge pull request #974 from Billy99/billy99-arch-ppc64-s390x ([`ab5e688
`](https://github.com/aya-rs/aya/commit/ab5e688fd4
))
- Adjust test to not use byte arrays ([`4dc4b5c
`](https://github.com/aya-rs/aya/commit/4dc4b5ccd4
))
- Add archs powerpc64 and s390x to aya ([`b513af1
`](https://github.com/aya-rs/aya/commit/b513af12e8
))
- Adjust test byte arrays for big endian ([`eef7346
`](https://github.com/aya-rs/aya/commit/eef7346fb2
))
- Merge pull request #989 from aya-rs/codegen ([`8015e10
`](https://github.com/aya-rs/aya/commit/8015e10079
))
- [codegen] Update libbpf to 686f600bca
([`8d7446e
`](https://github.com/aya-rs/aya/commit/8d7446e011
))
- Merge pull request #978 from aya-rs/codegen ([`06aa5c8
`](https://github.com/aya-rs/aya/commit/06aa5c8ed3
))
- [codegen] Update libbpf to c1a6c770c4
([`8b50a6a
`](https://github.com/aya-rs/aya/commit/8b50a6a573
))
- Document miri skip reasons ([`35962a4
`](https://github.com/aya-rs/aya/commit/35962a4794
))
- Generate new bindings ([`b06ff40
`](https://github.com/aya-rs/aya/commit/b06ff40278
))
- Merge pull request #528 from dave-tucker/rename-all-the-things ([`63d8d4d
`](https://github.com/aya-rs/aya/commit/63d8d4d34b
))
- Rename Bpf to Ebpf ([`8c79b71
`](https://github.com/aya-rs/aya/commit/8c79b71bd5
))
- Rename BpfRelocationError -> EbpfRelocationError ([`fd48c55
`](https://github.com/aya-rs/aya/commit/fd48c55466
))
- Rename BpfSectionKind to EbpfSectionKind ([`cf3e2ca
`](https://github.com/aya-rs/aya/commit/cf3e2ca677
))
MapInfo
:
map_type()
, we treturn new enum MapType
instead of the integer
representation.Option<NonZero*>
type.name_as_str()
, it now uses the feature probe bpf_name()
to
detect if field is available.
Although the feature probe checks for program name, it can also be
used for map name since they were both introduced in the same commit.ProgramInfo
.
program_type()
, we return the new enum ProgramType
instead of
the integer representation.Option<NonZero*>
type.name_as_str()
, it now also uses the feature probe bpf_name()
to detect if field is available or not.prog_info_map_ids()
probe -> map_ids()
fieldprog_info_gpl_compatible()
probe -> gpl_compatible()
field
With the prog_info_map_ids()
probe, the previous implementation that
I had for bpf_prog_get_info_by_fd()
is shortened to use the probe
instead of having to make 2 potential syscalls.
The test_loaded_at()
test is also moved into info tests since it is
better related to the info tests.
BPF_MAP_TYPE_BLOOM_FILTER
& BPF_MAP_TYPE_CGRP_STORAGE
.
New error InvalidTypeBinding<T>
is created to represent when a
parsed/received value binding to a type is invalid.
This is used in the new conversions added here, and also replaces
InvalidMapTypeError
in TryFrom
for bpf_map_type
.
Use the cargo workspace package table This allows for inheritance of common fields from the workspace root. The following fields have been made common:
Appease clippy unused imports
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.
default-features = false
is already in the root Cargo.toml.MapFd
and SockMapFd
are ownedMapData::create
is now a
factory function that returns Result<Self, _>
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.Find programs using the symbol table This makes a few changes to the way that Aya reads the ELF object files.
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.
bb595c4e69
. The
mutation here prevented the compiler from noticing.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.
updated-dependencies:
updated-dependencies:
This makes struct flavors work.
Also fix missing section_offset computation for instruction offset in multiple spots.
If the BPF uses that section, relocation will fail accordingly and report an error.
updated-dependencies:
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
Also move Features to aya-obj.
This was tested on Debian 10 with kernel 4.19.0-21.
maps
section parsing
Avoid allocations and add comments explaining how things work.5d13fd5aca
).BPF_MAP_TYPE_CGROUP_STORAGE
name to BPF_MAP_TYPE_CGRP_STORAGE
It changed in libbpfaya-obj
to 0.1.0
.aya-obj
crate.aya_obj::Object.programs
as HashMap keys,
and updates the examples into using program names.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.
pub(crate)
again.pub(crate)
are now pub
to allow access from Aya;#![deny(missing_docs)]
is removed temporarily;The new crate is currenly allowing missing_docs. Member visibility will be adjusted later to minimize exposure of implementation details.
5894c4c
`](https://github.com/aya-rs/aya/commit/5894c4ce82
))
* **Uncategorized**
- Release aya-obj v0.1.0, aya v0.12.0, safety bump aya-log v0.2.0 ([`0e99fa0
`](https://github.com/aya-rs/aya/commit/0e99fa0f34
))
- Merge pull request #891 from dave-tucker/changelog ([`431ce23
`](https://github.com/aya-rs/aya/commit/431ce23f27
))
- Add CHANGELOG ([`72e8aab
`](https://github.com/aya-rs/aya/commit/72e8aab6c8
))
- Appease new nightly clippy lints ([`3369169`](https://github.com/aya-rs/aya/commit/3369169aac
))
- Merge pull request #882 from dave-tucker/metadata ([`0fadd69
`](https://github.com/aya-rs/aya/commit/0fadd69537
))
- Use the cargo workspace package table ([`b3e7ef7
`](https://github.com/aya-rs/aya/commit/b3e7ef741c
))
- Merge pull request #885 from dave-tucker/nightly-up ([`2d72197
`](https://github.com/aya-rs/aya/commit/2d721971cf
))
- Appease clippy unused imports ([`770a95e
`](https://github.com/aya-rs/aya/commit/770a95e077
))
- Handle lack of match of enum variants correctly ([`c05a3b6
`](https://github.com/aya-rs/aya/commit/c05a3b69b7
))
- Don't parse labels as programs ([`35e21ae
`](https://github.com/aya-rs/aya/commit/35e21ae007
))
- Merge pull request #812 from tamird/redundant-cargo ([`715d490
`](https://github.com/aya-rs/aya/commit/715d49022e
))
- Remove redundant keys ([`cc48523
`](https://github.com/aya-rs/aya/commit/cc48523347
))
- Merge pull request #797 from aya-rs/rustfmt-group-imports ([`373fb7b
`](https://github.com/aya-rs/aya/commit/373fb7bf06
))
- Group_imports = "StdExternalCrate" ([`d16e607
`](https://github.com/aya-rs/aya/commit/d16e607fd4
))
- Merge pull request #527 from Tuetuopay/xdpmaps ([`7f9ce06
`](https://github.com/aya-rs/aya/commit/7f9ce062f4
))
- Aya, bpf: misc fixes following review comments ([`579e3ce
`](https://github.com/aya-rs/aya/commit/579e3cee22
))
- Make maps work on kernels not supporting ProgIds ([`00dc7a5
`](https://github.com/aya-rs/aya/commit/00dc7a5bd4
))
- Add support for map-bound XDP programs ([`139f382
`](https://github.com/aya-rs/aya/commit/139f382638
))
- Merge pull request #770 from aya-rs/mapfd-is-owned ([`41d01f6
`](https://github.com/aya-rs/aya/commit/41d01f638b
))
- `MapFd` and `SockMapFd` are owned ([`f415926
`](https://github.com/aya-rs/aya/commit/f41592663c
))
- Merge pull request #766 from aya-rs/obj-better-sense ([`e9690df
`](https://github.com/aya-rs/aya/commit/e9690df834
))
- Reduce indirection in section parsing ([`c139627
`](https://github.com/aya-rs/aya/commit/c139627f8f
))
- Merge pull request #742 from aya-rs/avoid-utf-assumption ([`8ffd9bb
`](https://github.com/aya-rs/aya/commit/8ffd9bb236
))
- Avoid lossy string conversions ([`572d047
`](https://github.com/aya-rs/aya/commit/572d047e37
))
- Merge pull request #758 from aya-rs/map-fd-not-option ([`1d5f764
`](https://github.com/aya-rs/aya/commit/1d5f764d07
))
- MapData::fd is non-optional ([`89bc255
`](https://github.com/aya-rs/aya/commit/89bc255f1d
))
- Merge pull request #749 from dave-tucker/clang-format ([`8ce1c00
`](https://github.com/aya-rs/aya/commit/8ce1c00ad8
))
- Add clang-format ([`0212400`](https://github.com/aya-rs/aya/commit/02124002c8
))
- Merge pull request #734 from aya-rs/reduce-slicing ([`d3513e7
`](https://github.com/aya-rs/aya/commit/d3513e7010
))
- S/types.types[i]/*t/ where possible ([`dfb6020
`](https://github.com/aya-rs/aya/commit/dfb6020a1d
))
- Merge pull request #725 from dave-tucker/enum64 ([`2a55fc7
`](https://github.com/aya-rs/aya/commit/2a55fc7bd3
))
- Aya, aya-obj: Implement ENUM64 fixups ([`e38e256
`](https://github.com/aya-rs/aya/commit/e38e2566e3
))
- Merge pull request #731 from dave-tucker/noclone-btf ([`e210012
`](https://github.com/aya-rs/aya/commit/e21001226f
))
- Mutate BTF in-place without clone ([`098d436
`](https://github.com/aya-rs/aya/commit/098d4364bd
))
- Merge pull request #726 from aya-rs/btf-iter-alloc ([`761e4dd
`](https://github.com/aya-rs/aya/commit/761e4ddbe3
))
- Use Self instead of restating the type ([`826e0e5
`](https://github.com/aya-rs/aya/commit/826e0e5050
))
- Avoid multiple vector allocations ([`2a054d7
`](https://github.com/aya-rs/aya/commit/2a054d76ae
))
- Merge pull request #721 from dave-tucker/fix-funcinfo ([`1979da9
`](https://github.com/aya-rs/aya/commit/1979da92a7
))
- Fix (func|line)_info multiple progs in section ([`79ea64c
`](https://github.com/aya-rs/aya/commit/79ea64ca7f
))
- Merge pull request #720 from dave-tucker/programsection-noname ([`e915379
`](https://github.com/aya-rs/aya/commit/e9153792f1
))
- Remove name from ProgramSection ([`cca9b8f
`](https://github.com/aya-rs/aya/commit/cca9b8f1a7
))
- Merge pull request #711 from dave-tucker/sleepable ([`77e9603
`](https://github.com/aya-rs/aya/commit/77e9603976
))
- Propagate sleepable into ProgramSection ([`677e7bd
`](https://github.com/aya-rs/aya/commit/677e7bda4a
))
- Merge pull request #413 from dave-tucker/fix-names-once-and-for-all ([`e833a71
`](https://github.com/aya-rs/aya/commit/e833a71b02
))
- Merge pull request #704 from aya-rs/better-panic ([`868a9b0
`](https://github.com/aya-rs/aya/commit/868a9b00b3
))
- Find programs using the symbol table ([`bf7fdff
`](https://github.com/aya-rs/aya/commit/bf7fdff1ce
))
- Better panic messages ([`17f25a6
`](https://github.com/aya-rs/aya/commit/17f25a6793
))
- Merge pull request #699 from aya-rs/cache-again-god-damn-it ([`e95f76a
`](https://github.com/aya-rs/aya/commit/e95f76a5b3
))
- Do not escape newlines on Err(LoadError).unwrap() ([`8961be9
`](https://github.com/aya-rs/aya/commit/8961be9526
))
- Merge pull request #667 from vadorovsky/workspace-dependencies ([`f554d42
`](https://github.com/aya-rs/aya/commit/f554d42105
))
- Define dependencies on the workspace level ([`96fa08b
`](https://github.com/aya-rs/aya/commit/96fa08bd82
))
- Merge pull request #665 from aya-rs/dead-code-rm ([`893ab76
`](https://github.com/aya-rs/aya/commit/893ab76afa
))
- Avoid an allocation ([`6f2a8c8
`](https://github.com/aya-rs/aya/commit/6f2a8c8a5c
))
- Remove dead code ([`d71d1e1
`](https://github.com/aya-rs/aya/commit/d71d1e1993
))
- Merge pull request #656 from aya-rs/kernel-version-fml ([`232cd45
`](https://github.com/aya-rs/aya/commit/232cd45e41
))
- Replace matches with assert_matches ([`961f45d
`](https://github.com/aya-rs/aya/commit/961f45da37
))
- Merge pull request #650 from aya-rs/test-cleanup ([`61608e6
`](https://github.com/aya-rs/aya/commit/61608e6458
))
- Run tests with powerset of features ([`8e9712a
`](https://github.com/aya-rs/aya/commit/8e9712ac02
))
- Merge pull request #648 from aya-rs/clippy-more ([`a840a17
`](https://github.com/aya-rs/aya/commit/a840a17308
))
- Clippy over tests and integration-ebpf ([`e621a09
`](https://github.com/aya-rs/aya/commit/e621a09181
))
- Merge pull request #643 from aya-rs/procfs ([`6e9aba5
`](https://github.com/aya-rs/aya/commit/6e9aba55fe
))
- Remove verifier log special case ([`b5ebcb7
`](https://github.com/aya-rs/aya/commit/b5ebcb7cc5
))
- Merge pull request #641 from aya-rs/logger-messages-plz ([`4c0983b
`](https://github.com/aya-rs/aya/commit/4c0983bca9
))
- Hide details of VerifierLog ([`6b94b20
`](https://github.com/aya-rs/aya/commit/6b94b2080d
))
- Use procfs crate for kernel version parsing ([`b611038
`](https://github.com/aya-rs/aya/commit/b611038d5b
))
- Merge pull request #642 from aya-rs/less-strings ([`32be47a
`](https://github.com/aya-rs/aya/commit/32be47a23b
))
- Don't allocate static strings ([`27120b3
`](https://github.com/aya-rs/aya/commit/27120b328a
))
- Merge pull request #635 from marysaka/misc/aya-obj-enum-public ([`5c86b7e
`](https://github.com/aya-rs/aya/commit/5c86b7ee95
))
- Aya-obj: Make it possible to externally assemble BtfEnum ([`d9dfd94
`](https://github.com/aya-rs/aya/commit/d9dfd94f29
))
- Merge pull request #531 from dave-tucker/probe-cookie ([`bc0d021
`](https://github.com/aya-rs/aya/commit/bc0d02143f
))
- Make Features part of the public API ([`47f764c
`](https://github.com/aya-rs/aya/commit/47f764c191
))
- Merge pull request #632 from marysaka/feat/global-data-optional ([`b2737d5
`](https://github.com/aya-rs/aya/commit/b2737d5b0d
))
- Allow global value to be optional ([`93435fc
`](https://github.com/aya-rs/aya/commit/93435fc854
))
- Merge pull request #626 from aya-rs/dependabot/cargo/hashbrown-0.14 ([`26c6b92
`](https://github.com/aya-rs/aya/commit/26c6b92ef1
))
- Update hashbrown requirement from 0.13 to 0.14 ([`f5f8083
`](https://github.com/aya-rs/aya/commit/f5f8083441
))
- Merge pull request #623 from aya-rs/dependabot/cargo/rbpf-0.2.0 ([`53ec1f2
`](https://github.com/aya-rs/aya/commit/53ec1f23ea
))
- Update rbpf requirement from 0.1.0 to 0.2.0 ([`fa3dd4b
`](https://github.com/aya-rs/aya/commit/fa3dd4bef2
))
- Merge pull request #563 from marysaka/fix/reloc-less-strict ([`85ad019
`](https://github.com/aya-rs/aya/commit/85ad0197e0
))
- Make relocations less strict ([`35eaa50
`](https://github.com/aya-rs/aya/commit/35eaa50736
))
- Merge pull request #602 from marysaka/fix/btf-reloc-all-functions ([`3a9a54f
`](https://github.com/aya-rs/aya/commit/3a9a54fd9b
))
- Merge pull request #616 from nak3/fix-bump ([`3211d2c
`](https://github.com/aya-rs/aya/commit/3211d2c928
))
- Apply BTF relocations to all functions ([`c4e721f
`](https://github.com/aya-rs/aya/commit/c4e721f3d3
))
- [codegen] Update libbpf to f7eb43b90f4c8882edf6354f8585094f8f3aade0Update libbpf to f7eb43b90f
([`0bc886f
`](https://github.com/aya-rs/aya/commit/0bc886f163
))
- Merge pull request #585 from probulate/tag-len-value ([`5165bf2
`](https://github.com/aya-rs/aya/commit/5165bf2f99
))
- Merge pull request #605 from marysaka/fix/global-data-reloc-ancient-kernels ([`9c437aa
`](https://github.com/aya-rs/aya/commit/9c437aafd9
))
- Merge pull request #604 from marysaka/fix/section-kind-from-str ([`3a9058e
`](https://github.com/aya-rs/aya/commit/3a9058e762
))
- Do not create data maps on kernel without global data support ([`591e212
`](https://github.com/aya-rs/aya/commit/591e21267a
))
- Fix ProgramSection::from_str for bss and rodata sections ([`18b3d75
`](https://github.com/aya-rs/aya/commit/18b3d75d09
))
- Build tests with all features ([`4e2f832
`](https://github.com/aya-rs/aya/commit/4e2f8322cc
))
- Move program's functions to the same map ([`9e1109b
`](https://github.com/aya-rs/aya/commit/9e1109b3ce
))
- Merge pull request #597 from nak3/test-clippy ([`7cd1c64
`](https://github.com/aya-rs/aya/commit/7cd1c642e3
))
- Drop unnecessary mut ([`e67025b
`](https://github.com/aya-rs/aya/commit/e67025b66f
))
- Merge pull request #577 from aya-rs/dependabot/cargo/object-0.31 ([`deb054a
`](https://github.com/aya-rs/aya/commit/deb054afa4
))
- Merge pull request #545 from epompeii/lsm_sleepable ([`120b59d
`](https://github.com/aya-rs/aya/commit/120b59dd2e
))
- Update object requirement from 0.30 to 0.31 ([`4c78f7f
`](https://github.com/aya-rs/aya/commit/4c78f7f1a0
))
- Merge pull request #586 from probulate/no-std-inversion ([`45efa63
`](https://github.com/aya-rs/aya/commit/45efa6384f
))
- Flip feature "no_std" to feature "std" ([`33a0a2b
`](https://github.com/aya-rs/aya/commit/33a0a2b604
))
- Merge branch 'aya-rs:main' into lsm_sleepable ([`1f2006b
`](https://github.com/aya-rs/aya/commit/1f2006bfde
))
- Merge pull request #583 from 0xrawsec/fix-builtin-linkage ([`b2d5059
`](https://github.com/aya-rs/aya/commit/b2d5059ac2
))
- - comment changed to be more precise - adapted test to be more readable ([`1464bdc
`](https://github.com/aya-rs/aya/commit/1464bdc1d4
))
- Added memmove, memcmp to the list of function changed to BTF_FUNC_STATIC ([`72c1572
`](https://github.com/aya-rs/aya/commit/72c1572178
))
- Fixed indent ([`a51c9bc
`](https://github.com/aya-rs/aya/commit/a51c9bc532
))
- Removed useless line break and comments ([`5b4fc9e
`](https://github.com/aya-rs/aya/commit/5b4fc9ea93
))
- Add debug messages ([`74bc754
`](https://github.com/aya-rs/aya/commit/74bc754862
))
- Merge pull request #582 from marysaka/feature/no-kern-read-sanitizer ([`b5c2928
`](https://github.com/aya-rs/aya/commit/b5c2928b0e
))
- Add sanitize code for kernels without bpf_probe_read_kernel ([`1132b6e
`](https://github.com/aya-rs/aya/commit/1132b6e01b
))
- Fixed BTF linkage of memset and memcpy to static ([`4e41da6
`](https://github.com/aya-rs/aya/commit/4e41da6a86
))
- Merge pull request #581 from marysaka/fix/datasec-struct-conversion ([`858f77b
`](https://github.com/aya-rs/aya/commit/858f77bf2c
))
- Fix DATASEC to STRUCT conversion ([`4e33fa0
`](https://github.com/aya-rs/aya/commit/4e33fa011e
))
- Merge pull request #572 from alessandrod/reloc-fixes ([`542ada3
`](https://github.com/aya-rs/aya/commit/542ada3fe7
))
- Support relocations across multiple text sections + fixes ([`93ac3e9
`](https://github.com/aya-rs/aya/commit/93ac3e94bc
))
- Change two drain() calls to into_iter() ([`b25a089
`](https://github.com/aya-rs/aya/commit/b25a089819
))
- Aya, aya-obj: refactor map relocations ([`401ea5e
`](https://github.com/aya-rs/aya/commit/401ea5e848
))
- Rework `maps` section parsing ([`5c4f1d6
`](https://github.com/aya-rs/aya/commit/5c4f1d69a6
))
- Review ([`85714d5
`](https://github.com/aya-rs/aya/commit/85714d5cf3
))
- Macro ([`6dfb9d8
`](https://github.com/aya-rs/aya/commit/6dfb9d82af
))
- Obj ([`6a25d4d
`](https://github.com/aya-rs/aya/commit/6a25d4ddec
))
- Fix compilation with nightly ([`dfbe120
`](https://github.com/aya-rs/aya/commit/dfbe1207c1
))
- Merge pull request #537 from aya-rs/codegen ([`8684a57
`](https://github.com/aya-rs/aya/commit/8684a5783d
))
- [codegen] Update libbpf to a41e6ef3251cba858021b90c33abb9efdb17f575Update libbpf to a41e6ef325
([`24f15ea
`](https://github.com/aya-rs/aya/commit/24f15ea25f
))
- More discrete feature logging ([`7479c1d
`](https://github.com/aya-rs/aya/commit/7479c1dd6c
))
- Make features a lazy_static ([`ce22ca6
`](https://github.com/aya-rs/aya/commit/ce22ca668f
))
- Merge pull request #519 from dave-tucker/frags ([`bc83f20
`](https://github.com/aya-rs/aya/commit/bc83f208b1
))
- Add multibuffer support for XDP ([`376c486
`](https://github.com/aya-rs/aya/commit/376c486400
))
- Add support for multibuffer programs ([`a18693b
`](https://github.com/aya-rs/aya/commit/a18693b42d
))
- Merge pull request #453 from alessandrod/btf-kind-enum64 ([`e8e2767
`](https://github.com/aya-rs/aya/commit/e8e276730e
))
- Btf: add support for BTF_KIND_ENUM64 ([`9a6f814
`](https://github.com/aya-rs/aya/commit/9a6f8143a1
))
- Merge pull request #501 from alessandrod/fix-enum32-relocs ([`f81b1b9
`](https://github.com/aya-rs/aya/commit/f81b1b9f3e
))
- Btf: fix relocations for signed enums (32 bits) ([`4482db4
`](https://github.com/aya-rs/aya/commit/4482db42d8
))
- Btf: switch ComputedRelocationValue::value to u64 ([`d6b976c
`](https://github.com/aya-rs/aya/commit/d6b976c6f1
))
- Fix lints ([`9f4ef6f
`](https://github.com/aya-rs/aya/commit/9f4ef6f67d
))
- Merge pull request #487 from vadorovsky/new-map-types ([`42c4a8b
`](https://github.com/aya-rs/aya/commit/42c4a8be7c
))
- Add new map types ([`3d03c8a
`](https://github.com/aya-rs/aya/commit/3d03c8a8e0
))
- Merge pull request #483 from aya-rs/codegen ([`0399991`](https://github.com/aya-rs/aya/commit/0399991383
))
- Update `BPF_MAP_TYPE_CGROUP_STORAGE` name to `BPF_MAP_TYPE_CGRP_STORAGE` ([`cb28533
`](https://github.com/aya-rs/aya/commit/cb28533e2f
))
- [codegen] Update libbpf to 3423d5e7cdab356d115aef7f987b4a1098ede448Update libbpf to 3423d5e7cd
([`5d13fd5
`](https://github.com/aya-rs/aya/commit/5d13fd5aca
))
- Merge pull request #475 from yesh0/aya-obj ([`897957a
`](https://github.com/aya-rs/aya/commit/897957ac84
))
- Update documentation and versioning info ([`9c451a3
`](https://github.com/aya-rs/aya/commit/9c451a3357
))
- Add documentation on program names ([`772af17
`](https://github.com/aya-rs/aya/commit/772af170ae
))
- Fix rustfmt diffs and typos ([`9ec3447
`](https://github.com/aya-rs/aya/commit/9ec3447e89
))
- Add no_std feature ([`30f1fab
`](https://github.com/aya-rs/aya/commit/30f1fabc05
))
- Add integration tests against rbpf ([`311ead6
`](https://github.com/aya-rs/aya/commit/311ead6760
))
- Add basic documentation to public members ([`e52497c
`](https://github.com/aya-rs/aya/commit/e52497cb9c
))
- Migrate aya::obj into a separate crate ([`ac49827
`](https://github.com/aya-rs/aya/commit/ac49827e20
))
- Migrate bindgen destination ([`81bc307
`](https://github.com/aya-rs/aya/commit/81bc307dce
))