#include "llvm/ExecutionEngine/JITLink/ELF_aarch64.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/ExecutionEngine/JITLink/DWARFRecordSectionSplitter.h"
#include "llvm/ExecutionEngine/JITLink/aarch64.h"
#include "llvm/Object/ELFObjectFile.h"
#include "llvm/Support/Endian.h"
#include "DefineExternalSectionStartAndEndSymbols.h"
#include "EHFrameSupportImpl.h"
#include "ELFLinkGraphBuilder.h"
#include "JITLinkGeneric.h"
#define DEBUG_TYPE …
usingnamespacellvm;
usingnamespacellvm::jitlink;
namespace {
constexpr StringRef ELFGOTSymbolName = …;
class ELFJITLinker_aarch64 : public JITLinker<ELFJITLinker_aarch64> { … };
template <typename ELFT>
class ELFLinkGraphBuilder_aarch64 : public ELFLinkGraphBuilder<ELFT> { … };
class TLSInfoTableManager_ELF_aarch64
: public TableManager<TLSInfoTableManager_ELF_aarch64> { … };
const uint8_t TLSInfoTableManager_ELF_aarch64::TLSInfoEntryContent[16] = …;
class TLSDescTableManager_ELF_aarch64
: public TableManager<TLSDescTableManager_ELF_aarch64> { … };
const uint8_t TLSDescTableManager_ELF_aarch64::TLSDescEntryContent[16] = …;
Error buildTables_ELF_aarch64(LinkGraph &G) { … }
}
namespace llvm {
namespace jitlink {
Expected<std::unique_ptr<LinkGraph>>
createLinkGraphFromELFObject_aarch64(MemoryBufferRef ObjectBuffer) { … }
void link_ELF_aarch64(std::unique_ptr<LinkGraph> G,
std::unique_ptr<JITLinkContext> Ctx) { … }
}
}