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