Version 0.178

debuginfod: New server, client tool and library to index and fetch
            ELF/DWARF files addressed by build-id through HTTP.

doc: There are now some manual pages for functions and tools.

backends: The libebl libraries are no longer dynamically loaded through
          dlopen, but are now compiled into libdw.so directly.

readelf: -n, --notes now takes an optional "SECTION" argument.
         -p and -x now also handle section numbers.
         New option --dyn-sym to show just the dynamic symbol table.

libcpu: Add RISC-V disassembler.

libdw: Abbrevs and DIEs can now be read concurrently by multiple
       threads through the same Dwarf handle.

libdwfl: Will try to use debuginfod when installed as fallback to
         retrieve ELF and DWARF debug data files by build-id.

Version 0.177

elfclassify: New tool to analyze ELF objects.

readelf: Print DW_AT_data_member_location as decimal offset.
         Decode DW_AT_discr_list block attributes.

libdw: Add DW_AT_GNU_numerator, DW_AT_GNU_denominator and DW_AT_GNU_bias.

libdwelf: Add dwelf_elf_e_machine_string.
          dwelf_elf_begin now only returns NULL when there is an error
          reading or decompressing a file. If the file is not an ELF file
          an ELF handle of type ELF_K_NONE is returned.

backends: Add support for C-SKY.

Version 0.176

build: Add new --enable-install-elfh option.
       Do NOT use this for system installs (it overrides glibc elf.h).

backends: riscv improved core file and return value location support.

Fixes CVE-2019-7146, CVE-2019-7148, CVE-2019-7149, CVE-2019-7150,
      CVE-2019-7664, CVE-2019-7665

Version 0.175

readelf: Handle mutliple .debug_macro sections.
         Recognize and parse GNU Property notes, NT_VERSION notes
         and GNU Build Attribute ELF Notes.

strip: Handle SHT_GROUP correctly.
       Add strip --reloc-debug-sections-only option.
       Handle relocations against GNU compressed sections.

libdwelf: New function dwelf_elf_begin.

libcpu: Recognize bpf jump variants BPF_JLT, BPF_JLE, BPF_JSLT and BPF_JSLE.

backends: RISCV handles ADD/SUB relocations. Handle SHT_X86_64_UNWIND.

Fixes CVE-2018-18310, CVE-2018-18520 and CVE-2018-18521.

Version 0.174

libelf, libdw and all tools now handle extended shnum and shstrndx correctly.

elfcompress: Don't rewrite input file if no section data needs updating.
             Try harder to keep same file mode bits (suid) on rewrite.

strip: Handle mixed (out of order) allocated/non-allocated sections.

unstrip: Handle SHT_GROUP sections.

backends: RISCV and M68K now have backend implementations to generate CFI based
          backtraces.

Fixes CVE-2018-16062, CVE-2018-16402 and CVE-2018-16403.

Version 0.173

More fixes for crashes and hangs found by afl-fuzz. In particular various
functions now detect and break infinite loops caused by bad DIE tree cycles.

readelf: Will now lookup the size and signedness of constant value types
         to display them correctly (and not just how they were encoded).

libdw: New function dwarf_next_lines to read CU-less .debug_line data.
       dwarf_begin_elf now accepts ELF files containing just .debug_line
       or .debug_frame sections (which can be read without needing a DIE
       tree from the .debug_info section).
       Removed dwarf_getscn_info, which was never implemented.

backends: Handle BPF simple relocations.
          The RISCV backends now handles ABI specific CFI and knows about
          RISCV register types and names.

Version 0.172

No functional changes compared to 0.171.

Various bug fixes in libdw and eu-readelf dealing with bad DWARF5 data.
Thanks to running the afl fuzzer on eu-readelf and various testcases.

eu-readelf -N is ~15% faster.

Version 0.171

DWARF5 and split dwarf, including GNU DebugFission, are supported now.
Data can be read from the new DWARF sections .debug_addr, .debug_line_str,
.debug_loclists, .debug_str_offsets and .debug_rnglists.  Plus the new
DWARF5 and GNU DebugFission encodings of the existing .debug sections.
Also in split DWARF .dwo (DWARF object) files.  This support is mostly
handled by existing functions (dwarf_getlocation*, dwarf_getsrclines,
dwarf_ranges, dwarf_form*, etc.) now returning the data from the new
sections and data formats.  But some new functions have been added
to more easily get information about skeleton and split compile units
(dwarf_get_units and dwarf_cu_info), handle new attribute data
(dwarf_getabbrevattr_data) and to keep references to Dwarf_Dies
that might come from different sections or files (dwarf_die_addr_die).

Not yet supported are .dwp (Dwarf Package) and .sup (Dwarf Supplementary)
files, the .debug_names index, the .debug_cu_index and .debug_tu_index
sections. Only a single .debug_info (and .debug_types) section are
currently handled.

readelf: Handle all new DWARF5 sections.
         --debug-dump=info+ will show split unit DIEs when found.
         --dwarf-skeleton can be used when inspecting a .dwo file.
	 Recognizes GNU locviews with --debug-dump=loc.

libdw: New functions dwarf_die_addr_die, dwarf_get_units,
       dwarf_getabbrevattr_data and dwarf_cu_info.
       libdw will now try to resolve the alt file on first use of
       an alt attribute FORM when not set yet with dwarf_set_alt.
       dwarf_aggregate_size() now works with multi-dimensional arrays.

libdwfl: Use process_vm_readv when available instead of ptrace.

backends: Add a RISC-V backend.

There were various improvements to build on Windows.
The sha1 and md5 implementations have been removed, they weren't used.

Version 0.170

