* config/ltmain.m4sh (func_source): New function. (func_mode_execute, func_mode_install, func_mode_link): Use it. Do not append a dot to a file name to source, it breaks on cygwin managed mounts and is not necessary anywhere. Reported by Eric Blake . Index: config/ltmain.m4sh =================================================================== RCS file: /cvsroot/libtool/libtool/config/ltmain.m4sh,v retrieving revision 1.1.2.68 diff -u -r1.1.2.68 ltmain.m4sh --- config/ltmain.m4sh 12 Aug 2005 20:08:03 -0000 1.1.2.68 +++ config/ltmain.m4sh 12 Aug 2005 20:57:10 -0000 @@ -585,6 +585,24 @@ fi } + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# `FILE.' does not work on cygwin managed mounts. +func_source () +{ + $opt_debug + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + + # func_win32_libid arg # return the library type of file 'arg' # @@ -1448,12 +1466,7 @@ # Read the libtool library. dlname= library_names= - - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac + func_source "$file" # Skip this library if it cannot be dlopened. if test -z "$dlname"; then @@ -1510,11 +1523,7 @@ *) # Do a test to see if this is really a libtool program. if (${SED} -e '4q' $file | $GREP "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac + func_source "$file" # Transform arg to wrapped name. file="$progdir/$program" @@ -1783,11 +1792,7 @@ library_names= old_library= relink_command= - # If there is no directory component, then add one. - case $file in - */* | *\\*) . $file ;; - *) . ./$file ;; - esac + func_source "$file" # Add the libdir to current_libdirs if it is the destination. if test "X$destdir" = "X$libdir"; then @@ -1971,18 +1976,7 @@ notinst_deplibs= relink_command= - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac - # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; - esac + func_source "$wrapper" # Check the variables that should have been set. test -z "$generated_by_libtool_version" && \ @@ -1993,11 +1987,7 @@ # Check to see that each library is installed. libdir= if test -f "$lib"; then - # If there is no directory component, then add one. - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac + func_source "$lib" fi libfile="$libdir/"`$ECHO "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test if test -n "$libdir" && test ! -f "$libfile"; then @@ -2007,18 +1997,7 @@ done relink_command= - # To insure that "foo" is sourced, and not "foo.exe", - # finese the cygwin/MSYS system by explicitly sourcing "foo." - # which disallows the automatic-append-.exe behavior. - case $build in - *cygwin* | *mingw*) wrapperdot=${wrapper}. ;; - *) wrapperdot=${wrapper} ;; - esac - # If there is no directory component, then add one. - case $file in - */* | *\\*) . ${wrapperdot} ;; - *) . ./${wrapperdot} ;; - esac + func_source "$wrapper" outputname= if test "$fast_install" = no && test -n "$relink_command"; then @@ -2324,11 +2303,7 @@ non_pic_object= # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac + func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || @@ -2837,11 +2812,7 @@ non_pic_object= # Read the .lo file - # If there is no directory component, then add one. - case $arg in - */* | *\\*) . $arg ;; - *) . ./$arg ;; - esac + func_source "$arg" if test -z "$pic_object" || test -z "$non_pic_object" || @@ -3101,8 +3072,7 @@ # Ignore non-libtool-libs dependency_libs= case $lib in - *[[\\/]]*.la) . $lib ;; - *.la) . ./$lib ;; + *.la) func_source "$lib" ;; esac # Collect preopened libtool deplibs, except any this library @@ -3176,10 +3146,7 @@ $GREP "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then library_names= old_library= - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac + func_source "$lib" for l in $old_library $library_names; do ll="$l" done @@ -3365,10 +3332,7 @@ # Read the .la file - case $lib in - */* | *\\*) . $lib ;; - *) . ./$lib ;; - esac + func_source "$lib" case $host in *-*-darwin*)