[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gl_FUNC_FSTATAT doesn’t support cross-compilation
From: |
Bruno Haible |
Subject: |
Re: gl_FUNC_FSTATAT doesn’t support cross-compilation |
Date: |
Thu, 10 Nov 2011 01:39:36 +0100 |
User-agent: |
KMail/1.13.6 (Linux/2.6.37.6-0.5-desktop; KDE/4.6.0; x86_64; ; ) |
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 <address@hidden>
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>
- gl_FUNC_FSTATAT doesn’t support cross-compilation, Ludovic Courtès, 2011/11/09
- Re: gl_FUNC_FSTATAT doesn’t support cross-co mpilation, Paul Eggert, 2011/11/09
- Re: gl_FUNC_FSTATAT doesn’t support cross-compilation,
Bruno Haible <=
- Re: gl_FUNC_FSTATAT doesn’t support cross-c ompilation, Eric Blake, 2011/11/09
- Re: gl_FUNC_FSTATAT doesn’t support cross-c ompilation, Paul Eggert, 2011/11/09
- Re: gl_FUNC_FSTATAT doesn’t support cross-compilation, Bruno Haible, 2011/11/09
- Re: gl_FUNC_FSTATAT doesn’t support cross-co mpilation, Paul Eggert, 2011/11/09
- Re: gl_FUNC_FSTATAT doesn’t support cross-compilation, Bruno Haible, 2011/11/10
- Re: gl_FUNC_FSTATAT doesn’t support cross-compilation, Ludovic Courtès, 2011/11/11
- Re: gl_FUNC_FSTATAT doesn’t support cross-compilation, Jim Meyering, 2011/11/12
- Re: gl_FUNC_FSTATAT doesn’t support cross-compilation, Ludovic Courtès, 2011/11/10