fstatat: Make cross-compilation guess succeed everywhere except on AIX.
authorBruno Haible <bruno@clisp.org>
Thu, 10 Nov 2011 11:31:22 +0000 (12:31 +0100)
committerBruno Haible <bruno@clisp.org>
Thu, 10 Nov 2011 11:31:22 +0000 (12:31 +0100)
* m4/fstatat.m4 (gl_FUNC_FSTATAT): Require AC_CANONICAL_HOST.
When cross-compiling, guess yes on all platforms except AIX.
Reported by Ludovic Courtès <ludo@gnu.org>.

ChangeLog
m4/fstatat.m4

index ee37671..c7fe84d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2011-11-10  Bruno Haible  <bruno@clisp.org>
+
+       fstatat: Make cross-compilation guess succeed everywhere except on AIX.
+       * m4/fstatat.m4 (gl_FUNC_FSTATAT): Require AC_CANONICAL_HOST.
+       When cross-compiling, guess yes on all platforms except AIX.
+       Reported by Ludovic Courtès <ludo@gnu.org>.
+
 2011-11-09  Bruno Haible  <bruno@clisp.org>
 
        ptsname_r tests: Fix bugs.
index df539eb..33b28e3 100644 (file)
@@ -13,6 +13,7 @@ AC_DEFUN([gl_FUNC_FSTATAT],
   AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
+  AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles
   AC_CHECK_FUNCS_ONCE([fstatat])
 
   if test $ac_cv_func_fstatat = no; then
@@ -36,16 +37,23 @@ AC_DEFUN([gl_FUNC_FSTATAT],
             ]])],
          [gl_cv_func_fstatat_zero_flag=yes],
          [gl_cv_func_fstatat_zero_flag=no],
-         [gl_cv_func_fstatat_zero_flag=cross-compiling])])
+         [case "$host_os" in
+            aix*) gl_cv_func_fstatat_zero_flag="guessing no";;
+            *)    gl_cv_func_fstatat_zero_flag="guessing yes";;
+          esac
+         ])
+      ])
 
     case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
-    yes+yes) ;;
+    *yes+yes) ;;
     *) REPLACE_FSTATAT=1
-       if test $gl_cv_func_fstatat_zero_flag = yes; then
+       case $gl_cv_func_fstatat_zero_flag in
+       *yes)
          AC_DEFINE([HAVE_WORKING_FSTATAT_ZERO_FLAG], [1],
            [Define to 1 if fstatat (..., 0) works.
             For example, it does not work in AIX 7.1.])
-       fi
+         ;;
+       esac
        ;;
     esac
   fi