Version 0.187

debuginfod: Support -C option for connection thread pooling.

debuginfod-client: Negative cache file are now zero sized instead of
                   no-permission files.

addr2line: The -A, --absolute option, which shows file names including
           the full compilation directory is now the default.  To get the
           old behavior use the new option --relative.

readelf, elflint: Recognize FDO Packaging Metadata ELF notes

libdw, debuginfo-client: Load libcurl lazily only when files need to
                         be fetched remotely. libcurl is now never
                         loaded when DEBUGINFOD_URLS is unset. And when
                         DEBUGINFOD_URLS is set, libcurl is only loaded
                         when the debuginfod_begin function is called.

Version 0.186

debuginfod-client: Default $DEBUGINFOD_URLS is computed from drop-in files
                   /etc/debuginfod/*.urls rather than hardcoded into the
                   /etc/profile.d/debuginfod* scripts.
                   Add $DEBUGINFOD_MAXSIZE and $DEBUGINFOD_MAXTIME settings
                   for skipping large/slow transfers.
                   Add $DEBUGINFOD_RETRY for retrying aborted lookups.

debuginfod: Supply extra HTTP response headers, describing archive/file
            names that satisfy the requested buildid content.
            Support -d :memory: option for in-memory databases.
            Protect against loops in federated server configurations.
            Add -r option to use -I/-X regexes for grooming stale files.
            Protect against wasted CPU from duplicate concurrent requests.
            Limit the duration of groom ops roughly to rescan (-t) times.
            Add --passive mode for serving from read-only database.
            Several other performance improvements & prometheus metrics.

libdw: Support for the NVIDIA Cuda line map extensions.
       DW_LNE_NVIDIA_inlined_call and DW_LNE_NVIDIA_set_function_name
       are defined in dwarf.h. New functions dwarf_linecontext and
       dwarf_linefunctionname

translations: Update Japanese translation.

Version 0.185

debuginfod-client: Simplify curl handle reuse so downloads which
                   return an error are retried.

elfcompress: Always exit with code 0 when the operation succeeds (even
             when nothing was done). On error the exit code is now always 1.

Version 0.184

debuginfod: Use libarchive's bsdtar as the .deb-family file unpacker.

debuginfod-client: Client caches negative results. If a query for a
		   file failed with 404, an empty 000 permission
		   file is created in the cache. This will prevent
		   requesting the same file for the next 10 minutes.

		   Client objects now carry long-lived curl handles
		   for outgoing connections.  This makes it more
		   efficient for multiple sequential queries, because
		   the TCP connections and/or TLS state info are kept
		   around awhile, avoiding O(100ms) setup latencies.

libdw: handle DW_FORM_indirect when reading attributes

translations: Update Polish translation.

Version 0.183

debuginfod: New thread-busy metric and more detailed error metrics.
            New --fdcache-mintmp and tracking of filesystem freespace.
            New increased webapi concurrency while grooming.

debuginfod-client: DEBUGINFOD_SONAME macro added to debuginfod.h which
                   can be used to dlopen the libdebuginfod.so library.
                   New function debuginfod_set_verbose_fd and
                   DEBUGINFOD_VERBOSE environment variable.

config: profile.sh and profile.csh won't export DEBUGINFOD_URLS unless
        configured --enable-debuginfod-urls[=URLS]

elflint, readelf: Recognize SHF_GNU_RETAIN.
                  Handle SHT_X86_64_UNWIND as valid relocation target.

Version 0.182

backends: Support for tilegx has been removed.

config: New /etc/profile.d files to provide default $DEBUGINFOD_URLS.

debuginfod: More efficient package traversal, tolerate various errors
            during scanning, grooming progress is more visible and
            interruptible, more prometheus metrics.

debuginfod-client: Now supports compressed (kernel) ELF images.

libdwfl: Add ZSTD compression support.

Version 0.181

libelf: elf_update now compensates (fixes up) a bad sh_addralign for
        SHF_COMPRESSED sections.

libdebuginfod: configure now takes --enable-libdebuginfod=dummy or
               --disable-libdebuginfod for bootstrapping.
               DEBUGINFOD_URLS now accepts "scheme-free" urls
               (guessing at what the user meant, either http:// or file://)

readelf, elflint: Handle aarch64 bti, pac bits in dynamic table and gnu
                  property notes.

libdw, readelf: Recognize DW_CFA_AARCH64_negate_ra_state. Allows unwinding
                on arm64 for code that is compiled for PAC (Pointer
                Authentication Code) as long as it isn't enabled.

Version 0.180

elflint: Allow SHF_EXCLUDE as generic section flag when --gnu is given.

libdw, readelf: Handle GCC LTO .gnu.debuglto_ prefix.

libdw: Use correct CU to resolve file names in dwarf_decl_file.

libdwfl: Handle debugaltlink in dwfl_standard_find_debuginfo.

size: Also obey radix printing for bsd format.

nm: Explicitly print weak 'V' or 'T' and common 'C' symbols.

Version 0.179

debuginfod-client: When DEBUGINFOD_PROGRESS is set and the program doesn't
                   install its own debuginfod_progressfn_t show download
                   progress on stderr.
                   DEBUGINFOD_TIMEOUT is now defined as seconds to get at
                   least 100K, defaults to 90 seconds.
                   Default to $XDG_CACHE_HOME/debuginfod_client.
                   New functions debuginfod_set_user_data,
                   debuginfod_get_user_data, debuginfod_get_url and
                   debuginfod_add_http_header.
                   Support for file:// URLs.

debuginfod: Uses libarchive directly for reading rpm archives.
            Support for indexing .deb/.ddeb archives through dpkg-deb
            or bsdtar.
            Generic archive support through -Z EXT[=CMD]. Which can be
            used for example for arch-linux pacman files by using
            -Z '.tar.zst=zstdcat'.
            Better logging using User-Agent and X-Forwarded-For headers.
            More prometheus metrics.
            Support for eliding dots or extraneous slashes in path names.

debuginfod-find: Accept /path/names in place of buildid hex.

libelf: Handle PN_XNUM in elf_getphdrnum before shdr 0 is cached
        Ensure zlib resource cleanup on failure.

libdwfl: dwfl_linux_kernel_find_elf and dwfl_linux_kernel_report_offline
         now find and handle a compressed vmlinuz image.

readelf, elflint: Handle PT_GNU_PROPERTY.

translations: Updated Ukrainian translation.

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 multiple .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 is 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 functions 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
appropriate 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 transformation at output time.

Version 0.71:

libelf: more fun with endian transformation 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 indices 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: optimize 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 accidentally 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.