libdw: Added new DWARF5 attribute, tag, character encoding, language code,
       calling convention, defaulted member function and macro constants
       to dwarf.h.
       New functions dwarf_default_lower_bound and dwarf_line_file.
       dwarf_peel_type now handles DWARF5 immutable, packed and shared tags.
       dwarf_getmacros now handles DWARF5 .debug_macro sections.

strip: Add -R, --remove-section=SECTION and --keep-section=SECTION.

backends: The bpf disassembler is now always build on all platforms.

Version 0.169

backends: Add support for EM_PPC64 GNU_ATTRIBUTES.
          Frame pointer unwinding fallback support for i386, x86_64, aarch64.

translations: Update Polish translation.

Version 0.168

http://elfutils.org/ is now hosted at http://sourceware.org/elfutils/

libelf: gelf_newehdr and gelf_newehdr now return void *.

libdw: dwarf.h corrected the DW_LANG_PLI constant name (was DW_LANG_PL1).

readelf: Add optional --symbols[=SECTION] argument to select section name.

Version 0.167

libasm: Add eBPF disassembler for EM_BPF files.

backends: Add m68k and BPF backends.

ld: Removed.

dwelf: Add ELF/DWARF string table creation functions. dwelf_strtab_init,
       dwelf_strtab_add, dwelf_strtab_add_len, dwelf_strtab_finalize,
       dwelf_strent_off, dwelf_strent_str and dwelf_strtab_free.

Version 0.166

config: The default program prefix for the installed tools is now eu-.
        Use configure --program-prefix="" to not use a program prefix.

Version 0.165

elfcompress: New utility to compress or decompress ELF sections.

readelf: Add -z,--decompress option.

libelf: Add elf_compress, elf_compress_gnu, elf32_getchdr, elf64_getchdr
        and gelf_getchdr.

libdwelf: New function dwelf_scn_gnu_compressed_size.

config: Add libelf and libdw pkg-config files.

backends: sparc support for core and live backtraces.

translations: Updated Polish translation.

Version 0.164

strip, unstrip: Handle ELF files with merged strtab/shstrtab tables.
                Handle missing SHF_INFO_LINK section flags.

libelf: Use int64_t for offsets in libelf.h instead of loff_t.

libdw: dwarf.h Add preliminary DWARF5 DW_LANG_Haskell.

libdwfl: dwfl_standard_find_debuginfo now searches any subdir of the binary
         path under the debuginfo root when the separate debug file couldn't
         be found by build-id.
         dwfl_linux_proc_attach can now be called before any Dwfl_Modules
         have been reported.

backends: Better sparc and sparc64 support.

translations: Updated Ukrainian translation.

Provide default-yama-scope subpackage.

Version 0.163

Bug fixes only, no new features.

Version 0.162

libdw: Install new header elfutils/known-dwarf.h.
       dwarf.h Add preliminary DWARF5 constants DW_TAG_atomic_type,
       DW_LANG_Fortran03, DW_LANG_Fortran08. dwarf_peel_type now also
       handles DW_TAG_atomic_type.

addr2line: Input addresses are now always interpreted as hexadecimal
           numbers, never as octal or decimal numbers.
           New option -a, --addresses to print address before each entry.
           New option -C, --demangle to show demangled symbols.
           New option --pretty-print to print all information on one line.

ar: CVE-2014-9447 Directory traversal vulnerability in ar extraction.

backends: x32 support.

Version 0.161

libdw: New function dwarf_peel_type. dwarf_aggregate_size now uses
       dwarf_peel_type to also provide the sizes of qualified types.
       dwarf_getmacros will now serve either of .debug_macro and
       .debug_macinfo transparently.  New interfaces
       dwarf_getmacros_off, dwarf_macro_getsrcfiles,
       dwarf_macro_getparamcnt, and dwarf_macro_param are available
       for more generalized inspection of macros and their parameters.
       dwarf.h: Add DW_AT_GNU_deleted, DW_AT_noreturn, DW_LANG_C11,
       DW_LANG_C_plus_plus_11 and DW_LANG_C_plus_plus_14.

Version 0.160

libdw: New functions dwarf_cu_getdwarf, dwarf_cu_die.
       dwarf.h remove non-existing DW_TAG_mutable_type.

libdwfl: Handle LZMA .ko.xz compressed kernel modules.

unstrip: New option -F, --force to combining files even if some ELF headers
         don't seem to match.

backends: Handle ARM THUMB functions. Add support for ppc64le ELFv2 abi.

Version 0.159

stack: New option -d, --debugname to lookup DWARF debuginfo name for frame.
       New option -i, --inlines to show inlined frames using DWARF debuginfo.

libdwelf: New libdwelf.h header for libdw.so DWARF ELF Low-level Functions.
          New function dwelf_elf_gnu_debuglink, dwelf_dwarf_gnu_debugaltlink,
	  and dwelf_elf_gnu_build_id.

libdw: Support for DWZ multifile forms DW_FORM_GNU_ref_alt and
       DW_FORM_GNU_strp_alt is now enabled by default and no longer
       experimental. Added new functions dwarf_getalt and dwarf_setalt
       to get or set the alternative debug file used for the alt FORMs.
       The dwfl_linux_proc_find_elf callback will now find ELF from
       process memory for (deleted) files if the Dwfl has process state
       attached.

libdwfl: The dwfl_build_id_find_debuginfo and dwfl_standard_find_debuginfo
         functions will now try to resolve and set the alternative debug file.

backends: Add CFI unwinding for arm. Relies on .debug_frame.
          Add arm process initial register state compatible mode to AARCH64.
          Add aarch64 native and core unwind support.

other: All separate elfutils-robustify patches have been merged.
       CVE-2014-0172 Check overflow before calling malloc to uncompress data.

