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