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