1Version 0.165
2
3elfcompress: New utility to compress or decompress ELF sections.
4
5readelf: Add -z,--decompress option.
6
7libelf: Add elf_compress, elf_compress_gnu, elf32_getchdr, elf64_getchdr
8        and gelf_getchdr.
9
10libdwelf: New function dwelf_scn_gnu_compressed_size.
11
12config: Add libelf and libdw pkg-config files.
13
14backends: sparc support for core and live backtraces.
15
16translations: Updated Polish translation.
17
18Version 0.164
19
20strip, unstrip: Handle ELF files with merged strtab/shstrtab tables.
21                Handle missing SHF_INFO_LINK section flags.
22
23libelf: Use int64_t for offsets in libelf.h instead of loff_t.
24
25libdw: dwarf.h Add preliminary DWARF5 DW_LANG_Haskell.
26
27libdwfl: dwfl_standard_find_debuginfo now searches any subdir of the binary
28         path under the debuginfo root when the separate debug file couldn't
29         be found by build-id.
30         dwfl_linux_proc_attach can now be called before any Dwfl_Modules
31         have been reported.
32
33backends: Better sparc and sparc64 support.
34
35translations: Updated Ukrainian translation.
36
37Provide default-yama-scope subpackage.
38
39Version 0.163
40
41Bug fixes only, no new features.
42
43Version 0.162
44
45libdw: Install new header elfutils/known-dwarf.h.
46       dwarf.h Add preliminary DWARF5 constants DW_TAG_atomic_type,
47       DW_LANG_Fortran03, DW_LANG_Fortran08. dwarf_peel_type now also
48       handles DW_TAG_atomic_type.
49
50addr2line: Input addresses are now always interpreted as hexadecimal
51           numbers, never as octal or decimal numbers.
52           New option -a, --addresses to print address before each entry.
53           New option -C, --demangle to show demangled symbols.
54           New option --pretty-print to print all information on one line.
55
56ar: CVE-2014-9447 Directory traversal vulnerability in ar extraction.
57
58backends: x32 support.
59
60Version 0.161
61
62libdw: New function dwarf_peel_type. dwarf_aggregate_size now uses
63       dwarf_peel_type to also provide the sizes of qualified types.
64       dwarf_getmacros will now serve either of .debug_macro and
65       .debug_macinfo transparently.  New interfaces
66       dwarf_getmacros_off, dwarf_macro_getsrcfiles,
67       dwarf_macro_getparamcnt, and dwarf_macro_param are available
68       for more generalized inspection of macros and their parameters.
69       dwarf.h: Add DW_AT_GNU_deleted, DW_AT_noreturn, DW_LANG_C11,
70       DW_LANG_C_plus_plus_11 and DW_LANG_C_plus_plus_14.
71
72Version 0.160
73
74libdw: New functions dwarf_cu_getdwarf, dwarf_cu_die.
75       dwarf.h remove non-existing DW_TAG_mutable_type.
76
77libdwfl: Handle LZMA .ko.xz compressed kernel modules.
78
79unstrip: New option -F, --force to combining files even if some ELF headers
80         don't seem to match.
81
82backends: Handle ARM THUMB functions. Add support for ppc64le ELFv2 abi.
83
84Version 0.159
85
86stack: New option -d, --debugname to lookup DWARF debuginfo name for frame.
87       New option -i, --inlines to show inlined frames using DWARF debuginfo.
88
89libdwelf: New libdwelf.h header for libdw.so DWARF ELF Low-level Functions.
90          New function dwelf_elf_gnu_debuglink, dwelf_dwarf_gnu_debugaltlink,
91	  and dwelf_elf_gnu_build_id.
92
93libdw: Support for DWZ multifile forms DW_FORM_GNU_ref_alt and
94       DW_FORM_GNU_strp_alt is now enabled by default and no longer
95       experimental. Added new functions dwarf_getalt and dwarf_setalt
96       to get or set the alternative debug file used for the alt FORMs.
97       The dwfl_linux_proc_find_elf callback will now find ELF from
98       process memory for (deleted) files if the Dwfl has process state
99       attached.
100
101libdwfl: The dwfl_build_id_find_debuginfo and dwfl_standard_find_debuginfo
102         functions will now try to resolve and set the alternative debug file.
103
104backends: Add CFI unwinding for arm. Relies on .debug_frame.
105          Add arm process initial register state compatible mode to AARCH64.
106          Add aarch64 native and core unwind support.
107
108other: All separate elfutils-robustify patches have been merged.
109       CVE-2014-0172 Check overflow before calling malloc to uncompress data.
110
111Version 0.158
112
113libdwfl: dwfl_core_file_report has new parameter executable.
114         New functions dwfl_module_getsymtab_first_global,
115         dwfl_module_getsym_info and dwfl_module_addrinfo.
116         Added unwinder with type Dwfl_Thread_Callbacks, opaque types
117         Dwfl_Thread and Dwfl_Frame and functions dwfl_attach_state,
118         dwfl_pid, dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
119         dwfl_thread_state_registers, dwfl_thread_state_register_pc,
120         dwfl_getthread_frames, dwfl_getthreads, dwfl_thread_getframes
121         and dwfl_frame_pc.
122
123addr2line: New option -x to show the section an address was found in.
124
125stack: New utility that uses the new unwinder for processes and cores.
126
127backends: Unwinder support for i386, x86_64, s390, s390x, ppc and ppc64.
128          aarch64 support.
129
130Version 0.157
131
132libdw: Add new functions dwarf_getlocations, dwarf_getlocation_attr
133       and dwarf_getlocation_die.
134
135readelf: Show contents of NT_SIGINFO and NT_FILE core notes.
136
137addr2line: Support -i, --inlines output option.
138
139backends: abi_cfi hook for arm, ppc and s390.
140
141Version 0.156
142
143lib: New macro COMPAT_VERSION_NEWPROTO.
144
145libdw: Handle GNU extension opcodes in dwarf_getlocation.
146
147libdwfl: Fix STB_GLOBAL over STB_WEAK preference in dwfl_module_addrsym.
148         Add minisymtab support.
149         Add parameter add_p_vaddr to dwfl_report_elf.
150         Use DT_DEBUG library search first.
151
152libebl: Handle new core note types in EBL.
153
154backends: Interpret NT_ARM_VFP.
155          Implement core file registers parsing for s390/s390x.
156
157readelf: Add --elf-section input option to inspect an embedded ELF file.
158         Add -U, --unresolved-address-offsets output control.
159         Add --debug-dump=decodedline support.
160         Accept version 8 .gdb_index section format.
161         Adjust output formatting width.
162         When highpc is in constant form print it also as address.
163         Display raw .debug_aranges. Use libdw only for decodedaranges.
164
165elflint: Add __bss_start__ to the list of allowed symbols.
166
167tests: Add configure --enable-valgrind option to run all tests under valgrind.
168       Enable automake parallel-tests for make check.
169
170translations: Updated Polish translation.
171
172Updates for Automake 1.13.
173
174Version 0.155
175
176libelf: elf*_xlatetomd now works for cross-endian ELF note data.
177        elf_getshdr now works consistently on non-mmaped ELF files after
178        calling elf_cntl(ELF_C_FDREAD).
179        Implement support for ar archives with 64-bit symbol table.
180
181libdw: dwarf.h corrected the DW_LANG_ObjC constant name (was DW_LANG_Objc).
182       Any existing sources using the old name will have to be updated.
183       Add DW_MACRO_GNU .debug_macro type encodings constants, DW_ATE_UTF
184       and DW_OP_GNU_parameter_ref to dwarf.h.
185       Experimental support for DWZ multifile forms DW_FORM_GNU_ref_alt
186       and DW_FORM_GNU_strp_alt.  Disabled by default.  Use configure
187       --enable-dwz to test it.
188
189readelf: Add .debug_macro parsing support.
190         Add .gdb_index version 7 parsing support.
191         Recognize DW_OP_GNU_parameter_ref.
192
193backends: Add support for Tilera TILE-Gx processor.
194
195translations: Updated Ukrainian translation.
196
197Version 0.154
198
199libelf: [g]elf[32|64]_offscn() do not match SHT_NOBITS sections at OFFSET.
200
201libdw: dwarf_highpc function now handles DWARF 4 DW_AT_high_pc constant form.
202       Fix bug using dwarf_next_unit to iterate over .debug_types.
203
204elflint: Now accepts gold linker produced executables.
205
206The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone
207programs. There is now also a formal CONTRIBUTING document describing how to
208submit patches.
209
210Version 0.153
211
212libdw: Support reading .zdebug_* DWARF sections compressed via zlib.
213
214libdwfl: Speed up dwfl_module_addrsym.
215
216nm: Support C++ demangling.
217
218ar: Support D modifier for "deterministic output" with no uid/gid/mtime info.
219    The U modifier is the inverse.
220    elfutils can be configured with the --enable-deterministic-archives
221    option to make the D behavior the default when U is not specified.
222
223ranlib: Support -D and -U flags with same meaning.
224
225readelf: Improve output of -wline. Add support for printing SDT elf notes.
226         Add printing of .gdb_index section.
227	 Support for typed DWARF stack, call_site and entry_value.
228
229strip: Add --reloc-debug-sections option.
230       Improved SHT_GROUP sections handling.
231
232Version 0.152
233
234Various build and warning nits fixed for newest GCC and Autoconf.
235
236libdwfl: Yet another prelink-related fix for another regression.
237	 Look for Linux kernel images in files named with compression suffixes.
238
239elfcmp: New flag --ignore-build-id to ignore differing build ID bits.
240	New flag -l/--verbose to print all differences.
241
242Version 0.151
243
244libdwfl: Fix for more prelink cases with separate debug file.
245
246strip: New flag --strip-sections to remove section headers entirely.
247
248Version 0.150
249
250libdw: Fix for handling huge .debug_aranges section.
251
252libdwfl: Fix for handling prelinked DSO with separate debug file.
253
254findtextrel: Fix diagnostics to work with usual section ordering.
255
256libebl: i386 backend fix for multi-register integer return value location.
257
258Version 0.149:
259
260libdw: Decode new DW_OP_GNU_implicit_pointer operation;
261       new function dwarf_getlocation_implicit_pointer.
262
263libdwfl: New function dwfl_dwarf_line.
264
265addr2line: New flag -F/--flags to print more DWARF line information details.
266
267strip: -g recognizes .gdb_index as a debugging section.
268
269Version 0.148:
270
271libdw: Accept DWARF 4 format: new functions dwarf_next_unit, dwarf_offdie_types.
272       New functions dwarf_lineisa, dwarf_linediscriminator, dwarf_lineop_index.
273
274libdwfl: Fixes in core-file handling, support cores from PIEs.
275	 When working from build IDs, don't open a named file that mismatches.
276
277readelf: Handle DWARF 4 formats.
278
279Version 0.147:
280
281libdw: Fixes in CFI handling, best possible handling of bogus CFA ops.
282
283libdwfl: Ignore R_*_NONE relocs, works around old (binutils) ld -r bugs.
284
285Version 0.146:
286
287libdwfl: New function dwfl_core_file_report.
288
289Version 0.145:
290
291Fix build with --disable-dependency-tracking.
292
293Fix build with most recent glibc headers.
294
295libelf: More robust to bogus section headers.
296
297libdw: Fix CFI decoding.
298
299libdwfl: Fix address bias returned by CFI accessors.
300	 Fix core file module layout identification.
301
302readelf: Fix CFI decoding.
303
304Version 0.144:
305
306libelf: New function elf_getphdrnum.
307	Now support using more than 65536 program headers in a file.
308
309libdw: New function dwarf_aggregate_size for computing (constant) type
310       sizes, including array_type cases with nontrivial calculation.
311
312readelf: Don't give errors for missing info under -a.
313	 Handle Linux "VMCOREINFO" notes under -n.
314
315Version 0.143:
316
317libdw: Various convenience functions for individual attributes now use
318       dwarf_attr_integrate to look up indirect inherited attributes.
319       Location expression handling now supports DW_OP_implicit_value.
320
321libdwfl: Support automatic decompression of files in XZ format,
322	 and of Linux kernel images made with bzip2 or LZMA (as well as gzip).
323
324Version 0.142:
325
326libelf: Add elf_getshdrnum alias for elf_getshnum and elf_getshdrstrndx alias
327	for elf_getshstrndx and deprecate original names.  Sun screwed up
328	their implementation and asked for a solution.
329
330libebl: Add support for STB_GNU_UNIQUE.
331
332elflint: Add support for STB_GNU_UNIQUE.
333
334readelf: Add -N option, speeds up DWARF printing without address->name lookups.
335
336libdw: Add support for decoding DWARF CFI into location description form.
337       Handle some new DWARF 3 expression operations previously omitted.
338       Basic handling of some new encodings slated for DWARF 4.
339
340Version 0.141:
341
342libebl: sparc backend fixes;
343	some more arm backend support
344
345libdwfl: fix dwfl_module_build_id for prelinked DSO case;
346	 fixes in core file support;
347	 dwfl_module_getsym interface improved for non-address symbols
348
349strip: fix infinite loop on strange inputs with -f
350
351addr2line: take -j/--section=NAME option for binutils compatibility
352	   (same effect as '(NAME)0x123' syntax already supported)
353
354Version 0.140:
355
356libelf: Fix regression in creation of section header
357
358libdwfl: Less strict behavior if DWARF reader ist just used to display data
359
360Version 0.139:
361
362libcpu: Add Intel SSE4 disassembler support
363
364readelf: Implement call frame information and exception handling dumping.
365	 Add -e option.  Enable it implicitly for -a.
366
367elflint: Check PT_GNU_EH_FRAME program header entry.
368
369libdwfl: Support automatic gzip/bzip2 decompression of ELF files.
370
371Version 0.138:
372
373Install <elfutils/version.h> header file for applications to use in source
374version compatibility checks.
375
376libebl: backend fixes for i386 TLS relocs; backend support for NT_386_IOPERM
377
378libcpu: disassembler fixes
379
380libdwfl: bug fixes
381
382libelf: bug fixes
383
384nm: bug fixes for handling corrupt input files
385
386Version 0.137:
387
388Minor fixes for unreleased 0.136 release.
389
390Version 0.136:
391
392libdwfl: bug fixes; new "segment" interfaces;
393	 all the libdwfl-based tools now support --core=COREFILE option
394
395Version 0.135:
396
397libdwfl: bug fixes
398
399strip: changed handling of ET_REL files wrt symbol tables and relocs
400
401Version 0.134:
402
403elflint: backend improvements for sparc, alpha
404
405libdwfl, libelf: bug fixes
406
407Version 0.133:
408
409readelf, elflint, libebl: SHT_GNU_ATTRIBUTE section handling (readelf -A)
410
411readelf: core note handling for NT_386_TLS, NT_PPC_SPE, Alpha NT_AUXV
412
413libdwfl: bug fixes and optimization in relocation handling
414
415elfcmp: bug fix for non-allocated section handling
416
417ld: implement newer features of binutils linker.
418
419Version 0.132:
420
421libcpu: Implement x86 and x86-64 disassembler.
422libasm: Add interface for disassembler.
423
424all programs: add debugging of branch prediction.
425
426libelf: new function elf_scnshndx.
427
428Version 0.131:
429
430libdw: DW_FORM_ref_addr support; dwarf_formref entry point now deprecated;
431       bug fixes for oddly-formatted DWARF
432
433libdwfl: bug fixes in offline archive support, symbol table handling;
434	 apply partial relocations for dwfl_module_address_section on ET_REL
435
436libebl: powerpc backend support for Altivec registers
437
438Version 0.130:
439
440readelf: -p option can take an argument like -x for one section,
441	 or no argument (as before) for all SHF_STRINGS sections;
442	 new option --archive-index (or -c);
443	 improved -n output for core files, on many machines
444
445libelf: new function elf_getdata_rawchunk, replaces gelf_rawchunk;
446	new functions gelf_getnote, gelf_getauxv, gelf_update_auxv
447
448readelf, elflint: handle SHT_NOTE sections without requiring phdrs
449
450elflint: stricter checks on debug sections
451
452libdwfl: new functions dwfl_build_id_find_elf, dwfl_build_id_find_debuginfo,
453	 dwfl_module_build_id, dwfl_module_report_build_id;
454	 support dynamic symbol tables found via phdrs;
455	 dwfl_standard_find_debuginfo now uses build IDs when available
456
457unstrip: new option --list (or -n)
458
459libebl: backend improvements for sparc, alpha, powerpc
460
461Version 0.129:
462
463readelf: new options --hex-dump (or -x), --strings (or -p)
464
465addr2line: new option --symbols (or -S)
466
467Version 0.128:
468
469new program: unstrip
470
471elfcmp: new option --hash-inexact
472
473Version 0.127:
474
475libdw: new function dwarf_getsrcdirs
476
477libdwfl: new functions dwfl_module_addrsym, dwfl_report_begin_add,
478	 dwfl_module_address_section
479
480Version 0.126:
481
482new program: ar
483
484Version 0.125:
485
486elflint: Compare DT_GNU_HASH tests.
487
488move archives into -static RPMs
489
490libelf, elflint: better support for core file handling
491
492Version 0.124:
493
494libebl: sparc backend support for return value location
495
496libebl, libdwfl: backend register name support extended with more info
497
498libelf, libdw: bug fixes for unaligned accesses on machines that care
499
500readelf, elflint: trivial bugs fixed
501
502Version 0.123:
503
504libebl: Backend build fixes, thanks to Stepan Kasal.
505
506libebl: ia64 backend support for register names, return value location
507
508libdwfl: Handle truncated linux kernel module section names.
509
510libdwfl: Look for linux kernel "vmlinux" files with ".debug" suffix.
511
512elflint: Fix checks to permit --hash-style=gnu format.
513
514Version 0.122:
515
516libebl: add function to test for relative relocation
517
518elflint: fix and extend DT_RELCOUNT/DT_RELACOUNT checks
519
520elflint, readelf: add support for DT_GNU_HASH
521libelf: add elf_gnu_hash
522
523elflint, readelf: add support for 64-bit SysV-style hash tables
524
525libdwfl: new functions dwfl_module_getsymtab, dwfl_module_getsym.
526
527Version 0.121:
528
529libelf: bug fixes for rewriting existing files when using mmap.
530
531make all installed headers usable in C++ code.
532
533readelf: better output format.
534
535elflint: fix tests of dynamic section content.
536
537ld: Implement --as-needed, --execstack, PT_GNU_STACK.  Many small patches.
538
539libdw, libdwfl: handle files without aranges info.
540
541Version 0.120:
542
543Bug fixes.
544
545dwarf.h updated for DWARF 3.0 final specification.
546
547libdwfl: New function dwfl_version.
548
549The license is now GPL for most files.  The libelf, libebl, libdw,
550and libdwfl libraries have additional exceptions.  Add reference to
551OIN.
552
553Version 0.119:
554
555bug fixes
556
557Version 0.118:
558
559elflint: more tests.
560
561libdwfl: New function dwfl_module_register_names.
562
563libebl: New backend hook for register names.
564
565Version 0.117:
566
567libdwfl: New function dwfl_module_return_value_location.
568
569libebl: Backend improvements for several CPUs.
570
571Version 0.116:
572
573libdw: New functions dwarf_ranges, dwarf_entrypc, dwarf_diecu,
574       dwarf_entry_breakpoints.  Removed Dwarf_Func type and functions
575       dwarf_func_name, dwarf_func_lowpc, dwarf_func_highpc,
576       dwarf_func_entrypc, dwarf_func_die; dwarf_getfuncs callback now uses
577       Dwarf_Die, and dwarf_func_file, dwarf_func_line, dwarf_func_col
578       replaced by dwarf_decl_file, dwarf_decl_line, dwarf_decl_column;
579       dwarf_func_inline, dwarf_func_inline_instances now take Dwarf_Die.
580       Type Dwarf_Loc renamed to Dwarf_Op; dwarf_getloclist,
581       dwarf_addrloclists renamed dwarf_getlocation, dwarf_getlocation_addr.
582
583Version 0.115:
584
585libelf: speed-ups of non-mmap reading.
586
587strings: New program.
588
589Implement --enable-gcov option for configure.
590
591libdw: New function dwarf_getscopes_die.
592
593Version 0.114:
594
595libelf: new function elf_getaroff
596
597libdw: Added dwarf_func_die, dwarf_func_inline, dwarf_func_inline_instances.
598
599libdwfl: New functions dwfl_report_offline, dwfl_offline_section_address,
600	 dwfl_linux_kernel_report_offline.
601
602ranlib: new program
603
604Version 0.113:
605
606elflint: relax a bit. Allow version definitions for defined symbols against
607DSO versions also for symbols in nobits sections.  Allow .rodata section
608to have STRINGS and MERGE flag set.
609
610strip: add some more compatibility with binutils.
611
612Version 0.112:
613
614elfcmp: some more relaxation.
615
616elflint: many more tests, especially regarding to symbol versioning.
617
618libelf: Add elfXX_offscn and gelf_offscn.
619
620libasm: asm_begin interface changes.
621
622libebl: Add three new interfaces to directly access machine, class, and
623data encoding information.
624
625objdump: New program.  Just the beginning.
626
627Version 0.111:
628
629libdw: now contains all of libdwfl.  The latter is not installed anymore.
630
631elfcmp: little usability tweak, name and index of differing section is printed.
632
633Version 0.110:
634
635libelf: fix a number of problems with elf_update
636
637elfcmp: fix a few bugs.  Compare gaps.
638
639Fix a few PLT problems and mudflap build issues.
640
641libebl: Don't expose Ebl structure definition in libebl.h.  It's now private.
642
643Version 0.109:
644
645libebl: Check for matching modules.
646
647elflint: Check that copy relocations only happen for OBJECT or NOTYPE symbols.
648
649elfcmp: New program.
650
651libdwfl: New library.
652
653Version 0.108:
654
655strip: fix bug introduced in last change
656
657libdw: records returned by dwarf_getsrclines are now sorted by address
658
659Version 0.107:
660
661readelf: improve DWARF output format
662
663strip: support Linux kernel modules
664
665Version 0.106:
666
667libdw: Updated dwarf.h from DWARF3 spec
668libdw: add new funtions dwarf_func_entrypc, dwarf_func_file, dwarf_func_line,
669dwarf_func_col, dwarf_getsrc_file
670
671Version 0.105:
672
673addr2line: New program
674
675libdw: add new functions: dwarf_addrdie, dwarf_macro_*, dwarf_getfuncs,
676dwarf_func_*.
677
678findtextrel: use dwarf_addrdie
679
680Version 0.104:
681
682findtextrel: New program.
683
684Version 0.103:
685
686libdw: Fix using libdw.h with gcc < 4 and C++ code.  Compiler bug.
687
688Version 0.102:
689
690More Makefile and spec file cleanups.
691
692Version 0.101:
693
694Remove most gettext autoconf handling.
695
696Add more warnings
697
698Fix resulting problems.  One actual bug found and fixed this way
699
700Version 0.100:
701
702libebl: Fix x86-64 relocations.
703
704Add -Wunused -Wextra warnings.
705
706Some cleanups resulting from those additional warnings.
707
708Lots of Makefile cleanup.
709
710Version 0.99:
711
712libelf: add gelf_checksum prototype to <libelf.h>
713
714libelf: fix elf*_checksum handling of NOBITS sections
715
716Finish mudflap support.
717
718Fix three bugs found by mudflap.
719
720ld: add as_needed support
721
722Version 0.98:
723
724readelf: in section to segment mapping, indicate read-only sections.
725
726elflint: more relaxation for GNU ld
727
728Version 0.97:
729
730Fix compiling with gcc 4.0.
731Some tests called elflint without appropriate LD_LIBRARY_PATH.
732
733Version 0.96:
734
735Fix support for platforms with lib64.
736
737Version 0.95:
738
739libebl: add ppc and ppc64 support
740
741readelf: fix minimal memory leak.
742
743Add support to compile with mudflap.
744
745Modernize configure.ac.  Move scripts in config subdir.
746
747Modernize *-po directory infrastructure.
748
749libelf: Add gelf_getlib and gelf_update_lib
750
751readelf: print liblist sections
752
753Version 0.94:
754
755Fix some minimal build problems.
756
757Version 0.93:
758
759ibdw: tons of new functionality and bug fixes.  Several interface changes.
760
761readelf: use libdw now.
762
763libdwarf: removed completely.
764
765Version 0.92:
766
767configuration changes.
768
769Version 0.91:
770
771libdw: fix memory handling.  Implement source line handling.
772nm: use libdw instead of libdwarf.
773libelf: change to GPL from OSL1 for now.
774
775Version 0.90:
776
777libebl: Recognize a few more section types and dynamic tags and return
778approriate strings.
779
780Version 0.89:
781
782strip: fix overwriting of symbol table in input file.
783
784Version 0.88:
785
786libebl: Add some ia64 bits.
787
788Version 0.87:
789
790Bug fixes for big endian and some 64-bit machines.
791
792Version 0.86:
793
794strip: fix handling of Alpha and s390x which use incorrect hash bucket sizes.
795
796ld: tons of changes, moving towards usability.
797
798Version 0.85:
799
800strip: update section group symbol index if the associated symbol table changed
801
802libelf: fix two problems with generating output not via mmap
803
804elflint: add probably 10-15 more tests
805libebl: add support for some of the new tests
806
807ld: gazillion changes
808
809Version 0.84:
810
811elflint: deal with .rel.dyn section.  Fix a problem with rela platforms.
812Handle PT_GNU_STACK.  Change to write messages to stdout.
813
814readelf: fix a problem with version information in the symbol table output.
815
816strip: update all version symbol table entries
817
818Version 0.83:
819
820size: fix a warning
821
822strip: last changed caused problems when the symbol table is before the
823relocation section.  Fixed.  This fix also improved the asymptotic
824behavior if many symbol table sections are present.
825
826Version 0.82:
827
828Run strip tests with the correct libelf and libebl.
829
830libelf: fix bug in verneed byte order changing code.
831
832Version 0.81:
833
834strip: Remove unused symbol table entries.  This might require updating
835various other sections.
836
837Version 0.80:
838
839Fix some libelf problems with ET_REL files.
840
841Version 0.79:
842
843More warning changes, mainly by jbj.
844
845libdw: yet more new code.  dwarf_child and dwarf_sibling should now actually
846work.
847
848Version 0.78:
849
850libdw: 10+ new functions.  get-pubnames2 works now fully.  Almost all the
851code needed for nm is in place.
852
853Version 0.77:
854
855cleanups to compile cleanly with gcc 3.3 and -Werror.
856
857libdw: some new code.
858
859Version 0.76:
860
861libebl: Fix last patch to recognize relocation sections.   We must not
862use the name.
863
864Version 0.75:
865
866libebl: .debug_ranges is a DWARF 3 debug section
867libebl: recognize relocation sections for debug section
868Patches by Jakub Jelinek.
869
870Version 0.74:
871
872Cleanups and more SPARC support by Tom Callaway <tcallaway@redhat.com>.
873
874Version 0.73:
875
87664-bit cleanups for the programs.
877
878Version 0.72:
879
880libelf: and yet more fun with endian tranformation at output time.
881
882Version 0.71:
883
884libelf: more fun with endian tranformation at output time.  Add test for it.
885
886Version 0.70:
887
888libelf: Two little bugs left from previous patch to handle section output
889order.
890
891libelf: add unlikely in some more places.
892
893Version 0.69:
894
895libelf: fix output routines to handle case where section indeces and
896ordre in the output file don't match correctly.  Patch by Jakub.
897
898elflint: fix test of note section content for 64-bit platforms and files
899with different byte order.
900
901Version 0.68:
902
903libebl: Fix SH_ENTSIZE_HASH definition (patch by Jakub)
904
905Version 0.67:
906
907libelf: correct mistake in error string handling.
908
909libelf: Implement ELF_F_PERMISSIVE.
910strip: Implement --permissive option.
911
912Version 0.66:
913
914strip: Implement -g option.
915
916libelf: Handle broken hash table entry sizes.
917
918libebl: New function ebl_debugscn_p.  Use it where appropriate.
919
920Version 0.65:
921
922libelf: Use correct file size for NOBITS section with ELF_F_LAYOUT set
923
924Version 0.64:
925
926libelf: Make error handling more robust.
927libelf: Use TLS in error handler if configured with --enable-tls
928
929tests: input files are now distributed, not uuencoded in the shell scripts
930
931libdw: implement error handling, dwarf_get_pubnames
932
933Version 0.63:
934
935Build (incomplete) libdw.
936
937Version 0.62:
938
939Get rid of libtool.
940
941Version 0.61:
942
943Fix URL of OSL.
944
945Version 0.60:
946
947libebl: Handle .gnu.warning.* sections correctly.
948
949size: Implement -t option.
950
951libebl: Add IA-64 support.
952libebl: Update SH relocations.
953libebl: Add Alpha support.
954libebl: Add Arm support.
955libebl: Add support for all currently known architecture to the loader.
956
957Version 0.59:
958
959nm: Implement -S option.  Correct portable output format.  Implement -s option.
960
961libelf: Take offset of archive into account in elf_rand.
962
963Version 0.58:
964
965strip: fix handling of ET_REL files.
966Add tests for strip.
967
968Version 0.57:
969
970strip: respect layout of input file
971
972Version 0.56:
973
974strip: handle files with large number of sections.
975
976Version 0.55:
977
978libelf: quite a few bug fixes by Alex Larsson.
979
980strip: implement -f option to place stripped sections into a separate
981file.  By Alex Larsson.
982
983Version 0.54:
984
985strip: don't let STT_SECTION symbols keeps sections from being removed
986
987elflint: local symbols are allowed in .dynsym
988elflint: special case .rel.dyn a bit
989
990Version 0.53:
991
992elflint: check types and flags of special sections defined in gABI
993
994libebl: add x86-64 support
995
996Version 0.52:
997
998Start improvement of debug info handling in nm.
999
1000libasm: implement asm_adduleb128 and asm_addsleb128 and a test for them
1001
1002Version 0.51:
1003
1004Fix build on 64-bit platforms.
1005
1006Version 0.50:
1007
1008nm: print file/line number also for local symbols
1009
1010use versions scripts not libtool's useless -export-symbols option
1011
1012Version 0.49:
1013
1014Update to autoconf 2.54 and automake 1.7.
1015
1016elflint: check note sections
1017
1018libdwarf: a number of bug fixes
1019
1020readelf: print .debug_info section content
1021
1022dwarf.h: Update from draft 7
1023
1024Version 0.48:
1025
1026libcpu: beginning
1027
1028libelf: new function to read parts of the ELF file
1029
1030libebl: support for note section handling
1031
1032readelf: dump note sections
1033
1034Version 0.47:
1035
1036libelf: fix little new section-handling related bugs in elf_getshstrndx
1037and elf_nextscn
1038
1039elflint: tests for mandatory content of dynamic section
1040
1041libasm: better handling of absolute symbols
1042
1043Version 0.46:
1044
1045libasm: rewrite to store Elf_Scn* instead of indices
1046
1047nm: finish many-section support
1048
1049nm: use debug in to print file/line info in sysv format
1050
1051libdwarf: fix a few bugs in DIE handling
1052
1053Version 0.45:
1054
1055libelf: major rewrite to keep Elf_Scn references valid until elf_end
1056
1057Version 0.44:
1058
1059libasm: Add support for bss, ABS, and COM sections.
1060
1061libebl: ebl_section_name takes now two index arguments to distinguish
1062between special sections and extended sections
1063
1064Version 0.43:
1065
1066General: fix a few problem gcc 3.1 had with the code.
1067
1068libelf: implement {gelf,elf32,elf64}_checksum
1069
1070libelf: optimze DSO: fewer relocations, fewer PLTs
1071
1072add msg_tst test
1073
1074ld: use correct section header string table index; write correct index
1075
1076add dependencies for *.sym files
1077
1078Version 0.42:
1079
1080libelf: add elf_getshnum and elf_getshstrndx
1081
1082libebl: update section type name function
1083
1084elflint: tons of fixes wrt large number of sections.  New tests in this area.
1085Same amount of other bug fixes.
1086
1087size, strip, nm: better support for large number of sections.  Including
1088using correct section header string table
1089
1090libasm: correctly create data structures for large number of sections
1091
1092new tests asm-tst4 and asm-tst5 to check large number of sections
1093
1094libasm: implement section group generation
1095
1096elflint: more tests on section groups.  Improve performance on existing
1097section group tests
1098
1099Version 0.41:
1100
1101ld: add undefined symbols to dynamic symbol table if --export-dynamic is
1102not given
1103
1104ld: fix value of e_entry
1105
1106Version 0.40:
1107
1108elflint: print section names in error messages
1109
1110elflint: mustn't warn about multiple DT_NULL
1111
1112ld: don't emit all symbols if --export-dynamic is not given
1113
1114ld: correct compute symbol address in output file (section index was off by 1)
1115
1116ld: generate correct version info in dynsym without --export-dynamic and
1117in symtab
1118
1119Version 0.39:
1120
1121Fix check of various e_*size entries in elflint.
1122
1123Handle text output in asm_newsym.
1124
1125Finish checks in asm-tst3.
1126
1127Version 0.38:
1128
1129Update to autoconf 2.53, automake 1.6, gettext 0.11+.
1130
1131Introduce *.sym files to restrict export from DSOs.
1132
1133Use attribute_hidden and internal_function to optimize DSO code.
1134
1135Add TLS definitions in elf.h and handle them in readelf.
1136
1137Fix bug in verdef section generation in ld.
1138
1139Add initial libasm code.
1140
1141Version 0.37:
1142
1143Implement better hash size optimization heuristic in ld.  It uses a formula
1144taking number of tests into account.
1145
1146Lots of small bug fixes.
1147
1148Improve readelf output format.  Respect various sh_link/sh_info values.
1149Correctly print versioning information for symbol tables.
1150
1151Version 0.36:
1152
1153Implement preprocessing of linker script.  Recognize -z combreloc.
1154
1155Version 0.35:
1156
1157Implement -z ignore|record for ld.
1158
1159Implement creating of .gnu.version_r and .gnu.version sections.  The
1160.gnu.version does not yet contain correct info for defined and versioned
1161symbols (means .gnu.version_d is not yet implemented).
1162
1163Implement gelf_update_* functions to create versioning data.
1164
1165Version 0.34:
1166
1167Add DT_RUNPATH/DT_RPATH entries to dynamic section.  Create .plt and
1168.rel.plt sections (completely).  Add support for all four PLT related
1169dynamic section entries.  Add callback function for PLT creation.
1170
1171More tests in elflint.  Add support for very strict checking which for
1172now flags level 2 (deprecated features) usage.
1173
1174Version 0.33:
1175
1176Create dynamic symbol table, dynamic string table, and hash table to ld.
1177
1178Add hash table histogram support to readelf.
1179
1180Version 0.32:
1181
1182more work on elflint
1183
1184ld now creates the dynamic section and references it.  Start adding entries
1185to dynamic section.
1186
1187Version 0.31:
1188
1189Start implementing elflint.
1190
1191Version 0.30:
1192
1193Fix handling of NOBITS sections in elf_getdata.
1194
1195Start implementing generation of executables and DSOs in ld.
1196Generation of program header mostly done.  Address computation done.
1197Extension of linker script syntax.
1198
1199Various cleanups.
1200
1201Implement section group handling in readelf.
1202
1203Version 0.29:
1204
1205Implement section groups.  This involved a lot of code moving.  The
1206new code is entirely untested since gas/gcc are currently not able to
1207create section groups.  ld works fine on files without section groups.
1208
1209Version 0.28:
1210
1211Fix problem with adding more section in elf_newscn.  The section pointers
1212for the data buffers wasn't adjusted.
1213
1214Fix elf_getdata with nonzero second parameter.  Correctly handle creation
1215of internal data buffer for machines without unaligned access.
1216
1217Version 0.27:
1218
1219Start adding support to selectively add sections.  Includes support for
1220section groups.
1221Add --gc-sections/--no-gc-sections options.
1222Add general section merging support.
1223
1224Fix a bug in section group support in strip.
1225
1226Fix some potential problems with hash value in dynamic hash implementation.
1227
1228Version 0.26:
1229
1230section merging works in ld.
1231
1232Version 0.25:
1233
1234Actually create data structures from version map file and use it to hide
1235symbols in ld.
1236
1237Implement -s -s for ld.
1238
1239Version 0.24:
1240
1241Improve relocation table output in readelf.  Avoid some crashes.
1242Finish many section handling in readelf.
1243
1244Finish: finish implementation of ld -r.  At least some simple tests pass.
1245
1246Version 0.23:
1247
1248Fix a number of errors in ELF_C_WRITE handling.
1249
1250Almost finished implementation of ld -r.  The data sections are all copied.
1251Handling of symbol tables is missing.
1252
1253Version 0.22:
1254
1255Handle DSO and archive input files correctly if -r option is given.
1256
1257Gracefully deal with no phdr in new file in libelf.
1258Fix various small error handling problems.
1259Don't mmap file for output unless the command says so.
1260
1261Add code to create ELF section header table to ld finalize routines.
1262
1263Version 0.21:
1264
1265Fix some problems with recursive handling of archives in libelf.
1266
1267Improve messages printed by nm.
1268
1269Add symbol binding name handling to libebl.  Fix section name handling in
1270libebl.
1271
1272readelf and nm use more libebl functions.
1273
1274Handle XINDEX correctly in nm and string.
1275
1276Add first machine ld backend library (i386).
1277Use it.  Recognize -r and --shared.  Avoid using -lxxx parameters for -r.
1278Create ELF header in output file.  Change mode of output file according to
1279output file type.  Reorganize callback initialization in ld.
1280
1281Version 0.20:
1282
1283Fix some memory leaks in libelf.
1284
1285Version 0.19:
1286
1287Implement reading version script.  Both inside linker scripts and via the
1288--version-script command line parameter.  Uses the same code.
1289What remains to be done is to implement a data structure which allows
1290efficient matching against the version names to decide which pattern
1291matches.
1292
1293Beginning of output generation and output writing functions.
1294
1295Version 0.18:
1296
1297Finish implementation for DSO input file handling.  Implement rpath, runpath,
1298and LD_LIBRARY_PATH handling.
1299
1300Version 0.17:
1301
1302make handling of e_shnum overflow in libelf standard conforming
1303
1304ld now actually can handle DSOs in linker scripts.  Handling of DT_RUNPATH,
1305DT_RPATH, -rpath, -rpath-link still remains to be implemented.
1306
1307fix handling of -L parameters.  Make actual use of the default_paths element.
1308
1309make re-definition of symbols in and from DSO compatible with existing linker
1310
1311Version 0.16:
1312
1313more work on assigning input sections to output sections.
1314
1315Add gelf_xlatetof and gelf_xlatetom which were accidently left out.
1316
1317Fix memory handling of section headers.
1318
1319Version 0.15:
1320
1321Add many-section support to ld.  Add various new command line parameters.
1322Allow pagesize to be specified in linker script or on the command line.
1323Collect input sections in list for the output section according to the rules
1324specified in the linker script.
1325
1326Version 0.14:
1327
1328Fix some problems in the internal list handling which had the result
1329that we didn't look for some of the unresolved symbols.
1330
1331Free some memory if we know we don't need it anymore.
1332
1333Optimize the list of unresolved symbols.  Throw out symbols which are
1334meanwhile resolved.
1335
1336Version 0.13:
1337
1338Got file reading correct now.  The files are all read while parsing
1339the parameters.  No creating of data structures to describe the linker
1340command line.  The symbol table is built up while reading the files.
1341DSOs are handled now.  -( -) handling is optimized.
1342
1343Version 0.12:
1344
1345Linker read linker scripts everywhere.  Handles --whole-archive.  Recognizes
1346--dynamic and --static.  Collects defined and undefined symbols.  Recognizes
1347conflicts.
1348
1349libebl now defines functions to call the callbacks.  Add generic name handling
1350in these new functions.  Remove the code from readelf and call the new
1351functions.
1352
1353Version 0.11:
1354
1355Start of linker.  Basic argument parsing, finding of input files,
1356linker script reading.
1357
1358Version 0.10:
1359
1360Implement dwarf_get_fde_n(), dwarf_get_abbrev(), dwarf_get_abbrev_tag(),
1361dwarf_get_abbrev_code(), dwarf_get_abbrev_children_flag(),
1362dwarf_get_abbrev_entry(), dwarf_get_fde_at_pc(), and tests for it.
1363
1364Version 0.9:
1365
1366Implement dwarf_get_fde_list_eh(), dwarf_get_cie_of_fde(),
1367dwarf_get_fde_range(), dwarf_get_cie_info(), dwarf_get_fde_instr_bytes(),
1368and tests for them.
1369
1370Version 0.8:
1371
1372Make handling of binaries in other byte order work and add tests for it.
1373
1374Version 0.7:
1375
1376Implement dwarf_get_aranges(), dwarf_get_arange(), dwarf_get_cu_die_offset(),
1377dwarf_get_arange_info(), and tests for them.
1378
1379Version 0.6:
1380
1381Implement dwarf_get_global(), dwarf_globname(), dwarf_global_die_offset(),
1382dwarf_global_cu_offset(), dwarf_global_name_offsets(), and tests for them
1383
1384Version 0.5:
1385
1386Implemented dwarf_srclines(), dwarf_srcfiles(), dwarf_linebeginstatement(),
1387dwarf_lineendsequence(), dwarf_lineno(), dwarf_lineaddr(), dwarf_lineoff(),
1388dwarf_linesrc(), dwarf_lineblock(), dwarf_lineprologueend(),
1389dwarf_lineepiloguebegin(), and tests for them.
1390
1391Version 0.4:
1392
1393Implemented dwarf_loclist().
1394
1395Version 0.3:
1396
1397Implemented dwarf_dieoffset(), dwarf_die_CU_offset(), dwarf_diename() and
1398tests.
1399
1400Implemented dwarf_attrlist(), dwarf_hasattr(), dwarf_attr(), dwarf_lowpc(),
1401dwarf_highpc(), dwarf_bytesize(), dwarf_bitsize(), dwarf_bitoffset(),
1402dwarf_srclang(), dwarf_arrayorder(), dwarf_hasform(), dwarf_whatform(),
1403dwarf_whatattr(), dwarf_formref(), dwarf_global_formref(), dwarf_formaddr(),
1404dwarf_formflag(), dwarf_formudata(), dwarf_formsdata(), dwarf_formblock,
1405dwarf_formstring() and tests for them.
1406
1407Version 0.2:
1408
1409Implemented dwarf_offdie()), dwarf_tag(), dwarf_dieoffset(),
1410dwarf_die_CU_offset(), dwarf_diename() and tests for them.
1411
1412Version 0.1:
1413
1414First libdwarf functions work.
1415
1416Version 0.0:
1417
1418libelf and parts of libebl are done.
1419