From: Bruno Haible Date: Wed, 24 Aug 2005 15:58:21 +0000 (+0000) Subject: * config/ltmain.sh (func_mode_install): Try "ln -s -f" X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Fbranch-2-0;p=thirdparty%2Flibtool.git * config/ltmain.sh (func_mode_install): Try "ln -s -f" and "rm -f && ln -s" to make a symlink for a shared library: the former is needed for libraries `ln' depends on, the latter for Solaris /bin/ln. Reported by Nelson H. F. Beebe . --- diff --git a/ChangeLog b/ChangeLog index 6565b20f7..f15185bd9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2005-08-24 Bruno Haible + * config/ltmain.sh (func_mode_install): Try "ln -s -f" + and "rm -f && ln -s" to make a symlink for a shared library: the + former is needed for libraries `ln' depends on, the latter for + Solaris /bin/ln. + Reported by Nelson H. F. Beebe . + * config/ltmain.sh (cwrappersource): return 127 if exec failed. 2005-08-24 Ralf Wildenhues diff --git a/config/ltmain.m4sh b/config/ltmain.m4sh index 71e8f549a..827722097 100644 --- a/config/ltmain.m4sh +++ b/config/ltmain.m4sh @@ -1867,11 +1867,14 @@ func_mode_install () if test "$#" -gt 0; then # Delete the old symlinks, and create new ones. + # Try `ln -sf' first, because the `ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. for linkname do if test "$linkname" != "$realname"; then - $show "(cd $destdir && $RM $linkname && $LN_S $realname $linkname)" - $run eval "(cd $destdir && $RM $linkname && $LN_S $realname $linkname)" + $show "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + $run eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" fi done fi