blob: a15e1f12f11f56953066ebec7cf8dea3f3bfb66f [file] [log] [blame]
Ulrich Drepper5d832292005-08-15 21:36:27 +00001Version 0.114:
2
3libelf: new function elf_getaroff
4
Roland McGratha5c26432005-08-18 23:41:56 +00005libdw: Added dwarf_func_die, dwarf_func_inline, dwarf_func_inline_instances.
6
Roland McGrath7c777292005-08-24 18:53:53 +00007libdwfl: New functions dwfl_report_offline, dwfl_offline_section_address,
8 dwfl_linux_kernel_report_offline.
9
Ulrich Drepper5d832292005-08-15 21:36:27 +000010ranlib: new program
11
Ulrich Drepper637963b2005-08-07 05:33:07 +000012Version 0.113:
13
14elflint: relax a bit. Allow version definitions for defined symbols against
15DSO versions also for symbols in nobits sections. Allow .rodata section
16to have STRINGS and MERGE flag set.
17
Roland McGrath1c83bf12005-08-11 07:03:55 +000018strip: add some more compatibility with binutils.
19
Ulrich Drepperc911c9e2005-08-02 16:07:42 +000020Version 0.112:
21
22elfcmp: some more relaxation.
23
Ulrich Drepperdbace232005-08-06 01:37:23 +000024elflint: many more tests, especially regarding to symbol versioning.
Ulrich Drepper41de4882005-08-03 00:02:56 +000025
26libelf: Add elfXX_offscn and gelf_offscn.
27
Ulrich Dreppera38998e2005-08-03 02:05:39 +000028libasm: asm_begin interface changes.
29
30libebl: Add three new interfaces to directly access machine, class, and
31data encoding information.
32
Ulrich Drepper8a687742005-08-03 02:24:12 +000033objdump: New program. Just the beginning.
34
Ulrich Drepper70189152005-07-28 21:31:36 +000035Version 0.111:
36
37libdw: now contains all of libdwfl. The latter is not installed anymore.
38
39elfcmp: little usability tweak, name and index of differing section is printed.
40
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000041Version 0.110:
42
Roland McGrath1c83bf12005-08-11 07:03:55 +000043libelf: fix a number of problems with elf_update
Ulrich Drepperb08d5a82005-07-26 05:00:05 +000044
45elfcmp: fix a few bugs. Compare gaps.
46
47Fix a few PLT problems and mudflap build issues.
48
49libebl: Don't expose Ebl structure definition in libebl.h. It's now private.
50
51Version 0.109:
52
53libebl: Check for matching modules.
54
55elflint: Check that copy relocations only happen for OBJECT or NOTYPE symbols.
56
57elfcmp: New program.
58
59libdwfl: New library.
60
61Version 0.108:
62
63strip: fix bug introduced in last change
64
65libdw: records returned by dwarf_getsrclines are now sorted by address
66
67Version 0.107:
68
69readelf: improve DWARF output format
70
71strip: support Linux kernel modules
72
73Version 0.106:
74
75libdw: Updated dwarf.h from DWARF3 spec
76libdw: add new funtions dwarf_func_entrypc, dwarf_func_file, dwarf_func_line,
77dwarf_func_col, dwarf_getsrc_file
78
79Version 0.105:
80
81addr2line: New program
82
83libdw: add new functions: dwarf_addrdie, dwarf_macro_*, dwarf_getfuncs,
84dwarf_func_*.
85
86findtextrel: use dwarf_addrdie
87
88Version 0.104:
89
90findtextrel: New program.
91
92Version 0.103:
93
94libdw: Fix using libdw.h with gcc < 4 and C++ code. Compiler bug.
95
96Version 0.102:
97
98More Makefile and spec file cleanups.
99
100Version 0.101:
101
102Remove most gettext autoconf handling.
103
104Add more warnings
105
106Fix resulting problems. One actual bug found and fixed this way
107
108Version 0.100:
109
110libebl: Fix x86-64 relocations.
111
112Add -Wunused -Wextra warnings.
113
114Some cleanups resulting from those additional warnings.
115
116Lots of Makefile cleanup.
117
118Version 0.99:
119
120libelf: add gelf_checksum prototype to <libelf.h>
121
122libelf: fix elf*_checksum handling of NOBITS sections
123
124Finish mudflap support.
125
126Fix three bugs found by mudflap.
127
128ld: add as_needed support
129
130Version 0.98:
131
132readelf: in section to segment mapping, indicate read-only sections.
133
134elflint: more relaxation for GNU ld
135
136Version 0.97:
137
138Fix compiling with gcc 4.0.
139Some tests called elflint without appropriate LD_LIBRARY_PATH.
140
141Version 0.96:
142
143Fix support for platforms with lib64.
144
145Version 0.95:
146
147libebl: add ppc and ppc64 support
148
149readelf: fix minimal memory leak.
150
151Add support to compile with mudflap.
152
153Modernize configure.ac. Move scripts in config subdir.
154
155Modernize *-po directory infrastructure.
156
157libelf: Add gelf_getlib and gelf_update_lib
158
159readelf: print liblist sections
160
161Version 0.94:
162
163Fix some minimal build problems.
164
165Version 0.93:
166
167ibdw: tons of new functionality and bug fixes. Several interface changes.
168
169readelf: use libdw now.
170
171libdwarf: removed completely.
172
173Version 0.92:
174
175configuration changes.
176
177Version 0.91:
178
179libdw: fix memory handling. Implement source line handling.
180nm: use libdw instead of libdwarf.
181libelf: change to GPL from OSL1 for now.
182
183Version 0.90:
184
185libebl: Recognize a few more section types and dynamic tags and return
186approriate strings.
187
188Version 0.89:
189
190strip: fix overwriting of symbol table in input file.
191
192Version 0.88:
193
194libebl: Add some ia64 bits.
195
196Version 0.87:
197
198Bug fixes for big endian and some 64-bit machines.
199
200Version 0.86:
201
202strip: fix handling of Alpha and s390x which use incorrect hash bucket sizes.
203
204ld: tons of changes, moving towards usability.
205
206Version 0.85:
207
208strip: update section group symbol index if the associated symbol table changed
209
210libelf: fix two problems with generating output not via mmap
211
212elflint: add probably 10-15 more tests
213libebl: add support for some of the new tests
214
215ld: gazillion changes
216
217Version 0.84:
218
219elflint: deal with .rel.dyn section. Fix a problem with rela platforms.
220Handle PT_GNU_STACK. Change to write messages to stdout.
221
222readelf: fix a problem with version information in the symbol table output.
223
224strip: update all version symbol table entries
225
226Version 0.83:
227
228size: fix a warning
229
230strip: last changed caused problems when the symbol table is before the
231relocation section. Fixed. This fix also improved the asymptotic
232behavior if many symbol table sections are present.
233
234Version 0.82:
235
236Run strip tests with the correct libelf and libebl.
237
238libelf: fix bug in verneed byte order changing code.
239
240Version 0.81:
241
242strip: Remove unused symbol table entries. This might require updating
243various other sections.
244
245Version 0.80:
246
247Fix some libelf problems with ET_REL files.
248
249Version 0.79:
250
251More warning changes, mainly by jbj.
252
253libdw: yet more new code. dwarf_child and dwarf_sibling should now actually
254work.
255
256Version 0.78:
257
258libdw: 10+ new functions. get-pubnames2 works now fully. Almost all the
259code needed for nm is in place.
260
261Version 0.77:
262
263cleanups to compile cleanly with gcc 3.3 and -Werror.
264
265libdw: some new code.
266
267Version 0.76:
268
269libebl: Fix last patch to recognize relocation sections. We must not
270use the name.
271
272Version 0.75:
273
274libebl: .debug_ranges is a DWARF 3 debug section
275libebl: recognize relocation sections for debug section
276Patches by Jakub Jelinek.
277
278Version 0.74:
279
280Cleanups and more SPARC support by Tom Callaway <tcallaway@redhat.com>.
281
282Version 0.73:
283
28464-bit cleanups for the programs.
285
286Version 0.72:
287
288libelf: and yet more fun with endian tranformation at output time.
289
290Version 0.71:
291
292libelf: more fun with endian tranformation at output time. Add test for it.
293
294Version 0.70:
295
296libelf: Two little bugs left from previous patch to handle section output
297order.
298
299libelf: add unlikely in some more places.
300
301Version 0.69:
302
303libelf: fix output routines to handle case where section indeces and
304ordre in the output file don't match correctly. Patch by Jakub.
305
306elflint: fix test of note section content for 64-bit platforms and files
307with different byte order.
308
309Version 0.68:
310
311libebl: Fix SH_ENTSIZE_HASH definition (patch by Jakub)
312
313Version 0.67:
314
315libelf: correct mistake in error string handling.
316
317libelf: Implement ELF_F_PERMISSIVE.
318strip: Implement --permissive option.
319
320Version 0.66:
321
322strip: Implement -g option.
323
324libelf: Handle broken hash table entry sizes.
325
326libebl: New function ebl_debugscn_p. Use it where appropriate.
327
328Version 0.65:
329
330libelf: Use correct file size for NOBITS section with ELF_F_LAYOUT set
331
332Version 0.64:
333
334libelf: Make error handling more robust.
335libelf: Use TLS in error handler if configured with --enable-tls
336
337tests: input files are now distributed, not uuencoded in the shell scripts
338
339libdw: implement error handling, dwarf_get_pubnames
340
341Version 0.63:
342
343Build (incomplete) libdw.
344
345Version 0.62:
346
347Get rid of libtool.
348
349Version 0.61:
350
351Fix URL of OSL.
352
353Version 0.60:
354
355libebl: Handle .gnu.warning.* sections correctly.
356
357size: Implement -t option.
358
359libebl: Add IA-64 support.
360libebl: Update SH relocations.
361libebl: Add Alpha support.
362libebl: Add Arm support.
363libebl: Add support for all currently known architecture to the loader.
364
365Version 0.59:
366
367nm: Implement -S option. Correct portable output format. Implement -s option.
368
369libelf: Take offset of archive into account in elf_rand.
370
371Version 0.58:
372
373strip: fix handling of ET_REL files.
374Add tests for strip.
375
376Version 0.57:
377
378strip: respect layout of input file
379
380Version 0.56:
381
382strip: handle files with large number of sections.
383
384Version 0.55:
385
386libelf: quite a few bug fixes by Alex Larsson.
387
388strip: implement -f option to place stripped sections into a separate
389file. By Alex Larsson.
390
391Version 0.54:
392
393strip: don't let STT_SECTION symbols keeps sections from being removed
394
395elflint: local symbols are allowed in .dynsym
396elflint: special case .rel.dyn a bit
397
398Version 0.53:
399
400elflint: check types and flags of special sections defined in gABI
401
402libebl: add x86-64 support
403
404Version 0.52:
405
406Start improvement of debug info handling in nm.
407
408libasm: implement asm_adduleb128 and asm_addsleb128 and a test for them
409
410Version 0.51:
411
412Fix build on 64-bit platforms.
413
414Version 0.50:
415
416nm: print file/line number also for local symbols
417
418use versions scripts not libtool's useless -export-symbols option
419
420Version 0.49:
421
422Update to autoconf 2.54 and automake 1.7.
423
424elflint: check note sections
425
426libdwarf: a number of bug fixes
427
428readelf: print .debug_info section content
429
430dwarf.h: Update from draft 7
431
432Version 0.48:
433
434libcpu: beginning
435
436libelf: new function to read parts of the ELF file
437
438libebl: support for note section handling
439
440readelf: dump note sections
441
442Version 0.47:
443
444libelf: fix little new section-handling related bugs in elf_getshstrndx
445and elf_nextscn
446
447elflint: tests for mandatory content of dynamic section
448
449libasm: better handling of absolute symbols
450
451Version 0.46:
452
453libasm: rewrite to store Elf_Scn* instead of indices
454
455nm: finish many-section support
456
457nm: use debug in to print file/line info in sysv format
458
459libdwarf: fix a few bugs in DIE handling
460
461Version 0.45:
462
463libelf: major rewrite to keep Elf_Scn references valid until elf_end
464
465Version 0.44:
466
467libasm: Add support for bss, ABS, and COM sections.
468
469libebl: ebl_section_name takes now two index arguments to distinguish
470between special sections and extended sections
471
472Version 0.43:
473
474General: fix a few problem gcc 3.1 had with the code.
475
476libelf: implement {gelf,elf32,elf64}_checksum
477
478libelf: optimze DSO: fewer relocations, fewer PLTs
479
480add msg_tst test
481
482ld: use correct section header string table index; write correct index
483
484add dependencies for *.sym files
485
486Version 0.42:
487
488libelf: add elf_getshnum and elf_getshstrndx
489
490libebl: update section type name function
491
492elflint: tons of fixes wrt large number of sections. New tests in this area.
493Same amount of other bug fixes.
494
495size, strip, nm: better support for large number of sections. Including
496using correct section header string table
497
498libasm: correctly create data structures for large number of sections
499
500new tests asm-tst4 and asm-tst5 to check large number of sections
501
502libasm: implement section group generation
503
504elflint: more tests on section groups. Improve performance on existing
505section group tests
506
507Version 0.41:
508
509ld: add undefined symbols to dynamic symbol table if --export-dynamic is
510not given
511
512ld: fix value of e_entry
513
514Version 0.40:
515
516elflint: print section names in error messages
517
518elflint: mustn't warn about multiple DT_NULL
519
520ld: don't emit all symbols if --export-dynamic is not given
521
522ld: correct compute symbol address in output file (section index was off by 1)
523
524ld: generate correct version info in dynsym without --export-dynamic and
525in symtab
526
527Version 0.39:
528
529Fix check of various e_*size entries in elflint.
530
531Handle text output in asm_newsym.
532
533Finish checks in asm-tst3.
534
535Version 0.38:
536
537Update to autoconf 2.53, automake 1.6, gettext 0.11+.
538
539Introduce *.sym files to restrict export from DSOs.
540
541Use attribute_hidden and internal_function to optimize DSO code.
542
543Add TLS definitions in elf.h and handle them in readelf.
544
545Fix bug in verdef section generation in ld.
546
547Add initial libasm code.
548
549Version 0.37:
550
551Implement better hash size optimization heuristic in ld. It uses a formula
552taking number of tests into account.
553
554Lots of small bug fixes.
555
556Improve readelf output format. Respect various sh_link/sh_info values.
557Correctly print versioning information for symbol tables.
558
559Version 0.36:
560
561Implement preprocessing of linker script. Recognize -z combreloc.
562
563Version 0.35:
564
565Implement -z ignore|record for ld.
566
567Implement creating of .gnu.version_r and .gnu.version sections. The
568.gnu.version does not yet contain correct info for defined and versioned
569symbols (means .gnu.version_d is not yet implemented).
570
571Implement gelf_update_* functions to create versioning data.
572
573Version 0.34:
574
575Add DT_RUNPATH/DT_RPATH entries to dynamic section. Create .plt and
576.rel.plt sections (completely). Add support for all four PLT related
577dynamic section entries. Add callback function for PLT creation.
578
579More tests in elflint. Add support for very strict checking which for
580now flags level 2 (deprecated features) usage.
581
582Version 0.33:
583
584Create dynamic symbol table, dynamic string table, and hash table to ld.
585
586Add hash table histogram support to readelf.
587
588Version 0.32:
589
590more work on elflint
591
592ld now creates the dynamic section and references it. Start adding entries
593to dynamic section.
594
595Version 0.31:
596
597Start implementing elflint.
598
599Version 0.30:
600
601Fix handling of NOBITS sections in elf_getdata.
602
603Start implementing generation of executables and DSOs in ld.
604Generation of program header mostly done. Address computation done.
605Extension of linker script syntax.
606
607Various cleanups.
608
609Implement section group handling in readelf.
610
611Version 0.29:
612
613Implement section groups. This involved a lot of code moving. The
614new code is entirely untested since gas/gcc are currently not able to
615create section groups. ld works fine on files without section groups.
616
617Version 0.28:
618
619Fix problem with adding more section in elf_newscn. The section pointers
620for the data buffers wasn't adjusted.
621
622Fix elf_getdata with nonzero second parameter. Correctly handle creation
623of internal data buffer for machines without unaligned access.
624
625Version 0.27:
626
627Start adding support to selectively add sections. Includes support for
628section groups.
629Add --gc-sections/--no-gc-sections options.
630Add general section merging support.
631
632Fix a bug in section group support in strip.
633
634Fix some potential problems with hash value in dynamic hash implementation.
635
636Version 0.26:
637
638section merging works in ld.
639
640Version 0.25:
641
642Actually create data structures from version map file and use it to hide
643symbols in ld.
644
645Implement -s -s for ld.
646
647Version 0.24:
648
649Improve relocation table output in readelf. Avoid some crashes.
650Finish many section handling in readelf.
651
652Finish: finish implementation of ld -r. At least some simple tests pass.
653
654Version 0.23:
655
656Fix a number of errors in ELF_C_WRITE handling.
657
658Almost finished implementation of ld -r. The data sections are all copied.
659Handling of symbol tables is missing.
660
661Version 0.22:
662
663Handle DSO and archive input files correctly if -r option is given.
664
665Gracefully deal with no phdr in new file in libelf.
666Fix various small error handling problems.
667Don't mmap file for output unless the command says so.
668
669Add code to create ELF section header table to ld finalize routines.
670
671Version 0.21:
672
673Fix some problems with recursive handling of archives in libelf.
674
675Improve messages printed by nm.
676
677Add symbol binding name handling to libebl. Fix section name handling in
678libebl.
679
680readelf and nm use more libebl functions.
681
682Handle XINDEX correctly in nm and string.
683
684Add first machine ld backend library (i386).
685Use it. Recognize -r and --shared. Avoid using -lxxx parameters for -r.
686Create ELF header in output file. Change mode of output file according to
687output file type. Reorganize callback initialization in ld.
688
689Version 0.20:
690
691Fix some memory leaks in libelf.
692
693Version 0.19:
694
695Implement reading version script. Both inside linker scripts and via the
696--version-script command line parameter. Uses the same code.
697What remains to be done is to implement a data structure which allows
698efficient matching against the version names to decide which pattern
699matches.
700
701Beginning of output generation and output writing functions.
702
703Version 0.18:
704
705Finish implementation for DSO input file handling. Implement rpath, runpath,
706and LD_LIBRARY_PATH handling.
707
708Version 0.17:
709
710make handling of e_shnum overflow in libelf standard conforming
711
712ld now actually can handle DSOs in linker scripts. Handling of DT_RUNPATH,
713DT_RPATH, -rpath, -rpath-link still remains to be implemented.
714
715fix handling of -L parameters. Make actual use of the default_paths element.
716
717make re-definition of symbols in and from DSO compatible with existing linker
718
719Version 0.16:
720
721more work on assigning input sections to output sections.
722
723Add gelf_xlatetof and gelf_xlatetom which were accidently left out.
724
725Fix memory handling of section headers.
726
727Version 0.15:
728
729Add many-section support to ld. Add various new command line parameters.
730Allow pagesize to be specified in linker script or on the command line.
731Collect input sections in list for the output section according to the rules
732specified in the linker script.
733
734Version 0.14:
735
736Fix some problems in the internal list handling which had the result
737that we didn't look for some of the unresolved symbols.
738
739Free some memory if we know we don't need it anymore.
740
741Optimize the list of unresolved symbols. Throw out symbols which are
742meanwhile resolved.
743
744Version 0.13:
745
746Got file reading correct now. The files are all read while parsing
747the parameters. No creating of data structures to describe the linker
748command line. The symbol table is built up while reading the files.
749DSOs are handled now. -( -) handling is optimized.
750
751Version 0.12:
752
753Linker read linker scripts everywhere. Handles --whole-archive. Recognizes
754--dynamic and --static. Collects defined and undefined symbols. Recognizes
755conflicts.
756
757libebl now defines functions to call the callbacks. Add generic name handling
758in these new functions. Remove the code from readelf and call the new
759functions.
760
761Version 0.11:
762
763Start of linker. Basic argument parsing, finding of input files,
764linker script reading.
765
766Version 0.10:
767
768Implement dwarf_get_fde_n(), dwarf_get_abbrev(), dwarf_get_abbrev_tag(),
769dwarf_get_abbrev_code(), dwarf_get_abbrev_children_flag(),
770dwarf_get_abbrev_entry(), dwarf_get_fde_at_pc(), and tests for it.
771
772Version 0.9:
773
774Implement dwarf_get_fde_list_eh(), dwarf_get_cie_of_fde(),
775dwarf_get_fde_range(), dwarf_get_cie_info(), dwarf_get_fde_instr_bytes(),
776and tests for them.
777
778Version 0.8:
779
780Make handling of binaries in other byte order work and add tests for it.
781
782Version 0.7:
783
784Implement dwarf_get_aranges(), dwarf_get_arange(), dwarf_get_cu_die_offset(),
785dwarf_get_arange_info(), and tests for them.
786
787Version 0.6:
788
789Implement dwarf_get_global(), dwarf_globname(), dwarf_global_die_offset(),
790dwarf_global_cu_offset(), dwarf_global_name_offsets(), and tests for them
791
792Version 0.5:
793
794Implemented dwarf_srclines(), dwarf_srcfiles(), dwarf_linebeginstatement(),
795dwarf_lineendsequence(), dwarf_lineno(), dwarf_lineaddr(), dwarf_lineoff(),
796dwarf_linesrc(), dwarf_lineblock(), dwarf_lineprologueend(),
797dwarf_lineepiloguebegin(), and tests for them.
798
799Version 0.4:
800
801Implemented dwarf_loclist().
802
803Version 0.3:
804
805Implemented dwarf_dieoffset(), dwarf_die_CU_offset(), dwarf_diename() and
806tests.
807
808Implemented dwarf_attrlist(), dwarf_hasattr(), dwarf_attr(), dwarf_lowpc(),
809dwarf_highpc(), dwarf_bytesize(), dwarf_bitsize(), dwarf_bitoffset(),
810dwarf_srclang(), dwarf_arrayorder(), dwarf_hasform(), dwarf_whatform(),
811dwarf_whatattr(), dwarf_formref(), dwarf_global_formref(), dwarf_formaddr(),
812dwarf_formflag(), dwarf_formudata(), dwarf_formsdata(), dwarf_formblock,
813dwarf_formstring() and tests for them.
814
815Version 0.2:
816
817Implemented dwarf_offdie()), dwarf_tag(), dwarf_dieoffset(),
818dwarf_die_CU_offset(), dwarf_diename() and tests for them.
819
820Version 0.1:
821
822First libdwarf functions work.
823
824Version 0.0:
825
826libelf and parts of libebl are done.