+2012-05-03 Bruno Haible <bruno@clisp.org>
+
+ lstat: Avoid "guessing no" when cross-compiling to glibc systems.
+ * m4/lstat.m4 (gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK): When cross-
+ compiling, set gl_cv_func_lstat_dereferences_slashed_symlink to
+ "guessing yes" or "guessing no".
+ (gl_FUNC_LSTAT): Update.
+ * m4/fstatat.m4 (gl_FUNC_FSTATAT): Update.
+ * m4/openat.m4 (gl_FUNC_OPENAT): Update.
+ * m4/unlinkat.m4 (gl_FUNC_UNLINKAT): Update.
+
2012-05-03 Bruno Haible <bruno@clisp.org>
*alloc-gnu, eealloc: Avoid "guessing no" when cross-compiling to glibc.
-# fstatat.m4 serial 2
+# fstatat.m4 serial 3
dnl Copyright (C) 2004-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
])
case $gl_cv_func_fstatat_zero_flag+$gl_cv_func_lstat_dereferences_slashed_symlink in
- *yes+yes) ;;
+ *yes+*yes) ;;
*) REPLACE_FSTATAT=1
case $gl_cv_func_fstatat_zero_flag in
*yes)
-# serial 24
+# serial 25
# Copyright (C) 1997-2001, 2003-2012 Free Software Foundation, Inc.
#
AC_CHECK_FUNCS_ONCE([lstat])
if test $ac_cv_func_lstat = yes; then
AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
- if test $gl_cv_func_lstat_dereferences_slashed_symlink = no; then
- REPLACE_LSTAT=1
- fi
+ case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+ *no)
+ REPLACE_LSTAT=1
+ ;;
+ esac
else
HAVE_LSTAT=0
fi
]])],
[gl_cv_func_lstat_dereferences_slashed_symlink=yes],
[gl_cv_func_lstat_dereferences_slashed_symlink=no],
- [# When cross-compiling, be pessimistic so we will end up using the
- # replacement version of lstat that checks for trailing slashes and
- # calls lstat a second time when necessary.
- gl_cv_func_lstat_dereferences_slashed_symlink=no
+ [case "$host_os" in
+ # Guess yes on glibc systems.
+ *-gnu*) gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;;
+ # If we don't know, assume the worst.
+ *) gl_cv_func_lstat_dereferences_slashed_symlink="guessing no" ;;
+ esac
])
else
# If the 'ln -s' command failed, then we probably don't even
# have an lstat function.
- gl_cv_func_lstat_dereferences_slashed_symlink=no
+ gl_cv_func_lstat_dereferences_slashed_symlink="guessing no"
fi
rm -f conftest.sym conftest.file
])
- test $gl_cv_func_lstat_dereferences_slashed_symlink = yes &&
- AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
- [Define to 1 if 'lstat' dereferences a symlink specified
- with a trailing slash.])
+ case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+ *yes)
+ AC_DEFINE_UNQUOTED([LSTAT_FOLLOWS_SLASHED_SYMLINK], [1],
+ [Define to 1 if 'lstat' dereferences a symlink specified
+ with a trailing slash.])
+ ;;
+ esac
])
-# serial 43
+# serial 44
# See if we need to use our replacement for Solaris' openat et al functions.
dnl Copyright (C) 2004-2012 Free Software Foundation, Inc.
AC_CHECK_FUNCS_ONCE([openat])
AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink in
- yes+yes)
+ yes+*yes)
;;
yes+*)
# Solaris 9 has *at functions, but uniformly mishandles trailing
-# unlinkat.m4 serial 1
+# unlinkat.m4 serial 2
dnl Copyright (C) 2004-2012 Free Software Foundation, Inc.
dnl This file is free software; the Free Software Foundation
dnl gives unlimited permission to copy and/or distribute it,
if test $ac_cv_func_unlinkat = no; then
HAVE_UNLINKAT=0
else
- if test $gl_cv_func_lstat_dereferences_slashed_symlink != yes; then
- # Solaris 9 has *at functions, but uniformly mishandles trailing
- # slash in all of them.
- REPLACE_UNLINKAT=1
- else
- # GNU/Hurd has unlinkat, but it has the same bug as unlink.
- if test $REPLACE_UNLINK = 1; then
+ case "$gl_cv_func_lstat_dereferences_slashed_symlink" in
+ *no)
+ # Solaris 9 has *at functions, but uniformly mishandles trailing
+ # slash in all of them.
REPLACE_UNLINKAT=1
- fi
- fi
+ ;;
+ *)
+ # GNU/Hurd has unlinkat, but it has the same bug as unlink.
+ if test $REPLACE_UNLINK = 1; then
+ REPLACE_UNLINKAT=1
+ fi
+ ;;
+ esac
fi
])