- Added
SkeletonBuilder::reference_objfor enabling generate skeleton to reference an object file instead of embedding it
- Fixed Rust type generation for trailing bitfields in composite C types
- Fixed handling of
XxxSkelBuilder::obj_buildercustomizations when usingopen()constructor - Allowlisted
libbpf-sys1.6.3
- Allowlisted
libbpf-sys1.6.1
- Moved BPF object content in generated skeletons into
.bpf.objssection allowing easy extraction from the final binary - Bumped minimum Rust version to
1.82
- Adjusted all
<xxx>_dataBPF map skeleton members to beOptions - Adjusted numbering of generated Rust structs for anonymous C types to be less fragile in the presence of type additions
- Removed
SkeletonBuilder::skip_clang_version_checkandSkeletonBuilder::debug - Removed
--skip-clang-version-checksoption oflibbpf buildsub-command - Replaced
--debugoption oflibbpfsub-command with-v/--verbose- Removed
--quietoption oflibbpf makesub-command
- Removed
- Replaced
CompilationOutputtype withtracingbased solution using newly addedutil::CargoWarningFormatter - Fixed handling of multiple types of same name in BTF by enumerating them in the generated skeleton
- Bumped minimum Rust version to
1.78
- Fixed skeleton generation when
enum64types are present
- Represent C enums with custom types and const fields
- Adjusted Rust correspondents in generated skeletons to no longer be
wrapped in
MaybeUninit
- Adjusted Rust correspondents in generated skeletons to no longer be
wrapped in
- Adjusted
SkeletonBuilder::build*methods to returnCompilationOutputon success
- Fixed handling of empty unions in BPF types
- Fixed incorrect Cargo environment variable query when used in build script context
- Adjusted skeleton generation code to work around
libbpfforward compatibility issue when an old systemlibbpfis being used instead of the vendored copy
- Silenced possible
clippyreported warnings in generated skeleton when BPF object file does not contain any maps
- Fixed panic on "open" of skeleton with
kconfigmap
- Fixed missing BPF object cleanup after skeleton destruction
- Reworked generated skeletons to contain publicly accessible maps and program members, no longer requiring method calls
- Adjusted skeleton creation logic to generate Rust types for all types available in BPF
- Renamed module for generated Rust types from
<project>_typesto justtypes - Renamed generated
struct_opstype toStructOpsand moved it out oftypesmodule - Fixed Rust code generation logic to properly create
Defaultimpl for arrays of pointers
- Fixed generation of
Defaultimpl in presence of large padding arrays
- Added "import injection" escape hatch to generated skeletons
- Removed
novendorfeature in favor of having disableable default feature - Added support for
struct_opsshadow objects for generated skeletons - Added support for handling custom data sections in generated skeletons
- Adjusted
SkeletonBuilder::clang_argsto accept an iterator of arguments instead of a string - Added
--clang-argsargument tomakeandbuildsub-commands - Put all generated types into single
<project>_typesmodule as opposed to having multiple modules for various sections (.bss,.rodata, etc.) - Fixed potential naming issues by escaping reserved keywords used in identifiers
- Fixed potential unsoundness issues in generated skeletons by wrapping "unsafe"
types in
MaybeUninit - Added pointer based ("raw") access to datasec type to generated skeletons
- Added better handling for bitfields to code generation logic
- Updated
libbpf-sysdependency to1.4.0 - Bumped minimum Rust version to
1.71
- Adjusted skeleton creation logic to generate shared and exclusive datasec accessor functions
- Removed
Errorenum in favor ofanyhow::Error - Bumped minimum Rust version to
1.65
- Added
Defaultimpl for generatedstructtypes containing pointers - Fixed handling of function prototype type declaration inference in BTF and skeleton generation
- Improved error reporting in build script usage
- Bumped minimum Rust version to
1.64
- Adjusted named padding members in generated types to have
pubvisibility
- Adjusted skeleton generation code to ensure implementation of
libbpf-rs'sSkelBuilder,OpenSkel, andSkeltraits - Improved error reporting on BPF C file compilation failure
- Switched over to using
libbpf-rs's BTF support internally for skeleton generation - Fixed potential build failures on systems defaulting to stack
protector usage by passing
-fno-stack-protectortoclang
- Fixed mismatch in size of generated types with respect to corresponding C types
- Fixed generated skeleton potentially being unstable (changing each time)
- Implemented
Syncfor generated skeletons - Made formatting using
rustfmtoptional - Updated various dependencies
- Initial documented release