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