install-reloc: Support multi-binary installation.
[gnulib.git] / m4 / fstatat.m4
index 5802537..adbc7e5 100644 (file)
@@ -1,5 +1,5 @@
-# fstatat.m4 serial 1
-dnl Copyright (C) 2004-2011 Free Software Foundation, Inc.
+# fstatat.m4 serial 3
+dnl Copyright (C) 2004-2013 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -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
@@ -22,8 +23,7 @@ AC_DEFUN([gl_FUNC_FSTATAT],
     dnl <http://lists.gnu.org/archive/html/bug-tar/2011-09/msg00015.html>.
     AC_CACHE_CHECK([whether fstatat (..., 0) works],
       [gl_cv_func_fstatat_zero_flag],
-      [gl_cv_func_fstatat_zero_flag=no
-       AC_RUN_IFELSE(
+      [AC_RUN_IFELSE(
          [AC_LANG_SOURCE(
             [[
               #include <fcntl.h>
@@ -35,16 +35,25 @@ AC_DEFUN([gl_FUNC_FSTATAT],
                 return fstatat (AT_FDCWD, ".", &a, 0) != 0;
               }
             ]])],
-         [gl_cv_func_fstatat_zero_flag=yes])])
+         [gl_cv_func_fstatat_zero_flag=yes],
+         [gl_cv_func_fstatat_zero_flag=no],
+         [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
-         AC_DEFINE([FSTATAT_ZERO_FLAG_BROKEN], [1],
-           [Define to 1 if fstatat (..., 0) does not work,
-            as in AIX 7.1.])
-       fi
+       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.])
+         ;;
+       esac
        ;;
     esac
   fi