3 --------------------------------------------------------------------------------
11 * The `write` feature now has a minimum supported rust version of 1.56.1.
12 [#444](https://github.com/gimli-rs/object/pull/444)
14 * Added `os_abi` and `abi_version` fields to `FileFlags::Elf`.
15 [#438](https://github.com/gimli-rs/object/pull/438)
16 [#441](https://github.com/gimli-rs/object/pull/441)
20 * Fixed handling of empty symbol tables in `read::elf::ElfFile::symbol_table` and
21 `read::elf::ElfFile::dynamic_symbol_table`.
22 [#443](https://github.com/gimli-rs/object/pull/443)
26 * Added more `ELF_OSABI_*` constants.
27 [#439](https://github.com/gimli-rs/object/pull/439)
29 --------------------------------------------------------------------------------
37 * Added `read::pe::DataDirectories::resource_directory`.
38 [#425](https://github.com/gimli-rs/object/pull/425)
39 [#427](https://github.com/gimli-rs/object/pull/427)
41 * Added PE support for more ARM relocations.
42 [#428](https://github.com/gimli-rs/object/pull/428)
44 * Added support for `Architecture::LoongArch64`.
45 [#430](https://github.com/gimli-rs/object/pull/430)
46 [#432](https://github.com/gimli-rs/object/pull/432)
48 * Added `elf::EF_MIPS_ABI` and associated constants.
49 [#433](https://github.com/gimli-rs/object/pull/433)
51 --------------------------------------------------------------------------------
59 * For the Mach-O support in `write::Object`, accept `RelocationKind::MachO` for all
60 architecures, and accept `RelocationKind::Absolute` for ARM64.
61 [#422](https://github.com/gimli-rs/object/pull/422)
65 * Added `pe::ImageDataDirectory::file_range`, `read::pe::SectionTable::pe_file_range_at`
66 and `pe::ImageSectionHeader::pe_file_range_at`.
67 [#421](https://github.com/gimli-rs/object/pull/421)
69 * Added `write::Object::add_coff_exports`.
70 [#423](https://github.com/gimli-rs/object/pull/423)
72 --------------------------------------------------------------------------------
80 * Ignored errors for the Wasm extended name section in `read::WasmFile::parse`.
81 [#408](https://github.com/gimli-rs/object/pull/408)
83 * Ignored errors for the COFF symbol table in `read::PeFile::parse`.
84 [#410](https://github.com/gimli-rs/object/pull/410)
86 * Fixed handling of `SectionFlags::Coff` in `write::Object::coff_write`.
87 [#412](https://github.com/gimli-rs/object/pull/412)
91 * Added `read::ObjectSegment::flags`.
92 [#416](https://github.com/gimli-rs/object/pull/416)
93 [#418](https://github.com/gimli-rs/object/pull/418)
95 --------------------------------------------------------------------------------
103 * Fixed `read::elf::SymbolTable::shndx_section`.
104 [#405](https://github.com/gimli-rs/object/pull/405)
106 * Fixed build warnings.
107 [#405](https://github.com/gimli-rs/object/pull/405)
108 [#406](https://github.com/gimli-rs/object/pull/406)
110 --------------------------------------------------------------------------------
118 * `write_core` feature no longer enables `std` support. Use `write_std` instead.
119 [#400](https://github.com/gimli-rs/object/pull/400)
121 * Multiple changes related to Mach-O split dyld cache support.
122 [#398](https://github.com/gimli-rs/object/pull/398)
126 * Added `write::pe::Writer::write_file_align`.
127 [#397](https://github.com/gimli-rs/object/pull/397)
129 * Added support for Mach-O split dyld cache.
130 [#398](https://github.com/gimli-rs/object/pull/398)
132 * Added support for `IMAGE_SCN_LNK_NRELOC_OVFL` when reading and writing COFF.
133 [#399](https://github.com/gimli-rs/object/pull/399)
135 * Added `write::elf::Writer::reserve_null_symbol_index`.
136 [#402](https://github.com/gimli-rs/object/pull/402)
138 --------------------------------------------------------------------------------
146 * Fixed build error with older Rust versions due to cargo resolver version.
148 --------------------------------------------------------------------------------
156 * Changed `read::elf` to use `SectionIndex` instead of `usize` in more places.
157 [#341](https://github.com/gimli-rs/object/pull/341)
159 * Changed some `read::elf` section methods to additionally return the linked section index.
160 [#341](https://github.com/gimli-rs/object/pull/341)
162 * Changed `read::pe::ImageNtHeaders::parse` to return `DataDirectories` instead of a slice.
163 [#357](https://github.com/gimli-rs/object/pull/357)
165 * Deleted `value` parameter for `write:WritableBuffer::resize`.
166 [#369](https://github.com/gimli-rs/object/pull/369)
168 * Changed `write::Object` and `write::Section` to use `Cow` for section data.
169 This added a lifetime parameter, which existing users can set to `'static`.
170 [#370](https://github.com/gimli-rs/object/pull/370)
174 * Fixed parsing when PE import directory has zero size.
175 [#341](https://github.com/gimli-rs/object/pull/341)
177 * Fixed parsing when PE import directory has zero for original first thunk.
178 [#385](https://github.com/gimli-rs/object/pull/385)
179 [#387](https://github.com/gimli-rs/object/pull/387)
181 * Fixed parsing when PE export directory has zero number of names.
182 [#353](https://github.com/gimli-rs/object/pull/353)
184 * Fixed parsing when PE export directory has zero number of names and addresses.
185 [#362](https://github.com/gimli-rs/object/pull/362)
187 * Fixed parsing when PE sections are contiguous.
188 [#354](https://github.com/gimli-rs/object/pull/354)
190 * Fixed `std` feature for `indexmap` dependency.
191 [#374](https://github.com/gimli-rs/object/pull/374)
193 * Fixed overflow in COFF section name offset parsing.
194 [#390](https://github.com/gimli-rs/object/pull/390)
198 * Added `name_bytes` methods to unified `read` traits.
199 [#351](https://github.com/gimli-rs/object/pull/351)
201 * Added `read::Object::kind`.
202 [#352](https://github.com/gimli-rs/object/pull/352)
204 * Added `read::elf::VersionTable` and related helpers.
205 [#341](https://github.com/gimli-rs/object/pull/341)
207 * Added `read::elf::SectionTable::dynamic` and related helpers.
208 [#345](https://github.com/gimli-rs/object/pull/345)
210 * Added `read::coff::SectionTable::max_section_file_offset`.
211 [#344](https://github.com/gimli-rs/object/pull/344)
213 * Added `read::pe::ExportTable` and related helpers.
214 [#349](https://github.com/gimli-rs/object/pull/349)
215 [#353](https://github.com/gimli-rs/object/pull/353)
217 * Added `read::pe::ImportTable` and related helpers.
218 [#357](https://github.com/gimli-rs/object/pull/357)
220 * Added `read::pe::DataDirectories` and related helpers.
221 [#357](https://github.com/gimli-rs/object/pull/357)
222 [#384](https://github.com/gimli-rs/object/pull/384)
224 * Added `read::pe::RichHeaderInfo` and related helpers.
225 [#375](https://github.com/gimli-rs/object/pull/375)
226 [#379](https://github.com/gimli-rs/object/pull/379)
228 * Added `read::pe::RelocationBlocks` and related helpers.
229 [#378](https://github.com/gimli-rs/object/pull/378)
231 * Added `write::elf::Writer`.
232 [#350](https://github.com/gimli-rs/object/pull/350)
234 * Added `write::pe::Writer`.
235 [#382](https://github.com/gimli-rs/object/pull/382)
236 [#388](https://github.com/gimli-rs/object/pull/388)
238 * Added `write::Section::data/data_mut`.
239 [#367](https://github.com/gimli-rs/object/pull/367)
241 * Added `write::Object::write_stream`.
242 [#369](https://github.com/gimli-rs/object/pull/369)
244 * Added MIPSr6 ELF header flag definitions.
245 [#372](https://github.com/gimli-rs/object/pull/372)
247 --------------------------------------------------------------------------------
255 * Added support for 64-bit symbol table names to `read::archive`.
256 [#366](https://github.com/gimli-rs/object/pull/366)
258 --------------------------------------------------------------------------------
266 * Activate `memchr`'s `rustc-dep-of-std` feature
267 [#356](https://github.com/gimli-rs/object/pull/356)
269 --------------------------------------------------------------------------------
277 * Changed `ReadRef::read_bytes_at_until` to accept a range parameter.
278 [#326](https://github.com/gimli-rs/object/pull/326)
280 * Added `ReadRef` type parameter to `read::StringTable` and types that
281 contain it. String table entries are now only read as required.
282 [#326](https://github.com/gimli-rs/object/pull/326)
284 * Changed result type of `read::elf::SectionHeader::data` and `data_as_array`.
285 [#332](https://github.com/gimli-rs/object/pull/332)
287 * Moved `pod::WritableBuffer` to `write::WritableBuffer`.
288 Renamed `WritableBuffer::extend` to `write_bytes`.
289 Added more provided methods to `WritableBuffer`.
290 [#335](https://github.com/gimli-rs/object/pull/335)
292 * Moved `pod::Bytes` to `read::Bytes`.
293 [#336](https://github.com/gimli-rs/object/pull/336)
295 * Added `is_mips64el` parameter to `elf::Rela64::r_info/set_r_info`.
296 [#337](https://github.com/gimli-rs/object/pull/337)
300 * Removed `alloc` dependency when no features are enabled.
301 [#336](https://github.com/gimli-rs/object/pull/336)
305 * Added `read::pe::PeFile` methods: `section_table`, `data_directory`, and `data`.
306 [#324](https://github.com/gimli-rs/object/pull/324)
308 * Added more ELF definitions.
309 [#332](https://github.com/gimli-rs/object/pull/332)
311 * Added `read::elf::SectionTable` methods for hash tables and symbol version
313 [#332](https://github.com/gimli-rs/object/pull/332)
315 * Added PE RISC-V definitions.
316 [#333](https://github.com/gimli-rs/object/pull/333)
318 * Added `WritableBuffer` implementation for `Vec`.
319 [#335](https://github.com/gimli-rs/object/pull/335)
321 --------------------------------------------------------------------------------
329 * Added `RelocationEncoding::AArch64Call`.
330 [#322](https://github.com/gimli-rs/object/pull/322)
332 --------------------------------------------------------------------------------
340 * Added `Architecture::X86_64_X32`.
341 [#320](https://github.com/gimli-rs/object/pull/320)
343 --------------------------------------------------------------------------------
351 * write: Fix choice of `SHT_REL` or `SHT_RELA` for most architectures.
352 [#318](https://github.com/gimli-rs/object/pull/318)
354 * write: Fix relocation encoding for MIPS64EL.
355 [#318](https://github.com/gimli-rs/object/pull/318)
357 --------------------------------------------------------------------------------
365 * Added `non_exhaustive` to most public enums.
366 [#306](https://github.com/gimli-rs/object/pull/306)
368 * `MachHeader::parse` and `MachHeader::load_commands` now require a header offset.
369 [#304](https://github.com/gimli-rs/object/pull/304)
371 * Added `ReadRef::read_bytes_at_until`.
372 [#308](https://github.com/gimli-rs/object/pull/308)
374 * `PeFile::entry`, `PeSection::address` and `PeSegment::address` now return a
375 virtual address instead of a RVA.
376 [#315](https://github.com/gimli-rs/object/pull/315)
380 * Added `pod::from_bytes_mut`, `pod::slice_from_bytes_mut`, `pod::bytes_of_mut`,
381 and `pod::bytes_of_slice_mut`.
382 [#296](https://github.com/gimli-rs/object/pull/296)
383 [#297](https://github.com/gimli-rs/object/pull/297)
385 * Added `Object::pdb_info`.
386 [#298](https://github.com/gimli-rs/object/pull/298)
388 * Added `read::macho::DyldCache`, other associated definitions,
389 and support for these in the examples.
390 [#308](https://github.com/gimli-rs/object/pull/308)
392 * Added more architecture support.
393 [#303](https://github.com/gimli-rs/object/pull/303)
394 [#309](https://github.com/gimli-rs/object/pull/309)
396 * Derive more traits for enums.
397 [#311](https://github.com/gimli-rs/object/pull/311)
399 * Added `Object::relative_address_base`.
400 [#315](https://github.com/gimli-rs/object/pull/315)
404 * Improved performance for string parsing.
405 [#302](https://github.com/gimli-rs/object/pull/302)
407 * `objdump` example allows selecting container members.
408 [#308](https://github.com/gimli-rs/object/pull/308)