Fixing MCJIT multiple module linking for OSX

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191780 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Andrew Kaylor 2013-10-01 16:42:50 +00:00
parent 17f7d099e4
commit 52c9016db0

View File

@ -526,6 +526,10 @@ void MCJIT::NotifyFreeingObject(const ObjectImage& Obj) {
uint64_t LinkingMemoryManager::getSymbolAddress(const std::string &Name) { uint64_t LinkingMemoryManager::getSymbolAddress(const std::string &Name) {
uint64_t Result = ParentEngine->getSymbolAddress(Name, false); uint64_t Result = ParentEngine->getSymbolAddress(Name, false);
// If the symbols wasn't found and it begins with an underscore, try again
// without the underscore.
if (!Result && Name[0] == '_')
Result = ParentEngine->getSymbolAddress(Name.substr(1), false);
if (Result) if (Result)
return Result; return Result;
return ClientMM->getSymbolAddress(Name); return ClientMM->getSymbolAddress(Name);