15766
|
1 |
diff -rup ../i386/glib-2.20.1/gmodule/gmodule-dl.c glib-2.20.1/gmodule/gmodule-dl.c
|
|
2 |
--- ../i386/glib-2.20.1/gmodule/gmodule-dl.c 2009-04-01 01:04:20.000000000 +0200
|
|
3 |
+++ glib-2.20.1/gmodule/gmodule-dl.c 2009-05-14 16:39:16.692377272 +0200
|
|
4 |
@@ -95,9 +95,15 @@ _g_module_open (const gchar *file_name,
|
8863
|
5 |
gboolean bind_local)
|
|
6 |
{
|
|
7 |
gpointer handle;
|
|
8 |
+
|
|
9 |
+ #if defined(sun) && defined(__SVR4)
|
|
10 |
+ /* Always use RTLD_LAZY on Solaris otherwise all relocations are
|
|
11 |
+ performed immediately in all dynamic dependencies */
|
|
12 |
+ bind_lazy = 1;
|
|
13 |
+ #endif
|
|
14 |
|
|
15 |
handle = dlopen (file_name,
|
15766
|
16 |
- (bind_local ? 0 : RTLD_GLOBAL) | (bind_lazy ? RTLD_LAZY : RTLD_NOW));
|
|
17 |
+ (bind_local ? 0 : RTLD_GLOBAL) | (bind_lazy ? RTLD_LAZY | RTLD_FIRST: RTLD_NOW));
|
|
18 |
if (!handle)
|
|
19 |
g_module_set_error (fetch_dlerror (TRUE));
|
|
20 |
|