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