]> Savannah Git Hosting - gnulib.git/commitdiff
link-follow: Avoid guessing wrong when cross-compiling to glibc/Linux.
authorBruno Haible <bruno@clisp.org>
Sat, 5 May 2012 10:50:17 +0000 (12:50 +0200)
committerBruno Haible <bruno@clisp.org>
Sat, 5 May 2012 10:50:17 +0000 (12:50 +0200)
* m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Require
AC_CANONICAL_HOST. When cross-compiling to a glibc/Linux platform,
set gl_cv_func_link_follows_symlink to "guessing no".

ChangeLog
m4/link-follow.m4

index 2a39ae4266ba67110eb26094dc4cf21140208aae..ec46c1e54676adcc6167c1aa6e61380fbbeef630 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2012-05-05  Bruno Haible  <bruno@clisp.org>
+
+       link-follow: Avoid guessing wrong when cross-compiling to glibc/Linux.
+       * m4/link-follow.m4 (gl_FUNC_LINK_FOLLOWS_SYMLINK): Require
+       AC_CANONICAL_HOST. When cross-compiling to a glibc/Linux platform,
+       set gl_cv_func_link_follows_symlink to "guessing no".
+
 2012-05-05  Bruno Haible  <bruno@clisp.org>
 
        tzset: Avoid guessing wrong when cross-compiling to glibc systems.
index 0dc31887e173e5c7c13b988d6200a36646c671a2..309e4274498d230ba45da11182db7467a9f322a6 100644 (file)
@@ -1,4 +1,4 @@
-# serial 17
+# serial 18
 dnl Run a program to determine whether link(2) follows symlinks.
 dnl Set LINK_FOLLOWS_SYMLINKS accordingly.
 
@@ -16,6 +16,7 @@ dnl link() is sufficient).  If it is -1, use a Solaris specific
 dnl runtime test.  If it is -2, use a generic runtime test.
 AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK],
 [dnl
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([readlink])
   dnl Mingw lacks link, although gnulib provides a good replacement.
   dnl However, it also lacks symlink, so there's nothing to test in
@@ -81,13 +82,21 @@ AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK],
            ]])],
            [gl_cv_func_link_follows_symlink=no], dnl GNU behavior
            [gl_cv_func_link_follows_symlink=yes], dnl Followed link/compile failed
-           [gl_cv_func_link_follows_symlink=unknown] dnl We're cross compiling.
-         )
+           [dnl We're cross compiling.
+            dnl The past results are "yes" on MacOS X, FreeBSD, NetBSD,
+            dnl OpenBSD, Minix, AIX, HP-UX, OSF/1, and "no" on Linux, Cygwin.
+            case "$host_os" in
+                           # On glibc/Linux we know the result.
+              linux*-gnu*) gl_cv_func_link_follows_symlink="guessing no" ;;
+                           # Otherwise, we don't know.
+              *)           gl_cv_func_link_follows_symlink=unknown ;;
+            esac
+           ])
          rm -f conftest.file conftest.sym conftest.hard
         ])
-      case $gl_cv_func_link_follows_symlink in
-        yes) gl_link_follows_symlinks=1 ;;
-        no) ;; # already defaulted to 0
+      case "$gl_cv_func_link_follows_symlink" in
+        *yes) gl_link_follows_symlinks=1 ;;
+        *no) ;; # already defaulted to 0
         *) gl_link_follows_symlinks=-2 ;;
       esac
     fi