Version 0.158

libdwfl: dwfl_core_file_report has new parameter executable.
         New functions dwfl_module_getsymtab_first_global,
         dwfl_module_getsym_info and dwfl_module_addrinfo.
         Added unwinder with type Dwfl_Thread_Callbacks, opaque types
         Dwfl_Thread and Dwfl_Frame and functions dwfl_attach_state,
         dwfl_pid, dwfl_thread_dwfl, dwfl_thread_tid, dwfl_frame_thread,
         dwfl_thread_state_registers, dwfl_thread_state_register_pc,
         dwfl_getthread_frames, dwfl_getthreads, dwfl_thread_getframes
         and dwfl_frame_pc.

addr2line: New option -x to show the section an address was found in.

stack: New utility that uses the new unwinder for processes and cores.

backends: Unwinder support for i386, x86_64, s390, s390x, ppc and ppc64.
          aarch64 support.

Version 0.157

libdw: Add new functions dwarf_getlocations, dwarf_getlocation_attr
       and dwarf_getlocation_die.

readelf: Show contents of NT_SIGINFO and NT_FILE core notes.

addr2line: Support -i, --inlines output option.

backends: abi_cfi hook for arm, ppc and s390.

Version 0.156

lib: New macro COMPAT_VERSION_NEWPROTO.

libdw: Handle GNU extension opcodes in dwarf_getlocation.

libdwfl: Fix STB_GLOBAL over STB_WEAK preference in dwfl_module_addrsym.
         Add minisymtab support.
         Add parameter add_p_vaddr to dwfl_report_elf.
         Use DT_DEBUG library search first.

libebl: Handle new core note types in EBL.

backends: Interpret NT_ARM_VFP.
          Implement core file registers parsing for s390/s390x.

readelf: Add --elf-section input option to inspect an embedded ELF file.
         Add -U, --unresolved-address-offsets output control.
         Add --debug-dump=decodedline support.
         Accept version 8 .gdb_index section format.
         Adjust output formatting width.
         When highpc is in constant form print it also as address.
         Display raw .debug_aranges. Use libdw only for decodedaranges.

elflint: Add __bss_start__ to the list of allowed symbols.

tests: Add configure --enable-valgrind option to run all tests under valgrind.
       Enable automake parallel-tests for make check.

translations: Updated Polish translation.

Updates for Automake 1.13.

Version 0.155

libelf: elf*_xlatetomd now works for cross-endian ELF note data.
        elf_getshdr now works consistently on non-mmaped ELF files after
        calling elf_cntl(ELF_C_FDREAD).
        Implement support for ar archives with 64-bit symbol table.

libdw: dwarf.h corrected the DW_LANG_ObjC constant name (was DW_LANG_Objc).
       Any existing sources using the old name will have to be updated.
       Add DW_MACRO_GNU .debug_macro type encodings constants, DW_ATE_UTF
       and DW_OP_GNU_parameter_ref to dwarf.h.
       Experimental support for DWZ multifile forms DW_FORM_GNU_ref_alt
       and DW_FORM_GNU_strp_alt.  Disabled by default.  Use configure
       --enable-dwz to test it.

readelf: Add .debug_macro parsing support.
         Add .gdb_index version 7 parsing support.
         Recognize DW_OP_GNU_parameter_ref.

backends: Add support for Tilera TILE-Gx processor.

translations: Updated Ukrainian translation.

Version 0.154

libelf: [g]elf[32|64]_offscn() do not match SHT_NOBITS sections at OFFSET.

libdw: dwarf_highpc function now handles DWARF 4 DW_AT_high_pc constant form.
       Fix bug using dwarf_next_unit to iterate over .debug_types.

elflint: Now accepts gold linker produced executables.

The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone
programs. There is now also a formal CONTRIBUTING document describing how to
submit patches.

Version 0.153

libdw: Support reading .zdebug_* DWARF sections compressed via zlib.

libdwfl: Speed up dwfl_module_addrsym.

nm: Support C++ demangling.

ar: Support D modifier for "deterministic output" with no uid/gid/mtime info.
    The U modifier is the inverse.
    elfutils can be configured with the --enable-deterministic-archives
    option to make the D behavior the default when U is not specified.

ranlib: Support -D and -U flags with same meaning.

readelf: Improve output of -wline. Add support for printing SDT elf notes.
         Add printing of .gdb_index section.
	 Support for typed DWARF stack, call_site and entry_value.

strip: Add --reloc-debug-sections option.
       Improved SHT_GROUP sections handling.

Version 0.152

Various build and warning nits fixed for newest GCC and Autoconf.

libdwfl: Yet another prelink-related fix for another regression.
	 Look for Linux kernel images in files named with compression suffixes.

elfcmp: New flag --ignore-build-id to ignore differing build ID bits.
	New flag -l/--verbose to print all differences.

Version 0.151

libdwfl: Fix for more prelink cases with separate debug file.

strip: New flag --strip-sections to remove section headers entirely.

Version 0.150

libdw: Fix for handling huge .debug_aranges section.

libdwfl: Fix for handling prelinked DSO with separate debug file.

findtextrel: Fix diagnostics to work with usual section ordering.

libebl: i386 backend fix for multi-register integer return value location.

Version 0.149:

libdw: Decode new DW_OP_GNU_implicit_pointer operation;
       new function dwarf_getlocation_implicit_pointer.

libdwfl: New function dwfl_dwarf_line.

addr2line: New flag -F/--flags to print more DWARF line information details.

strip: -g recognizes .gdb_index as a debugging section.

Version 0.148:

