| # `object` Change Log |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.36.3 |
| |
| Released 2024/08/07. |
| |
| ### Added |
| |
| * Added `Iterator` implementations for various types in the low level read API. |
| [#713](https://github.com/gimli-rs/object/pull/713) |
| [#714](https://github.com/gimli-rs/object/pull/714) |
| |
| ### Changed |
| |
| * Changed `from_bytes` constructors for integer endian types to `const`. |
| [#712](https://github.com/gimli-rs/object/pull/712) |
| |
| * Changed `next` methods in the low level read API to fuse after returning an |
| error. |
| [#714](https://github.com/gimli-rs/object/pull/714) |
| |
| * Updated `wasmparser` dependency. |
| [#715](https://github.com/gimli-rs/object/pull/715) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.36.2 |
| |
| Released 2024/07/24. |
| |
| ### Changed |
| |
| * Improved writing of GNU symbol versioning in `build::elf::Builder`. |
| [#705](https://github.com/gimli-rs/object/pull/705) |
| |
| * Fixed alignment of `SHT_HASH`/`SHT_GNU_verdef`/`SHT_GNU_verneed` sections in |
| `write::elf::Writer`. |
| [#706](https://github.com/gimli-rs/object/pull/706) |
| |
| * Fixed writing of GNU hash for absolute symbols in `build::elf::Builder`. |
| [#707](https://github.com/gimli-rs/object/pull/707) |
| |
| * Fixed writing of empty ELF string table in `write::Object`. |
| [#710](https://github.com/gimli-rs/object/pull/710) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.36.1 |
| |
| Released 2024/06/29. |
| |
| ### Added |
| |
| * Added `SectionKind::DebugString`. |
| [#694](https://github.com/gimli-rs/object/pull/694) |
| |
| * Added `Architecture::Sparc` and `Architecture::Sparc32Plus`. |
| [#699](https://github.com/gimli-rs/object/pull/699) |
| [#700](https://github.com/gimli-rs/object/pull/700) |
| |
| * Added more RISC-V ELF relocation constants. |
| [#701](https://github.com/gimli-rs/object/pull/701) |
| |
| ### Changed |
| |
| * Changed `read::ElfFile::imports` to return the library for versioned symbols. |
| [#693](https://github.com/gimli-rs/object/pull/693) |
| |
| * Changed `read::MachOFile` to support Go's debug section compression. |
| [#697](https://github.com/gimli-rs/object/pull/697) |
| |
| * Reversed the order of Mach-O relocations emitted by `write::Object`. |
| [#702](https://github.com/gimli-rs/object/pull/702) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.36.0 |
| |
| Released 2024/05/26. |
| |
| ### Breaking changes |
| |
| * Deleted `data` and `align` parameters for `write::Object::add_subsection`. |
| Use `add_symbol_data` or `add_symbol_bss` instead. |
| [#676](https://github.com/gimli-rs/object/pull/676) |
| |
| * Changed methods in the lower level read API to accept or return `SectionIndex` |
| or `SymbolIndex` instead of `usize`. |
| [#677](https://github.com/gimli-rs/object/pull/677) |
| [#684](https://github.com/gimli-rs/object/pull/684) |
| [#685](https://github.com/gimli-rs/object/pull/685) |
| |
| * Deleted `SymbolKind::Null`. Changed `read::Object::sections` and `read::Object::symbols` |
| to no longer return null entries. This affects ELF and XCOFF. |
| [#679](https://github.com/gimli-rs/object/pull/679) |
| |
| * Changed `read::ObjectMap::object` to return `ObjectMapFile`. This handles |
| splitting the object file name into path and member. |
| [#686](https://github.com/gimli-rs/object/pull/686) |
| |
| * Changed `read::coff::ImageSymbol::address` to only return an address for |
| symbols that have an address. |
| [#689](https://github.com/gimli-rs/object/pull/689) |
| |
| ### Added |
| |
| * Added `pod::slice_from_all_bytes` and `pod::slice_from_all_bytes_mut`. |
| [#672](https://github.com/gimli-rs/object/pull/672) |
| |
| * Added `write::Object::set_subsections_via_symbols`. |
| Changed `write::Object::add_symbol_data` and `write::Object::add_symbol_bss` |
| to correctly handle zero size symbols when subsections are enabled. |
| [#676](https://github.com/gimli-rs/object/pull/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](https://github.com/gimli-rs/object/pull/678) |
| |
| * Added methods in the lower level read API to return a `SectionIndex` or `SymbolIndex`. |
| [#684](https://github.com/gimli-rs/object/pull/684) |
| [#689](https://github.com/gimli-rs/object/pull/689) |
| |
| * Implemented `Display` for `read::SymbolIndex` and `read::SectionIndex`. |
| [#684](https://github.com/gimli-rs/object/pull/684) |
| |
| * Added `is_common`, `is_absolute`, `is_local`, and `is_weak` to `read::elf::Sym`. |
| [#685](https://github.com/gimli-rs/object/pull/685) |
| |
| ### Changed |
| |
| * Changed `read::ArchiveFile` to skip the `<ECSYMBOLS>` member. |
| [#669](https://github.com/gimli-rs/object/pull/669) |
| |
| * Fixed handling of segment data in the dyld shared cache. |
| [#673](https://github.com/gimli-rs/object/pull/673) |
| |
| * Changed `read::RelocationMap` to handle Mach-O section relocations. |
| [#675](https://github.com/gimli-rs/object/pull/675) |
| |
| * Changed `read::elf::RelocationSections` to ignore relocations that apply to relocations. |
| [#680](https://github.com/gimli-rs/object/pull/680) |
| |
| * Removed a lifetime bound from an argument in `read::elf::SectionTable::section_name`, |
| `read::elf::SymbolTable::symbol_name`, and `read::elf::SymbolTable::symbol_section`. |
| [#681](https://github.com/gimli-rs/object/pull/681) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.35.0 |
| |
| Released 2024/04/10. |
| |
| ### Breaking changes |
| |
| * Moved the `'file` lifetime parameter from `read::Object` to its associated types. |
| [#655](https://github.com/gimli-rs/object/pull/655) |
| |
| ### Added |
| |
| * Added support more section kinds in `build::elf`. |
| [#650](https://github.com/gimli-rs/object/pull/650) |
| |
| * Added thin archive support to `read::ArchiveFile`. |
| [#651](https://github.com/gimli-rs/object/pull/651) |
| |
| * Added `read::ReadCacheOps` and changed `read::ReadCache` bound from `Read + Seek` to `ReadCacheOps`. |
| [#652](https://github.com/gimli-rs/object/pull/652) |
| |
| * Added `read::ObjectSection::relocation_map` |
| [#654](https://github.com/gimli-rs/object/pull/654) |
| |
| * Added `read::ArchiveFile::symbols`. |
| [#658](https://github.com/gimli-rs/object/pull/658) |
| |
| * Added `BinaryFormat::native_object`. |
| [#661](https://github.com/gimli-rs/object/pull/661) |
| |
| ### Changed |
| |
| * The minimum supported rust version for the `read` feature and its dependencies |
| has changed to 1.65.0. |
| [#655](https://github.com/gimli-rs/object/pull/655) |
| |
| * Fixed `sh_offset` handling for `SHT_NOBITS` sections in `build::elf`. |
| [#645](https://github.com/gimli-rs/object/pull/645) |
| |
| * Fixed handling of ELF files with dynamic symbols but no dynamic strings. |
| [#646](https://github.com/gimli-rs/object/pull/646) |
| |
| * Fixed potential panics in `read::WasmFile` due to invalid function indices. |
| [#649](https://github.com/gimli-rs/object/pull/649) |
| |
| * Fixed handling of Wasm components in `read::WasmFile`. |
| [#649](https://github.com/gimli-rs/object/pull/649) |
| |
| * Fixed `sh_entsize` for 32-bit hash sections in `write::elf`. |
| [#650](https://github.com/gimli-rs/object/pull/650) |
| |
| * Fixed `sh_size` for attribute sections in `build::elf`. |
| [#650](https://github.com/gimli-rs/object/pull/650) |
| |
| * Fixed `sh_info` for `SHT_DYNSYM` sections in `build::elf`. |
| [#650](https://github.com/gimli-rs/object/pull/650) |
| |
| * Fixed handling of dynamic relocations with invalid `sh_link` in `build::elf`. |
| [#650](https://github.com/gimli-rs/object/pull/650) |
| |
| * Fixed parsing of member names containing '/' in `read::ArchiveFile`. |
| [#657](https://github.com/gimli-rs/object/pull/657) |
| |
| * Fixed handling of load segment alignments in `build::elf::Builder::read`. |
| [#659](https://github.com/gimli-rs/object/pull/659) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.34.0 |
| |
| Released 2024/03/11. |
| |
| ### Breaking changes |
| |
| * Replaced `macho::DyldSubCacheInfo` with `macho::DyldSubCacheEntryV1`. |
| Changed the return type of `macho::DyldCacheHeader::subcaches`. |
| [#642](https://github.com/gimli-rs/object/pull/642) |
| |
| ### Changed |
| |
| * Added `macho::DyldSubCacheEntryV2` and changed `read::macho::DyldCache` |
| to handle both versions. This is needed for macOS 13 and above. |
| [#642](https://github.com/gimli-rs/object/pull/642) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.33.0 |
| |
| Released 2024/03/05. |
| |
| ### Breaking changes |
| |
| * Deleted file format variants in `RelocationKind`. Replaced their usage |
| with `read::Relocation::flags` and `write::Relocation::flags`. |
| [#585](https://github.com/gimli-rs/object/pull/585) |
| |
| * Replaced `kind`, `encoding` and `size` fields in `write::Relocation` |
| with `RelocationFlags::Generic` in the `flags` field. |
| [#585](https://github.com/gimli-rs/object/pull/585) |
| |
| * Replaced `macho::FatHeader::parse`, `macho::FatHeader::parse_arch32`, |
| and `macho::FatHeader::parse_arch64` with `read::macho::MachOFatFile`, |
| `read::macho::MachOFatFile32` and `read::macho::MachOFatFile64`. |
| [#623](https://github.com/gimli-rs/object/pull/623) |
| |
| ### Added |
| |
| * Added `macho::PLATFORM_XROS` and `macho::PLATFORM_XROSSIMULATOR`. |
| [#626](https://github.com/gimli-rs/object/pull/626) |
| |
| * Added `build::elf::Builder` and associated types. |
| Extended `write::elf::Writer` to support this. |
| [#618](https://github.com/gimli-rs/object/pull/618) |
| |
| ### Changed |
| |
| * Changed the lifetime to `'data` for the return value of `ObjectSection::name`, |
| `ObjectSection::name_bytes`, `ObjectComdat::name`, `ObjectComdat::name_bytes`. |
| [#620](https://github.com/gimli-rs/object/pull/620) |
| [#622](https://github.com/gimli-rs/object/pull/622) |
| |
| * Checked that sizes are smaller than the file length in `read::ReadCache`. |
| [#630](https://github.com/gimli-rs/object/pull/630) |
| |
| * Used `Vec::try_reserve_exact` for large allocations. |
| [#632](https://github.com/gimli-rs/object/pull/632) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.32.2 |
| |
| Released 2023/12/24. |
| |
| ### Added |
| |
| * Added ELF relocations for LoongArch ABI v2.20. |
| [#578](https://github.com/gimli-rs/object/pull/578) |
| [#589](https://github.com/gimli-rs/object/pull/589) |
| |
| * Added ELF support for SHARC. |
| [#593](https://github.com/gimli-rs/object/pull/593) |
| |
| * Added `write::coff::Writer`. |
| [#595](https://github.com/gimli-rs/object/pull/595) |
| |
| * Added `SubArchitecture::Arm64EC` support for PE/COFF. |
| [#607](https://github.com/gimli-rs/object/pull/607) |
| |
| * Added `SubArchitecture::Arm64E` support for Mach-O. |
| [#614](https://github.com/gimli-rs/object/pull/614) |
| |
| * Added `read::Object::symbol_by_name` and `read::Object::symbol_by_name_bytes`. |
| [#602](https://github.com/gimli-rs/object/pull/602) |
| |
| * Added more functions to the low level API in `read::xcoff`. |
| [#608](https://github.com/gimli-rs/object/pull/608) |
| |
| * Added more functions to the low level API in `read::macho`. |
| [#584](https://github.com/gimli-rs/object/pull/584) |
| |
| ### Changed |
| |
| * Fixes for AArch64 relocation addends for Mach-O. |
| [#581](https://github.com/gimli-rs/object/pull/581) |
| |
| * Changes to `write::Object` output for Mach-O, including the addition of a `LC_DYSYMTAB` load command. |
| [#584](https://github.com/gimli-rs/object/pull/584) |
| |
| * Changed `write::Object` to always use `R_X86_64_PLT32` for x86-64 branches for ELF. |
| [#590](https://github.com/gimli-rs/object/pull/590) |
| |
| * Fixed `read::ObjectSymbol::kind` for undefined section symbols for COFF. |
| [#592](https://github.com/gimli-rs/object/pull/592) |
| |
| * Fixed `write::Object` to accept undefined section symbols for COFF. |
| [#594](https://github.com/gimli-rs/object/pull/594) |
| |
| * Improved parsing of auxiliary section symbols for COFF. |
| [#603](https://github.com/gimli-rs/object/pull/603) |
| |
| * Improved the selection of symbols for `read::Object::symbol_map`. |
| This includes changes to `read::Symbol::is_definition`. |
| [#601](https://github.com/gimli-rs/object/pull/601) |
| [#606](https://github.com/gimli-rs/object/pull/606) |
| |
| * Changed `read::ObjectSymbol::kind` for ELF `STT_NOTYPE` symbols to `SymbolKind::Unknown`. |
| [#604](https://github.com/gimli-rs/object/pull/604) |
| |
| * Changed `read::ObjectSymbol::scope` for XCOFF `C_HIDEXT` symbols to `SymbolScope::Compilation`. |
| [#605](https://github.com/gimli-rs/object/pull/605) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.32.1 |
| |
| Released 2023/09/03. |
| |
| ### Added |
| |
| * Added `write::Object::set_macho_cpu_subtype`. |
| [#574](https://github.com/gimli-rs/object/pull/574) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.32.0 |
| |
| Released 2023/08/12. |
| |
| ### Breaking changes |
| |
| * Changed `read::elf::Note::name` to exclude all trailing null bytes. |
| [#549](https://github.com/gimli-rs/object/pull/549) |
| |
| * Updated dependencies, and changed some optional dependencies to use the `dep:` |
| feature syntax. |
| [#558](https://github.com/gimli-rs/object/pull/558) |
| [#569](https://github.com/gimli-rs/object/pull/569) |
| |
| ### Changed |
| |
| * The minimum supported rust version for the `read` feature 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 `static` to `const`. |
| [#549](https://github.com/gimli-rs/object/pull/549) |
| |
| * Fixed Mach-O section alignment padding in `write::Object`. |
| [#553](https://github.com/gimli-rs/object/pull/553) |
| |
| * Changed `read::File` to an enum. |
| [#564](https://github.com/gimli-rs/object/pull/564) |
| |
| ### Added |
| |
| * Added `elf::ELF_NOTE_GO`, `elf::NT_GO_BUILD_ID`, and `read::elf::Note::name_bytes`. |
| [#549](https://github.com/gimli-rs/object/pull/549) |
| |
| * Added `read::FileKind::CoffImport` and `read::coff::ImportFile`. |
| [#555](https://github.com/gimli-rs/object/pull/555) |
| [#556](https://github.com/gimli-rs/object/pull/556) |
| |
| * Added `Architecture::Csky` and basic ELF support for C-SKY. |
| [#561](https://github.com/gimli-rs/object/pull/561) |
| |
| * Added `read::elf::ElfSymbol::raw_symbol`. |
| [#562](https://github.com/gimli-rs/object/pull/562) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.30.4 |
| |
| Released 2023/06/05. |
| |
| ### Changed |
| |
| * Fixed Mach-O section alignment padding in `write::Object`. |
| [#553](https://github.com/gimli-rs/object/pull/553) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.31.1 |
| |
| Released 2023/05/09. |
| |
| ### Changed |
| |
| * Fixed address for global symbols in `read::wasm`. |
| [#539](https://github.com/gimli-rs/object/pull/539) |
| |
| * Fixed writing of alignment for empty ELF sections. |
| [#540](https://github.com/gimli-rs/object/pull/540) |
| |
| ### Added |
| |
| * Added more `elf::GNU_PROPERTY_*` definitions. |
| Added `read::elf::note::gnu_properties`, `write::StandardSection::GnuProperty`, |
| and `write::Object::add_elf_gnu_property_u32`. |
| [#537](https://github.com/gimli-rs/object/pull/537) |
| [#541](https://github.com/gimli-rs/object/pull/541) |
| |
| * Added Mach-O support for `Architecture::Aarch64_Ilp32`. |
| [#542](https://github.com/gimli-rs/object/pull/542) |
| [#545](https://github.com/gimli-rs/object/pull/545) |
| |
| * Added `Architecture::Wasm64`. |
| [#543](https://github.com/gimli-rs/object/pull/543) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.31.0 |
| |
| Released 2023/04/14. |
| |
| ### Breaking changes |
| |
| * Added a type parameter on existing COFF types to support reading COFF `/bigobj` files. |
| [#502](https://github.com/gimli-rs/object/pull/502) |
| |
| * Changed PE symbols to support COFF `/bigobj`. |
| Changed `pe::IMAGE_SYM_*` to `i32`. |
| Changed `pe::ImageSymbolEx::section_number` to `I32Bytes`. |
| Deleted a number of methods from `pe::ImageSymbol`. |
| Use the `read::pe::ImageSymbol` trait instead. |
| [#502](https://github.com/gimli-rs/object/pull/502) |
| |
| * Changed `pe::Guid` to a single array, and added methods to read the individual fields. |
| [#502](https://github.com/gimli-rs/object/pull/502) |
| |
| * Added `Symbol` type parameter to `SymbolFlags` to support `SymbolFlags::Xcoff`. |
| [#527](https://github.com/gimli-rs/object/pull/527) |
| |
| ### Changed |
| |
| * Fix alignment when reserving zero length sections in `write::elf::Write::reserve`. |
| [#514](https://github.com/gimli-rs/object/pull/514) |
| |
| * Validate command size in `read::macho::LoadCommandIterator`. |
| [#516](https://github.com/gimli-rs/object/pull/516) |
| |
| * Handle invalid alignment in `read::macho::MachoSection::align`. |
| [#516](https://github.com/gimli-rs/object/pull/516) |
| |
| * Accept `SymbolKind::Unknown` in `write::Object::macho_write`. |
| [#519](https://github.com/gimli-rs/object/pull/519) |
| |
| * Updated `wasmparser` dependency. |
| [#528](https://github.com/gimli-rs/object/pull/528) |
| |
| ### Added |
| |
| * Added more `elf::EF_RISCV_*` definitions. |
| [#507](https://github.com/gimli-rs/object/pull/507) |
| |
| * Added `read::elf::SectionHeader::gnu_attributes` and associated types. |
| Added `.gnu.attributes` support to `write::elf::Writer`. |
| [#509](https://github.com/gimli-rs/object/pull/509) |
| [#525](https://github.com/gimli-rs/object/pull/525) |
| |
| * Added `write::Object::set_macho_build_version`. |
| [#524](https://github.com/gimli-rs/object/pull/524) |
| |
| * Added `read::FileKind::Xcoff32`, `read::FileKind::Xcoff64`, `read::XcoffFile`, |
| and associated types. |
| Added XCOFF support to `write::Object`. |
| [#469](https://github.com/gimli-rs/object/pull/469) |
| [#476](https://github.com/gimli-rs/object/pull/476) |
| [#477](https://github.com/gimli-rs/object/pull/477) |
| [#482](https://github.com/gimli-rs/object/pull/482) |
| [#484](https://github.com/gimli-rs/object/pull/484) |
| [#486](https://github.com/gimli-rs/object/pull/486) |
| [#527](https://github.com/gimli-rs/object/pull/527) |
| |
| * Added `read::FileKind::CoffBig`, `read::pe::CoffHeader` and `read::pe::ImageSymbol`. |
| [#502](https://github.com/gimli-rs/object/pull/502) |
| |
| * Added `elf::PT_GNU_PROPERTY`. |
| [#530](https://github.com/gimli-rs/object/pull/530) |
| |
| * Added `elf::ELFCOMPRESS_ZSTD`, `read::CompressionFormat::Zstandard`, |
| and Zstandard decompression in `read::CompressedData::decompress` using |
| the `ruzstd` crate. |
| [#532](https://github.com/gimli-rs/object/pull/532) |
| |
| * Added `read::elf::NoteIterator::new`. |
| [#533](https://github.com/gimli-rs/object/pull/533) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.30.3 |
| |
| Released 2023/01/23. |
| |
| ### Added |
| |
| * Added `SectionKind::ReadOnlyDataWithRel` for writing. |
| [#504](https://github.com/gimli-rs/object/pull/504) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.30.2 |
| |
| Released 2023/01/11. |
| |
| ### Added |
| |
| * Added more ELF constants for AVR flags and relocations. |
| [#500](https://github.com/gimli-rs/object/pull/500) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.30.1 |
| |
| Released 2023/01/04. |
| |
| ### Changed |
| |
| * Changed `read::ElfSymbol::kind` to handle `STT_NOTYPE` and `STT_GNU_IFUNC`. |
| [#498](https://github.com/gimli-rs/object/pull/498) |
| |
| ### Added |
| |
| * Added `read::CoffSymbol::raw_symbol`. |
| [#494](https://github.com/gimli-rs/object/pull/494) |
| |
| * Added ELF support for Solana Binary Format. |
| [#491](https://github.com/gimli-rs/object/pull/491) |
| |
| * Added ELF support for AArch64 ILP32. |
| [#497](https://github.com/gimli-rs/object/pull/497) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.30.0 |
| |
| Released 2022/11/22. |
| |
| ### Breaking changes |
| |
| * The minimum supported rust version for the `read` feature has changed to 1.52.0. |
| [#458](https://github.com/gimli-rs/object/pull/458) |
| |
| * The minimum supported rust version for the `write` feature has changed to 1.61.0. |
| |
| * Fixed endian handling in `read::elf::SymbolTable::shndx`. |
| [#458](https://github.com/gimli-rs/object/pull/458) |
| |
| * Fixed endian handling in `read::pe::ResourceName`. |
| [#458](https://github.com/gimli-rs/object/pull/458) |
| |
| * Changed definitions for LoongArch ELF header flags. |
| [#483](https://github.com/gimli-rs/object/pull/483) |
| |
| ### Changed |
| |
| * Fixed parsing of multiple debug directory entries in `read::pe::PeFile::pdb_info`. |
| [#451](https://github.com/gimli-rs/object/pull/451) |
| |
| * Changed the section name used when writing COFF stub symbols. |
| [#475](https://github.com/gimli-rs/object/pull/475) |
| |
| ### Added |
| |
| * Added `read::pe::DataDirectories::delay_load_import_table`. |
| [#448](https://github.com/gimli-rs/object/pull/448) |
| |
| * Added `read::macho::LoadCommandData::raw_data`. |
| [#449](https://github.com/gimli-rs/object/pull/449) |
| |
| * Added ELF relocations for LoongArch ps ABI v2. |
| [#450](https://github.com/gimli-rs/object/pull/450) |
| |
| * Added PowerPC support for Mach-O. |
| [#460](https://github.com/gimli-rs/object/pull/460) |
| |
| * Added support for reading the AIX big archive format. |
| [#462](https://github.com/gimli-rs/object/pull/462) |
| [#467](https://github.com/gimli-rs/object/pull/467) |
| [#473](https://github.com/gimli-rs/object/pull/473) |
| |
| * Added support for `RelocationEncoding::AArch64Call` when writing Mach-O files. |
| [#465](https://github.com/gimli-rs/object/pull/465) |
| |
| * Added support for `RelocationKind::Relative` when writing RISC-V ELF files. |
| [#470](https://github.com/gimli-rs/object/pull/470) |
| |
| * Added Xtensa architecture support for ELF. |
| [#481](https://github.com/gimli-rs/object/pull/481) |
| |
| * Added `read::pe::ResourceName::raw_data`. |
| [#487](https://github.com/gimli-rs/object/pull/487) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.29.0 |
| |
| Released 2022/06/22. |
| |
| ### Breaking changes |
| |
| * The `write` feature now has a minimum supported rust version of 1.56.1. |
| [#444](https://github.com/gimli-rs/object/pull/444) |
| |
| * Added `os_abi` and `abi_version` fields to `FileFlags::Elf`. |
| [#438](https://github.com/gimli-rs/object/pull/438) |
| [#441](https://github.com/gimli-rs/object/pull/441) |
| |
| ### Changed |
| |
| * Fixed handling of empty symbol tables in `read::elf::ElfFile::symbol_table` and |
| `read::elf::ElfFile::dynamic_symbol_table`. |
| [#443](https://github.com/gimli-rs/object/pull/443) |
| |
| ### Added |
| |
| * Added more `ELF_OSABI_*` constants. |
| [#439](https://github.com/gimli-rs/object/pull/439) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.28.4 |
| |
| Released 2022/05/09. |
| |
| ### Added |
| |
| * Added `read::pe::DataDirectories::resource_directory`. |
| [#425](https://github.com/gimli-rs/object/pull/425) |
| [#427](https://github.com/gimli-rs/object/pull/427) |
| |
| * Added PE support for more ARM relocations. |
| [#428](https://github.com/gimli-rs/object/pull/428) |
| |
| * Added support for `Architecture::LoongArch64`. |
| [#430](https://github.com/gimli-rs/object/pull/430) |
| [#432](https://github.com/gimli-rs/object/pull/432) |
| |
| * Added `elf::EF_MIPS_ABI` and associated constants. |
| [#433](https://github.com/gimli-rs/object/pull/433) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.28.3 |
| |
| Released 2022/01/19. |
| |
| ### Changed |
| |
| * For the Mach-O support in `write::Object`, accept `RelocationKind::MachO` for all |
| architectures, and accept `RelocationKind::Absolute` for ARM64. |
| [#422](https://github.com/gimli-rs/object/pull/422) |
| |
| ### Added |
| |
| * Added `pe::ImageDataDirectory::file_range`, `read::pe::SectionTable::pe_file_range_at` |
| and `pe::ImageSectionHeader::pe_file_range_at`. |
| [#421](https://github.com/gimli-rs/object/pull/421) |
| |
| * Added `write::Object::add_coff_exports`. |
| [#423](https://github.com/gimli-rs/object/pull/423) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.28.2 |
| |
| Released 2022/01/09. |
| |
| ### Changed |
| |
| * Ignored errors for the Wasm extended name section in `read::WasmFile::parse`. |
| [#408](https://github.com/gimli-rs/object/pull/408) |
| |
| * Ignored errors for the COFF symbol table in `read::PeFile::parse`. |
| [#410](https://github.com/gimli-rs/object/pull/410) |
| |
| * Fixed handling of `SectionFlags::Coff` in `write::Object::coff_write`. |
| [#412](https://github.com/gimli-rs/object/pull/412) |
| |
| ### Added |
| |
| * Added `read::ObjectSegment::flags`. |
| [#416](https://github.com/gimli-rs/object/pull/416) |
| [#418](https://github.com/gimli-rs/object/pull/418) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.28.1 |
| |
| Released 2021/12/12. |
| |
| ### Changed |
| |
| * Fixed `read::elf::SymbolTable::shndx_section`. |
| [#405](https://github.com/gimli-rs/object/pull/405) |
| |
| * Fixed build warnings. |
| [#405](https://github.com/gimli-rs/object/pull/405) |
| [#406](https://github.com/gimli-rs/object/pull/406) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.28.0 |
| |
| Released 2021/12/12. |
| |
| ### Breaking changes |
| |
| * `write_core` feature no longer enables `std` support. Use `write_std` instead. |
| [#400](https://github.com/gimli-rs/object/pull/400) |
| |
| * Multiple changes related to Mach-O split dyld cache support. |
| [#398](https://github.com/gimli-rs/object/pull/398) |
| |
| ### Added |
| |
| * Added `write::pe::Writer::write_file_align`. |
| [#397](https://github.com/gimli-rs/object/pull/397) |
| |
| * Added support for Mach-O split dyld cache. |
| [#398](https://github.com/gimli-rs/object/pull/398) |
| |
| * Added support for `IMAGE_SCN_LNK_NRELOC_OVFL` when reading and writing COFF. |
| [#399](https://github.com/gimli-rs/object/pull/399) |
| |
| * Added `write::elf::Writer::reserve_null_symbol_index`. |
| [#402](https://github.com/gimli-rs/object/pull/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::elf` to use `SectionIndex` instead of `usize` in more places. |
| [#341](https://github.com/gimli-rs/object/pull/341) |
| |
| * Changed some `read::elf` section methods to additionally return the linked section index. |
| [#341](https://github.com/gimli-rs/object/pull/341) |
| |
| * Changed `read::pe::ImageNtHeaders::parse` to return `DataDirectories` instead of a slice. |
| [#357](https://github.com/gimli-rs/object/pull/357) |
| |
| * Deleted `value` parameter for `write:WritableBuffer::resize`. |
| [#369](https://github.com/gimli-rs/object/pull/369) |
| |
| * Changed `write::Object` and `write::Section` to use `Cow` for section data. |
| This added a lifetime parameter, which existing users can set to `'static`. |
| [#370](https://github.com/gimli-rs/object/pull/370) |
| |
| ### Changed |
| |
| * Fixed parsing when PE import directory has zero size. |
| [#341](https://github.com/gimli-rs/object/pull/341) |
| |
| * Fixed parsing when PE import directory has zero for original first thunk. |
| [#385](https://github.com/gimli-rs/object/pull/385) |
| [#387](https://github.com/gimli-rs/object/pull/387) |
| |
| * Fixed parsing when PE export directory has zero number of names. |
| [#353](https://github.com/gimli-rs/object/pull/353) |
| |
| * Fixed parsing when PE export directory has zero number of names and addresses. |
| [#362](https://github.com/gimli-rs/object/pull/362) |
| |
| * Fixed parsing when PE sections are contiguous. |
| [#354](https://github.com/gimli-rs/object/pull/354) |
| |
| * Fixed `std` feature for `indexmap` dependency. |
| [#374](https://github.com/gimli-rs/object/pull/374) |
| |
| * Fixed overflow in COFF section name offset parsing. |
| [#390](https://github.com/gimli-rs/object/pull/390) |
| |
| ### Added |
| |
| * Added `name_bytes` methods to unified `read` traits. |
| [#351](https://github.com/gimli-rs/object/pull/351) |
| |
| * Added `read::Object::kind`. |
| [#352](https://github.com/gimli-rs/object/pull/352) |
| |
| * Added `read::elf::VersionTable` and related helpers. |
| [#341](https://github.com/gimli-rs/object/pull/341) |
| |
| * Added `read::elf::SectionTable::dynamic` and related helpers. |
| [#345](https://github.com/gimli-rs/object/pull/345) |
| |
| * Added `read::coff::SectionTable::max_section_file_offset`. |
| [#344](https://github.com/gimli-rs/object/pull/344) |
| |
| * Added `read::pe::ExportTable` and related helpers. |
| [#349](https://github.com/gimli-rs/object/pull/349) |
| [#353](https://github.com/gimli-rs/object/pull/353) |
| |
| * Added `read::pe::ImportTable` and related helpers. |
| [#357](https://github.com/gimli-rs/object/pull/357) |
| |
| * Added `read::pe::DataDirectories` and related helpers. |
| [#357](https://github.com/gimli-rs/object/pull/357) |
| [#384](https://github.com/gimli-rs/object/pull/384) |
| |
| * Added `read::pe::RichHeaderInfo` and related helpers. |
| [#375](https://github.com/gimli-rs/object/pull/375) |
| [#379](https://github.com/gimli-rs/object/pull/379) |
| |
| * Added `read::pe::RelocationBlocks` and related helpers. |
| [#378](https://github.com/gimli-rs/object/pull/378) |
| |
| * Added `write::elf::Writer`. |
| [#350](https://github.com/gimli-rs/object/pull/350) |
| |
| * Added `write::pe::Writer`. |
| [#382](https://github.com/gimli-rs/object/pull/382) |
| [#388](https://github.com/gimli-rs/object/pull/388) |
| |
| * Added `write::Section::data/data_mut`. |
| [#367](https://github.com/gimli-rs/object/pull/367) |
| |
| * Added `write::Object::write_stream`. |
| [#369](https://github.com/gimli-rs/object/pull/369) |
| |
| * Added MIPSr6 ELF header flag definitions. |
| [#372](https://github.com/gimli-rs/object/pull/372) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.26.2 |
| |
| Released 2021/08/28. |
| |
| ### Added |
| |
| * Added support for 64-bit symbol table names to `read::archive`. |
| [#366](https://github.com/gimli-rs/object/pull/366) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.26.1 |
| |
| Released 2021/08/19. |
| |
| ### Changed |
| |
| * Activate `memchr`'s `rustc-dep-of-std` feature |
| [#356](https://github.com/gimli-rs/object/pull/356) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.26.0 |
| |
| Released 2021/07/26. |
| |
| ### Breaking changes |
| |
| * Changed `ReadRef::read_bytes_at_until` to accept a range parameter. |
| [#326](https://github.com/gimli-rs/object/pull/326) |
| |
| * Added `ReadRef` type parameter to `read::StringTable` and types that |
| contain it. String table entries are now only read as required. |
| [#326](https://github.com/gimli-rs/object/pull/326) |
| |
| * Changed result type of `read::elf::SectionHeader::data` and `data_as_array`. |
| [#332](https://github.com/gimli-rs/object/pull/332) |
| |
| * Moved `pod::WritableBuffer` to `write::WritableBuffer`. |
| Renamed `WritableBuffer::extend` to `write_bytes`. |
| Added more provided methods to `WritableBuffer`. |
| [#335](https://github.com/gimli-rs/object/pull/335) |
| |
| * Moved `pod::Bytes` to `read::Bytes`. |
| [#336](https://github.com/gimli-rs/object/pull/336) |
| |
| * Added `is_mips64el` parameter to `elf::Rela64::r_info/set_r_info`. |
| [#337](https://github.com/gimli-rs/object/pull/337) |
| |
| ### Changed |
| |
| * Removed `alloc` dependency when no features are enabled. |
| [#336](https://github.com/gimli-rs/object/pull/336) |
| |
| ### Added |
| |
| * Added `read::pe::PeFile` methods: `section_table`, `data_directory`, and `data`. |
| [#324](https://github.com/gimli-rs/object/pull/324) |
| |
| * Added more ELF definitions. |
| [#332](https://github.com/gimli-rs/object/pull/332) |
| |
| * Added `read::elf::SectionTable` methods for hash tables and symbol version |
| information. |
| [#332](https://github.com/gimli-rs/object/pull/332) |
| |
| * Added PE RISC-V definitions. |
| [#333](https://github.com/gimli-rs/object/pull/333) |
| |
| * Added `WritableBuffer` implementation for `Vec`. |
| [#335](https://github.com/gimli-rs/object/pull/335) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.25.3 |
| |
| Released 2021/06/12. |
| |
| ### Added |
| |
| * Added `RelocationEncoding::AArch64Call`. |
| [#322](https://github.com/gimli-rs/object/pull/322) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.25.2 |
| |
| Released 2021/06/04. |
| |
| ### Added |
| |
| * Added `Architecture::X86_64_X32`. |
| [#320](https://github.com/gimli-rs/object/pull/320) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.25.1 |
| |
| Released 2021/06/03. |
| |
| ### Changed |
| |
| * write: Fix choice of `SHT_REL` or `SHT_RELA` for most architectures. |
| [#318](https://github.com/gimli-rs/object/pull/318) |
| |
| * write: Fix relocation encoding for MIPS64EL. |
| [#318](https://github.com/gimli-rs/object/pull/318) |
| |
| -------------------------------------------------------------------------------- |
| |
| ## 0.25.0 |
| |
| Released 2021/06/02. |
| |
| ### Breaking changes |
| |
| * Added `non_exhaustive` to most public enums. |
| [#306](https://github.com/gimli-rs/object/pull/306) |
| |
| * `MachHeader::parse` and `MachHeader::load_commands` now require a header offset. |
| [#304](https://github.com/gimli-rs/object/pull/304) |
| |
| * Added `ReadRef::read_bytes_at_until`. |
| [#308](https://github.com/gimli-rs/object/pull/308) |
| |
| * `PeFile::entry`, `PeSection::address` and `PeSegment::address` now return a |
| virtual address instead of a RVA. |
| [#315](https://github.com/gimli-rs/object/pull/315) |
| |
| ### Added |
| |
| * Added `pod::from_bytes_mut`, `pod::slice_from_bytes_mut`, `pod::bytes_of_mut`, |
| and `pod::bytes_of_slice_mut`. |
| [#296](https://github.com/gimli-rs/object/pull/296) |
| [#297](https://github.com/gimli-rs/object/pull/297) |
| |
| * Added `Object::pdb_info`. |
| [#298](https://github.com/gimli-rs/object/pull/298) |
| |
| * Added `read::macho::DyldCache`, other associated definitions, |
| and support for these in the examples. |
| [#308](https://github.com/gimli-rs/object/pull/308) |
| |
| * Added more architecture support. |
| [#303](https://github.com/gimli-rs/object/pull/303) |
| [#309](https://github.com/gimli-rs/object/pull/309) |
| |
| * Derive more traits for enums. |
| [#311](https://github.com/gimli-rs/object/pull/311) |
| |
| * Added `Object::relative_address_base`. |
| [#315](https://github.com/gimli-rs/object/pull/315) |
| |
| ### Changed |
| |
| * Improved performance for string parsing. |
| [#302](https://github.com/gimli-rs/object/pull/302) |
| |
| * `objdump` example allows selecting container members. |
| [#308](https://github.com/gimli-rs/object/pull/308) |