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