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