Attempt to provide support for those without RTLD_DEFAULT.
authorChris Lattner <sabre@nondot.org>
Sat, 25 Oct 2003 16:55:32 +0000 (16:55 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 25 Oct 2003 16:55:32 +0000 (16:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9503 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/DynamicLinker.cpp

index 05a63f3d76216145fed229e40813edc6aabdc524..74b360367934e4d9ac2c23e155228d29b58964b0 100644 (file)
@@ -37,7 +37,12 @@ bool LinkDynamicObject (const char *filename, std::string *ErrorMessage) {
 
 void *GetAddressOfSymbol (const char *symbolName) {
 #if defined (HAVE_DLOPEN)
+#ifdef RTLD_DEFAULT
   return dlsym (RTLD_DEFAULT, symbolName);
+#else
+  static void* CurHandle = dlopen(0, RTLD_LAZY);
+  return dlsym(CurHandle, symbolName);
+#endif
 #else
   assert (0 && "Dynamic symbol lookup not implemented for this platform");
 #endif