libdw: Accept DWARF 4 format: new functions dwarf_next_unit, dwarf_offdie_types.
       New functions dwarf_lineisa, dwarf_linediscriminator, dwarf_lineop_index.

libdwfl: Fixes in core-file handling, support cores from PIEs.
	 When working from build IDs, don't open a named file that mismatches.

readelf: Handle DWARF 4 formats.

Version 0.147:

libdw: Fixes in CFI handling, best possible handling of bogus CFA ops.

libdwfl: Ignore R_*_NONE relocs, works around old (binutils) ld -r bugs.

Version 0.146:

libdwfl: New function dwfl_core_file_report.

Version 0.145:

Fix build with --disable-dependency-tracking.

Fix build with most recent glibc headers.

libelf: More robust to bogus section headers.

libdw: Fix CFI decoding.

libdwfl: Fix address bias returned by CFI accessors.
	 Fix core file module layout identification.

readelf: Fix CFI decoding.

Version 0.144:

libelf: New function elf_getphdrnum.
	Now support using more than 65536 program headers in a file.

libdw: New function dwarf_aggregate_size for computing (constant) type
       sizes, including array_type cases with nontrivial calculation.

readelf: Don't give errors for missing info under -a.
	 Handle Linux "VMCOREINFO" notes under -n.

Version 0.143:

libdw: Various convenience functions for individual attributes now use
       dwarf_attr_integrate to look up indirect inherited attributes.
       Location expression handling now supports DW_OP_implicit_value.

libdwfl: Support automatic decompression of files in XZ format,
	 and of Linux kernel images made with bzip2 or LZMA (as well as gzip).

Version 0.142:

libelf: Add elf_getshdrnum alias for elf_getshnum and elf_getshdrstrndx alias
	for elf_getshstrndx and deprecate original names.  Sun screwed up
	their implementation and asked for a solution.

libebl: Add support for STB_GNU_UNIQUE.

elflint: Add support for STB_GNU_UNIQUE.

readelf: Add -N option, speeds up DWARF printing without address->name lookups.

libdw: Add support for decoding DWARF CFI into location description form.
       Handle some new DWARF 3 expression operations previously omitted.
       Basic handling of some new encodings slated for DWARF 4.

Version 0.141:

libebl: sparc backend fixes;
	some more arm backend support

libdwfl: fix dwfl_module_build_id for prelinked DSO case;
	 fixes in core file support;
	 dwfl_module_getsym interface improved for non-address symbols

strip: fix infinite loop on strange inputs with -f

addr2line: take -j/--section=NAME option for binutils compatibility
	   (same effect as '(NAME)0x123' syntax already supported)

Version 0.140:

libelf: Fix regression in creation of section header

libdwfl: Less strict behavior if DWARF reader ist just used to display data

Version 0.139:

libcpu: Add Intel SSE4 disassembler support

readelf: Implement call frame information and exception handling dumping.
	 Add -e option.  Enable it implicitly for -a.

elflint: Check PT_GNU_EH_FRAME program header entry.

libdwfl: Support automatic gzip/bzip2 decompression of ELF files.

Version 0.138:

Install <elfutils/version.h> header file for applications to use in source
version compatibility checks.

libebl: backend fixes for i386 TLS relocs; backend support for NT_386_IOPERM

libcpu: disassembler fixes

libdwfl: bug fixes

libelf: bug fixes

nm: bug fixes for handling corrupt input files

Version 0.137:

Minor fixes for unreleased 0.136 release.

Version 0.136:

libdwfl: bug fixes; new "segment" interfaces;
	 all the libdwfl-based tools now support --core=COREFILE option

Version 0.135:

libdwfl: bug fixes

strip: changed handling of ET_REL files wrt symbol tables and relocs

Version 0.134:

elflint: backend improvements for sparc, alpha

libdwfl, libelf: bug fixes

Version 0.133:

readelf, elflint, libebl: SHT_GNU_ATTRIBUTE section handling (readelf -A)

readelf: core note handling for NT_386_TLS, NT_PPC_SPE, Alpha NT_AUXV

libdwfl: bug fixes and optimization in relocation handling

elfcmp: bug fix for non-allocated section handling

ld: implement newer features of binutils linker.

Version 0.132:

libcpu: Implement x86 and x86-64 disassembler.
libasm: Add interface for disassembler.

all programs: add debugging of branch prediction.

libelf: new function elf_scnshndx.

Version 0.131:

libdw: DW_FORM_ref_addr support; dwarf_formref entry point now deprecated;
       bug fixes for oddly-formatted DWARF

libdwfl: bug fixes in offline archive support, symbol table handling;
	 apply partial relocations for dwfl_module_address_section on ET_REL

libebl: powerpc backend support for Altivec registers

Version 0.130:

readelf: -p option can take an argument like -x for one section,
	 or no argument (as before) for all SHF_STRINGS sections;
	 new option --archive-index (or -c);
	 improved -n output for core files, on many machines

libelf: new function elf_getdata_rawchunk, replaces gelf_rawchunk;
	new functions gelf_getnote, gelf_getauxv, gelf_update_auxv

readelf, elflint: handle SHT_NOTE sections without requiring phdrs

elflint: stricter checks on debug sections

libdwfl: new functions dwfl_build_id_find_elf, dwfl_build_id_find_debuginfo,
	 dwfl_module_build_id, dwfl_module_report_build_id;
	 support dynamic symbol tables found via phdrs;
	 dwfl_standard_find_debuginfo now uses build IDs when available

unstrip: new option --list (or -n)

libebl: backend improvements for sparc, alpha, powerpc

Version 0.129:

readelf: new options --hex-dump (or -x), --strings (or -p)

addr2line: new option --symbols (or -S)

