object Change Log


0.30.3

Released 2023/01/23.

Added

  • Added SectionKind::ReadOnlyDataWithRel for 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::kind to handle STT_NOTYPE and STT_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 read feature has changed to 1.52.0. #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

  • 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::AArch64Call when writing Mach-O files. #465

  • Added support for RelocationKind::Relative when 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 write feature now has a minimum supported rust version of 1.56.1. #444

  • Added os_abi and abi_version fields to FileFlags::Elf. #438 #441

Changed

  • Fixed handling of empty symbol tables in read::elf::ElfFile::symbol_table and read::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 support for Architecture::LoongArch64. #430 #432

  • Added elf::EF_MIPS_ABI and associated constants. #433


0.28.3

Released 2022/01/19.

Changed

  • For the Mach-O support in write::Object, accept RelocationKind::MachO for all architecures, and accept RelocationKind::Absolute for ARM64. #422

Added

  • Added pe::ImageDataDirectory::file_range, read::pe::SectionTable::pe_file_range_at and pe::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::Coff in write::Object::coff_write. #412

Added

  • Added read::ObjectSegment::flags. #416 #418

0.28.1

Released 2021/12/12.

Changed

  • Fixed read::elf::SymbolTable::shndx_section. #405

  • Fixed build warnings. #405 #406


0.28.0

Released 2021/12/12.

Breaking changes

  • write_core feature no longer enables std support. Use write_std instead. #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_OVFL when 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::elf to use SectionIndex instead of usize in more places. #341

  • Changed some read::elf section methods to additionally return the linked section index. #341

  • Changed read::pe::ImageNtHeaders::parse to return DataDirectories instead of a slice. #357

  • Deleted value parameter for write:WritableBuffer::resize. #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

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 std feature for indexmap dependency. #374

  • Fixed overflow in COFF section name offset parsing. #390

Added

  • Added name_bytes methods to unified read traits. #351

  • Added read::Object::kind. #352

  • Added read::elf::VersionTable and related helpers. #341

  • Added read::elf::SectionTable::dynamic and related helpers. #345

  • Added read::coff::SectionTable::max_section_file_offset. #344

  • Added read::pe::ExportTable and related helpers. #349 #353

  • Added read::pe::ImportTable and related helpers. #357

  • Added read::pe::DataDirectories and related helpers. #357 #384

  • Added read::pe::RichHeaderInfo and related helpers. #375 #379

  • Added read::pe::RelocationBlocks and related helpers. #378

  • Added write::elf::Writer. #350

  • Added write::pe::Writer. #382 #388

  • 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's rustc-dep-of-std feature #356

0.26.0

Released 2021/07/26.

Breaking changes

  • Changed ReadRef::read_bytes_at_until to accept a range parameter. #326

  • Added ReadRef type parameter to read::StringTable and types that contain it. String table entries are now only read as required. #326

  • Changed result type of read::elf::SectionHeader::data and data_as_array. #332

  • Moved pod::WritableBuffer to write::WritableBuffer. Renamed WritableBuffer::extend to write_bytes. Added more provided methods to WritableBuffer. #335

  • Moved pod::Bytes to read::Bytes. #336

  • Added is_mips64el parameter to elf::Rela64::r_info/set_r_info. #337

Changed

  • Removed alloc dependency when no features are enabled. #336

Added

  • Added read::pe::PeFile methods: section_table, data_directory, and data. #324

  • Added more ELF definitions. #332

  • Added read::elf::SectionTable methods for hash tables and symbol version information. #332

  • Added PE RISC-V definitions. #333

  • Added WritableBuffer implementation for Vec. #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_REL or SHT_RELA for most architectures. #318

  • write: Fix relocation encoding for MIPS64EL. #318


0.25.0

Released 2021/06/02.

Breaking changes

  • Added non_exhaustive to most public enums. #306

  • MachHeader::parse and MachHeader::load_commands now require a header offset. #304

  • Added ReadRef::read_bytes_at_until. #308

  • PeFile::entry, PeSection::address and PeSegment::address now return a virtual address instead of a RVA. #315

Added

  • Added pod::from_bytes_mut, pod::slice_from_bytes_mut, pod::bytes_of_mut, and pod::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

  • Added more architecture support. #303 #309

  • Derive more traits for enums. #311

  • Added Object::relative_address_base. #315

Changed

  • Improved performance for string parsing. #302

  • objdump example allows selecting container members. #308