3 libdw: now contains all of libdwfl. The latter is not installed anymore.
5 elfcmp: little usability tweak, name and index of differing section is printed.
9 libelf: fix a numbe rof problems with elf_update
11 elfcmp: fix a few bugs. Compare gaps.
13 Fix a few PLT problems and mudflap build issues.
15 libebl: Don't expose Ebl structure definition in libebl.h. It's now private.
19 libebl: Check for matching modules.
21 elflint: Check that copy relocations only happen for OBJECT or NOTYPE symbols.
29 strip: fix bug introduced in last change
31 libdw: records returned by dwarf_getsrclines are now sorted by address
35 readelf: improve DWARF output format
37 strip: support Linux kernel modules
41 libdw: Updated dwarf.h from DWARF3 spec
42 libdw: add new funtions dwarf_func_entrypc, dwarf_func_file, dwarf_func_line,
43 dwarf_func_col, dwarf_getsrc_file
47 addr2line: New program
49 libdw: add new functions: dwarf_addrdie, dwarf_macro_*, dwarf_getfuncs,
52 findtextrel: use dwarf_addrdie
56 findtextrel: New program.
60 libdw: Fix using libdw.h with gcc < 4 and C++ code. Compiler bug.
64 More Makefile and spec file cleanups.
68 Remove most gettext autoconf handling.
72 Fix resulting problems. One actual bug found and fixed this way
76 libebl: Fix x86-64 relocations.
78 Add -Wunused -Wextra warnings.
80 Some cleanups resulting from those additional warnings.
82 Lots of Makefile cleanup.
86 libelf: add gelf_checksum prototype to <libelf.h>
88 libelf: fix elf*_checksum handling of NOBITS sections
90 Finish mudflap support.
92 Fix three bugs found by mudflap.
94 ld: add as_needed support
98 readelf: in section to segment mapping, indicate read-only sections.
100 elflint: more relaxation for GNU ld
104 Fix compiling with gcc 4.0.
105 Some tests called elflint without appropriate LD_LIBRARY_PATH.
109 Fix support for platforms with lib64.
113 libebl: add ppc and ppc64 support
115 readelf: fix minimal memory leak.
117 Add support to compile with mudflap.
119 Modernize configure.ac. Move scripts in config subdir.
121 Modernize *-po directory infrastructure.
123 libelf: Add gelf_getlib and gelf_update_lib
125 readelf: print liblist sections
129 Fix some minimal build problems.
133 ibdw: tons of new functionality and bug fixes. Several interface changes.
135 readelf: use libdw now.
137 libdwarf: removed completely.
141 configuration changes.
145 libdw: fix memory handling. Implement source line handling.
146 nm: use libdw instead of libdwarf.
147 libelf: change to GPL from OSL1 for now.
151 libebl: Recognize a few more section types and dynamic tags and return
156 strip: fix overwriting of symbol table in input file.
160 libebl: Add some ia64 bits.
164 Bug fixes for big endian and some 64-bit machines.
168 strip: fix handling of Alpha and s390x which use incorrect hash bucket sizes.
170 ld: tons of changes, moving towards usability.
174 strip: update section group symbol index if the associated symbol table changed
176 libelf: fix two problems with generating output not via mmap
178 elflint: add probably 10-15 more tests
179 libebl: add support for some of the new tests
181 ld: gazillion changes
185 elflint: deal with .rel.dyn section. Fix a problem with rela platforms.
186 Handle PT_GNU_STACK. Change to write messages to stdout.
188 readelf: fix a problem with version information in the symbol table output.
190 strip: update all version symbol table entries
196 strip: last changed caused problems when the symbol table is before the
197 relocation section. Fixed. This fix also improved the asymptotic
198 behavior if many symbol table sections are present.
202 Run strip tests with the correct libelf and libebl.
204 libelf: fix bug in verneed byte order changing code.
208 strip: Remove unused symbol table entries. This might require updating
209 various other sections.
213 Fix some libelf problems with ET_REL files.
217 More warning changes, mainly by jbj.
219 libdw: yet more new code. dwarf_child and dwarf_sibling should now actually
224 libdw: 10+ new functions. get-pubnames2 works now fully. Almost all the
225 code needed for nm is in place.
229 cleanups to compile cleanly with gcc 3.3 and -Werror.
231 libdw: some new code.
235 libebl: Fix last patch to recognize relocation sections. We must not
240 libebl: .debug_ranges is a DWARF 3 debug section
241 libebl: recognize relocation sections for debug section
242 Patches by Jakub Jelinek.
246 Cleanups and more SPARC support by Tom Callaway <tcallaway@redhat.com>.
250 64-bit cleanups for the programs.
254 libelf: and yet more fun with endian tranformation at output time.
258 libelf: more fun with endian tranformation at output time. Add test for it.
262 libelf: Two little bugs left from previous patch to handle section output
265 libelf: add unlikely in some more places.
269 libelf: fix output routines to handle case where section indeces and
270 ordre in the output file don't match correctly. Patch by Jakub.
272 elflint: fix test of note section content for 64-bit platforms and files
273 with different byte order.
277 libebl: Fix SH_ENTSIZE_HASH definition (patch by Jakub)
281 libelf: correct mistake in error string handling.
283 libelf: Implement ELF_F_PERMISSIVE.
284 strip: Implement --permissive option.
288 strip: Implement -g option.
290 libelf: Handle broken hash table entry sizes.
292 libebl: New function ebl_debugscn_p. Use it where appropriate.
296 libelf: Use correct file size for NOBITS section with ELF_F_LAYOUT set
300 libelf: Make error handling more robust.
301 libelf: Use TLS in error handler if configured with --enable-tls
303 tests: input files are now distributed, not uuencoded in the shell scripts
305 libdw: implement error handling, dwarf_get_pubnames
309 Build (incomplete) libdw.
321 libebl: Handle .gnu.warning.* sections correctly.
323 size: Implement -t option.
325 libebl: Add IA-64 support.
326 libebl: Update SH relocations.
327 libebl: Add Alpha support.
328 libebl: Add Arm support.
329 libebl: Add support for all currently known architecture to the loader.
333 nm: Implement -S option. Correct portable output format. Implement -s option.
335 libelf: Take offset of archive into account in elf_rand.
339 strip: fix handling of ET_REL files.
344 strip: respect layout of input file
348 strip: handle files with large number of sections.
352 libelf: quite a few bug fixes by Alex Larsson.
354 strip: implement -f option to place stripped sections into a separate
355 file. By Alex Larsson.
359 strip: don't let STT_SECTION symbols keeps sections from being removed
361 elflint: local symbols are allowed in .dynsym
362 elflint: special case .rel.dyn a bit
366 elflint: check types and flags of special sections defined in gABI
368 libebl: add x86-64 support
372 Start improvement of debug info handling in nm.
374 libasm: implement asm_adduleb128 and asm_addsleb128 and a test for them
378 Fix build on 64-bit platforms.
382 nm: print file/line number also for local symbols
384 use versions scripts not libtool's useless -export-symbols option
388 Update to autoconf 2.54 and automake 1.7.
390 elflint: check note sections
392 libdwarf: a number of bug fixes
394 readelf: print .debug_info section content
396 dwarf.h: Update from draft 7
402 libelf: new function to read parts of the ELF file
404 libebl: support for note section handling
406 readelf: dump note sections
410 libelf: fix little new section-handling related bugs in elf_getshstrndx
413 elflint: tests for mandatory content of dynamic section
415 libasm: better handling of absolute symbols
419 libasm: rewrite to store Elf_Scn* instead of indices
421 nm: finish many-section support
423 nm: use debug in to print file/line info in sysv format
425 libdwarf: fix a few bugs in DIE handling
429 libelf: major rewrite to keep Elf_Scn references valid until elf_end
433 libasm: Add support for bss, ABS, and COM sections.
435 libebl: ebl_section_name takes now two index arguments to distinguish
436 between special sections and extended sections
440 General: fix a few problem gcc 3.1 had with the code.
442 libelf: implement {gelf,elf32,elf64}_checksum
444 libelf: optimze DSO: fewer relocations, fewer PLTs
448 ld: use correct section header string table index; write correct index
450 add dependencies for *.sym files
454 libelf: add elf_getshnum and elf_getshstrndx
456 libebl: update section type name function
458 elflint: tons of fixes wrt large number of sections. New tests in this area.
459 Same amount of other bug fixes.
461 size, strip, nm: better support for large number of sections. Including
462 using correct section header string table
464 libasm: correctly create data structures for large number of sections
466 new tests asm-tst4 and asm-tst5 to check large number of sections
468 libasm: implement section group generation
470 elflint: more tests on section groups. Improve performance on existing
475 ld: add undefined symbols to dynamic symbol table if --export-dynamic is
478 ld: fix value of e_entry
482 elflint: print section names in error messages
484 elflint: mustn't warn about multiple DT_NULL
486 ld: don't emit all symbols if --export-dynamic is not given
488 ld: correct compute symbol address in output file (section index was off by 1)
490 ld: generate correct version info in dynsym without --export-dynamic and
495 Fix check of various e_*size entries in elflint.
497 Handle text output in asm_newsym.
499 Finish checks in asm-tst3.
503 Update to autoconf 2.53, automake 1.6, gettext 0.11+.
505 Introduce *.sym files to restrict export from DSOs.
507 Use attribute_hidden and internal_function to optimize DSO code.
509 Add TLS definitions in elf.h and handle them in readelf.
511 Fix bug in verdef section generation in ld.
513 Add initial libasm code.
517 Implement better hash size optimization heuristic in ld. It uses a formula
518 taking number of tests into account.
520 Lots of small bug fixes.
522 Improve readelf output format. Respect various sh_link/sh_info values.
523 Correctly print versioning information for symbol tables.
527 Implement preprocessing of linker script. Recognize -z combreloc.
531 Implement -z ignore|record for ld.
533 Implement creating of .gnu.version_r and .gnu.version sections. The
534 .gnu.version does not yet contain correct info for defined and versioned
535 symbols (means .gnu.version_d is not yet implemented).
537 Implement gelf_update_* functions to create versioning data.
541 Add DT_RUNPATH/DT_RPATH entries to dynamic section. Create .plt and
542 .rel.plt sections (completely). Add support for all four PLT related
543 dynamic section entries. Add callback function for PLT creation.
545 More tests in elflint. Add support for very strict checking which for
546 now flags level 2 (deprecated features) usage.
550 Create dynamic symbol table, dynamic string table, and hash table to ld.
552 Add hash table histogram support to readelf.
558 ld now creates the dynamic section and references it. Start adding entries
563 Start implementing elflint.
567 Fix handling of NOBITS sections in elf_getdata.
569 Start implementing generation of executables and DSOs in ld.
570 Generation of program header mostly done. Address computation done.
571 Extension of linker script syntax.
575 Implement section group handling in readelf.
579 Implement section groups. This involved a lot of code moving. The
580 new code is entirely untested since gas/gcc are currently not able to
581 create section groups. ld works fine on files without section groups.
585 Fix problem with adding more section in elf_newscn. The section pointers
586 for the data buffers wasn't adjusted.
588 Fix elf_getdata with nonzero second parameter. Correctly handle creation
589 of internal data buffer for machines without unaligned access.
593 Start adding support to selectively add sections. Includes support for
595 Add --gc-sections/--no-gc-sections options.
596 Add general section merging support.
598 Fix a bug in section group support in strip.
600 Fix some potential problems with hash value in dynamic hash implementation.
604 section merging works in ld.
608 Actually create data structures from version map file and use it to hide
611 Implement -s -s for ld.
615 Improve relocation table output in readelf. Avoid some crashes.
616 Finish many section handling in readelf.
618 Finish: finish implementation of ld -r. At least some simple tests pass.
622 Fix a number of errors in ELF_C_WRITE handling.
624 Almost finished implementation of ld -r. The data sections are all copied.
625 Handling of symbol tables is missing.
629 Handle DSO and archive input files correctly if -r option is given.
631 Gracefully deal with no phdr in new file in libelf.
632 Fix various small error handling problems.
633 Don't mmap file for output unless the command says so.
635 Add code to create ELF section header table to ld finalize routines.
639 Fix some problems with recursive handling of archives in libelf.
641 Improve messages printed by nm.
643 Add symbol binding name handling to libebl. Fix section name handling in
646 readelf and nm use more libebl functions.
648 Handle XINDEX correctly in nm and string.
650 Add first machine ld backend library (i386).
651 Use it. Recognize -r and --shared. Avoid using -lxxx parameters for -r.
652 Create ELF header in output file. Change mode of output file according to
653 output file type. Reorganize callback initialization in ld.
657 Fix some memory leaks in libelf.
661 Implement reading version script. Both inside linker scripts and via the
662 --version-script command line parameter. Uses the same code.
663 What remains to be done is to implement a data structure which allows
664 efficient matching against the version names to decide which pattern
667 Beginning of output generation and output writing functions.
671 Finish implementation for DSO input file handling. Implement rpath, runpath,
672 and LD_LIBRARY_PATH handling.
676 make handling of e_shnum overflow in libelf standard conforming
678 ld now actually can handle DSOs in linker scripts. Handling of DT_RUNPATH,
679 DT_RPATH, -rpath, -rpath-link still remains to be implemented.
681 fix handling of -L parameters. Make actual use of the default_paths element.
683 make re-definition of symbols in and from DSO compatible with existing linker
687 more work on assigning input sections to output sections.
689 Add gelf_xlatetof and gelf_xlatetom which were accidently left out.
691 Fix memory handling of section headers.
695 Add many-section support to ld. Add various new command line parameters.
696 Allow pagesize to be specified in linker script or on the command line.
697 Collect input sections in list for the output section according to the rules
698 specified in the linker script.
702 Fix some problems in the internal list handling which had the result
703 that we didn't look for some of the unresolved symbols.
705 Free some memory if we know we don't need it anymore.
707 Optimize the list of unresolved symbols. Throw out symbols which are
712 Got file reading correct now. The files are all read while parsing
713 the parameters. No creating of data structures to describe the linker
714 command line. The symbol table is built up while reading the files.
715 DSOs are handled now. -( -) handling is optimized.
719 Linker read linker scripts everywhere. Handles --whole-archive. Recognizes
720 --dynamic and --static. Collects defined and undefined symbols. Recognizes
723 libebl now defines functions to call the callbacks. Add generic name handling
724 in these new functions. Remove the code from readelf and call the new
729 Start of linker. Basic argument parsing, finding of input files,
730 linker script reading.
734 Implement dwarf_get_fde_n(), dwarf_get_abbrev(), dwarf_get_abbrev_tag(),
735 dwarf_get_abbrev_code(), dwarf_get_abbrev_children_flag(),
736 dwarf_get_abbrev_entry(), dwarf_get_fde_at_pc(), and tests for it.
740 Implement dwarf_get_fde_list_eh(), dwarf_get_cie_of_fde(),
741 dwarf_get_fde_range(), dwarf_get_cie_info(), dwarf_get_fde_instr_bytes(),
746 Make handling of binaries in other byte order work and add tests for it.
750 Implement dwarf_get_aranges(), dwarf_get_arange(), dwarf_get_cu_die_offset(),
751 dwarf_get_arange_info(), and tests for them.
755 Implement dwarf_get_global(), dwarf_globname(), dwarf_global_die_offset(),
756 dwarf_global_cu_offset(), dwarf_global_name_offsets(), and tests for them
760 Implemented dwarf_srclines(), dwarf_srcfiles(), dwarf_linebeginstatement(),
761 dwarf_lineendsequence(), dwarf_lineno(), dwarf_lineaddr(), dwarf_lineoff(),
762 dwarf_linesrc(), dwarf_lineblock(), dwarf_lineprologueend(),
763 dwarf_lineepiloguebegin(), and tests for them.
767 Implemented dwarf_loclist().
771 Implemented dwarf_dieoffset(), dwarf_die_CU_offset(), dwarf_diename() and
774 Implemented dwarf_attrlist(), dwarf_hasattr(), dwarf_attr(), dwarf_lowpc(),
775 dwarf_highpc(), dwarf_bytesize(), dwarf_bitsize(), dwarf_bitoffset(),
776 dwarf_srclang(), dwarf_arrayorder(), dwarf_hasform(), dwarf_whatform(),
777 dwarf_whatattr(), dwarf_formref(), dwarf_global_formref(), dwarf_formaddr(),
778 dwarf_formflag(), dwarf_formudata(), dwarf_formsdata(), dwarf_formblock,
779 dwarf_formstring() and tests for them.
783 Implemented dwarf_offdie()), dwarf_tag(), dwarf_dieoffset(),
784 dwarf_die_CU_offset(), dwarf_diename() and tests for them.
788 First libdwarf functions work.
792 libelf and parts of libebl are done.