[all-commits] [llvm/llvm-project] 122c89: [dsymutil] Add support for mergeable libraries

Jonas Devlieghere via All-commits all-commits at lists.llvm.org
Tue Oct 24 10:39:24 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 122c89b271af30b86536cad7bac64ea9c56615ed
      https://github.com/llvm/llvm-project/commit/122c89b271af30b86536cad7bac64ea9c56615ed
  Author: Alpha Abdoulaye <aabdoulaye at apple.com>
  Date:   2023-10-24 (Tue, 24 Oct 2023)

  Changed paths:
    M llvm/docs/CommandGuide/dsymutil.rst
    M llvm/include/llvm/BinaryFormat/Dwarf.def
    M llvm/include/llvm/BinaryFormat/MachO.h
    M llvm/include/llvm/DWARFLinker/DWARFLinker.h
    M llvm/include/llvm/DWARFLinkerParallel/AddressesMap.h
    M llvm/include/llvm/TargetParser/Triple.h
    M llvm/lib/DWARFLinker/DWARFLinker.cpp
    M llvm/lib/TargetParser/Triple.cpp
    A llvm/test/tools/dsymutil/Inputs/bar-relink-variant.dylib.dSYM/Contents/Info.plist
    A llvm/test/tools/dsymutil/Inputs/bar-relink-variant.dylib.dSYM/Contents/Resources/Relocations/aarch64/bar-relink-variant.dylib.yml
    A llvm/test/tools/dsymutil/Inputs/bar-relink.dylib.dSYM/Contents/Info.plist
    A llvm/test/tools/dsymutil/Inputs/bar-relink.dylib.dSYM/Contents/Resources/Relocations/aarch64/bar-relink.dylib.yml
    A llvm/test/tools/dsymutil/Inputs/foo-relink-variant.dylib.dSYM/Contents/Info.plist
    A llvm/test/tools/dsymutil/Inputs/foo-relink-variant.dylib.dSYM/Contents/Resources/Relocations/aarch64/foo-relink-variant.dylib.yml
    A llvm/test/tools/dsymutil/Inputs/foo-relink.dylib.dSYM/Contents/Info.plist
    A llvm/test/tools/dsymutil/Inputs/foo-relink.dylib.dSYM/Contents/Resources/Relocations/aarch64/foo-relink.dylib.yml
    A llvm/test/tools/dsymutil/Inputs/proxy-relink.dylib.dSYM/Contents/Info.plist
    A llvm/test/tools/dsymutil/Inputs/proxy-relink.dylib.dSYM/Contents/Resources/Relocations/aarch64/proxy-relink.dylib.yml
    M llvm/test/tools/dsymutil/basic-linking.test
    M llvm/test/tools/dsymutil/cmdline.test
    M llvm/tools/dsymutil/CMakeLists.txt
    M llvm/tools/dsymutil/DebugMap.cpp
    M llvm/tools/dsymutil/DebugMap.h
    M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp
    M llvm/tools/dsymutil/DwarfLinkerForBinary.h
    M llvm/tools/dsymutil/LinkUtils.h
    M llvm/tools/dsymutil/MachODebugMapParser.cpp
    M llvm/tools/dsymutil/Options.td
    A llvm/tools/dsymutil/RelocationMap.cpp
    A llvm/tools/dsymutil/RelocationMap.h
    M llvm/tools/dsymutil/dsymutil.cpp
    M llvm/tools/dsymutil/dsymutil.h
    M llvm/tools/llvm-dwarfutil/DebugInfoLinker.cpp
    M llvm/tools/llvm-nm/llvm-nm.cpp

  Log Message:
  -----------
  [dsymutil] Add support for mergeable libraries

This adds support in dsymutil for mergeable libraries [1].

dsymutil reads a new stab emitted by ld, allowing it to operate on
dynamic libraries instead of object files. It also now loads the DWARF
files associated to the libraries, and build the debug map for each
binary from the list of symbols exported by the library. For each Debug
Map Object, there is a new associated Relocation Map which is serialized
from the information retrieved in the original debug_info (or
debug_addr) section of the .o file.

The final DWARF file has multiple compile units, so the offsets
information of the relocations are adjusted relatively to the compile
unit they will end up belonging to, inside the final linked DWARF file.

[1] https://developer.apple.com/documentation/xcode/configuring-your-project-to-use-mergeable-libraries

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




More information about the All-commits mailing list