aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ExecutionEngine/ExecutionEngine.cpp
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-11-29 14:11:29 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-11-29 14:11:29 +0000
commitdf5a37efc997288da520ff4889443e3560d95387 (patch)
tree0120003413414b0b13237bc85ea7432513c8d047 /lib/ExecutionEngine/ExecutionEngine.cpp
parent737459df795e9a83835d1c69bd6e2ec4389b1534 (diff)
downloadexternal_llvm-df5a37efc997288da520ff4889443e3560d95387.zip
external_llvm-df5a37efc997288da520ff4889443e3560d95387.tar.gz
external_llvm-df5a37efc997288da520ff4889443e3560d95387.tar.bz2
Use System/DynamicLibrary instead of Support/DynamicLinker
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18357 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/ExecutionEngine.cpp')
-rw-r--r--lib/ExecutionEngine/ExecutionEngine.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp
index 812bec1..e4ff7d4 100644
--- a/lib/ExecutionEngine/ExecutionEngine.cpp
+++ b/lib/ExecutionEngine/ExecutionEngine.cpp
@@ -19,13 +19,13 @@
#include "llvm/DerivedTypes.h"
#include "llvm/Module.h"
#include "llvm/ModuleProvider.h"
+#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/IntrinsicLowering.h"
#include "llvm/ExecutionEngine/ExecutionEngine.h"
#include "llvm/ExecutionEngine/GenericValue.h"
-#include "llvm/Target/TargetData.h"
#include "llvm/Support/Debug.h"
-#include "llvm/ADT/Statistic.h"
-#include "llvm/Support/DynamicLinker.h"
+#include "llvm/System/DynamicLibrary.h"
+#include "llvm/Target/TargetData.h"
using namespace llvm;
namespace {
@@ -151,7 +151,13 @@ ExecutionEngine *ExecutionEngine::create(ModuleProvider *MP,
}
}
- if (EE == 0) delete IL;
+ if (EE == 0)
+ delete IL;
+ else
+ // Make sure we can resolve symbols in the program as well. The zero arg
+ // to the function tells DynamicLibrary to load the program, not a library.
+ sys::DynamicLibrary::LoadLibraryPermanently(0);
+
return EE;
}
@@ -502,7 +508,8 @@ void ExecutionEngine::emitGlobals() {
} else {
// External variable reference. Try to use the dynamic loader to
// get a pointer to it.
- if (void *SymAddr = GetAddressOfSymbol(I->getName().c_str()))
+ if (void *SymAddr = sys::DynamicLibrary::SearchForAddressOfSymbol(
+ I->getName().c_str()))
addGlobalMapping(I, SymAddr);
else {
std::cerr << "Could not resolve external global address: "