[llvm] r188855 - lli/RecordingMemoryManager.cpp: Make it complain if _GLOBAL_OFFSET_TABLE_ were not provided.
Kaylor, Andrew
andrew.kaylor at intel.com
Wed Aug 21 14:06:46 PDT 2013
Are you sure this was necessary?
I haven't started looking at PIC for 32-bit x86 targets in MCJIT, but for x86-64 targets I ended up ignoring the _GLOBAL_OFFSET_TABLE_ symbol. It was generated as an undefined/external symbol in the ELF headers, but since RuntimeDyld is doing all of its own relocation handling I didn't bother defining that symbol and nothing tried to reference it.
-Andy
-----Original Message-----
From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-bounces at cs.uiuc.edu] On Behalf Of NAKAMURA Takumi
Sent: Tuesday, August 20, 2013 7:37 PM
To: llvm-commits at cs.uiuc.edu
Subject: [llvm] r188855 - lli/RecordingMemoryManager.cpp: Make it complain if _GLOBAL_OFFSET_TABLE_ were not provided.
Author: chapuni
Date: Tue Aug 20 21:37:14 2013
New Revision: 188855
URL: http://llvm.org/viewvc/llvm-project?rev=188855&view=rev
Log:
lli/RecordingMemoryManager.cpp: Make it complain if _GLOBAL_OFFSET_TABLE_ were not provided.
FIXME: Would it be responsible to provide GOT?
Modified:
llvm/trunk/tools/lli/RecordingMemoryManager.cpp
Modified: llvm/trunk/tools/lli/RecordingMemoryManager.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/lli/RecordingMemoryManager.cpp?rev=188855&r1=188854&r2=188855&view=diff
==============================================================================
--- llvm/trunk/tools/lli/RecordingMemoryManager.cpp (original)
+++ llvm/trunk/tools/lli/RecordingMemoryManager.cpp Tue Aug 20 21:37:14
+++ 2013
@@ -113,5 +113,12 @@ void *RecordingMemoryManager::getPointer
// is called before ExecutionEngine::runFunctionAsMain() is called.
if (Name == "__main") return (void*)(intptr_t)&jit_noop;
+ // FIXME: Would it be responsible to provide GOT?
+ if (AbortOnFailure) {
+ if (Name == "_GLOBAL_OFFSET_TABLE_")
+ report_fatal_error("Program used external function '" + Name +
+ "' which could not be resolved!"); }
+
return NULL;
}
_______________________________________________
llvm-commits mailing list
llvm-commits at cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list