Version 0.128:

new program: unstrip

elfcmp: new option --hash-inexact

Version 0.127:

libdw: new function dwarf_getsrcdirs

libdwfl: new functions dwfl_module_addrsym, dwfl_report_begin_add,
	 dwfl_module_address_section

Version 0.126:

new program: ar

Version 0.125:

elflint: Compare DT_GNU_HASH tests.

move archives into -static RPMs

libelf, elflint: better support for core file handling

Version 0.124:

libebl: sparc backend support for return value location

libebl, libdwfl: backend register name support extended with more info

libelf, libdw: bug fixes for unaligned accesses on machines that care

readelf, elflint: trivial bugs fixed

Version 0.123:

libebl: Backend build fixes, thanks to Stepan Kasal.

libebl: ia64 backend support for register names, return value location

libdwfl: Handle truncated linux kernel module section names.

libdwfl: Look for linux kernel "vmlinux" files with ".debug" suffix.

elflint: Fix checks to permit --hash-style=gnu format.

Version 0.122:

libebl: add function to test for relative relocation

elflint: fix and extend DT_RELCOUNT/DT_RELACOUNT checks

elflint, readelf: add support for DT_GNU_HASH
libelf: add elf_gnu_hash

elflint, readelf: add support for 64-bit SysV-style hash tables

libdwfl: new functions dwfl_module_getsymtab, dwfl_module_getsym.

Version 0.121:

libelf: bug fixes for rewriting existing files when using mmap.

make all installed headers usable in C++ code.

readelf: better output format.

elflint: fix tests of dynamic section content.

ld: Implement --as-needed, --execstack, PT_GNU_STACK.  Many small patches.

libdw, libdwfl: handle files without aranges info.

Version 0.120:

Bug fixes.

dwarf.h updated for DWARF 3.0 final specification.

libdwfl: New function dwfl_version.

The license is now GPL for most files.  The libelf, libebl, libdw,
and libdwfl libraries have additional exceptions.  Add reference to
OIN.

Version 0.119:

bug fixes

Version 0.118:

elflint: more tests.

libdwfl: New function dwfl_module_register_names.

libebl: New backend hook for register names.

Version 0.117:

libdwfl: New function dwfl_module_return_value_location.

libebl: Backend improvements for several CPUs.

Version 0.116:

libdw: New functions dwarf_ranges, dwarf_entrypc, dwarf_diecu,
       dwarf_entry_breakpoints.  Removed Dwarf_Func type and functions
       dwarf_func_name, dwarf_func_lowpc, dwarf_func_highpc,
       dwarf_func_entrypc, dwarf_func_die; dwarf_getfuncs callback now uses
       Dwarf_Die, and dwarf_func_file, dwarf_func_line, dwarf_func_col
       replaced by dwarf_decl_file, dwarf_decl_line, dwarf_decl_column;
       dwarf_func_inline, dwarf_func_inline_instances now take Dwarf_Die.
       Type Dwarf_Loc renamed to Dwarf_Op; dwarf_getloclist,
       dwarf_addrloclists renamed dwarf_getlocation, dwarf_getlocation_addr.

Version 0.115:

libelf: speed-ups of non-mmap reading.

strings: New program.

Implement --enable-gcov option for configure.

libdw: New function dwarf_getscopes_die.

Version 0.114:

libelf: new function elf_getaroff

libdw: Added dwarf_func_die, dwarf_func_inline, dwarf_func_inline_instances.

libdwfl: New functions dwfl_report_offline, dwfl_offline_section_address,
	 dwfl_linux_kernel_report_offline.

ranlib: new program

Version 0.113:

elflint: relax a bit. Allow version definitions for defined symbols against
DSO versions also for symbols in nobits sections.  Allow .rodata section
to have STRINGS and MERGE flag set.

strip: add some more compatibility with binutils.

Version 0.112:

elfcmp: some more relaxation.

elflint: many more tests, especially regarding to symbol versioning.

libelf: Add elfXX_offscn and gelf_offscn.

libasm: asm_begin interface changes.

libebl: Add three new interfaces to directly access machine, class, and
data encoding information.

objdump: New program.  Just the beginning.

Version 0.111:

libdw: now contains all of libdwfl.  The latter is not installed anymore.

elfcmp: little usability tweak, name and index of differing section is printed.

Version 0.110:

libelf: fix a number of problems with elf_update

elfcmp: fix a few bugs.  Compare gaps.

Fix a few PLT problems and mudflap build issues.

libebl: Don't expose Ebl structure definition in libebl.h.  It's now private.

Version 0.109:

libebl: Check for matching modules.

elflint: Check that copy relocations only happen for OBJECT or NOTYPE symbols.

elfcmp: New program.

libdwfl: New library.

Version 0.108:

strip: fix bug introduced in last change

libdw: records returned by dwarf_getsrclines are now sorted by address

Version 0.107:

readelf: improve DWARF output format

strip: support Linux kernel modules

Version 0.106:

libdw: Updated dwarf.h from DWARF3 spec
libdw: add new funtions dwarf_func_entrypc, dwarf_func_file, dwarf_func_line,
dwarf_func_col, dwarf_getsrc_file

Version 0.105:

addr2line: New program

libdw: add new functions: dwarf_addrdie, dwarf_macro_*, dwarf_getfuncs,
dwarf_func_*.

findtextrel: use dwarf_addrdie

Version 0.104:

findtextrel: New program.

Version 0.103:

libdw: Fix using libdw.h with gcc < 4 and C++ code.  Compiler bug.

Version 0.102:

More Makefile and spec file cleanups.

Version 0.101:

Remove most gettext autoconf handling.

Add more warnings

