blob: 0b7994e2d3a82c89db8f581fc779f44ede1672f5 [file] [log] [blame]
Mark Wielaard52b6b2f2018-09-14 12:08:15 +02001Version 0.174
2
3libelf, libdw and all tools now handle extended shnum and shstrndx correctly.
4
5elfcompress: Don't rewrite input file if no section data needs updating.
6 Try harder to keep same file mode bits (suid) on rewrite.
7
8strip: Handle mixed (out of order) allocated/non-allocated sections.
9
10unstrip: Handle SHT_GROUP sections.
11
12backends: RISCV and M68K now have backend implementations to generate CFI based
13 backtraces.
14
15Fixes CVE-2018-16062, CVE-2018-16402 and CVE-2018-16403.
16
Mark Wielaardaa36de02018-06-29 21:02:18 +020017Version 0.173
18
19More fixes for crashes and hangs found by afl-fuzz. In particular various
20functions now detect and break infinite loops caused by bad DIE tree cycles.
21
22readelf: Will now lookup the size and signedness of constant value types
23 to display them correctly (and not just how they were encoded).
24
25libdw: New function dwarf_next_lines to read CU-less .debug_line data.
26 dwarf_begin_elf now accepts ELF files containing just .debug_line
27 or .debug_frame sections (which can be read without needing a DIE
28 tree from the .debug_info section).
29 Removed dwarf_getscn_info, which was never implemented.
30
31backends: Handle BPF simple relocations.
32 The RISCV backends now handles ABI specific CFI and knows about
33 RISCV register types and names.
34
Mark Wielaard7a1fd632018-06-11 17:14:39 +020035Version 0.172
36
37No functional changes compared to 0.171.
38
39Various bug fixes in libdw and eu-readelf dealing with bad DWARF5 data.
40Thanks to running the afl fuzzer on eu-readelf and various testcases.
41
42eu-readelf -N is ~15% faster.
43
Mark Wielaardcf65ca12018-06-01 21:16:56 +020044Version 0.171
45
46DWARF5 and split dwarf, including GNU DebugFission, are supported now.
47Data can be read from the new DWARF sections .debug_addr, .debug_line_str,
48.debug_loclists, .debug_str_offsets and .debug_rnglists. Plus the new
49DWARF5 and GNU DebugFission encodings of the existing .debug sections.
50Also in split DWARF .dwo (DWARF object) files. This support is mostly
51handled by existing functions (dwarf_getlocation*, dwarf_getsrclines,
52dwarf_ranges, dwarf_form*, etc.) now returning the data from the new
53sections and data formats. But some new functions have been added
54to more easily get information about skeleton and split compile units
55(dwarf_get_units and dwarf_cu_info), handle new attribute data
56(dwarf_getabbrevattr_data) and to keep references to Dwarf_Dies
57that might come from different sections or files (dwarf_die_addr_die).
58
59Not yet supported are .dwp (Dwarf Package) and .sup (Dwarf Supplementary)
60files, the .debug_names index, the .debug_cu_index and .debug_tu_index
61sections. Only a single .debug_info (and .debug_types) section are
62currently handled.
63
64readelf: Handle all new DWARF5 sections.
65 --debug-dump=info+ will show split unit DIEs when found.
66 --dwarf-skeleton can be used when inspecting a .dwo file.
67 Recognizes GNU locviews with --debug-dump=loc.
68
69libdw: New functions dwarf_die_addr_die, dwarf_get_units,
70 dwarf_getabbrevattr_data and dwarf_cu_info.
71 libdw will now try to resolve the alt file on first use of
72 an alt attribute FORM when not set yet with dwarf_set_alt.
73 dwarf_aggregate_size() now works with multi-dimensional arrays.
74
75libdwfl: Use process_vm_readv when available instead of ptrace.
76
77backends: Add a RISC-V backend.
78
79There were various improvements to build on Windows.
80The sha1 and md5 implementations have been removed, they weren't used.
81
Mark Wielaardd03be4f2017-07-14 17:09:40 +020082Version 0.170
83
Mark Wielaard02e30932017-07-26 18:32:27 +020084libdw: Added new DWARF5 attribute, tag, character encoding, language code,
Mark Wielaardf9d791a2017-07-26 23:02:18 +020085 calling convention, defaulted member function and macro constants
86 to dwarf.h.
Mark Wielaard54ba4ce2017-08-02 18:30:07 +020087 New functions dwarf_default_lower_bound and dwarf_line_file.
Mark Wielaard274f28c2017-07-26 22:54:59 +020088 dwarf_peel_type now handles DWARF5 immutable, packed and shared tags.
Mark Wielaardf9d791a2017-07-26 23:02:18 +020089 dwarf_getmacros now handles DWARF5 .debug_macro sections.
Mark Wielaard8e9c76b2017-07-25 15:29:10 +020090
Mark Wielaardd03be4f2017-07-14 17:09:40 +020091strip: Add -R, --remove-section=SECTION and --keep-section=SECTION.
92
Mark Wielaard16096792017-07-18 14:12:36 +020093backends: The bpf disassembler is now always build on all platforms.
94
Mark Wielaard63588582017-05-05 09:47:29 +020095Version 0.169
96
97backends: Add support for EM_PPC64 GNU_ATTRIBUTES.
98 Frame pointer unwinding fallback support for i386, x86_64, aarch64.
99
100translations: Update Polish translation.
101
Mark Wielaardee38b262016-10-22 19:18:51 +0200102Version 0.168
103
Mark Wielaard515dd0a2016-12-27 15:23:53 +0100104http://elfutils.org/ is now hosted at http://sourceware.org/elfutils/
105
106libelf: gelf_newehdr and gelf_newehdr now return void *.
107
Mark Wielaardee38b262016-10-22 19:18:51 +0200108libdw: dwarf.h corrected the DW_LANG_PLI constant name (was DW_LANG_PL1).
109
Mark Wielaard515dd0a2016-12-27 15:23:53 +0100110readelf: Add optional --symbols[=SECTION] argument to select section name.
111
Mark Wielaardaee56062016-08-04 13:36:34 +0200112Version 0.167
113
114libasm: Add eBPF disassembler for EM_BPF files.
115
116backends: Add m68k and BPF backends.
117
118ld: Removed.
119
120dwelf: Add ELF/DWARF string table creation functions. dwelf_strtab_init,
121 dwelf_strtab_add, dwelf_strtab_add_len, dwelf_strtab_finalize,
122 dwelf_strent_off, dwelf_strent_str and dwelf_strtab_free.
123
Mark Wielaard9ba24582016-03-02 15:04:43 +0100124Version 0.166
125
126config: The default program prefix for the installed tools is now eu-.
127 Use configure --program-prefix="" to not use a program prefix.
128
Mark Wielaard79300542016-01-08 14:44:49 +0100129Version 0.165
130
131elfcompress: New utility to compress or decompress ELF sections.
132
133readelf: Add -z,--decompress option.
134
135libelf: Add elf_compress, elf_compress_gnu, elf32_getchdr, elf64_getchdr
136 and gelf_getchdr.
137
138libdwelf: New function dwelf_scn_gnu_compressed_size.
139
140config: Add libelf and libdw pkg-config files.
141
142backends: sparc support for core and live backtraces.
143
144translations: Updated Polish translation.
145
Mark Wielaardd11eea42015-10-15 18:28:34 +0200146Version 0.164
147
148strip, unstrip: Handle ELF files with merged strtab/shstrtab tables.
149 Handle missing SHF_INFO_LINK section flags.
150
151libelf: Use int64_t for offsets in libelf.h instead of loff_t.
152
153libdw: dwarf.h Add preliminary DWARF5 DW_LANG_Haskell.
154
155libdwfl: dwfl_standard_find_debuginfo now searches any subdir of the binary
156 path under the debuginfo root when the separate debug file couldn't
157 be found by build-id.
158 dwfl_linux_proc_attach can now be called before any Dwfl_Modules
159 have been reported.
160
161backends: Better sparc and sparc64 support.
162
163translations: Updated Ukrainian translation.
164
165Provide default-yama-scope subpackage.
166
Mark Wielaardfaf0d3d2015-06-19 13:43:58 +0200167Version 0.163
168
169Bug fixes only, no new features.
170
Petr Machata7f617342015-03-18 19:42:02 +0100171Version 0.162
172
173libdw: Install new header elfutils/known-dwarf.h.
Mark Wielaard027d9112015-06-10 17:44:42 +0200174 dwarf.h Add preliminary DWARF5 constants DW_TAG_atomic_type,
175 DW_LANG_Fortran03, DW_LANG_Fortran08. dwarf_peel_type now also
176 handles DW_TAG_atomic_type.
Petr Machata7f617342015-03-18 19:42:02 +0100177
Mark Wielaardd76d73f2015-05-19 23:08:00 +0200178addr2line: Input addresses are now always interpreted as hexadecimal
179 numbers, never as octal or decimal numbers.
Mark Wielaard70a504d2015-05-19 16:21:27 +0200180 New option -a, --addresses to print address before each entry.
Mark Wielaardcd2da6c2015-05-20 11:52:27 +0200181 New option -C, --demangle to show demangled symbols.
Mark Wielaardb23a5b22015-05-20 14:09:46 +0200182 New option --pretty-print to print all information on one line.
Mark Wielaardd76d73f2015-05-19 23:08:00 +0200183
Mark Wielaard027d9112015-06-10 17:44:42 +0200184ar: CVE-2014-9447 Directory traversal vulnerability in ar extraction.
185
186backends: x32 support.
187
Mark Wielaard3a36e8a2014-10-06 22:00:16 +0200188Version 0.161
189
190libdw: New function dwarf_peel_type. dwarf_aggregate_size now uses
191 dwarf_peel_type to also provide the sizes of qualified types.
Petr Machatafb90bf32014-10-17 02:47:03 +0200192 dwarf_getmacros will now serve either of .debug_macro and
193 .debug_macinfo transparently. New interfaces
194 dwarf_getmacros_off, dwarf_macro_getsrcfiles,
195 dwarf_macro_getparamcnt, and dwarf_macro_param are available
196 for more generalized inspection of macros and their parameters.
Mark Wielaard09dc83d2014-12-18 23:41:41 +0100197 dwarf.h: Add DW_AT_GNU_deleted, DW_AT_noreturn, DW_LANG_C11,
198 DW_LANG_C_plus_plus_11 and DW_LANG_C_plus_plus_14.
Petr Machatafb90bf32014-10-17 02:47:03 +0200199
Mark Wielaard22497092014-05-26 21:28:05 +0200200Version 0.160
201
Mark Wielaardf18f2332014-08-15 16:03:21 +0200202libdw: New functions dwarf_cu_getdwarf, dwarf_cu_die.
Mark Wielaard5efda262014-08-25 22:13:57 +0200203 dwarf.h remove non-existing DW_TAG_mutable_type.
204
205libdwfl: Handle LZMA .ko.xz compressed kernel modules.
Mark Wielaard209f1492014-08-15 13:08:24 +0200206
Mark Wielaard22497092014-05-26 21:28:05 +0200207unstrip: New option -F, --force to combining files even if some ELF headers
208 don't seem to match.
209
Mark Wielaard5efda262014-08-25 22:13:57 +0200210backends: Handle ARM THUMB functions. Add support for ppc64le ELFv2 abi.
211
Mark Wielaard531a30a2014-01-20 23:09:26 +0100212Version 0.159
213
214stack: New option -d, --debugname to lookup DWARF debuginfo name for frame.
Mark Wielaard13968d92014-01-21 16:13:49 +0100215 New option -i, --inlines to show inlined frames using DWARF debuginfo.
Mark Wielaard531a30a2014-01-20 23:09:26 +0100216
Mark Wielaard93802972014-04-11 23:52:47 +0200217libdwelf: New libdwelf.h header for libdw.so DWARF ELF Low-level Functions.
Mark Wielaardbb096d02014-05-03 00:23:06 +0200218 New function dwelf_elf_gnu_debuglink, dwelf_dwarf_gnu_debugaltlink,
219 and dwelf_elf_gnu_build_id.
220
221libdw: Support for DWZ multifile forms DW_FORM_GNU_ref_alt and
222 DW_FORM_GNU_strp_alt is now enabled by default and no longer
223 experimental. Added new functions dwarf_getalt and dwarf_setalt
224 to get or set the alternative debug file used for the alt FORMs.
Mark Wielaardf05dff92014-05-18 00:28:26 +0200225 The dwfl_linux_proc_find_elf callback will now find ELF from
226 process memory for (deleted) files if the Dwfl has process state
227 attached.
Mark Wielaardbb096d02014-05-03 00:23:06 +0200228
229libdwfl: The dwfl_build_id_find_debuginfo and dwfl_standard_find_debuginfo
230 functions will now try to resolve and set the alternative debug file.
Mark Wielaard93802972014-04-11 23:52:47 +0200231
Mark Wielaardf05dff92014-05-18 00:28:26 +0200232backends: Add CFI unwinding for arm. Relies on .debug_frame.
233 Add arm process initial register state compatible mode to AARCH64.
234 Add aarch64 native and core unwind support.
235
236other: All separate elfutils-robustify patches have been merged.
237 CVE-2014-0172 Check overflow before calling malloc to uncompress data.
238
Jan Kratochvil3cf491e2013-10-30 10:48:20 +0100239Version 0.158
240
241libdwfl: dwfl_core_file_report has new parameter executable.
Mark Wielaard159ac522013-12-18 11:05:54 +0100242 New functions dwfl_module_getsymtab_first_global,
243 dwfl_module_getsym_info and dwfl_module_addrinfo.
Jan Kratochvil8aa7fbb2013-12-18 14:37:49 +0100244 Added unwinder with type Dwfl_Thread_Callbacks, opaque types
245 Dwfl_Thread and Dwfl_Frame and functions dwfl_attach_state,
246 dwfl_pid, dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
247 dwfl_thread_state_registers, dwfl_thread_state_register_pc,
Mark Wielaarde962ec32013-12-20 10:09:12 +0100248 dwfl_getthread_frames, dwfl_getthreads, dwfl_thread_getframes
249 and dwfl_frame_pc.
Jan Kratochvil3cf491e2013-10-30 10:48:20 +0100250
Mark Wielaard159ac522013-12-18 11:05:54 +0100251addr2line: New option -x to show the section an address was found in.
252
Mark Wielaarde962ec32013-12-20 10:09:12 +0100253stack: New utility that uses the new unwinder for processes and cores.
254
Mark Wielaard70db4cc2014-01-03 22:16:34 +0100255backends: Unwinder support for i386, x86_64, s390, s390x, ppc and ppc64.
256 aarch64 support.
257
Mark Wielaardf36d7272013-09-27 14:02:26 +0200258Version 0.157
259
260libdw: Add new functions dwarf_getlocations, dwarf_getlocation_attr
261 and dwarf_getlocation_die.
262
Mark Wielaardfb927572013-09-30 13:50:26 +0200263readelf: Show contents of NT_SIGINFO and NT_FILE core notes.
264
Mark Wielaardf36d7272013-09-27 14:02:26 +0200265addr2line: Support -i, --inlines output option.
266
267backends: abi_cfi hook for arm, ppc and s390.
268
Jan Kratochvil904aec22013-04-30 14:27:16 +0200269Version 0.156
270
Jan Kratochvila55b1182013-07-19 00:24:06 +0200271lib: New macro COMPAT_VERSION_NEWPROTO.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200272
Jan Kratochvil934d36c2013-07-19 23:26:28 +0200273libdw: Handle GNU extension opcodes in dwarf_getlocation.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200274
Jan Kratochvil934d36c2013-07-19 23:26:28 +0200275libdwfl: Fix STB_GLOBAL over STB_WEAK preference in dwfl_module_addrsym.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200276 Add minisymtab support.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200277 Add parameter add_p_vaddr to dwfl_report_elf.
278 Use DT_DEBUG library search first.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200279
280libebl: Handle new core note types in EBL.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200281
Jan Kratochvil934d36c2013-07-19 23:26:28 +0200282backends: Interpret NT_ARM_VFP.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200283 Implement core file registers parsing for s390/s390x.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200284
285readelf: Add --elf-section input option to inspect an embedded ELF file.
286 Add -U, --unresolved-address-offsets output control.
287 Add --debug-dump=decodedline support.
288 Accept version 8 .gdb_index section format.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200289 Adjust output formatting width.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200290 When highpc is in constant form print it also as address.
291 Display raw .debug_aranges. Use libdw only for decodedaranges.
Jan Kratochvila55b1182013-07-19 00:24:06 +0200292
293elflint: Add __bss_start__ to the list of allowed symbols.
294
295tests: Add configure --enable-valgrind option to run all tests under valgrind.
296 Enable automake parallel-tests for make check.
297
298translations: Updated Polish translation.
299
300Updates for Automake 1.13.
Jan Kratochvil904aec22013-04-30 14:27:16 +0200301
Mark Wielaardc4010b82012-07-24 13:20:41 +0200302Version 0.155
303
Mark Wielaard27751ed2012-08-22 09:57:36 +0200304libelf: elf*_xlatetomd now works for cross-endian ELF note data.
Mark Wielaarda2210f82012-08-21 12:22:08 +0200305 elf_getshdr now works consistently on non-mmaped ELF files after
306 calling elf_cntl(ELF_C_FDREAD).
307 Implement support for ar archives with 64-bit symbol table.
308
Mark Wielaardc4010b82012-07-24 13:20:41 +0200309libdw: dwarf.h corrected the DW_LANG_ObjC constant name (was DW_LANG_Objc).
310 Any existing sources using the old name will have to be updated.
Mark Wielaarda2210f82012-08-21 12:22:08 +0200311 Add DW_MACRO_GNU .debug_macro type encodings constants, DW_ATE_UTF
312 and DW_OP_GNU_parameter_ref to dwarf.h.
Mark Wielaardf5519fc2012-08-24 13:54:52 +0200313 Experimental support for DWZ multifile forms DW_FORM_GNU_ref_alt
314 and DW_FORM_GNU_strp_alt. Disabled by default. Use configure
315 --enable-dwz to test it.
Mark Wielaarda2210f82012-08-21 12:22:08 +0200316
317readelf: Add .debug_macro parsing support.
318 Add .gdb_index version 7 parsing support.
319 Recognize DW_OP_GNU_parameter_ref.
Mark Wielaardc4010b82012-07-24 13:20:41 +0200320
Mark Wielaard3cb9e8c2012-08-27 15:31:31 +0200321backends: Add support for Tilera TILE-Gx processor.
322
323translations: Updated Ukrainian translation.
324
Mark Wielaard54797252012-04-27 13:00:50 +0200325Version 0.154
326
Mark Wielaardd7bde9b2012-06-22 14:14:08 +0200327libelf: [g]elf[32|64]_offscn() do not match SHT_NOBITS sections at OFFSET.
328
Mark Wielaard54797252012-04-27 13:00:50 +0200329libdw: dwarf_highpc function now handles DWARF 4 DW_AT_high_pc constant form.
Mark Wielaardd7bde9b2012-06-22 14:14:08 +0200330 Fix bug using dwarf_next_unit to iterate over .debug_types.
331
332elflint: Now accepts gold linker produced executables.
Mark Wielaard54797252012-04-27 13:00:50 +0200333
Mark Wielaardde2ed972012-06-05 17:15:16 +0200334The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone
335programs. There is now also a formal CONTRIBUTING document describing how to
336submit patches.
337
Roland McGrath725aad52011-02-23 19:52:46 -0800338Version 0.153
339
340libdw: Support reading .zdebug_* DWARF sections compressed via zlib.
341
Mark Wielaard52d1f922012-01-22 19:28:20 +0100342libdwfl: Speed up dwfl_module_addrsym.
343
Ulrich Drepperb4a16cf2011-10-02 08:33:19 -0400344nm: Support C++ demangling.
345
Roland McGrathe5ba2a12011-11-05 21:08:07 -0700346ar: Support D modifier for "deterministic output" with no uid/gid/mtime info.
Roland McGrath6e063d92012-01-20 11:43:36 -0800347 The U modifier is the inverse.
Roland McGrath3284b792012-01-20 12:51:46 -0800348 elfutils can be configured with the --enable-deterministic-archives
349 option to make the D behavior the default when U is not specified.
Mark Wielaard52d1f922012-01-22 19:28:20 +0100350
Roland McGrath6e063d92012-01-20 11:43:36 -0800351ranlib: Support -D and -U flags with same meaning.
Roland McGrathe5ba2a12011-11-05 21:08:07 -0700352
Mark Wielaard52d1f922012-01-22 19:28:20 +0100353readelf: Improve output of -wline. Add support for printing SDT elf notes.
Roland McGratha77881a2012-01-23 10:34:17 -0800354 Add printing of .gdb_index section.
355 Support for typed DWARF stack, call_site and entry_value.
Mark Wielaard52d1f922012-01-22 19:28:20 +0100356
357strip: Add --reloc-debug-sections option.
358 Improved SHT_GROUP sections handling.
359
Roland McGrathf339cd62011-02-02 17:24:53 -0800360Version 0.152
361
Roland McGrath8a7b6232011-02-08 19:40:19 -0800362Various build and warning nits fixed for newest GCC and Autoconf.
363
Roland McGrathf339cd62011-02-02 17:24:53 -0800364libdwfl: Yet another prelink-related fix for another regression.
Roland McGrath788cc882011-02-11 12:38:36 -0800365 Look for Linux kernel images in files named with compression suffixes.
Roland McGrathf339cd62011-02-02 17:24:53 -0800366
Roland McGrath1fb9c912011-02-11 10:32:30 -0800367elfcmp: New flag --ignore-build-id to ignore differing build ID bits.
Roland McGrath4a14ef72011-02-11 10:42:45 -0800368 New flag -l/--verbose to print all differences.
Roland McGrath1fb9c912011-02-11 10:32:30 -0800369
Roland McGrathf6315952011-01-11 10:33:32 -0800370Version 0.151
371
372libdwfl: Fix for more prelink cases with separate debug file.
373
374strip: New flag --strip-sections to remove section headers entirely.
375
Roland McGrath65d8e4e2010-11-22 17:35:56 -0800376Version 0.150
377
378libdw: Fix for handling huge .debug_aranges section.
379
380libdwfl: Fix for handling prelinked DSO with separate debug file.
381
382findtextrel: Fix diagnostics to work with usual section ordering.
383
384libebl: i386 backend fix for multi-register integer return value location.
385
Roland McGrathde44f132010-08-24 15:38:42 -0700386Version 0.149:
387
Roland McGrath932585d2010-05-08 04:01:14 -0700388libdw: Decode new DW_OP_GNU_implicit_pointer operation;
389 new function dwarf_getlocation_implicit_pointer.
390
Roland McGrathde44f132010-08-24 15:38:42 -0700391libdwfl: New function dwfl_dwarf_line.
392
Roland McGrath5c45def2010-09-09 23:55:32 -0700393addr2line: New flag -F/--flags to print more DWARF line information details.
Roland McGrathde44f132010-08-24 15:38:42 -0700394
Roland McGrath6849dbb2010-09-09 23:26:12 -0700395strip: -g recognizes .gdb_index as a debugging section.
396
Roland McGrath1fa6bf42010-05-06 01:14:32 -0700397Version 0.148:
398
Roland McGrath2b1f0952010-06-20 17:55:50 -0700399libdw: Accept DWARF 4 format: new functions dwarf_next_unit, dwarf_offdie_types.
Roland McGrathc70cf4e2010-06-18 17:01:05 -0700400 New functions dwarf_lineisa, dwarf_linediscriminator, dwarf_lineop_index.
Roland McGrath3e4b5bb2010-06-16 03:40:56 -0700401
Roland McGrath1fa6bf42010-05-06 01:14:32 -0700402libdwfl: Fixes in core-file handling, support cores from PIEs.
403 When working from build IDs, don't open a named file that mismatches.
404
Roland McGrath2b1f0952010-06-20 17:55:50 -0700405readelf: Handle DWARF 4 formats.
Roland McGrath7fac1ce2010-06-01 15:56:58 -0700406
Roland McGrathfba8ec82010-05-03 11:42:53 -0700407Version 0.147:
408
409libdw: Fixes in CFI handling, best possible handling of bogus CFA ops.
410
411libdwfl: Ignore R_*_NONE relocs, works around old (binutils) ld -r bugs.
412
Ulrich Drepperad64d8e2010-03-04 21:51:19 -0800413Version 0.146:
414
Roland McGrath8068e062010-03-10 23:49:13 -0800415libdwfl: New function dwfl_core_file_report.
416
Roland McGrath056d6932010-02-15 16:05:58 -0800417Version 0.145:
418
419Fix build with --disable-dependency-tracking.
420
421Fix build with most recent glibc headers.
422
Roland McGrath4b0ee3b2010-02-18 14:04:45 -0800423libelf: More robust to bogus section headers.
424
Roland McGrath056d6932010-02-15 16:05:58 -0800425libdw: Fix CFI decoding.
426
427libdwfl: Fix address bias returned by CFI accessors.
Roland McGrath4b0ee3b2010-02-18 14:04:45 -0800428 Fix core file module layout identification.
Roland McGrath056d6932010-02-15 16:05:58 -0800429
430readelf: Fix CFI decoding.
431
Roland McGrathec9746f2010-01-04 22:08:45 -0800432Version 0.144:
433
Roland McGrath6fd3cd12010-01-07 19:41:04 -0800434libelf: New function elf_getphdrnum.
435 Now support using more than 65536 program headers in a file.
436
Roland McGrathebc5c882010-01-05 22:53:31 -0800437libdw: New function dwarf_aggregate_size for computing (constant) type
438 sizes, including array_type cases with nontrivial calculation.
439
Roland McGrathec9746f2010-01-04 22:08:45 -0800440readelf: Don't give errors for missing info under -a.
441 Handle Linux "VMCOREINFO" notes under -n.
442
Roland McGrathde69d522009-08-07 18:26:19 -0700443Version 0.143:
444
445libdw: Various convenience functions for individual attributes now use
446 dwarf_attr_integrate to look up indirect inherited attributes.
Roland McGrath7e0aecd2009-09-17 15:02:34 -0700447 Location expression handling now supports DW_OP_implicit_value.
Roland McGrathde69d522009-08-07 18:26:19 -0700448
Roland McGrathe5a1a812009-08-26 03:05:50 -0700449libdwfl: Support automatic decompression of files in XZ format,
450 and of Linux kernel images made with bzip2 or LZMA (as well as gzip).
Roland McGrathd6ccdc12009-08-26 00:23:01 -0700451
Ulrich Drepperf1894932009-06-13 15:55:42 -0700452Version 0.142:
453
454libelf: Add elf_getshdrnum alias for elf_getshnum and elf_getshdrstrndx alias
Ulrich Drepperb4a16cf2011-10-02 08:33:19 -0400455 for elf_getshstrndx and deprecate original names. Sun screwed up
456 their implementation and asked for a solution.
Ulrich Drepperf1894932009-06-13 15:55:42 -0700457
Ulrich Drepper70c442c2009-07-08 00:53:24 -0700458libebl: Add support for STB_GNU_UNIQUE.
459
Ulrich Drepper96d950e2009-07-14 10:42:01 -0700460elflint: Add support for STB_GNU_UNIQUE.
461
Roland McGrath5dbccdb2009-06-28 14:48:02 -0700462readelf: Add -N option, speeds up DWARF printing without address->name lookups.
463
Roland McGrath409fe102009-07-23 11:32:47 -0700464libdw: Add support for decoding DWARF CFI into location description form.
465 Handle some new DWARF 3 expression operations previously omitted.
466 Basic handling of some new encodings slated for DWARF 4.
467
Roland McGrath54eb8902009-04-14 03:18:10 -0700468Version 0.141:
469
Roland McGratheb9ba472009-04-14 18:44:45 -0700470libebl: sparc backend fixes;
471 some more arm backend support
Roland McGrathd86e1832009-04-20 00:49:33 -0700472
Roland McGrath54eb8902009-04-14 03:18:10 -0700473libdwfl: fix dwfl_module_build_id for prelinked DSO case;
474 fixes in core file support;
475 dwfl_module_getsym interface improved for non-address symbols
Roland McGrathd86e1832009-04-20 00:49:33 -0700476
Roland McGrath54eb8902009-04-14 03:18:10 -0700477strip: fix infinite loop on strange inputs with -f
478
Roland McGrathd86e1832009-04-20 00:49:33 -0700479addr2line: take -j/--section=NAME option for binutils compatibility
480 (same effect as '(NAME)0x123' syntax already supported)
481
Ulrich Drepper8a3b0fa2009-02-16 11:02:37 -0800482Version 0.140:
483
484libelf: Fix regression in creation of section header
485
486libdwfl: Less strict behavior if DWARF reader ist just used to display data
487
Ulrich Drepper3bf57592009-01-01 18:52:05 -0800488Version 0.139:
489
490libcpu: Add Intel SSE4 disassembler support
491
Ulrich Drepper05d2b202009-01-16 17:58:54 -0800492readelf: Implement call frame information and exception handling dumping.
Ulrich Drepperb4a16cf2011-10-02 08:33:19 -0400493 Add -e option. Enable it implicitly for -a.
Ulrich Drepperac194d02009-01-06 00:30:01 -0800494
Ulrich Drepper3a52c7a2009-01-16 21:11:49 -0800495elflint: Check PT_GNU_EH_FRAME program header entry.
496
Roland McGrathd666b002009-01-06 02:14:26 -0800497libdwfl: Support automatic gzip/bzip2 decompression of ELF files.
498
Roland McGrathd8ca9bd2008-12-24 01:09:18 -0800499Version 0.138:
500
501Install <elfutils/version.h> header file for applications to use in source
502version compatibility checks.
503
504libebl: backend fixes for i386 TLS relocs; backend support for NT_386_IOPERM
505
506libcpu: disassembler fixes
507
508libdwfl: bug fixes
509
510libelf: bug fixes
511
512nm: bug fixes for handling corrupt input files
513
Ulrich Drepperbb48a272008-08-27 03:01:47 +0000514Version 0.137:
515
516Minor fixes for unreleased 0.136 release.
517
Roland McGrathb4d6f0f2008-08-25 22:55:17 +0000518Version 0.136:
519
520libdwfl: bug fixes; new "segment" interfaces;
521 all the libdwfl-based tools now support --core=COREFILE option
522
Roland McGrathb37d2532008-05-07 18:38:35 +0000523Version 0.135:
524
525libdwfl: bug fixes
526
527strip: changed handling of ET_REL files wrt symbol tables and relocs
528
Roland McGrath60982e62008-04-05 00:40:51 +0000529Version 0.134:
530
531elflint: backend improvements for sparc, alpha
532
533libdwfl, libelf: bug fixes
534
Roland McGrath47c5c352008-02-29 10:17:16 +0000535Version 0.133:
536
537readelf, elflint, libebl: SHT_GNU_ATTRIBUTE section handling (readelf -A)
538
539readelf: core note handling for NT_386_TLS, NT_PPC_SPE, Alpha NT_AUXV
540
541libdwfl: bug fixes and optimization in relocation handling
542
543elfcmp: bug fix for non-allocated section handling
544
Ulrich Drepper1c5928d2008-03-01 18:34:56 +0000545ld: implement newer features of binutils linker.
546
Ulrich Drepper28a0c612008-01-21 18:57:48 +0000547Version 0.132:
548
549libcpu: Implement x86 and x86-64 disassembler.
550libasm: Add interface for disassembler.
551
552all programs: add debugging of branch prediction.
553
554libelf: new function elf_scnshndx.
555
Roland McGrath478a9602007-11-08 00:59:30 +0000556Version 0.131:
557
558libdw: DW_FORM_ref_addr support; dwarf_formref entry point now deprecated;
559 bug fixes for oddly-formatted DWARF
560
561libdwfl: bug fixes in offline archive support, symbol table handling;
562 apply partial relocations for dwfl_module_address_section on ET_REL
563
564libebl: powerpc backend support for Altivec registers
565
Roland McGrathc76f0b02007-09-27 07:31:33 +0000566Version 0.130:
567
568readelf: -p option can take an argument like -x for one section,
Roland McGrath59ea7f32007-10-04 08:50:09 +0000569 or no argument (as before) for all SHF_STRINGS sections;
Ulrich Drepperb597dfa2007-10-16 05:21:27 +0000570 new option --archive-index (or -c);
571 improved -n output for core files, on many machines
Roland McGrath59ea7f32007-10-04 08:50:09 +0000572
573libelf: new function elf_getdata_rawchunk, replaces gelf_rawchunk;
574 new functions gelf_getnote, gelf_getauxv, gelf_update_auxv
575
576readelf, elflint: handle SHT_NOTE sections without requiring phdrs
577
Ulrich Drepperb597dfa2007-10-16 05:21:27 +0000578elflint: stricter checks on debug sections
579
Roland McGrath59ea7f32007-10-04 08:50:09 +0000580libdwfl: new functions dwfl_build_id_find_elf, dwfl_build_id_find_debuginfo,
581 dwfl_module_build_id, dwfl_module_report_build_id;
582 support dynamic symbol tables found via phdrs;
583 dwfl_standard_find_debuginfo now uses build IDs when available
584
585unstrip: new option --list (or -n)
Roland McGrathc76f0b02007-09-27 07:31:33 +0000586
Ulrich Drepperb597dfa2007-10-16 05:21:27 +0000587libebl: backend improvements for sparc, alpha, powerpc
588
Roland McGrath60fc84c2007-08-03 21:59:15 +0000589Version 0.129:
590
591readelf: new options --hex-dump (or -x), --strings (or -p)
592
593addr2line: new option --symbols (or -S)
594
Roland McGrath4be15242007-04-25 03:09:33 +0000595Version 0.128:
596
597new program: unstrip
598
599elfcmp: new option --hash-inexact
600
Ulrich Dreppera1090f82007-03-30 19:16:14 +0000601Version 0.127:
Ulrich Drepper6258e742007-03-13 06:22:40 +0000602
Roland McGrath43da9892007-04-16 23:13:37 +0000603libdw: new function dwarf_getsrcdirs
604
Ulrich Drepperf527aa82007-04-19 04:15:00 +0000605libdwfl: new functions dwfl_module_addrsym, dwfl_report_begin_add,
606 dwfl_module_address_section
Ulrich Drepper6258e742007-03-13 06:22:40 +0000607
Ulrich Drepperce0bdb62007-02-05 07:13:52 +0000608Version 0.126:
609
610new program: ar
611
Ulrich Drepper56bc0b82006-12-18 22:38:08 +0000612Version 0.125:
613
614elflint: Compare DT_GNU_HASH tests.
615
616move archives into -static RPMs
617
618libelf, elflint: better support for core file handling
619
Roland McGrathc373d852006-10-10 00:25:21 +0000620Version 0.124:
621
622libebl: sparc backend support for return value location
623
624libebl, libdwfl: backend register name support extended with more info
625
626libelf, libdw: bug fixes for unaligned accesses on machines that care
627
628readelf, elflint: trivial bugs fixed
629
Roland McGrath1dee3602006-08-15 01:57:03 +0000630Version 0.123:
631
632libebl: Backend build fixes, thanks to Stepan Kasal.
633
634libebl: ia64 backend support for register names, return value location
635
636libdwfl: Handle truncated linux kernel module section names.
637
638libdwfl: Look for linux kernel "vmlinux" files with ".debug" suffix.
639
640elflint: Fix checks to permit --hash-style=gnu format.
641
Ulrich Drepper28ed8952006-07-07 03:43:47 +0000642Version 0.122:
643
Ulrich Dreppercc415622006-07-12 19:42:23 +0000644libebl: add function to test for relative relocation
Ulrich Drepper28ed8952006-07-07 03:43:47 +0000645
646elflint: fix and extend DT_RELCOUNT/DT_RELACOUNT checks
647
648elflint, readelf: add support for DT_GNU_HASH
649libelf: add elf_gnu_hash
650
651elflint, readelf: add support for 64-bit SysV-style hash tables
652
Ulrich Dreppercc415622006-07-12 19:42:23 +0000653libdwfl: new functions dwfl_module_getsymtab, dwfl_module_getsym.
654
Ulrich Drepperd9a87122006-05-28 08:00:33 +0000655Version 0.121:
656
657libelf: bug fixes for rewriting existing files when using mmap.
658
659make all installed headers usable in C++ code.
660
661readelf: better output format.
662
Ulrich Drepper6ca46002006-06-12 22:40:23 +0000663elflint: fix tests of dynamic section content.
664
665ld: Implement --as-needed, --execstack, PT_GNU_STACK. Many small patches.
666
Ulrich Drepperd9a87122006-05-28 08:00:33 +0000667libdw, libdwfl: handle files without aranges info.
668
Ulrich Drepper361df7d2006-04-04 21:38:57 +0000669Version 0.120:
670
671Bug fixes.
672
673dwarf.h updated for DWARF 3.0 final specification.
674
675libdwfl: New function dwfl_version.
676
Ulrich Drepper82c345d2006-04-04 22:07:54 +0000677The license is now GPL for most files. The libelf, libebl, libdw,
678and libdwfl libraries have additional exceptions. Add reference to
679OIN.
680
tailor808b4122006-01-13 18:50:48 +0000681Version 0.119:
682
683bug fixes
684
Ulrich Drepper607e0542005-12-04 15:51:06 +0000685Version 0.118:
686
687elflint: more tests.
688
Roland McGrath994b4892005-12-05 22:46:21 +0000689libdwfl: New function dwfl_module_register_names.
690
691libebl: New backend hook for register names.
692
Roland McGrath37ecca72005-11-18 01:42:03 +0000693Version 0.117:
694
695libdwfl: New function dwfl_module_return_value_location.
696
697libebl: Backend improvements for several CPUs.
698
Roland McGrath07d4f2f2005-10-28 06:56:24 +0000699Version 0.116:
700
701libdw: New functions dwarf_ranges, dwarf_entrypc, dwarf_diecu,
Roland McGrath6724c902005-10-28 07:07:19 +0000702 dwarf_entry_breakpoints. Removed Dwarf_Func type and functions
703 dwarf_func_name, dwarf_func_lowpc, dwarf_func_highpc,
704 dwarf_func_entrypc, dwarf_func_die; dwarf_getfuncs callback now uses
705 Dwarf_Die, and dwarf_func_file, dwarf_func_line, dwarf_func_col
706 replaced by dwarf_decl_file, dwarf_decl_line, dwarf_decl_column;
707 dwarf_func_inline, dwarf_func_inline_instances now take Dwarf_Die.
708 Type Dwarf_Loc renamed to Dwarf_Op; dwarf_getloclist,
709 dwarf_addrloclists renamed dwarf_getlocation, dwarf_getlocation_addr.
Roland McGrath07d4f2f2005-10-28 06:56:24 +0000710
Roland McGrathc94e47d2005-08-27 10:37:20 +0000711Version 0.115:
712
Ulrich Drepperfbe998a2005-08-29 16:27:10 +0000713libelf: speed-ups of non-mmap reading.
714
715strings: New program.
716
717Implement --enable-gcov option for configure.
718
Roland McGrathc94e47d2005-08-27 10:37:20 +0000719libdw: New function dwarf_getscopes_die.
720
Ulrich Drepper5d832292005-08-15 21:36:27 +0000721Version 0.114:
722
723libelf: new function elf_getaroff
724
Roland McGratha5c26432005-08-18 23:41:56 +0000725libdw: Added dwarf_func_die, dwarf_func_inline, dwarf_func_inline_instances.
726
Roland McGrath7c777292005-08-24 18:53:53 +0000727libdwfl: New functions dwfl_report_offline, dwfl_offline_section_address,
728 dwfl_linux_kernel_report_offline.
729
Ulrich Drepper5d832292005-08-15 21:36:27 +0000730ranlib: new program
731
Ulrich Drepper637963b2005-08-07 05:33:07 +0000732Version 0.113:
733
734elflint: relax a bit. Allow version definitions for defined symbols against
735DSO versions also for symbols in nobits sections. Allow .rodata section
736to have STRINGS and MERGE flag set.
737
Roland McGrath1c83bf12005-08-11 07:03:55 +0000738strip: add some more compatibility with binutils.
739
Ulrich Drepperc911c9e2005-08-02 16:07:42 +0000740Version 0.112:
741
742elfcmp: some more relaxation.
743
Ulrich Drepperdbace232005-08-06 01:37:23 +0000744elflint: many more tests, especially regarding to symbol versioning.
Ulrich Drepper41de4882005-08-03 00:02:56 +0000745
746libelf: Add elfXX_offscn and gelf_offscn.
747
Ulrich Dreppera38998e2005-08-03 02:05:39 +0000748libasm: asm_begin interface changes.
749
750libebl: Add three new interfaces to directly access machine, class, and
751data encoding information.
752
Ulrich Drepper8a687742005-08-03 02:24:12 +0000753objdump: New program. Just the beginning.
754
Ulrich Drepper70189152005-07-28 21:31:36 +0000755Version 0.111:
756
757libdw: now contains all of libdwfl. The latter is not installed anymore.
758
759elfcmp: little usability tweak, name and index of differing section is printed.
760
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000761Version 0.110:
762
Roland McGrath1c83bf12005-08-11 07:03:55 +0000763libelf: fix a number of problems with elf_update
Ulrich Drepperb08d5a82005-07-26 05:00:05 +0000764
765elfcmp: fix a few bugs. Compare gaps.
766
767Fix a few PLT problems and mudflap build issues.
768
769libebl: Don't expose Ebl structure definition in libebl.h. It's now private.
770
771Version 0.109:
772
773libebl: Check for matching modules.
774
775elflint: Check that copy relocations only happen for OBJECT or NOTYPE symbols.
776
777elfcmp: New program.
778
779libdwfl: New library.
780
781Version 0.108:
782
783strip: fix bug introduced in last change
784
785libdw: records returned by dwarf_getsrclines are now sorted by address
786
787Version 0.107:
788
789readelf: improve DWARF output format
790
791strip: support Linux kernel modules
792
793Version 0.106:
794
795libdw: Updated dwarf.h from DWARF3 spec
796libdw: add new funtions dwarf_func_entrypc, dwarf_func_file, dwarf_func_line,
797dwarf_func_col, dwarf_getsrc_file
798
799Version 0.105:
800
801addr2line: New program
802
803libdw: add new functions: dwarf_addrdie, dwarf_macro_*, dwarf_getfuncs,
804dwarf_func_*.
805
806findtextrel: use dwarf_addrdie
807
808Version 0.104:
809
810findtextrel: New program.
811
812Version 0.103:
813
814libdw: Fix using libdw.h with gcc < 4 and C++ code. Compiler bug.
815
816Version 0.102:
817
818More Makefile and spec file cleanups.
819
820Version 0.101:
821
822Remove most gettext autoconf handling.
823
824Add more warnings
825
826Fix resulting problems. One actual bug found and fixed this way
827
828Version 0.100:
829
830libebl: Fix x86-64 relocations.
831
832Add -Wunused -Wextra warnings.
833
834Some cleanups resulting from those additional warnings.
835
836Lots of Makefile cleanup.
837
838Version 0.99:
839
840libelf: add gelf_checksum prototype to <libelf.h>
841
842libelf: fix elf*_checksum handling of NOBITS sections
843
844Finish mudflap support.
845
846Fix three bugs found by mudflap.
847
848ld: add as_needed support
849
850Version 0.98:
851
852readelf: in section to segment mapping, indicate read-only sections.
853
854elflint: more relaxation for GNU ld
855
856Version 0.97:
857
858Fix compiling with gcc 4.0.
859Some tests called elflint without appropriate LD_LIBRARY_PATH.
860
861Version 0.96:
862
863Fix support for platforms with lib64.
864
865Version 0.95:
866
867libebl: add ppc and ppc64 support
868
869readelf: fix minimal memory leak.
870
871Add support to compile with mudflap.
872
873Modernize configure.ac. Move scripts in config subdir.
874
875Modernize *-po directory infrastructure.
876
877libelf: Add gelf_getlib and gelf_update_lib
878
879readelf: print liblist sections
880
881Version 0.94:
882
883Fix some minimal build problems.
884
885Version 0.93:
886
887ibdw: tons of new functionality and bug fixes. Several interface changes.
888
889readelf: use libdw now.
890
891libdwarf: removed completely.
892
893Version 0.92:
894
895configuration changes.
896
897Version 0.91:
898
899libdw: fix memory handling. Implement source line handling.
900nm: use libdw instead of libdwarf.
901libelf: change to GPL from OSL1 for now.
902
903Version 0.90:
904
905libebl: Recognize a few more section types and dynamic tags and return
906approriate strings.
907
908Version 0.89:
909
910strip: fix overwriting of symbol table in input file.
911
912Version 0.88:
913
914libebl: Add some ia64 bits.
915
916Version 0.87:
917
918Bug fixes for big endian and some 64-bit machines.
919
920Version 0.86:
921
922strip: fix handling of Alpha and s390x which use incorrect hash bucket sizes.
923
924ld: tons of changes, moving towards usability.
925
926Version 0.85:
927
928strip: update section group symbol index if the associated symbol table changed
929
930libelf: fix two problems with generating output not via mmap
931
932elflint: add probably 10-15 more tests
933libebl: add support for some of the new tests
934
935ld: gazillion changes
936
937Version 0.84:
938
939elflint: deal with .rel.dyn section. Fix a problem with rela platforms.
940Handle PT_GNU_STACK. Change to write messages to stdout.
941
942readelf: fix a problem with version information in the symbol table output.
943
944strip: update all version symbol table entries
945
946Version 0.83:
947
948size: fix a warning
949
950strip: last changed caused problems when the symbol table is before the
951relocation section. Fixed. This fix also improved the asymptotic
952behavior if many symbol table sections are present.
953
954Version 0.82:
955
956Run strip tests with the correct libelf and libebl.
957
958libelf: fix bug in verneed byte order changing code.
959
960Version 0.81:
961
962strip: Remove unused symbol table entries. This might require updating
963various other sections.
964
965Version 0.80:
966
967Fix some libelf problems with ET_REL files.
968
969Version 0.79:
970
971More warning changes, mainly by jbj.
972
973libdw: yet more new code. dwarf_child and dwarf_sibling should now actually
974work.
975
976Version 0.78:
977
978libdw: 10+ new functions. get-pubnames2 works now fully. Almost all the
979code needed for nm is in place.
980
981Version 0.77:
982
983cleanups to compile cleanly with gcc 3.3 and -Werror.
984
985libdw: some new code.
986
987Version 0.76:
988
989libebl: Fix last patch to recognize relocation sections. We must not
990use the name.
991
992Version 0.75:
993
994libebl: .debug_ranges is a DWARF 3 debug section
995libebl: recognize relocation sections for debug section
996Patches by Jakub Jelinek.
997
998Version 0.74:
999
1000Cleanups and more SPARC support by Tom Callaway <tcallaway@redhat.com>.
1001
1002Version 0.73:
1003
100464-bit cleanups for the programs.
1005
1006Version 0.72:
1007
1008libelf: and yet more fun with endian tranformation at output time.
1009
1010Version 0.71:
1011
1012libelf: more fun with endian tranformation at output time. Add test for it.
1013
1014Version 0.70:
1015
1016libelf: Two little bugs left from previous patch to handle section output
1017order.
1018
1019libelf: add unlikely in some more places.
1020
1021Version 0.69:
1022
1023libelf: fix output routines to handle case where section indeces and
1024ordre in the output file don't match correctly. Patch by Jakub.
1025
1026elflint: fix test of note section content for 64-bit platforms and files
1027with different byte order.
1028
1029Version 0.68:
1030
1031libebl: Fix SH_ENTSIZE_HASH definition (patch by Jakub)
1032
1033Version 0.67:
1034
1035libelf: correct mistake in error string handling.
1036
1037libelf: Implement ELF_F_PERMISSIVE.
1038strip: Implement --permissive option.
1039
1040Version 0.66:
1041
1042strip: Implement -g option.
1043
1044libelf: Handle broken hash table entry sizes.
1045
1046libebl: New function ebl_debugscn_p. Use it where appropriate.
1047
1048Version 0.65:
1049
1050libelf: Use correct file size for NOBITS section with ELF_F_LAYOUT set
1051
1052Version 0.64:
1053
1054libelf: Make error handling more robust.
1055libelf: Use TLS in error handler if configured with --enable-tls
1056
1057tests: input files are now distributed, not uuencoded in the shell scripts
1058
1059libdw: implement error handling, dwarf_get_pubnames
1060
1061Version 0.63:
1062
1063Build (incomplete) libdw.
1064
1065Version 0.62:
1066
1067Get rid of libtool.
1068
1069Version 0.61:
1070
1071Fix URL of OSL.
1072
1073Version 0.60:
1074
1075libebl: Handle .gnu.warning.* sections correctly.
1076
1077size: Implement -t option.
1078
1079libebl: Add IA-64 support.
1080libebl: Update SH relocations.
1081libebl: Add Alpha support.
1082libebl: Add Arm support.
1083libebl: Add support for all currently known architecture to the loader.
1084
1085Version 0.59:
1086
1087nm: Implement -S option. Correct portable output format. Implement -s option.
1088
1089libelf: Take offset of archive into account in elf_rand.
1090
1091Version 0.58:
1092
1093strip: fix handling of ET_REL files.
1094Add tests for strip.
1095
1096Version 0.57:
1097
1098strip: respect layout of input file
1099
1100Version 0.56:
1101
1102strip: handle files with large number of sections.
1103
1104Version 0.55:
1105
1106libelf: quite a few bug fixes by Alex Larsson.
1107
1108strip: implement -f option to place stripped sections into a separate
1109file. By Alex Larsson.
1110
1111Version 0.54:
1112
1113strip: don't let STT_SECTION symbols keeps sections from being removed
1114
1115elflint: local symbols are allowed in .dynsym
1116elflint: special case .rel.dyn a bit
1117
1118Version 0.53:
1119
1120elflint: check types and flags of special sections defined in gABI
1121
1122libebl: add x86-64 support
1123
1124Version 0.52:
1125
1126Start improvement of debug info handling in nm.
1127
1128libasm: implement asm_adduleb128 and asm_addsleb128 and a test for them
1129
1130Version 0.51:
1131
1132Fix build on 64-bit platforms.
1133
1134Version 0.50:
1135
1136nm: print file/line number also for local symbols
1137
1138use versions scripts not libtool's useless -export-symbols option
1139
1140Version 0.49:
1141
1142Update to autoconf 2.54 and automake 1.7.
1143
1144elflint: check note sections
1145
1146libdwarf: a number of bug fixes
1147
1148readelf: print .debug_info section content
1149
1150dwarf.h: Update from draft 7
1151
1152Version 0.48:
1153
1154libcpu: beginning
1155
1156libelf: new function to read parts of the ELF file
1157
1158libebl: support for note section handling
1159
1160readelf: dump note sections
1161
1162Version 0.47:
1163
1164libelf: fix little new section-handling related bugs in elf_getshstrndx
1165and elf_nextscn
1166
1167elflint: tests for mandatory content of dynamic section
1168
1169libasm: better handling of absolute symbols
1170
1171Version 0.46:
1172
1173libasm: rewrite to store Elf_Scn* instead of indices
1174
1175nm: finish many-section support
1176
1177nm: use debug in to print file/line info in sysv format
1178
1179libdwarf: fix a few bugs in DIE handling
1180
1181Version 0.45:
1182
1183libelf: major rewrite to keep Elf_Scn references valid until elf_end
1184
1185Version 0.44:
1186
1187libasm: Add support for bss, ABS, and COM sections.
1188
1189libebl: ebl_section_name takes now two index arguments to distinguish
1190between special sections and extended sections
1191
1192Version 0.43:
1193
1194General: fix a few problem gcc 3.1 had with the code.
1195
1196libelf: implement {gelf,elf32,elf64}_checksum
1197
1198libelf: optimze DSO: fewer relocations, fewer PLTs
1199
1200add msg_tst test
1201
1202ld: use correct section header string table index; write correct index
1203
1204add dependencies for *.sym files
1205
1206Version 0.42:
1207
1208libelf: add elf_getshnum and elf_getshstrndx
1209
1210libebl: update section type name function
1211
1212elflint: tons of fixes wrt large number of sections. New tests in this area.
1213Same amount of other bug fixes.
1214
1215size, strip, nm: better support for large number of sections. Including
1216using correct section header string table
1217
1218libasm: correctly create data structures for large number of sections
1219
1220new tests asm-tst4 and asm-tst5 to check large number of sections
1221
1222libasm: implement section group generation
1223
1224elflint: more tests on section groups. Improve performance on existing
1225section group tests
1226
1227Version 0.41:
1228
1229ld: add undefined symbols to dynamic symbol table if --export-dynamic is
1230not given
1231
1232ld: fix value of e_entry
1233
1234Version 0.40:
1235
1236elflint: print section names in error messages
1237
1238elflint: mustn't warn about multiple DT_NULL
1239
1240ld: don't emit all symbols if --export-dynamic is not given
1241
1242ld: correct compute symbol address in output file (section index was off by 1)
1243
1244ld: generate correct version info in dynsym without --export-dynamic and
1245in symtab
1246
1247Version 0.39:
1248
1249Fix check of various e_*size entries in elflint.
1250
1251Handle text output in asm_newsym.
1252
1253Finish checks in asm-tst3.
1254
1255Version 0.38:
1256
1257Update to autoconf 2.53, automake 1.6, gettext 0.11+.
1258
1259Introduce *.sym files to restrict export from DSOs.
1260
1261Use attribute_hidden and internal_function to optimize DSO code.
1262
1263Add TLS definitions in elf.h and handle them in readelf.
1264
1265Fix bug in verdef section generation in ld.
1266
1267Add initial libasm code.
1268
1269Version 0.37:
1270
1271Implement better hash size optimization heuristic in ld. It uses a formula
1272taking number of tests into account.
1273
1274Lots of small bug fixes.
1275
1276Improve readelf output format. Respect various sh_link/sh_info values.
1277Correctly print versioning information for symbol tables.
1278
1279Version 0.36:
1280
1281Implement preprocessing of linker script. Recognize -z combreloc.
1282
1283Version 0.35:
1284
1285Implement -z ignore|record for ld.
1286
1287Implement creating of .gnu.version_r and .gnu.version sections. The
1288.gnu.version does not yet contain correct info for defined and versioned
1289symbols (means .gnu.version_d is not yet implemented).
1290
1291Implement gelf_update_* functions to create versioning data.
1292
1293Version 0.34:
1294
1295Add DT_RUNPATH/DT_RPATH entries to dynamic section. Create .plt and
1296.rel.plt sections (completely). Add support for all four PLT related
1297dynamic section entries. Add callback function for PLT creation.
1298
1299More tests in elflint. Add support for very strict checking which for
1300now flags level 2 (deprecated features) usage.
1301
1302Version 0.33:
1303
1304Create dynamic symbol table, dynamic string table, and hash table to ld.
1305
1306Add hash table histogram support to readelf.
1307
1308Version 0.32:
1309
1310more work on elflint
1311
1312ld now creates the dynamic section and references it. Start adding entries
1313to dynamic section.
1314
1315Version 0.31:
1316
1317Start implementing elflint.
1318
1319Version 0.30:
1320
1321Fix handling of NOBITS sections in elf_getdata.
1322
1323Start implementing generation of executables and DSOs in ld.
1324Generation of program header mostly done. Address computation done.
1325Extension of linker script syntax.
1326
1327Various cleanups.
1328
1329Implement section group handling in readelf.
1330
1331Version 0.29:
1332
1333Implement section groups. This involved a lot of code moving. The
1334new code is entirely untested since gas/gcc are currently not able to
1335create section groups. ld works fine on files without section groups.
1336
1337Version 0.28:
1338
1339Fix problem with adding more section in elf_newscn. The section pointers
1340for the data buffers wasn't adjusted.
1341
1342Fix elf_getdata with nonzero second parameter. Correctly handle creation
1343of internal data buffer for machines without unaligned access.
1344
1345Version 0.27:
1346
1347Start adding support to selectively add sections. Includes support for
1348section groups.
1349Add --gc-sections/--no-gc-sections options.
1350Add general section merging support.
1351
1352Fix a bug in section group support in strip.
1353
1354Fix some potential problems with hash value in dynamic hash implementation.
1355
1356Version 0.26:
1357
1358section merging works in ld.
1359
1360Version 0.25:
1361
1362Actually create data structures from version map file and use it to hide
1363symbols in ld.
1364
1365Implement -s -s for ld.
1366
1367Version 0.24:
1368
1369Improve relocation table output in readelf. Avoid some crashes.
1370Finish many section handling in readelf.
1371
1372Finish: finish implementation of ld -r. At least some simple tests pass.
1373
1374Version 0.23:
1375
1376Fix a number of errors in ELF_C_WRITE handling.
1377
1378Almost finished implementation of ld -r. The data sections are all copied.
1379Handling of symbol tables is missing.
1380
1381Version 0.22:
1382
1383Handle DSO and archive input files correctly if -r option is given.
1384
1385Gracefully deal with no phdr in new file in libelf.
1386Fix various small error handling problems.
1387Don't mmap file for output unless the command says so.
1388
1389Add code to create ELF section header table to ld finalize routines.
1390
1391Version 0.21:
1392
1393Fix some problems with recursive handling of archives in libelf.
1394
1395Improve messages printed by nm.
1396
1397Add symbol binding name handling to libebl. Fix section name handling in
1398libebl.
1399
1400readelf and nm use more libebl functions.
1401
1402Handle XINDEX correctly in nm and string.
1403
1404Add first machine ld backend library (i386).
1405Use it. Recognize -r and --shared. Avoid using -lxxx parameters for -r.
1406Create ELF header in output file. Change mode of output file according to
1407output file type. Reorganize callback initialization in ld.
1408
1409Version 0.20:
1410
1411Fix some memory leaks in libelf.
1412
1413Version 0.19:
1414
1415Implement reading version script. Both inside linker scripts and via the
1416--version-script command line parameter. Uses the same code.
1417What remains to be done is to implement a data structure which allows
1418efficient matching against the version names to decide which pattern
1419matches.
1420
1421Beginning of output generation and output writing functions.
1422
1423Version 0.18:
1424
1425Finish implementation for DSO input file handling. Implement rpath, runpath,
1426and LD_LIBRARY_PATH handling.
1427
1428Version 0.17:
1429
1430make handling of e_shnum overflow in libelf standard conforming
1431
1432ld now actually can handle DSOs in linker scripts. Handling of DT_RUNPATH,
1433DT_RPATH, -rpath, -rpath-link still remains to be implemented.
1434
1435fix handling of -L parameters. Make actual use of the default_paths element.
1436
1437make re-definition of symbols in and from DSO compatible with existing linker
1438
1439Version 0.16:
1440
1441more work on assigning input sections to output sections.
1442
1443Add gelf_xlatetof and gelf_xlatetom which were accidently left out.
1444
1445Fix memory handling of section headers.
1446
1447Version 0.15:
1448
1449Add many-section support to ld. Add various new command line parameters.
1450Allow pagesize to be specified in linker script or on the command line.
1451Collect input sections in list for the output section according to the rules
1452specified in the linker script.
1453
1454Version 0.14:
1455
1456Fix some problems in the internal list handling which had the result
1457that we didn't look for some of the unresolved symbols.
1458
1459Free some memory if we know we don't need it anymore.
1460
1461Optimize the list of unresolved symbols. Throw out symbols which are
1462meanwhile resolved.
1463
1464Version 0.13:
1465
1466Got file reading correct now. The files are all read while parsing
1467the parameters. No creating of data structures to describe the linker
1468command line. The symbol table is built up while reading the files.
1469DSOs are handled now. -( -) handling is optimized.
1470
1471Version 0.12:
1472
1473Linker read linker scripts everywhere. Handles --whole-archive. Recognizes
1474--dynamic and --static. Collects defined and undefined symbols. Recognizes
1475conflicts.
1476
1477libebl now defines functions to call the callbacks. Add generic name handling
1478in these new functions. Remove the code from readelf and call the new
1479functions.
1480
1481Version 0.11:
1482
1483Start of linker. Basic argument parsing, finding of input files,
1484linker script reading.
1485
1486Version 0.10:
1487
1488Implement dwarf_get_fde_n(), dwarf_get_abbrev(), dwarf_get_abbrev_tag(),
1489dwarf_get_abbrev_code(), dwarf_get_abbrev_children_flag(),
1490dwarf_get_abbrev_entry(), dwarf_get_fde_at_pc(), and tests for it.
1491
1492Version 0.9:
1493
1494Implement dwarf_get_fde_list_eh(), dwarf_get_cie_of_fde(),
1495dwarf_get_fde_range(), dwarf_get_cie_info(), dwarf_get_fde_instr_bytes(),
1496and tests for them.
1497
1498Version 0.8:
1499
1500Make handling of binaries in other byte order work and add tests for it.
1501
1502Version 0.7:
1503
1504Implement dwarf_get_aranges(), dwarf_get_arange(), dwarf_get_cu_die_offset(),
1505dwarf_get_arange_info(), and tests for them.
1506
1507Version 0.6:
1508
1509Implement dwarf_get_global(), dwarf_globname(), dwarf_global_die_offset(),
1510dwarf_global_cu_offset(), dwarf_global_name_offsets(), and tests for them
1511
1512Version 0.5:
1513
1514Implemented dwarf_srclines(), dwarf_srcfiles(), dwarf_linebeginstatement(),
1515dwarf_lineendsequence(), dwarf_lineno(), dwarf_lineaddr(), dwarf_lineoff(),
1516dwarf_linesrc(), dwarf_lineblock(), dwarf_lineprologueend(),
1517dwarf_lineepiloguebegin(), and tests for them.
1518
1519Version 0.4:
1520
1521Implemented dwarf_loclist().
1522
1523Version 0.3:
1524
1525Implemented dwarf_dieoffset(), dwarf_die_CU_offset(), dwarf_diename() and
1526tests.
1527
1528Implemented dwarf_attrlist(), dwarf_hasattr(), dwarf_attr(), dwarf_lowpc(),
1529dwarf_highpc(), dwarf_bytesize(), dwarf_bitsize(), dwarf_bitoffset(),
1530dwarf_srclang(), dwarf_arrayorder(), dwarf_hasform(), dwarf_whatform(),
1531dwarf_whatattr(), dwarf_formref(), dwarf_global_formref(), dwarf_formaddr(),
1532dwarf_formflag(), dwarf_formudata(), dwarf_formsdata(), dwarf_formblock,
1533dwarf_formstring() and tests for them.
1534
1535Version 0.2:
1536
1537Implemented dwarf_offdie()), dwarf_tag(), dwarf_dieoffset(),
1538dwarf_die_CU_offset(), dwarf_diename() and tests for them.
1539
1540Version 0.1:
1541
1542First libdwarf functions work.
1543
1544Version 0.0:
1545
1546libelf and parts of libebl are done.