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