diff options
Diffstat (limited to '')
-rw-r--r-- | test/shlibloadtest.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/test/shlibloadtest.c b/test/shlibloadtest.c index aad90e6533..53714aa125 100644 --- a/test/shlibloadtest.c +++ b/test/shlibloadtest.c @@ -48,7 +48,12 @@ typedef void *SHLIB_SYM; static int shlib_load(const char *filename, SHLIB *lib) { - *lib = dlopen(filename, RTLD_GLOBAL | RTLD_LAZY); + int dl_flags = (RTLD_GLOBAL|RTLD_LAZY); +#ifdef _AIX + if (filename[strlen(filename) - 1] == ')') + dl_flags |= RTLD_MEMBER; +#endif + *lib = dlopen(filename, dl_flags); return *lib == NULL ? 0 : 1; } |