14 #ifndef LLVM_RUNTIME_DYLD_ELF_H
15 #define LLVM_RUNTIME_DYLD_ELF_H
40 uint64_t SymOffset=0);
42 void resolveX86_64Relocation(
const SectionEntry &Section,
55 void resolveAArch64Relocation(
const SectionEntry &Section,
79 void resolveSystemZRelocation(
const SectionEntry &Section,
85 unsigned getMaxStubSize() {
102 unsigned getStubAlignment() {
109 uint64_t findPPC64TOC()
const;
114 uint64_t findGOTEntry(uint64_t LoadAddr, uint64_t Offset);
115 size_t getGOTEntrySize();
117 virtual void updateGOTEntries(
StringRef Name, uint64_t Addr);
135 virtual void resolveRelocation(
const RelocationEntry &RE, uint64_t Value);
static bool Check(DecodeStatus &Out, DecodeStatus In)
virtual void finalizeLoad(ObjSectionToIDMap &SectionMap)
StringMap< SymbolLoc > SymbolTableMap
LLVM_ATTRIBUTE_NORETURN void report_fatal_error(const char *reason, bool gen_crash_diag=true)
RuntimeDyldELF(RTDyldMemoryManager *mm)
virtual ~RuntimeDyldELF()
std::map< RelocationValueRef, uintptr_t > StubMap
virtual void deregisterEHFrames()
virtual void processRelocationRef(unsigned SectionID, RelocationRef RelI, ObjectImage &Obj, ObjSectionToIDMap &ObjSectionToID, const SymbolTableMap &Symbols, StubMap &Stubs)
Parses the object file relocation and stores it to Relocations or SymbolRelocations (this depends on ...
virtual ObjectImage * createObjectImage(ObjectBuffer *InputBuffer)
std::string message() const
std::map< SectionRef, unsigned > ObjSectionToIDMap
virtual void registerEHFrames()
LLVM Value Representation.
virtual bool isCompatibleFormat(const ObjectBuffer *Buffer) const