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