diff src/os/bsd/vm/os_bsd.cpp @ 17805:bbfbe9b06038

Merge
author kvn
date Thu, 13 Mar 2014 14:57:01 -0700
parents 2b8e28fdf503 d1621038becf
children 62c54fcc0a35
line wrap: on
line diff
--- a/src/os/bsd/vm/os_bsd.cpp	Mon Mar 10 12:58:02 2014 +0100
+++ b/src/os/bsd/vm/os_bsd.cpp	Thu Mar 13 14:57:01 2014 -0700
@@ -1557,6 +1557,17 @@
 }
 #endif /* !__APPLE__ */
 
+void* os::get_default_process_handle() {
+#ifdef __APPLE__
+  // MacOS X needs to use RTLD_FIRST instead of RTLD_LAZY
+  // to avoid finding unexpected symbols on second (or later)
+  // loads of a library.
+  return (void*)::dlopen(NULL, RTLD_FIRST);
+#else
+  return (void*)::dlopen(NULL, RTLD_LAZY);
+#endif
+}
+
 // XXX: Do we need a lock around this as per Linux?
 void* os::dll_lookup(void* handle, const char* name) {
   return dlsym(handle, name);