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