elfutils 0.171 released

Mark Wielaard mark@klomp.org
Fri Jun 1 21:13:00 GMT 2018


ELFUTILS 0.171 - http://elfutils.org/

A new release of elfutils is available at:
ftp://sourceware.org/pub/elfutils/0.171/
or https://sourceware.org/elfutils/ftp/0.171/

* NEWS *

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.

* GIT SHORTLOG *

Andreas Schwab (3):
  libelf: Sync elf.h from glibc
  Add support for RISC-V
  backends: add checks for _GLOBAL_OFFSET_TABLE_ and __global_pointer$ on riscv

Dima Kogan (1):
  libdw: dwarf_aggregate_size() works with multi-dimensional arrays

Dmitry V. Levin (2):
  tests: robustify run-strip-nothing.sh against unstripped libc_nonshared.a
  elflint: fix typo in error diagnostics

Joshua Watt (1):
  Use fallthrough attribute.

Mark Wielaard (115):
  libelf: Sync elf.h from glibc.
  Internationalized messages should not contain the '\v' escape sequence.
  README: Add basic build instructions.
  ar: Check whether ar header values fit.
  libdw: Define LIBDW_CIE_ID and use it in dwarf_cfi_cie_p.
  libelf: Add ELF_E_INVALID_ELF error value.
  libelf: Don't error out when sanity checking e_shoff if scncnt is zero.
  libdwfl: When the kernel is found, but not the modules warn, don't fail.
  lib: Remove md5 and sha1 implementations.
  backends: Ignore GCC8 -Wpacked-not-aligned for m68k_corenote.c.
  config: files under /usr/lib/sysctl.d (_sysctldir) aren't %config.
  readelf: Handle DW_OP_GNU_variable_value.
  libdw: Update acceptable forms and attributes for dwarf_getlocation.
  libdw: Handle DW_OP_GNU_variable_value.
  tests: Add varlocs-self and exprlocs-self tests.
  tests: Fix cfi_debug => cfi_debug_bias typo in varlocs assert.
  readelf: Print DIE offset in attribute reading error messages.
  readelf: Print attribute name and form in error message.
  libdwfl: Don't dereference possibly unaligned auxv entry pointer from core.
  readelf: Adjust print_ops formatting.
  readelf: Print abbrev code for DIE with --debug-dump=info.
  readelf: Print actual file for decl_file and call_file attributes.
  readelf: Print CU, base address and unresolved .debug_range entries.
  readelf: Print CU, base address and unresolved .debug_loc entries.
  readelf: Hook up -g, --section-groups to display the section groups.
  readelf: Handle DW_OP_call2 and DW_OP_call4 correctly.
  libdw: dwarf_aggregate_size should not peel the given DIE.
  readelf: Try to continue after encountering bogus ELF Note data.
  libdw: Add explicit section index to struct Dwarf_CU.
  libdw: Check there is .debug_info/types section data in __libdw_offdie.
  readelf: Format offset as DIE index (hex).
  tests: Try to use coredumpctl to extract core files.
  readelf: Use dwarf_form_name for printing (unknown) forms.
  libdw: New get_uleb128_unchecked to use with already checked Dwarf_Abbrev.
  libdw: Reduce size of struct Dwarf_Abbrev.
  readelf: Fix crash on reading loc data or range data with bad/no CUs.
  tests: Check symtabshdr instead of symtabndx in elfstrmerge.c.
  libdw: Resolve alt file on first use.
  libdw: Add dwarf_die_addr_die function.
  Include sys/ptrace.h as early as possible.
  tests: Accept any core if no core with the "correct" pid can be found.
  libelf: Sync elf.h from glibc.
  libdw: Parse new DWARF5 units and CU DIEs.
  libdw: Add new dwarf_get_units function to iterate over all units.
  libdw: Recognize new DWARF5 attribute forms.
  libdw: Handle DWARF5 DW_FORM_implicit_const. Add dwarf_getabbrevattr_data.
  libdw: Add support for DWARF5 DW_FORM_data16.
  libebl: Allow SHT_NOTE as relocation target type.
  elflint: Make sure we can read a whole element when iterating over group.
  readelf: Add some support for locviews.
  libdwfl: Use realpath (name, NULL) instead of canonicalize_file_name (name).
  libdw: Add new DWARF5 Dwarf expression operations.
  libebl: Handle SYMTAB_SHNDX in ebl_dynamic_tag_name.
  readelf: Report error when decl_file or call_file attribute is invalid.
  readelf: Print dwarf_dieoffset as %PRIx64, not %zx.
  libdwfl: Use process_vm_readv when available.
  readelf: Break sysv[64] symbol hash bucket chain loops.
  libdw: Extend documentation to explain relative file paths and comp_dir.
  libdw: Add support for reading DW_FORM_addrx[1234] in .debug_addr.
  libdw: Add support for reading DW_FORM_strx[1234] in .debug_str_offsets.
  libdw: Make sure to initialize Dwarf_CU addr_base and str_off_base.
  libdw: Restructure address range reading for .debug_loc and .debug_ranges.
  libdwfl: Handle unwind frame when the return address register isn't set.
  aarch64: Add default cfi rule to restore SP from CFA address.
  readelf: Only lookup files and show errors in attr_callback when not silent.
  readelf: Fix advance_pc to use op_addr_advance, not just op_advance.
  tests: Test readelf --debug-dump=[decoded]line with min_inst_len > 1.
  libdw: Handle DW_FORM_line_strp.
  readelf: Handle .debug_line_str section.
  libebl: Add new DWARF5 debug section names to default_debugscn_p.
  libdw: Handle DWARF5 line tables in dwarf_getsrclines.
  libdw: Handle DW_FORM_[ref|strp]_sup[48] as DW_FORM_GNU_[ref|strp]_alt.
  readelf: Handle .debug_info first if any other debug section needs it.
  readelf: Use raw section data if nothing is available through libdw.
  addr2line: Add explicit fflush for stdout when reading from stdin.
  libdw: Fix crashing on illegal/zero Dwarf_Die.
  readelf: Add DWARF5 .debug_line support.
  readelf, libdw: Handle DWARF5 .debug_macro.
  readelf: Fix 32bit compile issues.
  libdw, readelf: Handle .debug_*.dwo section name variants.
  libdw: Add GNU DebugFission attributes, tags, forms and operands.
  libdw: Recognize GNU DebugFission split units.
  libdw: dwarf_get_units find split units from .dwo.
  Mark __libdw_find_split_unit mark as internal_function.
  libdw: Search skeleton DIE for split compile unit DIE attributes.
  libdw: Cache ELF directory early. Explicitly set it in dwfl.
  libdw: Handle split dwarf debuglines.
  libdw: Handle GNU DebugFission split ranges.
  libdw: Initialize ranges_base, add invalid DWARF test and fix expected output.
  libdw: Add new dwarf_cu_info function.
  readelf: print split CUs when given --debug-dump=info+
  libdw: Support DW_OP_addrx/constx and split DWARF addrx/constx support.
  libdw: Handle all address FORMs for dwarf_highpc, handle errors better.
  __libdw_cu_addr_base: Cast offset to uintptr_t before returning as pointer.
  readelf: Add .debug_rnglists support.
  libdw: Handle .debug_rnglists in dwarf_ranges.
  readelf: Find skeleton units when inspecting split .dwo (--dwarf-skeleton).
  libdwfl: Allow partial relocations also for debug files.
  readelf: Handle .debug_loclists.
  libdw: Handle .debug_loclists in dwarf_getlocation.
  readelf handle .debug_addr section.
  readelf: Handle .debug_str_offsets.
  libdw: Fix memory corruption in libdw_find_split_unit.
  readelf: Fix regression with multiple files and implicit debug_info reading.
  readelf, libdw: Add GNU DebugFission .debug_loc support.
  libdw: Handle split Dwarf Dies in dwarf_die_addr_die.
  libdw: Don't crash on invalid die in dwarf_dieoffset.
  readelf: Use correct listptr when looking up next loc for locview attr.
  libdw: Fix overflow warning on 32bit systems with GCC8 in dwarf_getsrclines.
  tests: Run run-low_high_pc.sh testcase on split dwarf files.
  tests: Split self_test_files into an exe, lib and obj list.
  readelf: Deal with combined normal and split dwarf DebugFission .debug_loc.
  readelf: Fix .debug_types printing with implicit section_info.
  libdw: Try both the relative and absolute paths when finding a .dwo file.
  Prepare for 0.171.

Petr Machata (1):
  libdw: dwarf_formsdata should return a signed value

Ulf Hermann (8):
  Check for -z,defs, -z,relro, -fPIC, -fPIE before using them
  Check if gcc complains about __attribute__ (visibility(..))
  Drop -rdynamic from deleted-lib.so link step
  Detect if symbol versioning is supported
  On non-linux systems, don't use native signal numbers
  Cast pid_t to long long when printing
  Make sure packed structs follow the gcc memory layout
  Don't overflow in __libdw_in_section and __libdw_offset_in_section.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/elfutils-devel/attachments/20180601/d669268c/attachment.sig>


More information about the Elfutils-devel mailing list