Fix resulting problems.  One actual bug found and fixed this way

Version 0.100:

libebl: Fix x86-64 relocations.

Add -Wunused -Wextra warnings.

Some cleanups resulting from those additional warnings.

Lots of Makefile cleanup.

Version 0.99:

libelf: add gelf_checksum prototype to <libelf.h>

libelf: fix elf*_checksum handling of NOBITS sections

Finish mudflap support.

Fix three bugs found by mudflap.

ld: add as_needed support

Version 0.98:

readelf: in section to segment mapping, indicate read-only sections.

elflint: more relaxation for GNU ld

Version 0.97:

Fix compiling with gcc 4.0.
Some tests called elflint without appropriate LD_LIBRARY_PATH.

Version 0.96:

Fix support for platforms with lib64.

Version 0.95:

libebl: add ppc and ppc64 support

readelf: fix minimal memory leak.

Add support to compile with mudflap.

Modernize configure.ac.  Move scripts in config subdir.

Modernize *-po directory infrastructure.

libelf: Add gelf_getlib and gelf_update_lib

readelf: print liblist sections

Version 0.94:

Fix some minimal build problems.

Version 0.93:

ibdw: tons of new functionality and bug fixes.  Several interface changes.

readelf: use libdw now.

libdwarf: removed completely.

Version 0.92:

configuration changes.

Version 0.91:

libdw: fix memory handling.  Implement source line handling.
nm: use libdw instead of libdwarf.
libelf: change to GPL from OSL1 for now.

Version 0.90:

libebl: Recognize a few more section types and dynamic tags and return
approriate strings.

Version 0.89:

strip: fix overwriting of symbol table in input file.

Version 0.88:

libebl: Add some ia64 bits.

Version 0.87:

Bug fixes for big endian and some 64-bit machines.

Version 0.86:

strip: fix handling of Alpha and s390x which use incorrect hash bucket sizes.

ld: tons of changes, moving towards usability.

Version 0.85:

strip: update section group symbol index if the associated symbol table changed

libelf: fix two problems with generating output not via mmap

elflint: add probably 10-15 more tests
libebl: add support for some of the new tests

ld: gazillion changes

Version 0.84:

elflint: deal with .rel.dyn section.  Fix a problem with rela platforms.
Handle PT_GNU_STACK.  Change to write messages to stdout.

readelf: fix a problem with version information in the symbol table output.

strip: update all version symbol table entries

Version 0.83:

size: fix a warning

strip: last changed caused problems when the symbol table is before the
relocation section.  Fixed.  This fix also improved the asymptotic
behavior if many symbol table sections are present.

Version 0.82:

Run strip tests with the correct libelf and libebl.

libelf: fix bug in verneed byte order changing code.

Version 0.81:

strip: Remove unused symbol table entries.  This might require updating
various other sections.

Version 0.80:

Fix some libelf problems with ET_REL files.

Version 0.79:

More warning changes, mainly by jbj.

libdw: yet more new code.  dwarf_child and dwarf_sibling should now actually
work.

Version 0.78:

libdw: 10+ new functions.  get-pubnames2 works now fully.  Almost all the
code needed for nm is in place.

Version 0.77:

cleanups to compile cleanly with gcc 3.3 and -Werror.

libdw: some new code.

Version 0.76:

libebl: Fix last patch to recognize relocation sections.   We must not
use the name.

Version 0.75:

libebl: .debug_ranges is a DWARF 3 debug section
libebl: recognize relocation sections for debug section
Patches by Jakub Jelinek.

Version 0.74:

Cleanups and more SPARC support by Tom Callaway <tcallaway@redhat.com>.

Version 0.73:

64-bit cleanups for the programs.

Version 0.72:

libelf: and yet more fun with endian tranformation at output time.

Version 0.71:

libelf: more fun with endian tranformation at output time.  Add test for it.

Version 0.70:

libelf: Two little bugs left from previous patch to handle section output
order.

libelf: add unlikely in some more places.

Version 0.69:

libelf: fix output routines to handle case where section indeces and
ordre in the output file don't match correctly.  Patch by Jakub.

elflint: fix test of note section content for 64-bit platforms and files
with different byte order.

Version 0.68:

libebl: Fix SH_ENTSIZE_HASH definition (patch by Jakub)

Version 0.67:

libelf: correct mistake in error string handling.

libelf: Implement ELF_F_PERMISSIVE.
strip: Implement --permissive option.

Version 0.66:

strip: Implement -g option.

libelf: Handle broken hash table entry sizes.

libebl: New function ebl_debugscn_p.  Use it where appropriate.

Version 0.65:

libelf: Use correct file size for NOBITS section with ELF_F_LAYOUT set

Version 0.64:

libelf: Make error handling more robust.
libelf: Use TLS in error handler if configured with --enable-tls

tests: input files are now distributed, not uuencoded in the shell scripts

libdw: implement error handling, dwarf_get_pubnames

Version 0.63:

Build (incomplete) libdw.

Version 0.62:

Get rid of libtool.

Version 0.61:

Fix URL of OSL.

Version 0.60:

libebl: Handle .gnu.warning.* sections correctly.

size: Implement -t option.

libebl: Add IA-64 support.
libebl: Update SH relocations.
libebl: Add Alpha support.
libebl: Add Arm support.
libebl: Add support for all currently known architecture to the loader.

Version 0.59:

nm: Implement -S option.  Correct portable output format.  Implement -s option.

libelf: Take offset of archive into account in elf_rand.

Version 0.58:

strip: fix handling of ET_REL files.
Add tests for strip.

Version 0.57:

strip: respect layout of input file

Version 0.56:

strip: handle files with large number of sections.

Version 0.55:

