You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Changed many file format struct fields and constants to use newtypes.
Newtypes for bit flags have methods such as contains and intersects.
Some constants are fields within another newtype and have methods for conversion.
The raw values are always accessible by .0. #894 #897 #898 #899 #900 #957 #958 #959 #970
Updated macho::DyldCacheHeader to dyld-1340. #885
Deleted SectionKind::Elf and added sh_type field to SectionFlags::Elf. #891
Added feature gates to variants of FileFlags, SegmentFlags, SectionFlags, SymbolFlags, and RelocationFlags. #891
Added p_type field to SegmentFlags::Elf.
Added n_type field to SymbolFlags::MachO.
Added typ and storage_class fields to SymbolFlags::CoffSection.
Added n_type field to SymbolFlags::Xcoff.
Added reserved2 field to SectionFlags::MachO. #891 #963
Renamed build::elf::AttributeTag to AttributeScope. #894
Changed write::elf::Writer::reserve_strtab/reserve_shstrtab/reserve_dynstr
and write::coff::Writer::reserve_symtab_strtab to return an Error for
null bytes in strings, or table size overflow. #905
Changed many write::elf::Writer methods to return u64 instead of usize. #909
Replaced name fields in write::elf::SectionHeader, write::elf::Sym, write::elf::Verdef and write::elf::Vernaux with string table offsets.
Added write::elf::Writer methods to obtain these offsets. #910
Added hash fields to write::elf::Verdef and write::elf::Vernaux.
Use elf::hash to calculate the hash values. #910
Replaced write::elf::Class with write::elf::Encoder,
and replaced build::elf::Builder::class with encoder. #910
Deleted write::elf::Writer::reserve_*_section_index_with_name
and write::elf::Writer::reserve_dynamics. There is no replacement
for these. #912
Changed offsets from usize to u64 in write::WritableBuffer
and low level writing APIs. #914
Improved overflow handling when writing. Some overflow handling for write::elf::Writer has been shifted to the caller, as indicated by
narrowed parameter types for reserve_program_headers, reserve_gnu_verdef and reserve_gnu_verneed. #918
Added tool version data to read::macho::LoadCommandVariant::BuildVersion
and endian parameter to read::macho::LoadCommandData::build_version. #920
Added offset parameter to read::macho::Section::file_range and data.
Added read::macho::Segment::section_offsets to assist. #923 #968
Replaced write::WritableBuffer::resize with write_zeros and deleted write::WritableBuffer::len. Added write::CountingBuffer which can
wrap WritableBuffer to provide resize and count methods. #930 #931
Moved write::WritableBuffer::write_pod and write_pod_slice to a
new write::WritableBufferExt trait, and deleted the write and write_slice methods for dyn WritableBuffer. #930
Renamed read::coff::ImageSymbol to read::coff::Symbol. #936
Added read::pe::ExportOrdinal and read::pe::ExportAddressIndex,
and changed read::pe::ExportTable methods to use them. #942
Changed read::Object::imports and read::Object::exports to iterators,
and expanded read::Import and read::Export to handle more types of
imports and exports. Import::name and Export::name return NameOrOrdinal
and Export::address is replaced by Export::target. #941 #945 #946 #949 #955 #956
Fixed handling of common symbols for Mach-O; it is now similar to other formats.
Folded SectionKind::Common into SectionKind::UninitializedData and
deleted write::StandardSection::Common, and write::Object::has_common. read::macho::Nlist::is_undefined now excludes common symbols. #964
Changed write::Symbol::value to hold the alignment for common symbols.
This is supported for ELF and Mach-O. #964
Changed the return types of read::elf::FileHeader::phnum and shnum
from usize to u32. #966
Added
Added names feature to provide display names for file format constants. #876 #878 #902
Changed read::NativeFile to use NativeEndian instead of Endianness. #851
Changed the type of elf::Dyn32/64::d_tag to signed (i32/i64).
Changed the type of DT_* constants to i64.
Changed write::elf::Writer::write_dynamic parameter to match. #852
Changed parsing to always support unaligned data.
The unaligned feature now has no effect. #861
Changed read::SymbolMapName::new to accept a size parameter. #863
Changed
Changed read::MachOFile::entry to handle LC_UNIXTHREAD load commands. #837
Reduced the size of read::elf::CrelIterator. #840
Improved debug output for read::*File by hiding the raw data bytes. #853
Removed DT_SYMBOLIC from the read::elf::Dyn::is_address check. #854
Changed read::macho to treat ltmp* symbols as section symbols. #856
Changed read::Relocation::encoding for unknown relocations to RelocationEncoding::Unknown. #857
Changed read::RelocationMap to handle RelocationKind::None and
check for supported RelocationEncoding. #857
Changed read::elf to return RelocationKind::GotRelative for elf::R_X86_64_GOTPCRELX and elf::R_X86_64_REX_GOTPCRELX. #859
Changed elf::R_X86_64_PLT32 and macho::X86_64_RELOC_BRANCH
to use RelocationKind::PltRelative and RelocationEncoding::X86Branch. #860
Changed read::macho and write::Object to handle macho::ARM64_RELOC_BRANCH26. #860
Changed read::SymbolMap to include symbol sizes.
Deprecated read::SymbolMap::get. Use before or containing instead. #863
Changed read::elf to include unsized symbols in is_definition. #866
Changed pod::slice_from_all_bytes/_mut to handle zero-sized types. #868
Added read::Relocation::subtractor and write::Object::add_relocation_with_subtractor
to handle macho::ARM64_RELOC_SUBTRACTOR and macho::X86_64_RELOC_SUBTRACTOR. #856 #860
Changed the type of macho::EXPORT_SYMBOL_FLAGS constants to u8. #817
Fixed the type of the StringTable parameter for read::elf::Dyn::string. #812
Changed
Updated hashbrown and wasmparser dependencies. #806
The minimum supported rust version with all features enabled has changed to 1.87.0.
Changes to the minimum supported rust version are not considered breaking changes.
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
This is safe to merge - the benchmark failure cannot be related to these changes since object is only used on the solx stack-trace path. I'm investigating these types of benchmark failures.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.37→0.40Release Notes
gimli-rs/object (object)
v0.40.0Compare Source
Released 2026/08/01.
Breaking changes
Changed many file format struct fields and constants to use newtypes.
Newtypes for bit flags have methods such as
containsandintersects.Some constants are fields within another newtype and have methods for conversion.
The raw values are always accessible by
.0.#894
#897
#898
#899
#900
#957
#958
#959
#970
Updated
macho::DyldCacheHeaderto dyld-1340.#885
Deleted
SectionKind::Elfand addedsh_typefield toSectionFlags::Elf.#891
Added feature gates to variants of
FileFlags,SegmentFlags,SectionFlags,SymbolFlags, andRelocationFlags.#891
Added
p_typefield toSegmentFlags::Elf.Added
n_typefield toSymbolFlags::MachO.Added
typandstorage_classfields toSymbolFlags::CoffSection.Added
n_typefield toSymbolFlags::Xcoff.Added
reserved2field toSectionFlags::MachO.#891
#963
Renamed
build::elf::AttributeTagtoAttributeScope.#894
Changed
write::elf::Writer::reserve_strtab/reserve_shstrtab/reserve_dynstrand
write::coff::Writer::reserve_symtab_strtabto return anErrorfornull bytes in strings, or table size overflow.
#905
Changed many
write::elf::Writermethods to returnu64instead ofusize.#909
Replaced name fields in
write::elf::SectionHeader,write::elf::Sym,write::elf::Verdefandwrite::elf::Vernauxwith string table offsets.Added
write::elf::Writermethods to obtain these offsets.#910
Added hash fields to
write::elf::Verdefandwrite::elf::Vernaux.Use
elf::hashto calculate the hash values.#910
Replaced
write::elf::Classwithwrite::elf::Encoder,and replaced
build::elf::Builder::classwithencoder.#910
Deleted
write::elf::Writer::reserve_*_section_index_with_nameand
write::elf::Writer::reserve_dynamics. There is no replacementfor these.
#912
Changed offsets from
usizetou64inwrite::WritableBufferand low level writing APIs.
#914
Improved overflow handling when writing. Some overflow handling for
write::elf::Writerhas been shifted to the caller, as indicated bynarrowed parameter types for
reserve_program_headers,reserve_gnu_verdefandreserve_gnu_verneed.#918
Added tool version data to
read::macho::LoadCommandVariant::BuildVersionand
endianparameter toread::macho::LoadCommandData::build_version.#920
Added
offsetparameter toread::macho::Section::file_rangeanddata.Added
read::macho::Segment::section_offsetsto assist.#923
#968
Replaced
write::WritableBuffer::resizewithwrite_zerosand deletedwrite::WritableBuffer::len. Addedwrite::CountingBufferwhich canwrap
WritableBufferto provideresizeandcountmethods.#930
#931
Moved
write::WritableBuffer::write_podandwrite_pod_sliceto anew
write::WritableBufferExttrait, and deleted thewriteandwrite_slicemethods fordyn WritableBuffer.#930
Sealed low level parsing traits.
#934
Renamed
read::coff::ImageSymboltoread::coff::Symbol.#936
Added
read::pe::ExportOrdinalandread::pe::ExportAddressIndex,and changed
read::pe::ExportTablemethods to use them.#942
Changed
read::Object::importsandread::Object::exportsto iterators,and expanded
read::Importandread::Exportto handle more types ofimports and exports.
Import::nameandExport::namereturnNameOrOrdinaland
Export::addressis replaced byExport::target.#941
#945
#946
#949
#955
#956
Fixed handling of common symbols for Mach-O; it is now similar to other formats.
Folded
SectionKind::CommonintoSectionKind::UninitializedDataanddeleted
write::StandardSection::Common, andwrite::Object::has_common.read::macho::Nlist::is_undefinednow excludes common symbols.#964
Changed
write::Symbol::valueto hold the alignment for common symbols.This is supported for ELF and Mach-O.
#964
Changed the return types of
read::elf::FileHeader::phnumandshnumfrom
usizetou32.#966
Added
Added
namesfeature to provide display names for file format constants.#876
#878
#902
Added relocation parsing for Wasm.
#895
Added more PE constants definitions.
#903
Added z/OS archive support.
#904
Added
write::elf::GrowableBufferandwrite::elf::SinglePhaseWriter.#908
#909
#916
#917
Added
write::StringTable.#910
Added
write::macho::Encoder.#913
#967
Added
build::macho::Builder.#921
#925
Added
macho::DyldInfoCommandmethods to parse rebases, binds, and exports.#922
Added
macho::LinkeditDataCommand::chained_fixups.#924
Added
macho::LinkeditDataCommand::code_signature.#932
Added initial GOFF definitions as an unstable feature.
#926
#962
Added
Architecture::Ia64.#927
Added
RelocationKindsupport formacho::ARM64_RELOC_POINTER_TO_GOT.#929
Added
read::macho::LoadCommandData::offset.#937
Added parsing support for
macho::R_ABS.#938
Added
read::Object::import_libraries.#960
Added
from_rawmethods for variouswrite::elfstructs.#966
Changed
Changed the minimum supported rust version (MSRV) for the
readfeature andits dependencies to 1.85.0.
#892
Changed the rust edition to 2024.
#893
Fixed
SectionKindfor Wasmreloc.*sections.#896
Fixed ELF
.symtab_shndxwriting whenst_shndxis notSHN_INDEX.#906
Changed
write::elf::Writerto handlee_phnumoverflow.#907
Fix ELF
.gnu.attributesalignment when writing.#912
Fixed some malformed data handling.
#939
#940
#961
Fixed COFF archive parsing of `/' member when no names table is
present.
#947
#948
Fixed
read::ObjectSymbol::addressto return 0 for common symbols insteadof the alignment.
#964
Changed Mach-O
SectionKindparsing to use flags where possible insteadof segment and section names.
#965
Updated
ruzstdandwasmparserdependencies.v0.39.1Compare Source
Released 2026/04/21.
Changed
Changed
read::PeFile::importsto return an error for empty import names.#873
Fixed
read::PeFile::importsto handle import names in a different section.#881
Fixed the ELF section flags for
write::StandardSection::EhFrame.#877
Updated
hashbrown,indexmap, andwasmparserdependencies.#879
Added
Added Android definitions for ELF.
#875
Updated Mach-O definitions.
#883
Added
read::macho::LoadCommandData::dylib_use_flags.#887
v0.39.0Compare Source
Released 2026/03/29.
Breaking changes
Changed
read::NativeFileto useNativeEndianinstead ofEndianness.#851
Changed the type of
elf::Dyn32/64::d_tagto signed (i32/i64).Changed the type of
DT_*constants toi64.Changed
write::elf::Writer::write_dynamicparameter to match.#852
Changed parsing to always support unaligned data.
The
unalignedfeature now has no effect.#861
Changed
read::SymbolMapName::newto accept asizeparameter.#863
Changed
Changed
read::MachOFile::entryto handleLC_UNIXTHREADload commands.#837
Reduced the size of
read::elf::CrelIterator.#840
Improved debug output for
read::*Fileby hiding the raw data bytes.#853
Removed
DT_SYMBOLICfrom theread::elf::Dyn::is_addresscheck.#854
Changed
read::machoto treatltmp*symbols as section symbols.#856
Changed
read::Relocation::encodingfor unknown relocations toRelocationEncoding::Unknown.#857
Changed
read::RelocationMapto handleRelocationKind::Noneandcheck for supported
RelocationEncoding.#857
Changed
read::elfto returnRelocationKind::GotRelativeforelf::R_X86_64_GOTPCRELXandelf::R_X86_64_REX_GOTPCRELX.#859
Changed
elf::R_X86_64_PLT32andmacho::X86_64_RELOC_BRANCHto use
RelocationKind::PltRelativeandRelocationEncoding::X86Branch.#860
Changed
read::machoandwrite::Objectto handlemacho::ARM64_RELOC_BRANCH26.#860
Changed
read::SymbolMapto include symbol sizes.Deprecated
read::SymbolMap::get. Usebeforeorcontaininginstead.#863
Changed
read::elfto include unsized symbols inis_definition.#866
Changed
pod::slice_from_all_bytes/_mutto handle zero-sized types.#868
Updated
wasmparserdependency.Added
Added
read::ObjectSegment::permissions.#838
Added
elf::R_X86_64_CODE_*relocations.#839
Added
read::macho::Section::reserved1andSection::reserved2.#846
Added
Fromimplementations for fixed endian integers.#850
Added
Native*Filetypes for each file format.#851
Added
read::elf::ElfFile::elf_dynamic_table.#854
Added
read::Relocation::subtractorandwrite::Object::add_relocation_with_subtractorto handle
macho::ARM64_RELOC_SUBTRACTORandmacho::X86_64_RELOC_SUBTRACTOR.#856
#860
Added
write::StandardSection::EhFrame.#856
Added
SymbolFlags::elf_visibility.#859
Added
read::macho::Section::symbol_stub_sizeandindirect_symbols.#862
Added missing
elf::DT_RELR*constants.#864
Added
elf::R_AARCH64_PLT32andelf::R_AARCH64_GOTPCREL32.#865
v0.38.1Compare Source
Released 2026/01/02.
Changed
wasmparserdependency.Added
Added basic PowerPC relocation support for Mach-O.
#825
Added more ELF relocations for LoongArch.
#826
#827
Added
RelocationKind::None.#828
Added
write::StreamingBuffer::flush.#829
v0.38.0Compare Source
Released 2025/11/21.
Breaking changes
Changed the type of
macho::EXPORT_SYMBOL_FLAGSconstants tou8.#817
Fixed the type of the
StringTableparameter forread::elf::Dyn::string.#812
Changed
Updated
hashbrownandwasmparserdependencies.#806
The minimum supported rust version with all features enabled has changed to 1.87.0.
Changes to the minimum supported rust version are not considered breaking changes.
Added
Added more RISC-V constants for ELF.
#809
Added more AArch64 constants for ELF.
#819
Added
macho::LinkeditDataCommand::function_startsand associated parser.#814
#816
Added
macho::LinkeditDataCommand::exports_trieand associated parser.#817
Configuration
📅 Schedule: (in timezone UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.