summaryrefslogtreecommitdiff
path: root/gmodule
diff options
context:
space:
mode:
authorTim Janik <timj@gtk.org>2001-02-17 06:28:07 +0000
committerTim Janik <timj@src.gnome.org>2001-02-17 06:28:07 +0000
commit80d0c742e50421932b0cfa8e271c1a0cf1d3fef7 (patch)
treed031bf1454ae2197d9a339e204a66de374397966 /gmodule
parentbbc5a3adac7d6d5dbdcf956d7d185e9910c3034b (diff)
add check for broken RTLD_GLOBAL (on OSF1 V5.0).
Sat Feb 17 07:26:33 2001 Tim Janik <timj@gtk.org> * configure.in (G_MODULE_HAVE_DLERROR): add check for broken RTLD_GLOBAL (on OSF1 V5.0). Sat Feb 17 07:27:15 2001 Tim Janik <timj@gtk.org> * gmodule.c: work around platforms that have broken RTLD_GLOBAL.
Diffstat (limited to 'gmodule')
-rw-r--r--gmodule/ChangeLog4
-rw-r--r--gmodule/gmodule-dl.c10
-rw-r--r--gmodule/gmoduleconf.h.in4
3 files changed, 14 insertions, 4 deletions
diff --git a/gmodule/ChangeLog b/gmodule/ChangeLog
index 4a5a95391..ff1e640fb 100644
--- a/gmodule/ChangeLog
+++ b/gmodule/ChangeLog
@@ -1,3 +1,7 @@
+Sat Feb 17 07:27:15 2001 Tim Janik <timj@gtk.org>
+
+ * gmodule.c: work around platforms that have broken RTLD_GLOBAL.
+
2001-01-27 Tor Lillqvist <tml@iki.fi>
* gmodule.c: (Win32) Need <io.h> for open() and close().
diff --git a/gmodule/gmodule-dl.c b/gmodule/gmodule-dl.c
index 9df56d4ab..3ea449338 100644
--- a/gmodule/gmodule-dl.c
+++ b/gmodule/gmodule-dl.c
@@ -58,15 +58,19 @@
* RTLD_GLOBAL - the external symbols defined in the library will be made
* available to subsequently loaded libraries.
*/
-#ifndef RTLD_GLOBAL
-#define RTLD_GLOBAL 0
-#endif /* RTLD_GLOBAL */
#ifndef RTLD_LAZY
#define RTLD_LAZY 1
#endif /* RTLD_LAZY */
#ifndef RTLD_NOW
#define RTLD_NOW 0
#endif /* RTLD_NOW */
+/* some systems (OSF1 V5.0) have broken RTLD_GLOBAL linkage */
+#ifdef G_MODULE_BROKEN_RTLD_GLOBAL
+#undef RTLD_GLOBAL
+#endif /* G_MODULE_BROKEN_RTLD_GLOBAL */
+#ifndef RTLD_GLOBAL
+#define RTLD_GLOBAL 0
+#endif /* RTLD_GLOBAL */
/* --- functions --- */
diff --git a/gmodule/gmoduleconf.h.in b/gmodule/gmoduleconf.h.in
index 48b52bb4c..9aa6500e2 100644
--- a/gmodule/gmoduleconf.h.in
+++ b/gmodule/gmoduleconf.h.in
@@ -40,7 +40,9 @@ extern "C" {
#if (@G_MODULE_NEED_USCORE@) || defined (hp9000s300) || defined (__hp9000s300) || defined (__hp9000s300__)
#define G_MODULE_NEED_USCORE
#endif
-
+#if (@G_MODULE_BROKEN_RTLD_GLOBAL@)
+#define G_MODULE_BROKEN_RTLD_GLOBAL
+#endif
#ifdef __cplusplus
}