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