]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
AS_LN_S: fall back on 'cp -pR' (not 'cp -p') if 'ln -s' fails
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 26 Dec 2011 08:34:13 +0000 (00:34 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 26 Dec 2011 08:35:06 +0000 (00:35 -0800)
This works better for symlinks to directories.
Problem reported by Eli Zaretskii via Werner Lemberg in
<http://lists.gnu.org/archive/html/bug-autoconf/2011-12/msg00006.html>.
* NEWS:
* doc/autoconf.texi (Particular Programs): Document this.
* lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Implement this.

ChangeLog
NEWS
doc/autoconf.texi
lib/m4sugar/m4sh.m4

index 0f67f89071fda8fb56e9a8b36a074cfc6045df5d..25799b2841b810f1b26c48c0be8b869bef94f068 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2011-12-26  Paul Eggert  <eggert@cs.ucla.edu>
+
+       AS_LN_S: fall back on 'cp -pR' (not 'cp -p') if 'ln -s' fails
+       This works better for symlinks to directories.
+       Problem reported by Eli Zaretskii via Werner Lemberg in
+       <http://lists.gnu.org/archive/html/bug-autoconf/2011-12/msg00006.html>.
+       * NEWS:
+       * doc/autoconf.texi (Particular Programs): Document this.
+       * lib/m4sugar/m4sh.m4 (_AS_LN_S_PREPARE): Implement this.
+
 2011-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 
        AC_LANG_BOOL_COMPILE_TRY(C): port to g++ with warnings
diff --git a/NEWS b/NEWS
index 858601a42138cf9eb27ff315b6369587920976be..daec25602f665e7907b88d299949afce19a3cbed 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,9 @@ GNU Autoconf NEWS - User visible changes.
 
 ** Macros
 
+- AC_PROG_LN_S and AS_LN_S now fall back on 'cp -pR' (not 'cp -p') if 'ln -s'
+  does not work.  This works better for symlinks to directories.
+
 - New macro AC_HEADER_CHECK_STDBOOL.
 
 - New and updated macros for Fortran support:
index d7d2231cd862c1a673bd07f5c07a7402c1f8ed8a..0354dfb521439e218daa93f012bebe055b3ab6cf 100644 (file)
@@ -4137,7 +4137,7 @@ The result of this test can be influenced by setting the variable
 If @samp{ln -s} works on the current file system (the operating system
 and file system support symbolic links), set the output variable
 @code{LN_S} to @samp{ln -s}; otherwise, if @samp{ln} works, set
-@code{LN_S} to @samp{ln}, and otherwise set it to @samp{cp -p}.
+@code{LN_S} to @samp{ln}, and otherwise set it to @samp{cp -pR}.
 
 If you make a link in a directory other than the current directory, its
 meaning depends on whether @samp{ln} or @samp{ln -s} is used.  To safely
index 1ff17052104f8027908e00d6386a25850fbd72a5..7195618a28ca8bf132e38c580a7c1b7943c0bcef 100644 (file)
@@ -1178,7 +1178,7 @@ _m4_popdef([AS_MESSAGE_LOG_FD], [AS_ERROR])])# _AS_LINENO_PREPARE
 # Don't use conftest.sym to avoid file name issues on DJGPP, where this
 # would yield conftest.sym.exe for DJGPP < 2.04.  And don't use `conftest'
 # as base name to avoid prohibiting concurrency (e.g., concurrent
-# config.statuses).  On read-only media, assume 'cp -p' and hope we
+# config.statuses).  On read-only media, assume 'cp -pR' and hope we
 # are just running --help anyway.
 m4_defun([_AS_LN_S_PREPARE],
 [rm -f conf$$ conf$$.exe conf$$.file
@@ -1194,16 +1194,16 @@ if (echo >conf$$.file) 2>/dev/null; then
     # ... but there are two gotchas:
     # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
     # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
+    # In both cases, we have to default to `cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
+      as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
     as_ln_s=ln
   else
-    as_ln_s='cp -p'
+    as_ln_s='cp -pR'
   fi
 else
-  as_ln_s='cp -p'
+  as_ln_s='cp -pR'
 fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null