From 9cffedbbfd009131699c4fcbcb2f820555762812 Mon Sep 17 00:00:00 2001 From: Andrew Kaylor Date: Sat, 5 Oct 2013 01:52:09 +0000 Subject: Adding multiple GOT handling to RuntimeDyldELF Patch by Ashok Thirumurthi git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192020 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h') diff --git a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h index 14fb5740e5..67dc693b1b 100644 --- a/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h +++ b/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h @@ -15,6 +15,7 @@ #define LLVM_RUNTIME_DYLD_ELF_H #include "RuntimeDyldImpl.h" +#include "llvm/ADT/DenseMap.h" using namespace llvm; @@ -91,12 +92,15 @@ class RuntimeDyldELF : public RuntimeDyldImpl { virtual void updateGOTEntries(StringRef Name, uint64_t Addr); - SmallVector GOTEntries; - unsigned GOTSectionID; + // Relocation entries for symbols whose position-independant offset is + // updated in a global offset table. + typedef unsigned SID; // Type for SectionIDs + typedef SmallVector GOTRelocations; + GOTRelocations GOTEntries; // List of entries requiring finalization. + SmallVector, 8> GOTs; // Allocated tables. public: - RuntimeDyldELF(RTDyldMemoryManager *mm) : RuntimeDyldImpl(mm), - GOTSectionID(0) + RuntimeDyldELF(RTDyldMemoryManager *mm) : RuntimeDyldImpl(mm) {} virtual void resolveRelocation(const RelocationEntry &RE, uint64_t Value); -- cgit v1.2.3