aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ExecutionEngine/JIT/JIT.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/ExecutionEngine/JIT/JIT.cpp b/lib/ExecutionEngine/JIT/JIT.cpp
index f7f86d7e61..919f9af002 100644
--- a/lib/ExecutionEngine/JIT/JIT.cpp
+++ b/lib/ExecutionEngine/JIT/JIT.cpp
@@ -312,7 +312,10 @@ void *JIT::getOrEmitGlobalVariable(const GlobalVariable *GV) {
#ifdef __APPLE__
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_4 && \
__APPLE_CC__ >= 5330
- // __dso_handle is resolved by the Mac OS X dynamic linker.
+ // Apple gcc defaults to -fuse-cxa-atexit (i.e. calls __cxa_atexit instead
+ // of atexit). It passes the address of linker generated symbol __dso_handle
+ // to the function.
+ // This configuration change happened at version 5330.
if (GV->getName() == "__dso_handle")
return (void*)&__dso_handle;
#endif