libelf: quite a few bug fixes by Alex Larsson.

strip: implement -f option to place stripped sections into a separate
file.  By Alex Larsson.

Version 0.54:

strip: don't let STT_SECTION symbols keeps sections from being removed

elflint: local symbols are allowed in .dynsym
elflint: special case .rel.dyn a bit

Version 0.53:

elflint: check types and flags of special sections defined in gABI

libebl: add x86-64 support

Version 0.52:

Start improvement of debug info handling in nm.

libasm: implement asm_adduleb128 and asm_addsleb128 and a test for them

Version 0.51:

Fix build on 64-bit platforms.

Version 0.50:

nm: print file/line number also for local symbols

use versions scripts not libtool's useless -export-symbols option

Version 0.49:

Update to autoconf 2.54 and automake 1.7.

elflint: check note sections

libdwarf: a number of bug fixes

readelf: print .debug_info section content

dwarf.h: Update from draft 7

Version 0.48:

libcpu: beginning

libelf: new function to read parts of the ELF file

libebl: support for note section handling

readelf: dump note sections

Version 0.47:

libelf: fix little new section-handling related bugs in elf_getshstrndx
and elf_nextscn

elflint: tests for mandatory content of dynamic section

libasm: better handling of absolute symbols

Version 0.46:

libasm: rewrite to store Elf_Scn* instead of indices

nm: finish many-section support

nm: use debug in to print file/line info in sysv format

libdwarf: fix a few bugs in DIE handling

Version 0.45:

libelf: major rewrite to keep Elf_Scn references valid until elf_end

Version 0.44:

libasm: Add support for bss, ABS, and COM sections.

libebl: ebl_section_name takes now two index arguments to distinguish
between special sections and extended sections

Version 0.43:

General: fix a few problem gcc 3.1 had with the code.

libelf: implement {gelf,elf32,elf64}_checksum

libelf: optimze DSO: fewer relocations, fewer PLTs

add msg_tst test

ld: use correct section header string table index; write correct index

add dependencies for *.sym files

Version 0.42:

libelf: add elf_getshnum and elf_getshstrndx

libebl: update section type name function

elflint: tons of fixes wrt large number of sections.  New tests in this area.
Same amount of other bug fixes.

size, strip, nm: better support for large number of sections.  Including
using correct section header string table

libasm: correctly create data structures for large number of sections

new tests asm-tst4 and asm-tst5 to check large number of sections

libasm: implement section group generation

elflint: more tests on section groups.  Improve performance on existing
section group tests

Version 0.41:

ld: add undefined symbols to dynamic symbol table if --export-dynamic is
not given

ld: fix value of e_entry

Version 0.40:

elflint: print section names in error messages

elflint: mustn't warn about multiple DT_NULL

ld: don't emit all symbols if --export-dynamic is not given

ld: correct compute symbol address in output file (section index was off by 1)

ld: generate correct version info in dynsym without --export-dynamic and
in symtab

Version 0.39:

Fix check of various e_*size entries in elflint.

Handle text output in asm_newsym.

Finish checks in asm-tst3.

Version 0.38:

Update to autoconf 2.53, automake 1.6, gettext 0.11+.

Introduce *.sym files to restrict export from DSOs.

Use attribute_hidden and internal_function to optimize DSO code.

Add TLS definitions in elf.h and handle them in readelf.

Fix bug in verdef section generation in ld.

Add initial libasm code.

Version 0.37:

Implement better hash size optimization heuristic in ld.  It uses a formula
taking number of tests into account.

Lots of small bug fixes.

Improve readelf output format.  Respect various sh_link/sh_info values.
Correctly print versioning information for symbol tables.

Version 0.36:

Implement preprocessing of linker script.  Recognize -z combreloc.

Version 0.35:

Implement -z ignore|record for ld.

Implement creating of .gnu.version_r and .gnu.version sections.  The
.gnu.version does not yet contain correct info for defined and versioned
symbols (means .gnu.version_d is not yet implemented).

Implement gelf_update_* functions to create versioning data.

Version 0.34:

Add DT_RUNPATH/DT_RPATH entries to dynamic section.  Create .plt and
.rel.plt sections (completely).  Add support for all four PLT related
dynamic section entries.  Add callback function for PLT creation.

More tests in elflint.  Add support for very strict checking which for
now flags level 2 (deprecated features) usage.

Version 0.33:

Create dynamic symbol table, dynamic string table, and hash table to ld.

Add hash table histogram support to readelf.

Version 0.32:

more work on elflint

ld now creates the dynamic section and references it.  Start adding entries
to dynamic section.

Version 0.31:

Start implementing elflint.

Version 0.30:

Fix handling of NOBITS sections in elf_getdata.

Start implementing generation of executables and DSOs in ld.
Generation of program header mostly done.  Address computation done.
Extension of linker script syntax.

Various cleanups.

Implement section group handling in readelf.

Version 0.29:

Implement section groups.  This involved a lot of code moving.  The
new code is entirely untested since gas/gcc are currently not able to
create section groups.  ld works fine on files without section groups.

Version 0.28:

Fix problem with adding more section in elf_newscn.  The section pointers
for the data buffers wasn't adjusted.

Fix elf_getdata with nonzero second parameter.  Correctly handle creation
of internal data buffer for machines without unaligned access.

Version 0.27:

Start adding support to selectively add sections.  Includes support for
section groups.
Add --gc-sections/--no-gc-sections options.
Add general section merging support.

Fix a bug in section group support in strip.

Fix some potential problems with hash value in dynamic hash implementation.

Version 0.26:

section merging works in ld.

Version 0.25:

Actually create data structures from version map file and use it to hide
symbols in ld.

