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