Make it compile on AIX. (#141159, Michael Wilson)
authorMatthias Clasen <maclas@gmx.de>
Wed, 12 May 2004 03:31:55 +0000 (03:31 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Wed, 12 May 2004 03:31:55 +0000 (03:31 +0000)
Tue May 11 23:23:21 2004  Matthias Clasen  <maclas@gmx.de>

* gmodule-ar.c (_g_module_open): Make it compile on AIX.
(#141159, Michael Wilson)

gmodule/ChangeLog
gmodule/gmodule-ar.c

index a4dd1ac5c1610bd92baf5ad9dd1bcede3b187c23..1a23718015a14f0662e2cfb8f79b68c0c1c24e18 100644 (file)
@@ -1,3 +1,8 @@
+Tue May 11 23:23:21 2004  Matthias Clasen  <maclas@gmx.de>
+
+       * gmodule-ar.c (_g_module_open): Make it compile on AIX.  
+       (#141159, Michael Wilson)
+
 2004-03-31  Tor Lillqvist  <tml@iki.fi>
 
        * gmodule-win32.c (_g_module_build_path): On Cygwin, use the "cyg"
index 517679412ecf6da785d8f933946c9338f361ee73..4de9c4336900f0ae9576197e7bafad83d0dd0418 100644 (file)
@@ -97,7 +97,8 @@ exit:
 
 static gpointer
 _g_module_open (const gchar *file_name,
-               gboolean     bind_lazy)
+               gboolean     bind_lazy,
+               gboolean     bind_local)
 {
   gpointer handle;
   gchar* member;
@@ -105,18 +106,19 @@ _g_module_open (const gchar *file_name,
 
   /* extract name of first member of archive */
 
-  member = _g_module_get_member(file_name);
+  member = _g_module_get_member (file_name);
   if (member != NULL)
     {
-      full_name = g_strconcat(file_name, "(", member, ")", NULL);
-      g_free(member);
+      full_name = g_strconcat (file_name, "(", member, ")", NULL);
+      g_free (member);
     }
   else
-    full_name = g_strdup(file_name);
+    full_name = g_strdup (file_name);
   
-  handle = dlopen (full_name, RTLD_GLOBAL | RTLD_MEMBER | (bind_lazy ? RTLD_LAZY : RTLD_NOW));
+  handle = dlopen (full_name, 
+                  (bind_local ? RTLD_LOCAL : RTLD_GLOBAL) | RTLD_MEMBER | (bind_lazy ? RTLD_LAZY : RTLD_NOW));
 
-  g_free(full_name);
+  g_free (full_name);
 
   if (!handle)
     g_module_set_error (fetch_dlerror (TRUE));