mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-03-04 02:18:46 +00:00
Resolve __dso_handle.
llvm-svn: 29259
This commit is contained in:
parent
a80a26a5f8
commit
55bff38268
@ -30,6 +30,11 @@
|
||||
#include <iostream>
|
||||
using namespace llvm;
|
||||
|
||||
#ifdef __APPLE__
|
||||
// __dso_handle is resolved by Mac OS X dynamic linker.
|
||||
extern void *__dso_handle __attribute__ ((__visibility__ ("hidden")));
|
||||
#endif
|
||||
|
||||
static struct RegisterJIT {
|
||||
RegisterJIT() { JIT::Register(); }
|
||||
} JITRegistrator;
|
||||
@ -289,6 +294,9 @@ void *JIT::getOrEmitGlobalVariable(const GlobalVariable *GV) {
|
||||
|
||||
// If the global is external, just remember the address.
|
||||
if (GV->isExternal()) {
|
||||
// __dso_handle is resolved by the Mac OS X dynamic linker.
|
||||
if (GV->getName() == "__dso_handle")
|
||||
return (void*)&__dso_handle;
|
||||
Ptr = sys::DynamicLibrary::SearchForAddressOfSymbol(GV->getName().c_str());
|
||||
if (Ptr == 0) {
|
||||
std::cerr << "Could not resolve external global address: "
|
||||
|
Loading…
x
Reference in New Issue
Block a user