summaryrefslogtreecommitdiff
path: root/gmodule
diff options
context:
space:
mode:
authorMatthias Clasen <maclas@gmx.de>2004-05-12 03:31:55 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-05-12 03:31:55 +0000
commit52e231144f5522b188f50a6a7b90bd8dd18c2ae6 (patch)
tree7e557cf3849fc9c7af230e22c22207285afe4059 /gmodule
parent185c1de57776dc6cc2c5447692d68acd58d8a941 (diff)
downloadglib-52e231144f5522b188f50a6a7b90bd8dd18c2ae6.tar.gz
Make it compile on AIX. (#141159, Michael Wilson)
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)
Diffstat (limited to 'gmodule')
-rw-r--r--gmodule/ChangeLog5
-rw-r--r--gmodule/gmodule-ar.c16
2 files changed, 14 insertions, 7 deletions
diff --git a/gmodule/ChangeLog b/gmodule/ChangeLog
index a4dd1ac5c..1a2371801 100644
--- a/gmodule/ChangeLog
+++ b/gmodule/ChangeLog
@@ -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"
diff --git a/gmodule/gmodule-ar.c b/gmodule/gmodule-ar.c
index 517679412..4de9c4336 100644
--- a/gmodule/gmodule-ar.c
+++ b/gmodule/gmodule-ar.c
@@ -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));