1# `object` Change Log 2 3-------------------------------------------------------------------------------- 4 5## 0.27.1 6 7Released 2021/10/22. 8 9### Changed 10 11* Fix build error with older Rust versions due to cargo resolver version. 12 13-------------------------------------------------------------------------------- 14 15## 0.27.0 16 17Released 2021/10/17. 18 19### Breaking changes 20 21* Changed `read::elf` to use `SectionIndex` instead of `usize` in more places. 22 [#341](https://github.com/gimli-rs/object/pull/341) 23 24* Changed some `read::elf` section methods to additionally return the linked section index. 25 [#341](https://github.com/gimli-rs/object/pull/341) 26 27* Changed `read::pe::ImageNtHeaders::parse` to return `DataDirectories` instead of a slice. 28 [#357](https://github.com/gimli-rs/object/pull/357) 29 30* Deleted `value` parameter for `write:WritableBuffer::resize`. 31 [#369](https://github.com/gimli-rs/object/pull/369) 32 33* Changed `write::Object` and `write::Section` to use `Cow` for section data. 34 This added a lifetime parameter, which existing users can set to `'static`. 35 [#370](https://github.com/gimli-rs/object/pull/370) 36 37### Changed 38 39* Fixed parsing when PE import directory has zero size. 40 [#341](https://github.com/gimli-rs/object/pull/341) 41 42* Fixed parsing when PE import directory has zero for original first thunk. 43 [#385](https://github.com/gimli-rs/object/pull/385) 44 [#387](https://github.com/gimli-rs/object/pull/387) 45 46* Fixed parsing when PE export directory has zero number of names. 47 [#353](https://github.com/gimli-rs/object/pull/353) 48 49* Fixed parsing when PE export directory has zero number of names and addresses. 50 [#362](https://github.com/gimli-rs/object/pull/362) 51 52* Fixed parsing when PE sections are contiguous. 53 [#354](https://github.com/gimli-rs/object/pull/354) 54 55* Fixed `std` feature for `indexmap` dependency. 56 [#374](https://github.com/gimli-rs/object/pull/374) 57 58* Fixed overflow in COFF section name offset parsing. 59 [#390](https://github.com/gimli-rs/object/pull/390) 60 61### Added 62 63* Added `name_bytes` methods to unified `read` traits. 64 [#351](https://github.com/gimli-rs/object/pull/351) 65 66* Added `read::Object::kind`. 67 [#352](https://github.com/gimli-rs/object/pull/352) 68 69* Added `read::elf::VersionTable` and related helpers. 70 [#341](https://github.com/gimli-rs/object/pull/341) 71 72* Added `read::elf::SectionTable::dynamic` and related helpers. 73 [#345](https://github.com/gimli-rs/object/pull/345) 74 75* Added `read::coff::SectionTable::max_section_file_offset`. 76 [#344](https://github.com/gimli-rs/object/pull/344) 77 78* Added `read::pe::ExportTable` and related helpers. 79 [#349](https://github.com/gimli-rs/object/pull/349) 80 [#353](https://github.com/gimli-rs/object/pull/353) 81 82* Added `read::pe::ImportTable` and related helpers. 83 [#357](https://github.com/gimli-rs/object/pull/357) 84 85* Added `read::pe::DataDirectories` and related helpers. 86 [#357](https://github.com/gimli-rs/object/pull/357) 87 [#384](https://github.com/gimli-rs/object/pull/384) 88 89* Added `read::pe::RichHeaderInfo` and related helpers. 90 [#375](https://github.com/gimli-rs/object/pull/375) 91 [#379](https://github.com/gimli-rs/object/pull/379) 92 93* Added `read::pe::RelocationBlocks` and related helpers. 94 [#378](https://github.com/gimli-rs/object/pull/378) 95 96* Added `write::elf::Writer`. 97 [#350](https://github.com/gimli-rs/object/pull/350) 98 99* Added `write::pe::Writer`. 100 [#382](https://github.com/gimli-rs/object/pull/382) 101 [#388](https://github.com/gimli-rs/object/pull/388) 102 103* Added `write::Section::data/data_mut`. 104 [#367](https://github.com/gimli-rs/object/pull/367) 105 106* Added `write::Object::write_stream`. 107 [#369](https://github.com/gimli-rs/object/pull/369) 108 109* Added MIPSr6 ELF header flag definitions. 110 [#372](https://github.com/gimli-rs/object/pull/372) 111 112-------------------------------------------------------------------------------- 113 114## 0.26.2 115 116Released 2021/08/28. 117 118### Added 119 120* Added support for 64-bit symbol table names to `read::archive`. 121 [#366](https://github.com/gimli-rs/object/pull/366) 122 123-------------------------------------------------------------------------------- 124 125## 0.26.1 126 127Released 2021/08/19. 128 129### Changed 130 131* Activate `memchr`'s `rustc-dep-of-std` feature 132 [#356](https://github.com/gimli-rs/object/pull/356) 133 134-------------------------------------------------------------------------------- 135 136## 0.26.0 137 138Released 2021/07/26. 139 140### Breaking changes 141 142* Changed `ReadRef::read_bytes_at_until` to accept a range parameter. 143 [#326](https://github.com/gimli-rs/object/pull/326) 144 145* Added `ReadRef` type parameter to `read::StringTable` and types that 146 contain it. String table entries are now only read as required. 147 [#326](https://github.com/gimli-rs/object/pull/326) 148 149* Changed result type of `read::elf::SectionHeader::data` and `data_as_array`. 150 [#332](https://github.com/gimli-rs/object/pull/332) 151 152* Moved `pod::WritableBuffer` to `write::WritableBuffer`. 153 Renamed `WritableBuffer::extend` to `write_bytes`. 154 Added more provided methods to `WritableBuffer`. 155 [#335](https://github.com/gimli-rs/object/pull/335) 156 157* Moved `pod::Bytes` to `read::Bytes`. 158 [#336](https://github.com/gimli-rs/object/pull/336) 159 160* Added `is_mips64el` parameter to `elf::Rela64::r_info/set_r_info`. 161 [#337](https://github.com/gimli-rs/object/pull/337) 162 163### Changed 164 165* Removed `alloc` dependency when no features are enabled. 166 [#336](https://github.com/gimli-rs/object/pull/336) 167 168### Added 169 170* Added `read::pe::PeFile` methods: `section_table`, `data_directory`, and `data`. 171 [#324](https://github.com/gimli-rs/object/pull/324) 172 173* Added more ELF definitions. 174 [#332](https://github.com/gimli-rs/object/pull/332) 175 176* Added `read::elf::SectionTable` methods for hash tables and symbol version 177 information. 178 [#332](https://github.com/gimli-rs/object/pull/332) 179 180* Added PE RISC-V definitions. 181 [#333](https://github.com/gimli-rs/object/pull/333) 182 183* Added `WritableBuffer` implementation for `Vec`. 184 [#335](https://github.com/gimli-rs/object/pull/335) 185 186-------------------------------------------------------------------------------- 187 188## 0.25.3 189 190Released 2021/06/12. 191 192### Added 193 194* Added `RelocationEncoding::AArch64Call`. 195 [#322](https://github.com/gimli-rs/object/pull/322) 196 197-------------------------------------------------------------------------------- 198 199## 0.25.2 200 201Released 2021/06/04. 202 203### Added 204 205* Added `Architecture::X86_64_X32`. 206 [#320](https://github.com/gimli-rs/object/pull/320) 207 208-------------------------------------------------------------------------------- 209 210## 0.25.1 211 212Released 2021/06/03. 213 214### Changed 215 216* write: Fix choice of `SHT_REL` or `SHT_RELA` for most architectures. 217 [#318](https://github.com/gimli-rs/object/pull/318) 218 219* write: Fix relocation encoding for MIPS64EL. 220 [#318](https://github.com/gimli-rs/object/pull/318) 221 222-------------------------------------------------------------------------------- 223 224## 0.25.0 225 226Released 2021/06/02. 227 228### Breaking changes 229 230* Added `non_exhaustive` to most public enums. 231 [#306](https://github.com/gimli-rs/object/pull/306) 232 233* `MachHeader::parse` and `MachHeader::load_commands` now require a header offset. 234 [#304](https://github.com/gimli-rs/object/pull/304) 235 236* Added `ReadRef::read_bytes_at_until`. 237 [#308](https://github.com/gimli-rs/object/pull/308) 238 239* `PeFile::entry`, `PeSection::address` and `PeSegment::address` now return a 240 virtual address instead of a RVA. 241 [#315](https://github.com/gimli-rs/object/pull/315) 242 243### Added 244 245* Added `pod::from_bytes_mut`, `pod::slice_from_bytes_mut`, `pod::bytes_of_mut`, 246 and `pod::bytes_of_slice_mut`. 247 [#296](https://github.com/gimli-rs/object/pull/296) 248 [#297](https://github.com/gimli-rs/object/pull/297) 249 250* Added `Object::pdb_info`. 251 [#298](https://github.com/gimli-rs/object/pull/298) 252 253* Added `read::macho::DyldCache`, other associated definitions, 254 and support for these in the examples. 255 [#308](https://github.com/gimli-rs/object/pull/308) 256 257* Added more architecture support. 258 [#303](https://github.com/gimli-rs/object/pull/303) 259 [#309](https://github.com/gimli-rs/object/pull/309) 260 261* Derive more traits for enums. 262 [#311](https://github.com/gimli-rs/object/pull/311) 263 264* Added `Object::relative_address_base`. 265 [#315](https://github.com/gimli-rs/object/pull/315) 266 267### Changed 268 269* Improved performance for string parsing. 270 [#302](https://github.com/gimli-rs/object/pull/302) 271 272* `objdump` example allows selecting container members. 273 [#308](https://github.com/gimli-rs/object/pull/308) 274