B.4. Changes in elfutils

Red Hat Developer Toolset 2.0 is distributed with elfutils 0.155, which provides a number of bug fixes and feature enhancements over the Red Hat Enterprise Linux system version and the version included in Red Hat Developer Toolset 1.1. Below is a comprehensive list of new features in this release.

B.4.1. Changes Since Red Hat Developer Toolset 1.1

The following features have been added since the release of elfutils included in Red Hat Developer Toolset 1.1:
  • In the libdw library, the DW_LANG_Objc constant has been correctly renamed to DW_LANG_ObjC. Note that any existing source code that uses the old name needs to be updated accordingly.
  • The libdw library now supports new constants DW_ATE_UTF and DW_OP_GNU_parameter_ref. In addition, it also defines a family of constants to support the .debug_macro section, namely DW_MACRO_GNU_define, DW_MACRO_GNU_undef, DW_MACRO_GNU_start_file, DW_MACRO_GNU_end_file, DW_MACRO_GNU_define_indirect, DW_MACRO_GNU_undef_indirect, and DW_MACRO_GNU_transparent_include.
  • When working with the libelf library, both elf32_xlatetomd and elf64_xlatetomd now work for cross-endian ELF note data.
  • The elf_getshdr() function provided by the libelf library has been corrected to work consistently on non-mmapped ELF files after making the elf_cntl(ELF_C_FDREAD) function call.
  • The libelf library now supports ar archives with a 64-bit symbol table.
  • The eu-readelf command is now able to display the contents of the .debug_macro section.
  • The eu-readelf command now correctly recognizes the DW_OP_GNU_parameter_ref DWARF GNU extension opcode in location expressions.

B.4.2. Changes Since Red Hat Enterprise Linux 6.4

The following features have been added since the release of elfutils included in Red Hat Enterprise Linux 6.4:
  • The libdw library now handles compressed debuginfo sections. The dwarf_highpc() function now handles the DWARF 4 DW_AT_high_pc constant form.
  • The eu-elflint utility now accepts executables produced by the gold linker.
  • The eu-nm utility now supports C++ demangling.
  • The eu-ar utility now supports a new modifier D for deterministic output with no UID, GID, or mtime info. The U modifier is the inverse.
  • The eu-readelf utility can now print SDT ELF notes (SystemTap probes) and the .gdb_index GDB section. It can now also print DW_OP_GNU_entry_value and DW_AT_GNU_call_site families of DIE attributes.
  • The eu-strip utility now recognizes a new command line option, --reloc-debug-sections.

B.4.3. Changes Since Red Hat Enterprise Linux 5.9

In addition to the above changes, the following features have been added since the release of elfutils included in Red Hat Enterprise Linux 5.9:
  • DWARF 4 is now supported. As well, support for DW_OP_GNU_implicit_pointer and STB_GNU_UNIQUE has been added.
  • The libdwfl library now supports automatic decompression of files compressed with gzip, bzip2 and lzma, and of Linux kernel images made with gzip, bzip2 or lzma. Files named with compression suffixes are searched for Linux kernel images. Core file support was improved. Support has been added for decoding DWARF CFI into location description form. Support has been added for some new DWARF 3 expression operations, which were previously omitted. A new function, dwfl_dwarf_line(), has been added.
  • The eu-elfcmp utility now supports a new command line option --ignore-build-id to ignore differing build ID bits. The new option --verbose (or -l for short) prints all differences.
  • The eu-strip utility now recognizes a new command line option --strip-sections to remove section headers entirely.
  • The libdw library now has new functions dwarf_next_unit(), dwarf_offdie_types(), dwarf_lineisa(), dwarf_linediscriminator(), dwarf_lineop_index(), dwarf_getlocation_implicit_pointer(), and dwarf_aggregate_size().
  • The eu-addr2line utility now recognizes a new command line option --flags (or -F for short) to print more DWARF line information details.
  • The libelf library now supports using more than 65536 program headers in a file. In addition, a new function elf_getphdrnum() has been added.
  • The eu-addr2line utility now accepts the --section=name option (or -j name for short) in the interests of binutils compatibility.
  • libcpu Intel SSE4 disassembler support has been added.
  • The eu-readelf utility now implements call frame information and exception handling dumping. The -e command line option has been added; this is enabled implicitly by -a.