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