Implement -s -s for ld.

Version 0.24:

Improve relocation table output in readelf.  Avoid some crashes.
Finish many section handling in readelf.

Finish: finish implementation of ld -r.  At least some simple tests pass.

Version 0.23:

Fix a number of errors in ELF_C_WRITE handling.

Almost finished implementation of ld -r.  The data sections are all copied.
Handling of symbol tables is missing.

Version 0.22:

Handle DSO and archive input files correctly if -r option is given.

Gracefully deal with no phdr in new file in libelf.
Fix various small error handling problems.
Don't mmap file for output unless the command says so.

Add code to create ELF section header table to ld finalize routines.

Version 0.21:

Fix some problems with recursive handling of archives in libelf.

Improve messages printed by nm.

Add symbol binding name handling to libebl.  Fix section name handling in
libebl.

readelf and nm use more libebl functions.

Handle XINDEX correctly in nm and string.

Add first machine ld backend library (i386).
Use it.  Recognize -r and --shared.  Avoid using -lxxx parameters for -r.
Create ELF header in output file.  Change mode of output file according to
output file type.  Reorganize callback initialization in ld.

Version 0.20:

Fix some memory leaks in libelf.

Version 0.19:

Implement reading version script.  Both inside linker scripts and via the
--version-script command line parameter.  Uses the same code.
What remains to be done is to implement a data structure which allows
efficient matching against the version names to decide which pattern
matches.

Beginning of output generation and output writing functions.

Version 0.18:

Finish implementation for DSO input file handling.  Implement rpath, runpath,
and LD_LIBRARY_PATH handling.

Version 0.17:

make handling of e_shnum overflow in libelf standard conforming

ld now actually can handle DSOs in linker scripts.  Handling of DT_RUNPATH,
DT_RPATH, -rpath, -rpath-link still remains to be implemented.

fix handling of -L parameters.  Make actual use of the default_paths element.

make re-definition of symbols in and from DSO compatible with existing linker

Version 0.16:

more work on assigning input sections to output sections.

Add gelf_xlatetof and gelf_xlatetom which were accidently left out.

Fix memory handling of section headers.

Version 0.15:

Add many-section support to ld.  Add various new command line parameters.
Allow pagesize to be specified in linker script or on the command line.
Collect input sections in list for the output section according to the rules
specified in the linker script.

Version 0.14:

Fix some problems in the internal list handling which had the result
that we didn't look for some of the unresolved symbols.

Free some memory if we know we don't need it anymore.

Optimize the list of unresolved symbols.  Throw out symbols which are
meanwhile resolved.

Version 0.13:

Got file reading correct now.  The files are all read while parsing
the parameters.  No creating of data structures to describe the linker
command line.  The symbol table is built up while reading the files.
DSOs are handled now.  -( -) handling is optimized.

Version 0.12:

Linker read linker scripts everywhere.  Handles --whole-archive.  Recognizes
--dynamic and --static.  Collects defined and undefined symbols.  Recognizes
conflicts.

libebl now defines functions to call the callbacks.  Add generic name handling
in these new functions.  Remove the code from readelf and call the new
functions.

Version 0.11:

Start of linker.  Basic argument parsing, finding of input files,
linker script reading.

Version 0.10:

Implement dwarf_get_fde_n(), dwarf_get_abbrev(), dwarf_get_abbrev_tag(),
dwarf_get_abbrev_code(), dwarf_get_abbrev_children_flag(),
dwarf_get_abbrev_entry(), dwarf_get_fde_at_pc(), and tests for it.

Version 0.9:

Implement dwarf_get_fde_list_eh(), dwarf_get_cie_of_fde(),
dwarf_get_fde_range(), dwarf_get_cie_info(), dwarf_get_fde_instr_bytes(),
and tests for them.

Version 0.8:

Make handling of binaries in other byte order work and add tests for it.

Version 0.7:

Implement dwarf_get_aranges(), dwarf_get_arange(), dwarf_get_cu_die_offset(),
dwarf_get_arange_info(), and tests for them.

Version 0.6:

Implement dwarf_get_global(), dwarf_globname(), dwarf_global_die_offset(),
dwarf_global_cu_offset(), dwarf_global_name_offsets(), and tests for them

Version 0.5:

Implemented dwarf_srclines(), dwarf_srcfiles(), dwarf_linebeginstatement(),
dwarf_lineendsequence(), dwarf_lineno(), dwarf_lineaddr(), dwarf_lineoff(),
dwarf_linesrc(), dwarf_lineblock(), dwarf_lineprologueend(),
dwarf_lineepiloguebegin(), and tests for them.

Version 0.4:

Implemented dwarf_loclist().

Version 0.3:

Implemented dwarf_dieoffset(), dwarf_die_CU_offset(), dwarf_diename() and
tests.

Implemented dwarf_attrlist(), dwarf_hasattr(), dwarf_attr(), dwarf_lowpc(),
dwarf_highpc(), dwarf_bytesize(), dwarf_bitsize(), dwarf_bitoffset(),
dwarf_srclang(), dwarf_arrayorder(), dwarf_hasform(), dwarf_whatform(),
dwarf_whatattr(), dwarf_formref(), dwarf_global_formref(), dwarf_formaddr(),
dwarf_formflag(), dwarf_formudata(), dwarf_formsdata(), dwarf_formblock,
dwarf_formstring() and tests for them.

Version 0.2:

Implemented dwarf_offdie()), dwarf_tag(), dwarf_dieoffset(),
dwarf_die_CU_offset(), dwarf_diename() and tests for them.

Version 0.1:

First libdwarf functions work.

Version 0.0:

libelf and parts of libebl are done.
