1 //===-- RuntimeDyldCOFF.h - Run-time dynamic linker for MC-JIT ---*- C++ -*-==//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 // COFF support for MC-JIT runtime dynamic linker.
11 //===----------------------------------------------------------------------===//
13 #ifndef LLVM_RUNTIME_DYLD_COFF_H
14 #define LLVM_RUNTIME_DYLD_COFF_H
16 #include "RuntimeDyldImpl.h"
18 #define DEBUG_TYPE "dyld"
24 // Common base class for COFF dynamic linker support.
25 // Concrete subclasses for each target can be found in ./Targets.
26 class RuntimeDyldCOFF
: public RuntimeDyldImpl
{
29 std::unique_ptr
<RuntimeDyld::LoadedObjectInfo
>
30 loadObject(const object::ObjectFile
&Obj
) override
;
31 bool isCompatibleFile(const object::ObjectFile
&Obj
) const override
;
33 static std::unique_ptr
<RuntimeDyldCOFF
>
34 create(Triple::ArchType Arch
, RuntimeDyld::MemoryManager
&MemMgr
,
35 JITSymbolResolver
&Resolver
);
38 RuntimeDyldCOFF(RuntimeDyld::MemoryManager
&MemMgr
,
39 JITSymbolResolver
&Resolver
)
40 : RuntimeDyldImpl(MemMgr
, Resolver
) {}
41 uint64_t getSymbolOffset(const SymbolRef
&Sym
);
44 } // end namespace llvm