1Version 0.138: 2 3Install <elfutils/version.h> header file for applications to use in source 4version compatibility checks. 5 6libebl: backend fixes for i386 TLS relocs; backend support for NT_386_IOPERM 7 8libcpu: disassembler fixes 9 10libdwfl: bug fixes 11 12libelf: bug fixes 13 14nm: bug fixes for handling corrupt input files 15 16Version 0.137: 17 18Minor fixes for unreleased 0.136 release. 19 20Version 0.136: 21 22libdwfl: bug fixes; new "segment" interfaces; 23 all the libdwfl-based tools now support --core=COREFILE option 24 25Version 0.135: 26 27libdwfl: bug fixes 28 29strip: changed handling of ET_REL files wrt symbol tables and relocs 30 31Version 0.134: 32 33elflint: backend improvements for sparc, alpha 34 35libdwfl, libelf: bug fixes 36 37Version 0.133: 38 39readelf, elflint, libebl: SHT_GNU_ATTRIBUTE section handling (readelf -A) 40 41readelf: core note handling for NT_386_TLS, NT_PPC_SPE, Alpha NT_AUXV 42 43libdwfl: bug fixes and optimization in relocation handling 44 45elfcmp: bug fix for non-allocated section handling 46 47ld: implement newer features of binutils linker. 48 49Version 0.132: 50 51libcpu: Implement x86 and x86-64 disassembler. 52libasm: Add interface for disassembler. 53 54all programs: add debugging of branch prediction. 55 56libelf: new function elf_scnshndx. 57 58Version 0.131: 59 60libdw: DW_FORM_ref_addr support; dwarf_formref entry point now deprecated; 61 bug fixes for oddly-formatted DWARF 62 63libdwfl: bug fixes in offline archive support, symbol table handling; 64 apply partial relocations for dwfl_module_address_section on ET_REL 65 66libebl: powerpc backend support for Altivec registers 67 68Version 0.130: 69 70readelf: -p option can take an argument like -x for one section, 71 or no argument (as before) for all SHF_STRINGS sections; 72 new option --archive-index (or -c); 73 improved -n output for core files, on many machines 74 75libelf: new function elf_getdata_rawchunk, replaces gelf_rawchunk; 76 new functions gelf_getnote, gelf_getauxv, gelf_update_auxv 77 78readelf, elflint: handle SHT_NOTE sections without requiring phdrs 79 80elflint: stricter checks on debug sections 81 82libdwfl: new functions dwfl_build_id_find_elf, dwfl_build_id_find_debuginfo, 83 dwfl_module_build_id, dwfl_module_report_build_id; 84 support dynamic symbol tables found via phdrs; 85 dwfl_standard_find_debuginfo now uses build IDs when available 86 87unstrip: new option --list (or -n) 88 89libebl: backend improvements for sparc, alpha, powerpc 90 91Version 0.129: 92 93readelf: new options --hex-dump (or -x), --strings (or -p) 94 95addr2line: new option --symbols (or -S) 96 97Version 0.128: 98 99new program: unstrip 100 101elfcmp: new option --hash-inexact 102 103Version 0.127: 104 105libdw: new function dwarf_getsrcdirs 106 107libdwfl: new functions dwfl_module_addrsym, dwfl_report_begin_add, 108 dwfl_module_address_section 109 110Version 0.126: 111 112new program: ar 113 114Version 0.125: 115 116elflint: Compare DT_GNU_HASH tests. 117 118move archives into -static RPMs 119 120libelf, elflint: better support for core file handling 121 122Version 0.124: 123 124libebl: sparc backend support for return value location 125 126libebl, libdwfl: backend register name support extended with more info 127 128libelf, libdw: bug fixes for unaligned accesses on machines that care 129 130readelf, elflint: trivial bugs fixed 131 132Version 0.123: 133 134libebl: Backend build fixes, thanks to Stepan Kasal. 135 136libebl: ia64 backend support for register names, return value location 137 138libdwfl: Handle truncated linux kernel module section names. 139 140libdwfl: Look for linux kernel "vmlinux" files with ".debug" suffix. 141 142elflint: Fix checks to permit --hash-style=gnu format. 143 144Version 0.122: 145 146libebl: add function to test for relative relocation 147 148elflint: fix and extend DT_RELCOUNT/DT_RELACOUNT checks 149 150elflint, readelf: add support for DT_GNU_HASH 151libelf: add elf_gnu_hash 152 153elflint, readelf: add support for 64-bit SysV-style hash tables 154 155libdwfl: new functions dwfl_module_getsymtab, dwfl_module_getsym. 156 157Version 0.121: 158 159libelf: bug fixes for rewriting existing files when using mmap. 160 161make all installed headers usable in C++ code. 162 163readelf: better output format. 164 165elflint: fix tests of dynamic section content. 166 167ld: Implement --as-needed, --execstack, PT_GNU_STACK. Many small patches. 168 169libdw, libdwfl: handle files without aranges info. 170 171Version 0.120: 172 173Bug fixes. 174 175dwarf.h updated for DWARF 3.0 final specification. 176 177libdwfl: New function dwfl_version. 178 179The license is now GPL for most files. The libelf, libebl, libdw, 180and libdwfl libraries have additional exceptions. Add reference to 181OIN. 182 183Version 0.119: 184 185bug fixes 186 187Version 0.118: 188 189elflint: more tests. 190 191libdwfl: New function dwfl_module_register_names. 192 193libebl: New backend hook for register names. 194 195Version 0.117: 196 197libdwfl: New function dwfl_module_return_value_location. 198 199libebl: Backend improvements for several CPUs. 200 201Version 0.116: 202 203libdw: New functions dwarf_ranges, dwarf_entrypc, dwarf_diecu, 204 dwarf_entry_breakpoints. Removed Dwarf_Func type and functions 205 dwarf_func_name, dwarf_func_lowpc, dwarf_func_highpc, 206 dwarf_func_entrypc, dwarf_func_die; dwarf_getfuncs callback now uses 207 Dwarf_Die, and dwarf_func_file, dwarf_func_line, dwarf_func_col 208 replaced by dwarf_decl_file, dwarf_decl_line, dwarf_decl_column; 209 dwarf_func_inline, dwarf_func_inline_instances now take Dwarf_Die. 210 Type Dwarf_Loc renamed to Dwarf_Op; dwarf_getloclist, 211 dwarf_addrloclists renamed dwarf_getlocation, dwarf_getlocation_addr. 212 213Version 0.115: 214 215libelf: speed-ups of non-mmap reading. 216 217strings: New program. 218 219Implement --enable-gcov option for configure. 220 221libdw: New function dwarf_getscopes_die. 222 223Version 0.114: 224 225libelf: new function elf_getaroff 226 227libdw: Added dwarf_func_die, dwarf_func_inline, dwarf_func_inline_instances. 228 229libdwfl: New functions dwfl_report_offline, dwfl_offline_section_address, 230 dwfl_linux_kernel_report_offline. 231 232ranlib: new program 233 234Version 0.113: 235 236elflint: relax a bit. Allow version definitions for defined symbols against 237DSO versions also for symbols in nobits sections. Allow .rodata section 238to have STRINGS and MERGE flag set. 239 240strip: add some more compatibility with binutils. 241 242Version 0.112: 243 244elfcmp: some more relaxation. 245 246elflint: many more tests, especially regarding to symbol versioning. 247 248libelf: Add elfXX_offscn and gelf_offscn. 249 250libasm: asm_begin interface changes. 251 252libebl: Add three new interfaces to directly access machine, class, and 253data encoding information. 254 255objdump: New program. Just the beginning. 256 257Version 0.111: 258 259libdw: now contains all of libdwfl. The latter is not installed anymore. 260 261elfcmp: little usability tweak, name and index of differing section is printed. 262 263Version 0.110: 264 265libelf: fix a number of problems with elf_update 266 267elfcmp: fix a few bugs. Compare gaps. 268 269Fix a few PLT problems and mudflap build issues. 270 271libebl: Don't expose Ebl structure definition in libebl.h. It's now private. 272 273Version 0.109: 274 275libebl: Check for matching modules. 276 277elflint: Check that copy relocations only happen for OBJECT or NOTYPE symbols. 278 279elfcmp: New program. 280 281libdwfl: New library. 282 283Version 0.108: 284 285strip: fix bug introduced in last change 286 287libdw: records returned by dwarf_getsrclines are now sorted by address 288 289Version 0.107: 290 291readelf: improve DWARF output format 292 293strip: support Linux kernel modules 294 295Version 0.106: 296 297libdw: Updated dwarf.h from DWARF3 spec 298libdw: add new funtions dwarf_func_entrypc, dwarf_func_file, dwarf_func_line, 299dwarf_func_col, dwarf_getsrc_file 300 301Version 0.105: 302 303addr2line: New program 304 305libdw: add new functions: dwarf_addrdie, dwarf_macro_*, dwarf_getfuncs, 306dwarf_func_*. 307 308findtextrel: use dwarf_addrdie 309 310Version 0.104: 311 312findtextrel: New program. 313 314Version 0.103: 315 316libdw: Fix using libdw.h with gcc < 4 and C++ code. Compiler bug. 317 318Version 0.102: 319 320More Makefile and spec file cleanups. 321 322Version 0.101: 323 324Remove most gettext autoconf handling. 325 326Add more warnings 327 328Fix resulting problems. One actual bug found and fixed this way 329 330Version 0.100: 331 332libebl: Fix x86-64 relocations. 333 334Add -Wunused -Wextra warnings. 335 336Some cleanups resulting from those additional warnings. 337 338Lots of Makefile cleanup. 339 340Version 0.99: 341 342libelf: add gelf_checksum prototype to <libelf.h> 343 344libelf: fix elf*_checksum handling of NOBITS sections 345 346Finish mudflap support. 347 348Fix three bugs found by mudflap. 349 350ld: add as_needed support 351 352Version 0.98: 353 354readelf: in section to segment mapping, indicate read-only sections. 355 356elflint: more relaxation for GNU ld 357 358Version 0.97: 359 360Fix compiling with gcc 4.0. 361Some tests called elflint without appropriate LD_LIBRARY_PATH. 362 363Version 0.96: 364 365Fix support for platforms with lib64. 366 367Version 0.95: 368 369libebl: add ppc and ppc64 support 370 371readelf: fix minimal memory leak. 372 373Add support to compile with mudflap. 374 375Modernize configure.ac. Move scripts in config subdir. 376 377Modernize *-po directory infrastructure. 378 379libelf: Add gelf_getlib and gelf_update_lib 380 381readelf: print liblist sections 382 383Version 0.94: 384 385Fix some minimal build problems. 386 387Version 0.93: 388 389ibdw: tons of new functionality and bug fixes. Several interface changes. 390 391readelf: use libdw now. 392 393libdwarf: removed completely. 394 395Version 0.92: 396 397configuration changes. 398 399Version 0.91: 400 401libdw: fix memory handling. Implement source line handling. 402nm: use libdw instead of libdwarf. 403libelf: change to GPL from OSL1 for now. 404 405Version 0.90: 406 407libebl: Recognize a few more section types and dynamic tags and return 408approriate strings. 409 410Version 0.89: 411 412strip: fix overwriting of symbol table in input file. 413 414Version 0.88: 415 416libebl: Add some ia64 bits. 417 418Version 0.87: 419 420Bug fixes for big endian and some 64-bit machines. 421 422Version 0.86: 423 424strip: fix handling of Alpha and s390x which use incorrect hash bucket sizes. 425 426ld: tons of changes, moving towards usability. 427 428Version 0.85: 429 430strip: update section group symbol index if the associated symbol table changed 431 432libelf: fix two problems with generating output not via mmap 433 434elflint: add probably 10-15 more tests 435libebl: add support for some of the new tests 436 437ld: gazillion changes 438 439Version 0.84: 440 441elflint: deal with .rel.dyn section. Fix a problem with rela platforms. 442Handle PT_GNU_STACK. Change to write messages to stdout. 443 444readelf: fix a problem with version information in the symbol table output. 445 446strip: update all version symbol table entries 447 448Version 0.83: 449 450size: fix a warning 451 452strip: last changed caused problems when the symbol table is before the 453relocation section. Fixed. This fix also improved the asymptotic 454behavior if many symbol table sections are present. 455 456Version 0.82: 457 458Run strip tests with the correct libelf and libebl. 459 460libelf: fix bug in verneed byte order changing code. 461 462Version 0.81: 463 464strip: Remove unused symbol table entries. This might require updating 465various other sections. 466 467Version 0.80: 468 469Fix some libelf problems with ET_REL files. 470 471Version 0.79: 472 473More warning changes, mainly by jbj. 474 475libdw: yet more new code. dwarf_child and dwarf_sibling should now actually 476work. 477 478Version 0.78: 479 480libdw: 10+ new functions. get-pubnames2 works now fully. Almost all the 481code needed for nm is in place. 482 483Version 0.77: 484 485cleanups to compile cleanly with gcc 3.3 and -Werror. 486 487libdw: some new code. 488 489Version 0.76: 490 491libebl: Fix last patch to recognize relocation sections. We must not 492use the name. 493 494Version 0.75: 495 496libebl: .debug_ranges is a DWARF 3 debug section 497libebl: recognize relocation sections for debug section 498Patches by Jakub Jelinek. 499 500Version 0.74: 501 502Cleanups and more SPARC support by Tom Callaway <tcallaway@redhat.com>. 503 504Version 0.73: 505 50664-bit cleanups for the programs. 507 508Version 0.72: 509 510libelf: and yet more fun with endian tranformation at output time. 511 512Version 0.71: 513 514libelf: more fun with endian tranformation at output time. Add test for it. 515 516Version 0.70: 517 518libelf: Two little bugs left from previous patch to handle section output 519order. 520 521libelf: add unlikely in some more places. 522 523Version 0.69: 524 525libelf: fix output routines to handle case where section indeces and 526ordre in the output file don't match correctly. Patch by Jakub. 527 528elflint: fix test of note section content for 64-bit platforms and files 529with different byte order. 530 531Version 0.68: 532 533libebl: Fix SH_ENTSIZE_HASH definition (patch by Jakub) 534 535Version 0.67: 536 537libelf: correct mistake in error string handling. 538 539libelf: Implement ELF_F_PERMISSIVE. 540strip: Implement --permissive option. 541 542Version 0.66: 543 544strip: Implement -g option. 545 546libelf: Handle broken hash table entry sizes. 547 548libebl: New function ebl_debugscn_p. Use it where appropriate. 549 550Version 0.65: 551 552libelf: Use correct file size for NOBITS section with ELF_F_LAYOUT set 553 554Version 0.64: 555 556libelf: Make error handling more robust. 557libelf: Use TLS in error handler if configured with --enable-tls 558 559tests: input files are now distributed, not uuencoded in the shell scripts 560 561libdw: implement error handling, dwarf_get_pubnames 562 563Version 0.63: 564 565Build (incomplete) libdw. 566 567Version 0.62: 568 569Get rid of libtool. 570 571Version 0.61: 572 573Fix URL of OSL. 574 575Version 0.60: 576 577libebl: Handle .gnu.warning.* sections correctly. 578 579size: Implement -t option. 580 581libebl: Add IA-64 support. 582libebl: Update SH relocations. 583libebl: Add Alpha support. 584libebl: Add Arm support. 585libebl: Add support for all currently known architecture to the loader. 586 587Version 0.59: 588 589nm: Implement -S option. Correct portable output format. Implement -s option. 590 591libelf: Take offset of archive into account in elf_rand. 592 593Version 0.58: 594 595strip: fix handling of ET_REL files. 596Add tests for strip. 597 598Version 0.57: 599 600strip: respect layout of input file 601 602Version 0.56: 603 604strip: handle files with large number of sections. 605 606Version 0.55: 607 608libelf: quite a few bug fixes by Alex Larsson. 609 610strip: implement -f option to place stripped sections into a separate 611file. By Alex Larsson. 612 613Version 0.54: 614 615strip: don't let STT_SECTION symbols keeps sections from being removed 616 617elflint: local symbols are allowed in .dynsym 618elflint: special case .rel.dyn a bit 619 620Version 0.53: 621 622elflint: check types and flags of special sections defined in gABI 623 624libebl: add x86-64 support 625 626Version 0.52: 627 628Start improvement of debug info handling in nm. 629 630libasm: implement asm_adduleb128 and asm_addsleb128 and a test for them 631 632Version 0.51: 633 634Fix build on 64-bit platforms. 635 636Version 0.50: 637 638nm: print file/line number also for local symbols 639 640use versions scripts not libtool's useless -export-symbols option 641 642Version 0.49: 643 644Update to autoconf 2.54 and automake 1.7. 645 646elflint: check note sections 647 648libdwarf: a number of bug fixes 649 650readelf: print .debug_info section content 651 652dwarf.h: Update from draft 7 653 654Version 0.48: 655 656libcpu: beginning 657 658libelf: new function to read parts of the ELF file 659 660libebl: support for note section handling 661 662readelf: dump note sections 663 664Version 0.47: 665 666libelf: fix little new section-handling related bugs in elf_getshstrndx 667and elf_nextscn 668 669elflint: tests for mandatory content of dynamic section 670 671libasm: better handling of absolute symbols 672 673Version 0.46: 674 675libasm: rewrite to store Elf_Scn* instead of indices 676 677nm: finish many-section support 678 679nm: use debug in to print file/line info in sysv format 680 681libdwarf: fix a few bugs in DIE handling 682 683Version 0.45: 684 685libelf: major rewrite to keep Elf_Scn references valid until elf_end 686 687Version 0.44: 688 689libasm: Add support for bss, ABS, and COM sections. 690 691libebl: ebl_section_name takes now two index arguments to distinguish 692between special sections and extended sections 693 694Version 0.43: 695 696General: fix a few problem gcc 3.1 had with the code. 697 698libelf: implement {gelf,elf32,elf64}_checksum 699 700libelf: optimze DSO: fewer relocations, fewer PLTs 701 702add msg_tst test 703 704ld: use correct section header string table index; write correct index 705 706add dependencies for *.sym files 707 708Version 0.42: 709 710libelf: add elf_getshnum and elf_getshstrndx 711 712libebl: update section type name function 713 714elflint: tons of fixes wrt large number of sections. New tests in this area. 715Same amount of other bug fixes. 716 717size, strip, nm: better support for large number of sections. Including 718using correct section header string table 719 720libasm: correctly create data structures for large number of sections 721 722new tests asm-tst4 and asm-tst5 to check large number of sections 723 724libasm: implement section group generation 725 726elflint: more tests on section groups. Improve performance on existing 727section group tests 728 729Version 0.41: 730 731ld: add undefined symbols to dynamic symbol table if --export-dynamic is 732not given 733 734ld: fix value of e_entry 735 736Version 0.40: 737 738elflint: print section names in error messages 739 740elflint: mustn't warn about multiple DT_NULL 741 742ld: don't emit all symbols if --export-dynamic is not given 743 744ld: correct compute symbol address in output file (section index was off by 1) 745 746ld: generate correct version info in dynsym without --export-dynamic and 747in symtab 748 749Version 0.39: 750 751Fix check of various e_*size entries in elflint. 752 753Handle text output in asm_newsym. 754 755Finish checks in asm-tst3. 756 757Version 0.38: 758 759Update to autoconf 2.53, automake 1.6, gettext 0.11+. 760 761Introduce *.sym files to restrict export from DSOs. 762 763Use attribute_hidden and internal_function to optimize DSO code. 764 765Add TLS definitions in elf.h and handle them in readelf. 766 767Fix bug in verdef section generation in ld. 768 769Add initial libasm code. 770 771Version 0.37: 772 773Implement better hash size optimization heuristic in ld. It uses a formula 774taking number of tests into account. 775 776Lots of small bug fixes. 777 778Improve readelf output format. Respect various sh_link/sh_info values. 779Correctly print versioning information for symbol tables. 780 781Version 0.36: 782 783Implement preprocessing of linker script. Recognize -z combreloc. 784 785Version 0.35: 786 787Implement -z ignore|record for ld. 788 789Implement creating of .gnu.version_r and .gnu.version sections. The 790.gnu.version does not yet contain correct info for defined and versioned 791symbols (means .gnu.version_d is not yet implemented). 792 793Implement gelf_update_* functions to create versioning data. 794 795Version 0.34: 796 797Add DT_RUNPATH/DT_RPATH entries to dynamic section. Create .plt and 798.rel.plt sections (completely). Add support for all four PLT related 799dynamic section entries. Add callback function for PLT creation. 800 801More tests in elflint. Add support for very strict checking which for 802now flags level 2 (deprecated features) usage. 803 804Version 0.33: 805 806Create dynamic symbol table, dynamic string table, and hash table to ld. 807 808Add hash table histogram support to readelf. 809 810Version 0.32: 811 812more work on elflint 813 814ld now creates the dynamic section and references it. Start adding entries 815to dynamic section. 816 817Version 0.31: 818 819Start implementing elflint. 820 821Version 0.30: 822 823Fix handling of NOBITS sections in elf_getdata. 824 825Start implementing generation of executables and DSOs in ld. 826Generation of program header mostly done. Address computation done. 827Extension of linker script syntax. 828 829Various cleanups. 830 831Implement section group handling in readelf. 832 833Version 0.29: 834 835Implement section groups. This involved a lot of code moving. The 836new code is entirely untested since gas/gcc are currently not able to 837create section groups. ld works fine on files without section groups. 838 839Version 0.28: 840 841Fix problem with adding more section in elf_newscn. The section pointers 842for the data buffers wasn't adjusted. 843 844Fix elf_getdata with nonzero second parameter. Correctly handle creation 845of internal data buffer for machines without unaligned access. 846 847Version 0.27: 848 849Start adding support to selectively add sections. Includes support for 850section groups. 851Add --gc-sections/--no-gc-sections options. 852Add general section merging support. 853 854Fix a bug in section group support in strip. 855 856Fix some potential problems with hash value in dynamic hash implementation. 857 858Version 0.26: 859 860section merging works in ld. 861 862Version 0.25: 863 864Actually create data structures from version map file and use it to hide 865symbols in ld. 866 867Implement -s -s for ld. 868 869Version 0.24: 870 871Improve relocation table output in readelf. Avoid some crashes. 872Finish many section handling in readelf. 873 874Finish: finish implementation of ld -r. At least some simple tests pass. 875 876Version 0.23: 877 878Fix a number of errors in ELF_C_WRITE handling. 879 880Almost finished implementation of ld -r. The data sections are all copied. 881Handling of symbol tables is missing. 882 883Version 0.22: 884 885Handle DSO and archive input files correctly if -r option is given. 886 887Gracefully deal with no phdr in new file in libelf. 888Fix various small error handling problems. 889Don't mmap file for output unless the command says so. 890 891Add code to create ELF section header table to ld finalize routines. 892 893Version 0.21: 894 895Fix some problems with recursive handling of archives in libelf. 896 897Improve messages printed by nm. 898 899Add symbol binding name handling to libebl. Fix section name handling in 900libebl. 901 902readelf and nm use more libebl functions. 903 904Handle XINDEX correctly in nm and string. 905 906Add first machine ld backend library (i386). 907Use it. Recognize -r and --shared. Avoid using -lxxx parameters for -r. 908Create ELF header in output file. Change mode of output file according to 909output file type. Reorganize callback initialization in ld. 910 911Version 0.20: 912 913Fix some memory leaks in libelf. 914 915Version 0.19: 916 917Implement reading version script. Both inside linker scripts and via the 918--version-script command line parameter. Uses the same code. 919What remains to be done is to implement a data structure which allows 920efficient matching against the version names to decide which pattern 921matches. 922 923Beginning of output generation and output writing functions. 924 925Version 0.18: 926 927Finish implementation for DSO input file handling. Implement rpath, runpath, 928and LD_LIBRARY_PATH handling. 929 930Version 0.17: 931 932make handling of e_shnum overflow in libelf standard conforming 933 934ld now actually can handle DSOs in linker scripts. Handling of DT_RUNPATH, 935DT_RPATH, -rpath, -rpath-link still remains to be implemented. 936 937fix handling of -L parameters. Make actual use of the default_paths element. 938 939make re-definition of symbols in and from DSO compatible with existing linker 940 941Version 0.16: 942 943more work on assigning input sections to output sections. 944 945Add gelf_xlatetof and gelf_xlatetom which were accidently left out. 946 947Fix memory handling of section headers. 948 949Version 0.15: 950 951Add many-section support to ld. Add various new command line parameters. 952Allow pagesize to be specified in linker script or on the command line. 953Collect input sections in list for the output section according to the rules 954specified in the linker script. 955 956Version 0.14: 957 958Fix some problems in the internal list handling which had the result 959that we didn't look for some of the unresolved symbols. 960 961Free some memory if we know we don't need it anymore. 962 963Optimize the list of unresolved symbols. Throw out symbols which are 964meanwhile resolved. 965 966Version 0.13: 967 968Got file reading correct now. The files are all read while parsing 969the parameters. No creating of data structures to describe the linker 970command line. The symbol table is built up while reading the files. 971DSOs are handled now. -( -) handling is optimized. 972 973Version 0.12: 974 975Linker read linker scripts everywhere. Handles --whole-archive. Recognizes 976--dynamic and --static. Collects defined and undefined symbols. Recognizes 977conflicts. 978 979libebl now defines functions to call the callbacks. Add generic name handling 980in these new functions. Remove the code from readelf and call the new 981functions. 982 983Version 0.11: 984 985Start of linker. Basic argument parsing, finding of input files, 986linker script reading. 987 988Version 0.10: 989 990Implement dwarf_get_fde_n(), dwarf_get_abbrev(), dwarf_get_abbrev_tag(), 991dwarf_get_abbrev_code(), dwarf_get_abbrev_children_flag(), 992dwarf_get_abbrev_entry(), dwarf_get_fde_at_pc(), and tests for it. 993 994Version 0.9: 995 996Implement dwarf_get_fde_list_eh(), dwarf_get_cie_of_fde(), 997dwarf_get_fde_range(), dwarf_get_cie_info(), dwarf_get_fde_instr_bytes(), 998and tests for them. 999 1000Version 0.8: 1001 1002Make handling of binaries in other byte order work and add tests for it. 1003 1004Version 0.7: 1005 1006Implement dwarf_get_aranges(), dwarf_get_arange(), dwarf_get_cu_die_offset(), 1007dwarf_get_arange_info(), and tests for them. 1008 1009Version 0.6: 1010 1011Implement dwarf_get_global(), dwarf_globname(), dwarf_global_die_offset(), 1012dwarf_global_cu_offset(), dwarf_global_name_offsets(), and tests for them 1013 1014Version 0.5: 1015 1016Implemented dwarf_srclines(), dwarf_srcfiles(), dwarf_linebeginstatement(), 1017dwarf_lineendsequence(), dwarf_lineno(), dwarf_lineaddr(), dwarf_lineoff(), 1018dwarf_linesrc(), dwarf_lineblock(), dwarf_lineprologueend(), 1019dwarf_lineepiloguebegin(), and tests for them. 1020 1021Version 0.4: 1022 1023Implemented dwarf_loclist(). 1024 1025Version 0.3: 1026 1027Implemented dwarf_dieoffset(), dwarf_die_CU_offset(), dwarf_diename() and 1028tests. 1029 1030Implemented dwarf_attrlist(), dwarf_hasattr(), dwarf_attr(), dwarf_lowpc(), 1031dwarf_highpc(), dwarf_bytesize(), dwarf_bitsize(), dwarf_bitoffset(), 1032dwarf_srclang(), dwarf_arrayorder(), dwarf_hasform(), dwarf_whatform(), 1033dwarf_whatattr(), dwarf_formref(), dwarf_global_formref(), dwarf_formaddr(), 1034dwarf_formflag(), dwarf_formudata(), dwarf_formsdata(), dwarf_formblock, 1035dwarf_formstring() and tests for them. 1036 1037Version 0.2: 1038 1039Implemented dwarf_offdie()), dwarf_tag(), dwarf_dieoffset(), 1040dwarf_die_CU_offset(), dwarf_diename() and tests for them. 1041 1042Version 0.1: 1043 1044First libdwarf functions work. 1045 1046Version 0.0: 1047 1048libelf and parts of libebl are done. 1049