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