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