diff options
author | Brian Gaeke <gaeke@uiuc.edu> | 2003-10-10 17:02:42 +0000 |
---|---|---|
committer | Brian Gaeke <gaeke@uiuc.edu> | 2003-10-10 17:02:42 +0000 |
commit | 322cdb2e63ef29d2c00c9aa3118482eda5fdf637 (patch) | |
tree | 65686110c2c66a0d8891694287ee87e29024f0e9 /lib/ExecutionEngine/ExecutionEngine.cpp | |
parent | 56d86168720849e94cb39809a29e7c391300460d (diff) |
Change to use GetAddressOfSymbol instead of dlsym.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9012 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/ExecutionEngine/ExecutionEngine.cpp')
-rw-r--r-- | lib/ExecutionEngine/ExecutionEngine.cpp | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/lib/ExecutionEngine/ExecutionEngine.cpp b/lib/ExecutionEngine/ExecutionEngine.cpp index b7aa3ba87f..fb70ff1e72 100644 --- a/lib/ExecutionEngine/ExecutionEngine.cpp +++ b/lib/ExecutionEngine/ExecutionEngine.cpp @@ -16,6 +16,7 @@ #include "llvm/Target/TargetData.h" #include "Support/Debug.h" #include "Support/Statistic.h" +#include "Support/DynamicLinker.h" #include "Config/dlfcn.h" Statistic<> NumInitBytes("lli", "Number of bytes of global vars initialized"); @@ -339,14 +340,9 @@ void ExecutionEngine::emitGlobals() { DEBUG(std::cerr << "Global '" << I->getName() << "' -> " << (void*)GlobalAddress[I] << "\n"); } else { - // On Sparc, RTLD_SELF is already defined and it's not zero - // Linux/x86 wants to use a 0, other systems may differ -#ifndef RTLD_SELF -#define RTLD_SELF 0 -#endif - // External variable reference, try to use dlsym to get a pointer to it in - // the LLI image. - if (void *SymAddr = dlsym(RTLD_SELF, I->getName().c_str())) + // External variable reference. Try to use the dynamic loader to + // get a pointer to it. + if (void *SymAddr = GetAddressOfSymbol(I->getName().c_str())) GlobalAddress[I] = SymAddr; else { std::cerr << "Could not resolve external global address: " |