Hi Paul,

> I'd rather not hardwire assumptions about AIX into
> the 'configure' code, so instead I installed the
> following more-conservative patch

The problem with this conservative approach is that it penalizes
all the people who do cross-compiles to embedded Linux (eglibc or uClibc)
platforms. Most cross-compilations nowadays are to *-*-linux* targets.
People have already complained about replacement functions that are not
needed on these targets and are only due to pessimistic assumptions.

Also, a minor nit: When I see configure output like

  checking whether fstatat (..., 0) works... cross-compiling

I wonder: does that count as a "yes" or as a "no"?

Here's a proposed followup patch:


2011-11-09  Bruno Haible  <br...@clisp.org>

        fstatat: Make cross-compilation guess succeed on Linux.
        * m4/fstatat.m4 (gl_FUNC_FSTATAT): Require AC_CANONICAL_HOST.
        When cross-compiling, guess yes on Linux platforms.

--- m4/fstatat.m4.orig  Thu Nov 10 01:38:52 2011
+++ m4/fstatat.m4       Thu Nov 10 01:38:49 2011
@@ -13,6 +13,7 @@
   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 @@
             ]])],
          [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
+            linux*) gl_cv_func_fstatat_zero_flag="guessing yes";;
+            *)      gl_cv_func_fstatat_zero_flag="guessing no";;
+          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

-- 
In memoriam Robert Blum <http://en.wikipedia.org/wiki/Robert_Blum>

Reply via email to