[all-commits] [llvm/llvm-project] f1d5cb: [dsymutil] Add preliminary support for DWARF 5.

Jonas Devlieghere via All-commits all-commits at lists.llvm.org
Tue Jan 12 21:56:28 PST 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: f1d5cbbdee5526bc86eac0a5652b115d9bc158e5
      https://github.com/llvm/llvm-project/commit/f1d5cbbdee5526bc86eac0a5652b115d9bc158e5
  Author: Jonas Devlieghere <jonas at devlieghere.com>
  Date:   2021-01-12 (Tue, 12 Jan 2021)

  Changed paths:
    M llvm/include/llvm/DWARFLinker/DWARFLinker.h
    M llvm/include/llvm/DWARFLinker/DWARFLinkerCompileUnit.h
    M llvm/include/llvm/DWARFLinker/DWARFStreamer.h
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    M llvm/lib/DWARFLinker/DWARFLinkerCompileUnit.cpp
    M llvm/lib/DWARFLinker/DWARFStreamer.cpp
    A llvm/test/tools/dsymutil/Inputs/private/tmp/dwarf5/dwarf5.o
    A llvm/test/tools/dsymutil/Inputs/private/tmp/dwarf5/dwarf5.out
    A llvm/test/tools/dsymutil/X86/dwarf5.test
    M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
    M llvm/tools/dsymutil/DwarfLinkerForBinary.h

  Log Message:
  -----------
  [dsymutil] Add preliminary support for DWARF 5.

Currently dsymutil will silently fail when processing binaries with
Dwarf 5 debug info. This patch adds rudimentary support for Dwarf 5 in
dsymutil.

 - Recognize relocations in the debug_addr section.
 - Recognize (a subset of) Dwarf 5 form values.
 - Emits valid Dwarf 5 compile unit header chains.

To simplify things (and avoid having to emit indexed sections) I decided
to emit the relocated addresses directly in the debug info section.

 - DW_FORM_strx gets relocated and rewritten to DW_FORM_strp
 - DW_FORM_addrx gets relocated and rewritten to DW_FORM_addr

Obviously there's a lot of work left, but this should be a step in the
right direction.

rdar://62345491

Differential revision: https://reviews.llvm.org/D94323




More information about the All-commits mailing list