33 KiB
object Change Log
0.36.4
Released 2024/08/30.
Added
-
Added
pe::IMAGE_FILE_MACHINE_ARM64Xandpe::IMAGE_FILE_MACHINE_CHPE_X86. #717 -
Added
elf::SHF_GNU_RETAINandelf::SHF_GNU_MBIND. #720
Changed
-
Fixed the checksum for COFF BSS section symbols in
write::Object. #718 -
Changed
read::CompressedData::decompressto validate the decompressed size. #723 -
Updated
wasmparserdependency.
0.36.3
Released 2024/08/07.
Added
Changed
-
Changed
from_bytesconstructors for integer endian types toconst. #712 -
Changed
nextmethods in the low level read API to fuse after returning an error. #714 -
Updated
wasmparserdependency. #715
0.36.2
Released 2024/07/24.
Changed
-
Improved writing of GNU symbol versioning in
build::elf::Builder. #705 -
Fixed alignment of
SHT_HASH/SHT_GNU_verdef/SHT_GNU_verneedsections inwrite::elf::Writer. #706 -
Fixed writing of GNU hash for absolute symbols in
build::elf::Builder. #707 -
Fixed writing of empty ELF string table in
write::Object. #710
0.36.1
Released 2024/06/29.
Added
-
Added
SectionKind::DebugString. #694 -
Added
Architecture::SparcandArchitecture::Sparc32Plus. #699 #700 -
Added more RISC-V ELF relocation constants. #701
Changed
-
Changed
read::ElfFile::importsto return the library for versioned symbols. #693 -
Changed
read::MachOFileto support Go's debug section compression. #697 -
Reversed the order of Mach-O relocations emitted by
write::Object. #702
0.36.0
Released 2024/05/26.
Breaking changes
-
Deleted
dataandalignparameters forwrite::Object::add_subsection. Useadd_symbol_dataoradd_symbol_bssinstead. #676 -
Changed methods in the lower level read API to accept or return
SectionIndexorSymbolIndexinstead ofusize. #677 #684 #685 -
Deleted
SymbolKind::Null. Changedread::Object::sectionsandread::Object::symbolsto no longer return null entries. This affects ELF and XCOFF. #679 -
Changed
read::ObjectMap::objectto returnObjectMapFile. This handles splitting the object file name into path and member. #686 -
Changed
read::coff::ImageSymbol::addressto only return an address for symbols that have an address. #689
Added
-
Added
pod::slice_from_all_bytesandpod::slice_from_all_bytes_mut. #672 -
Added
write::Object::set_subsections_via_symbols. Changedwrite::Object::add_symbol_dataandwrite::Object::add_symbol_bssto correctly handle zero size symbols when subsections are enabled. #676 -
Added methods in the unified read API to return the lower level API structures. Some existing methods were deprecated so that naming of these methods is more consistent. #678
-
Added methods in the lower level read API to return a
SectionIndexorSymbolIndex. #684 #689 -
Implemented
Displayforread::SymbolIndexandread::SectionIndex. #684 -
Added
is_common,is_absolute,is_local, andis_weaktoread::elf::Sym. #685
Changed
-
Changed
read::ArchiveFileto skip the<ECSYMBOLS>member. #669 -
Fixed handling of segment data in the dyld shared cache. #673
-
Changed
read::RelocationMapto handle Mach-O section relocations. #675 -
Changed
read::elf::RelocationSectionsto ignore relocations that apply to relocations. #680 -
Removed a lifetime bound from an argument in
read::elf::SectionTable::section_name,read::elf::SymbolTable::symbol_name, andread::elf::SymbolTable::symbol_section. #681
0.35.0
Released 2024/04/10.
Breaking changes
- Moved the
'filelifetime parameter fromread::Objectto its associated types. #655
Added
-
Added support more section kinds in
build::elf. #650 -
Added thin archive support to
read::ArchiveFile. #651 -
Added
read::ReadCacheOpsand changedread::ReadCachebound fromRead + SeektoReadCacheOps. #652 -
Added
read::ObjectSection::relocation_map#654 -
Added
read::ArchiveFile::symbols. #658 -
Added
BinaryFormat::native_object. #661
Changed
-
The minimum supported rust version for the
readfeature and its dependencies has changed to 1.65.0. #655 -
Fixed
sh_offsethandling forSHT_NOBITSsections inbuild::elf. #645 -
Fixed handling of ELF files with dynamic symbols but no dynamic strings. #646
-
Fixed potential panics in
read::WasmFiledue to invalid function indices. #649 -
Fixed handling of Wasm components in
read::WasmFile. #649 -
Fixed
sh_entsizefor 32-bit hash sections inwrite::elf. #650 -
Fixed
sh_sizefor attribute sections inbuild::elf. #650 -
Fixed
sh_infoforSHT_DYNSYMsections inbuild::elf. #650 -
Fixed handling of dynamic relocations with invalid
sh_linkinbuild::elf. #650 -
Fixed parsing of member names containing '/' in
read::ArchiveFile. #657 -
Fixed handling of load segment alignments in
build::elf::Builder::read. #659
0.34.0
Released 2024/03/11.
Breaking changes
- Replaced
macho::DyldSubCacheInfowithmacho::DyldSubCacheEntryV1. Changed the return type ofmacho::DyldCacheHeader::subcaches. #642
Changed
- Added
macho::DyldSubCacheEntryV2and changedread::macho::DyldCacheto handle both versions. This is needed for macOS 13 and above. #642
0.33.0
Released 2024/03/05.
Breaking changes
-
Deleted file format variants in
RelocationKind. Replaced their usage withread::Relocation::flagsandwrite::Relocation::flags. #585 -
Replaced
kind,encodingandsizefields inwrite::RelocationwithRelocationFlags::Genericin theflagsfield. #585 -
Replaced
macho::FatHeader::parse,macho::FatHeader::parse_arch32, andmacho::FatHeader::parse_arch64withread::macho::MachOFatFile,read::macho::MachOFatFile32andread::macho::MachOFatFile64. #623
Added
-
Added
macho::PLATFORM_XROSandmacho::PLATFORM_XROSSIMULATOR. #626 -
Added
build::elf::Builderand associated types. Extendedwrite::elf::Writerto support this. #618
Changed
-
Changed the lifetime to
'datafor the return value ofObjectSection::name,ObjectSection::name_bytes,ObjectComdat::name,ObjectComdat::name_bytes. #620 #622 -
Checked that sizes are smaller than the file length in
read::ReadCache. #630 -
Used
Vec::try_reserve_exactfor large allocations. #632
0.32.2
Released 2023/12/24.
Added
-
Added ELF support for SHARC. #593
-
Added
write::coff::Writer. #595 -
Added
SubArchitecture::Arm64ECsupport for PE/COFF. #607 -
Added
SubArchitecture::Arm64Esupport for Mach-O. #614 -
Added
read::Object::symbol_by_nameandread::Object::symbol_by_name_bytes. #602 -
Added more functions to the low level API in
read::xcoff. #608 -
Added more functions to the low level API in
read::macho. #584
Changed
-
Fixes for AArch64 relocation addends for Mach-O. #581
-
Changes to
write::Objectoutput for Mach-O, including the addition of aLC_DYSYMTABload command. #584 -
Changed
write::Objectto always useR_X86_64_PLT32for x86-64 branches for ELF. #590 -
Fixed
read::ObjectSymbol::kindfor undefined section symbols for COFF. #592 -
Fixed
write::Objectto accept undefined section symbols for COFF. #594 -
Improved parsing of auxiliary section symbols for COFF. #603
-
Improved the selection of symbols for
read::Object::symbol_map. This includes changes toread::Symbol::is_definition. #601 #606 -
Changed
read::ObjectSymbol::kindfor ELFSTT_NOTYPEsymbols toSymbolKind::Unknown. #604 -
Changed
read::ObjectSymbol::scopefor XCOFFC_HIDEXTsymbols toSymbolScope::Compilation. #605
0.32.1
Released 2023/09/03.
Added
- Added
write::Object::set_macho_cpu_subtype. #574
0.32.0
Released 2023/08/12.
Breaking changes
-
Changed
read::elf::Note::nameto exclude all trailing null bytes. #549 -
Updated dependencies, and changed some optional dependencies to use the
dep:feature syntax. #558 #569
Changed
-
The minimum supported rust version for the
readfeature and its dependencies has changed to 1.60.0. -
The minimum supported rust version for other features has changed to 1.65.0.
-
Changed many definitions from
statictoconst. #549 -
Fixed Mach-O section alignment padding in
write::Object. #553 -
Changed
read::Fileto an enum. #564
Added
-
Added
elf::ELF_NOTE_GO,elf::NT_GO_BUILD_ID, andread::elf::Note::name_bytes. #549 -
Added
read::FileKind::CoffImportandread::coff::ImportFile. #555 #556 -
Added
Architecture::Cskyand basic ELF support for C-SKY. #561 -
Added
read::elf::ElfSymbol::raw_symbol. #562
0.30.4
Released 2023/06/05.
Changed
- Fixed Mach-O section alignment padding in
write::Object. #553
0.31.1
Released 2023/05/09.
Changed
-
Fixed address for global symbols in
read::wasm. #539 -
Fixed writing of alignment for empty ELF sections. #540
Added
-
Added more
elf::GNU_PROPERTY_*definitions. Addedread::elf::note::gnu_properties,write::StandardSection::GnuProperty, andwrite::Object::add_elf_gnu_property_u32. #537 #541 -
Added Mach-O support for
Architecture::Aarch64_Ilp32. #542 #545 -
Added
Architecture::Wasm64. #543
0.31.0
Released 2023/04/14.
Breaking changes
-
Added a type parameter on existing COFF types to support reading COFF
/bigobjfiles. #502 -
Changed PE symbols to support COFF
/bigobj. Changedpe::IMAGE_SYM_*toi32. Changedpe::ImageSymbolEx::section_numbertoI32Bytes. Deleted a number of methods frompe::ImageSymbol. Use theread::pe::ImageSymboltrait instead. #502 -
Changed
pe::Guidto a single array, and added methods to read the individual fields. #502 -
Added
Symboltype parameter toSymbolFlagsto supportSymbolFlags::Xcoff. #527
Changed
-
Fix alignment when reserving zero length sections in
write::elf::Write::reserve. #514 -
Validate command size in
read::macho::LoadCommandIterator. #516 -
Handle invalid alignment in
read::macho::MachoSection::align. #516 -
Accept
SymbolKind::Unknowninwrite::Object::macho_write. #519 -
Updated
wasmparserdependency. #528
Added
-
Added more
elf::EF_RISCV_*definitions. #507 -
Added
read::elf::SectionHeader::gnu_attributesand associated types. Added.gnu.attributessupport towrite::elf::Writer. #509 #525 -
Added
write::Object::set_macho_build_version. #524 -
Added
read::FileKind::Xcoff32,read::FileKind::Xcoff64,read::XcoffFile, and associated types. Added XCOFF support towrite::Object. #469 #476 #477 #482 #484 #486 #527 -
Added
read::FileKind::CoffBig,read::pe::CoffHeaderandread::pe::ImageSymbol. #502 -
Added
elf::PT_GNU_PROPERTY. #530 -
Added
elf::ELFCOMPRESS_ZSTD,read::CompressionFormat::Zstandard, and Zstandard decompression inread::CompressedData::decompressusing theruzstdcrate. #532 -
Added
read::elf::NoteIterator::new. #533
0.30.3
Released 2023/01/23.
Added
- Added
SectionKind::ReadOnlyDataWithRelfor writing. #504
0.30.2
Released 2023/01/11.
Added
- Added more ELF constants for AVR flags and relocations. #500
0.30.1
Released 2023/01/04.
Changed
- Changed
read::ElfSymbol::kindto handleSTT_NOTYPEandSTT_GNU_IFUNC. #498
Added
-
Added
read::CoffSymbol::raw_symbol. #494 -
Added ELF support for Solana Binary Format. #491
-
Added ELF support for AArch64 ILP32. #497
0.30.0
Released 2022/11/22.
Breaking changes
-
The minimum supported rust version for the
readfeature has changed to 1.52.0. #458 -
The minimum supported rust version for the
writefeature has changed to 1.61.0. -
Fixed endian handling in
read::elf::SymbolTable::shndx. #458 -
Fixed endian handling in
read::pe::ResourceName. #458 -
Changed definitions for LoongArch ELF header flags. #483
Changed
-
Fixed parsing of multiple debug directory entries in
read::pe::PeFile::pdb_info. #451 -
Changed the section name used when writing COFF stub symbols. #475
Added
-
Added
read::pe::DataDirectories::delay_load_import_table. #448 -
Added
read::macho::LoadCommandData::raw_data. #449 -
Added ELF relocations for LoongArch ps ABI v2. #450
-
Added PowerPC support for Mach-O. #460
-
Added support for reading the AIX big archive format. #462 #467 #473
-
Added support for
RelocationEncoding::AArch64Callwhen writing Mach-O files. #465 -
Added support for
RelocationKind::Relativewhen writing RISC-V ELF files. #470 -
Added Xtensa architecture support for ELF. #481
-
Added
read::pe::ResourceName::raw_data. #487
0.29.0
Released 2022/06/22.
Breaking changes
-
The
writefeature now has a minimum supported rust version of 1.56.1. #444 -
Added
os_abiandabi_versionfields toFileFlags::Elf. #438 #441
Changed
- Fixed handling of empty symbol tables in
read::elf::ElfFile::symbol_tableandread::elf::ElfFile::dynamic_symbol_table. #443
Added
- Added more
ELF_OSABI_*constants. #439
0.28.4
Released 2022/05/09.
Added
-
Added
read::pe::DataDirectories::resource_directory. #425 #427 -
Added PE support for more ARM relocations. #428
-
Added
elf::EF_MIPS_ABIand associated constants. #433
0.28.3
Released 2022/01/19.
Changed
- For the Mach-O support in
write::Object, acceptRelocationKind::MachOfor all architectures, and acceptRelocationKind::Absolutefor ARM64. #422
Added
-
Added
pe::ImageDataDirectory::file_range,read::pe::SectionTable::pe_file_range_atandpe::ImageSectionHeader::pe_file_range_at. #421 -
Added
write::Object::add_coff_exports. #423
0.28.2
Released 2022/01/09.
Changed
-
Ignored errors for the Wasm extended name section in
read::WasmFile::parse. #408 -
Ignored errors for the COFF symbol table in
read::PeFile::parse. #410 -
Fixed handling of
SectionFlags::Coffinwrite::Object::coff_write. #412
Added
0.28.1
Released 2021/12/12.
Changed
0.28.0
Released 2021/12/12.
Breaking changes
-
write_corefeature no longer enablesstdsupport. Usewrite_stdinstead. #400 -
Multiple changes related to Mach-O split dyld cache support. #398
Added
-
Added
write::pe::Writer::write_file_align. #397 -
Added support for Mach-O split dyld cache. #398
-
Added support for
IMAGE_SCN_LNK_NRELOC_OVFLwhen reading and writing COFF. #399 -
Added
write::elf::Writer::reserve_null_symbol_index. #402
0.27.1
Released 2021/10/22.
Changed
- Fixed build error with older Rust versions due to cargo resolver version.
0.27.0
Released 2021/10/17.
Breaking changes
-
Changed
read::elfto useSectionIndexinstead ofusizein more places. #341 -
Changed some
read::elfsection methods to additionally return the linked section index. #341 -
Changed
read::pe::ImageNtHeaders::parseto returnDataDirectoriesinstead of a slice. #357 -
Deleted
valueparameter forwrite:WritableBuffer::resize. #369 -
Changed
write::Objectandwrite::Sectionto useCowfor section data. This added a lifetime parameter, which existing users can set to'static. #370
Changed
-
Fixed parsing when PE import directory has zero size. #341
-
Fixed parsing when PE import directory has zero for original first thunk. #385 #387
-
Fixed parsing when PE export directory has zero number of names. #353
-
Fixed parsing when PE export directory has zero number of names and addresses. #362
-
Fixed parsing when PE sections are contiguous. #354
-
Fixed
stdfeature forindexmapdependency. #374 -
Fixed overflow in COFF section name offset parsing. #390
Added
-
Added
name_bytesmethods to unifiedreadtraits. #351 -
Added
read::Object::kind. #352 -
Added
read::elf::VersionTableand related helpers. #341 -
Added
read::elf::SectionTable::dynamicand related helpers. #345 -
Added
read::coff::SectionTable::max_section_file_offset. #344 -
Added
read::pe::ImportTableand related helpers. #357 -
Added
read::pe::DataDirectoriesand related helpers. #357 #384 -
Added
read::pe::RichHeaderInfoand related helpers. #375 #379 -
Added
read::pe::RelocationBlocksand related helpers. #378 -
Added
write::elf::Writer. #350 -
Added
write::Section::data/data_mut. #367 -
Added
write::Object::write_stream. #369 -
Added MIPSr6 ELF header flag definitions. #372
0.26.2
Released 2021/08/28.
Added
- Added support for 64-bit symbol table names to
read::archive. #366
0.26.1
Released 2021/08/19.
Changed
- Activate
memchr'srustc-dep-of-stdfeature #356
0.26.0
Released 2021/07/26.
Breaking changes
-
Changed
ReadRef::read_bytes_at_untilto accept a range parameter. #326 -
Added
ReadReftype parameter toread::StringTableand types that contain it. String table entries are now only read as required. #326 -
Changed result type of
read::elf::SectionHeader::dataanddata_as_array. #332 -
Moved
pod::WritableBuffertowrite::WritableBuffer. RenamedWritableBuffer::extendtowrite_bytes. Added more provided methods toWritableBuffer. #335 -
Moved
pod::Bytestoread::Bytes. #336 -
Added
is_mips64elparameter toelf::Rela64::r_info/set_r_info. #337
Changed
- Removed
allocdependency when no features are enabled. #336
Added
-
Added
read::pe::PeFilemethods:section_table,data_directory, anddata. #324 -
Added more ELF definitions. #332
-
Added
read::elf::SectionTablemethods for hash tables and symbol version information. #332 -
Added PE RISC-V definitions. #333
-
Added
WritableBufferimplementation forVec. #335
0.25.3
Released 2021/06/12.
Added
- Added
RelocationEncoding::AArch64Call. #322
0.25.2
Released 2021/06/04.
Added
- Added
Architecture::X86_64_X32. #320
0.25.1
Released 2021/06/03.
Changed
-
write: Fix choice of
SHT_RELorSHT_RELAfor most architectures. #318 -
write: Fix relocation encoding for MIPS64EL. #318
0.25.0
Released 2021/06/02.
Breaking changes
-
Added
non_exhaustiveto most public enums. #306 -
MachHeader::parseandMachHeader::load_commandsnow require a header offset. #304 -
Added
ReadRef::read_bytes_at_until. #308 -
PeFile::entry,PeSection::addressandPeSegment::addressnow return a virtual address instead of a RVA. #315
Added
-
Added
pod::from_bytes_mut,pod::slice_from_bytes_mut,pod::bytes_of_mut, andpod::bytes_of_slice_mut. #296 #297 -
Added
Object::pdb_info. #298 -
Added
read::macho::DyldCache, other associated definitions, and support for these in the examples. #308 -
Derive more traits for enums. #311
-
Added
Object::relative_address_base. #315