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