* build-aux/ltmain.m4sh: (func_mode_execute) For the -dlopen option,
when testing if the file to be dlopen'ed exists, strip the optional
shared archive member (seen on AIX) from dlname first.
---
build-aux/ltmain.m4sh | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/build-aux/ltmain.m4sh b/build-aux/ltmain.m4sh
index 14f3c37..22b56a1 100644
--- a/build-aux/ltmain.m4sh
+++ b/build-aux/ltmain.m4sh
@@ -1777,10 +1777,20 @@ func_mode_execute ()
func_dirname "$file" "" "."
dir=$func_dirname_result
- if test -f "$dir/$objdir/$dlname"; then
+ # dlname may be "archive(member)" on AIX
+ case $dlname in
+ *'('*')')
+ # func_stripname does not work with '(*)',
+ # need to pass '(member)' instead.
+ func_stripname '' "`IFS='()'; set -- $dlname; echo \"($2)\"`"
"$dlname"
+ ;;
+ *) func_stripname_result="$dlname" ;;
+ esac
+
+ if test -f "$dir/$objdir/$func_stripname_result"; then
func_append dir "/$objdir"
else
- if test ! -f "$dir/$dlname"; then
+ if test ! -f "$dir/$func_stripname_result"; then
func_fatal_error "cannot find \`$dlname' in \`$dir' or
\`$dir/$objdir'"
fi
fi
--
1.7.3.4