< prev index next >
src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c
Print this page
rev 14364 : 8156020: 8145547 breaks AIX and and uses RTLD_NOLOAD incorrectly
@@ -85,17 +85,29 @@
longjmp(j, NO_SYMBOL_EXCEPTION);
return result;
}
-gboolean gtk3_check(const char* lib_name, int flags)
+gboolean gtk3_check(const char* lib_name, gboolean load)
{
if (gtk3_libhandle != NULL) {
/* We've already successfully opened the GTK libs, so return true. */
return TRUE;
} else {
- return dlopen(lib_name, flags) != NULL;
+#ifdef RTLD_NOLOAD
+ void *lib = dlopen(lib_name, RTLD_LAZY | RTLD_NOLOAD);
+ if (!load || lib != NULL) {
+ return lib != NULL;
+ }
+#else
+#ifdef _AIX
+ /* On AIX we could implement this with the help of loadquery(L_GETINFO, ..) */
+ /* (see reload_table() in hotspot/src/os/aix/vm/loadlib_aix.cpp) but it is */
+ /* probably not worth it because most AIX servers don't have GTK libs anyway */
+#endif
+#endif
+ return dlopen(lib_name, RTLD_LAZY | RTLD_LOCAL) != NULL;
}
}
#define ADD_SUPPORTED_ACTION(actionStr) \
do { \
< prev index next >