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