//===- tools/dsymutil/DwarfLinkerForBinary.h --------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_TOOLS_DSYMUTIL_DWARFLINKER_H #define LLVM_TOOLS_DSYMUTIL_DWARFLINKER_H #include "BinaryHolder.h" #include "DebugMap.h" #include "LinkUtils.h" #include "MachOUtils.h" #include "RelocationMap.h" #include "llvm/DebugInfo/DWARF/DWARFContext.h" #include "llvm/Remarks/RemarkFormat.h" #include "llvm/Remarks/RemarkLinker.h" #include <mutex> #include <optional> namespace llvm { usingnamespacedwarf_linker; namespace dsymutil { /// DwarfLinkerForBinaryRelocationMap contains the logic to handle the /// relocations and to store them inside an associated RelocationMap. class DwarfLinkerForBinaryRelocationMap { … }; struct ObjectWithRelocMap { … }; /// The core of the Dsymutil Dwarf linking logic. /// /// The link of the dwarf information from the object files will be /// driven by DWARFLinker. DwarfLinkerForBinary reads DebugMap objects /// and pass information to the DWARFLinker. DWARFLinker /// optimizes DWARF taking into account valid relocations. /// Finally, optimized DWARF is passed to DwarfLinkerForBinary through /// DWARFEmitter interface. class DwarfLinkerForBinary { … }; } // end namespace dsymutil } // end namespace llvm #endif // LLVM_TOOLS_DSYMUTIL_DWARFLINKER_H