Released 2024/06/29.
-
Added
SectionKind::DebugString
. #694 -
Added
Architecture::Sparc
andArchitecture::Sparc32Plus
. #699 #700 -
Added more RISC-V ELF relocation constants. #701
-
Changed
read::ElfFile::imports
to return the library for versioned symbols. #693 -
Changed
read::MachOFile
to support Go's debug section compression. #697 -
Reversed the order of Mach-O relocations emitted by
write::Object
. #702
Released 2024/05/26.
-
Deleted
data
andalign
parameters forwrite::Object::add_subsection
. Useadd_symbol_data
oradd_symbol_bss
instead. #676 -
Changed methods in the lower level read API to accept or return
SectionIndex
orSymbolIndex
instead ofusize
. #677 #684 #685 -
Deleted
SymbolKind::Null
. Changedread::Object::sections
andread::Object::symbols
to no longer return null entries. This affects ELF and XCOFF. #679 -
Changed
read::ObjectMap::object
to returnObjectMapFile
. This handles splitting the object file name into path and member. #686 -
Changed
read::coff::ImageSymbol::address
to only return an address for symbols that have an address. #689
-
Added
pod::slice_from_all_bytes
andpod::slice_from_all_bytes_mut
. #672 -
Added
write::Object::set_subsections_via_symbols
. Changedwrite::Object::add_symbol_data
andwrite::Object::add_symbol_bss
to 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
SectionIndex
orSymbolIndex
. #684 #689 -
Implemented
Display
forread::SymbolIndex
andread::SectionIndex
. #684 -
Added
is_common
,is_absolute
,is_local
, andis_weak
toread::elf::Sym
. #685
-
Changed
read::ArchiveFile
to skip the<ECSYMBOLS>
member. #669 -
Fixed handling of segment data in the dyld shared cache. #673
-
Changed
read::RelocationMap
to handle Mach-O section relocations. #675 -
Changed
read::elf::RelocationSections
to 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
Released 2024/04/10.
- Moved the
'file
lifetime parameter fromread::Object
to its associated types. #655
-
Added support more section kinds in
build::elf
. #650 -
Added thin archive support to
read::ArchiveFile
. #651 -
Added
read::ReadCacheOps
and changedread::ReadCache
bound fromRead + Seek
toReadCacheOps
. #652 -
Added
read::ObjectSection::relocation_map
#654 -
Added
read::ArchiveFile::symbols
. #658 -
Added
BinaryFormat::native_object
. #661
-
The minimum supported rust version for the
read
feature and its dependencies has changed to 1.65.0. #655 -
Fixed
sh_offset
handling forSHT_NOBITS
sections inbuild::elf
. #645 -
Fixed handling of ELF files with dynamic symbols but no dynamic strings. #646
-
Fixed potential panics in
read::WasmFile
due to invalid function indices. #649 -
Fixed handling of Wasm components in
read::WasmFile
. #649 -
Fixed
sh_entsize
for 32-bit hash sections inwrite::elf
. #650 -
Fixed
sh_size
for attribute sections inbuild::elf
. #650 -
Fixed
sh_info
forSHT_DYNSYM
sections inbuild::elf
. #650 -
Fixed handling of dynamic relocations with invalid
sh_link
inbuild::elf
. #650 -
Fixed parsing of member names containing '/' in
read::ArchiveFile
. #657 -
Fixed handling of load segment alignments in
build::elf::Builder::read
. #659
Released 2024/03/11.
- Replaced
macho::DyldSubCacheInfo
withmacho::DyldSubCacheEntryV1
. Changed the return type ofmacho::DyldCacheHeader::subcaches
. #642
- Added
macho::DyldSubCacheEntryV2
and changedread::macho::DyldCache
to handle both versions. This is needed for macOS 13 and above. #642
Released 2024/03/05.
-
Deleted file format variants in
RelocationKind
. Replaced their usage withread::Relocation::flags
andwrite::Relocation::flags
. #585 -
Replaced
kind
,encoding
andsize
fields inwrite::Relocation
withRelocationFlags::Generic
in theflags
field. #585 -
Replaced
macho::FatHeader::parse
,macho::FatHeader::parse_arch32
, andmacho::FatHeader::parse_arch64
withread::macho::MachOFatFile
,read::macho::MachOFatFile32
andread::macho::MachOFatFile64
. #623
-
Added
macho::PLATFORM_XROS
andmacho::PLATFORM_XROSSIMULATOR
. #626 -
Added
build::elf::Builder
and associated types. Extendedwrite::elf::Writer
to support this. #618
-
Changed the lifetime to
'data
for 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_exact
for large allocations. #632
Released 2023/12/24.
-
Added ELF support for SHARC. #593
-
Added
write::coff::Writer
. #595 -
Added
SubArchitecture::Arm64EC
support for PE/COFF. #607 -
Added
SubArchitecture::Arm64E
support for Mach-O. #614 -
Added
read::Object::symbol_by_name
andread::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
-
Fixes for AArch64 relocation addends for Mach-O. #581
-
Changes to
write::Object
output for Mach-O, including the addition of aLC_DYSYMTAB
load command. #584 -
Changed
write::Object
to always useR_X86_64_PLT32
for x86-64 branches for ELF. #590 -
Fixed
read::ObjectSymbol::kind
for undefined section symbols for COFF. #592 -
Fixed
write::Object
to 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::kind
for ELFSTT_NOTYPE
symbols toSymbolKind::Unknown
. #604 -
Changed
read::ObjectSymbol::scope
for XCOFFC_HIDEXT
symbols toSymbolScope::Compilation
. #605
Released 2023/09/03.
- Added
write::Object::set_macho_cpu_subtype
. #574
Released 2023/08/12.
-
Changed
read::elf::Note::name
to exclude all trailing null bytes. #549 -
Updated dependencies, and changed some optional dependencies to use the
dep:
feature syntax. #558 #569
-
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
toconst
. #549 -
Fixed Mach-O section alignment padding in
write::Object
. #553 -
Changed
read::File
to an enum. #564
-
Added
elf::ELF_NOTE_GO
,elf::NT_GO_BUILD_ID
, andread::elf::Note::name_bytes
. #549 -
Added
read::FileKind::CoffImport
andread::coff::ImportFile
. #555 #556 -
Added
Architecture::Csky
and basic ELF support for C-SKY. #561 -
Added
read::elf::ElfSymbol::raw_symbol
. #562
Released 2023/06/05.
- Fixed Mach-O section alignment padding in
write::Object
. #553
Released 2023/05/09.
-
Fixed address for global symbols in
read::wasm
. #539 -
Fixed writing of alignment for empty ELF sections. #540
-
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
Released 2023/04/14.
-
Added a type parameter on existing COFF types to support reading COFF
/bigobj
files. #502 -
Changed PE symbols to support COFF
/bigobj
. Changedpe::IMAGE_SYM_*
toi32
. Changedpe::ImageSymbolEx::section_number
toI32Bytes
. Deleted a number of methods frompe::ImageSymbol
. Use theread::pe::ImageSymbol
trait instead. #502 -
Changed
pe::Guid
to a single array, and added methods to read the individual fields. #502 -
Added
Symbol
type parameter toSymbolFlags
to supportSymbolFlags::Xcoff
. #527
-
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::Unknown
inwrite::Object::macho_write
. #519 -
Updated
wasmparser
dependency. #528
-
Added more
elf::EF_RISCV_*
definitions. #507 -
Added
read::elf::SectionHeader::gnu_attributes
and associated types. Added.gnu.attributes
support 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::CoffHeader
andread::pe::ImageSymbol
. #502 -
Added
elf::PT_GNU_PROPERTY
. #530 -
Added
elf::ELFCOMPRESS_ZSTD
,read::CompressionFormat::Zstandard
, and Zstandard decompression inread::CompressedData::decompress
using theruzstd
crate. #532 -
Added
read::elf::NoteIterator::new
. #533
Released 2023/01/23.
- Added
SectionKind::ReadOnlyDataWithRel
for writing. #504
Released 2023/01/11.
- Added more ELF constants for AVR flags and relocations. #500
Released 2023/01/04.
- Changed
read::ElfSymbol::kind
to handleSTT_NOTYPE
andSTT_GNU_IFUNC
. #498
-
Added
read::CoffSymbol::raw_symbol
. #494 -
Added ELF support for Solana Binary Format. #491
-
Added ELF support for AArch64 ILP32. #497
Released 2022/11/22.
-
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
-
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
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
Released 2022/06/22.
-
The
write
feature now has a minimum supported rust version of 1.56.1. #444 -
Added
os_abi
andabi_version
fields toFileFlags::Elf
. #438 #441
- Fixed handling of empty symbol tables in
read::elf::ElfFile::symbol_table
andread::elf::ElfFile::dynamic_symbol_table
. #443
- Added more
ELF_OSABI_*
constants. #439
Released 2022/05/09.
-
Added
read::pe::DataDirectories::resource_directory
. #425 #427 -
Added PE support for more ARM relocations. #428
-
Added
elf::EF_MIPS_ABI
and associated constants. #433
Released 2022/01/19.
- For the Mach-O support in
write::Object
, acceptRelocationKind::MachO
for all architectures, and acceptRelocationKind::Absolute
for ARM64. #422
-
Added
pe::ImageDataDirectory::file_range
,read::pe::SectionTable::pe_file_range_at
andpe::ImageSectionHeader::pe_file_range_at
. #421 -
Added
write::Object::add_coff_exports
. #423
Released 2022/01/09.
-
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
inwrite::Object::coff_write
. #412
Released 2021/12/12.
Released 2021/12/12.
-
write_core
feature no longer enablesstd
support. Usewrite_std
instead. #400 -
Multiple changes related to Mach-O split dyld cache support. #398
-
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
Released 2021/10/22.
- Fixed build error with older Rust versions due to cargo resolver version.
Released 2021/10/17.
-
Changed
read::elf
to useSectionIndex
instead ofusize
in more places. #341 -
Changed some
read::elf
section methods to additionally return the linked section index. #341 -
Changed
read::pe::ImageNtHeaders::parse
to returnDataDirectories
instead of a slice. #357 -
Deleted
value
parameter forwrite:WritableBuffer::resize
. #369 -
Changed
write::Object
andwrite::Section
to useCow
for section data. This added a lifetime parameter, which existing users can set to'static
. #370
-
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 forindexmap
dependency. #374 -
Fixed overflow in COFF section name offset parsing. #390
-
Added
name_bytes
methods to unifiedread
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::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::Section::data/data_mut
. #367 -
Added
write::Object::write_stream
. #369 -
Added MIPSr6 ELF header flag definitions. #372
Released 2021/08/28.
- Added support for 64-bit symbol table names to
read::archive
. #366
Released 2021/08/19.
- Activate
memchr
'srustc-dep-of-std
feature #356
Released 2021/07/26.
-
Changed
ReadRef::read_bytes_at_until
to accept a range parameter. #326 -
Added
ReadRef
type parameter toread::StringTable
and types that contain it. String table entries are now only read as required. #326 -
Changed result type of
read::elf::SectionHeader::data
anddata_as_array
. #332 -
Moved
pod::WritableBuffer
towrite::WritableBuffer
. RenamedWritableBuffer::extend
towrite_bytes
. Added more provided methods toWritableBuffer
. #335 -
Moved
pod::Bytes
toread::Bytes
. #336 -
Added
is_mips64el
parameter toelf::Rela64::r_info/set_r_info
. #337
- Removed
alloc
dependency when no features are enabled. #336
-
Added
read::pe::PeFile
methods:section_table
,data_directory
, anddata
. #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 forVec
. #335
Released 2021/06/12.
- Added
RelocationEncoding::AArch64Call
. #322
Released 2021/06/04.
- Added
Architecture::X86_64_X32
. #320
Released 2021/06/03.
-
write: Fix choice of
SHT_REL
orSHT_RELA
for most architectures. #318 -
write: Fix relocation encoding for MIPS64EL. #318
Released 2021/06/02.
-
Added
non_exhaustive
to most public enums. #306 -
MachHeader::parse
andMachHeader::load_commands
now require a header offset. #304 -
Added
ReadRef::read_bytes_at_until
. #308 -
PeFile::entry
,PeSection::address
andPeSegment::address
now return a virtual address instead of a RVA. #315
-
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