summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2010-07-31 16:01:58 +0200
committerBruno Haible <bruno@clisp.org>2010-07-31 16:01:58 +0200
commitfae6c4abe3faab75e892e19a0d60e681e442e453 (patch)
treef9d6ac201a851231db4e7021269346d505b79f74
parent3b905e0ad791b750d0a471c90ecaacf2345a39c3 (diff)
downloadgnulib-fae6c4abe3faab75e892e19a0d60e681e442e453.tar.gz
fchownat: Replace also when chown has the trailing slash bug.
-rw-r--r--ChangeLog8
-rw-r--r--m4/openat.m421
2 files changed, 20 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 5b10e411de..da0cc3ff33 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2010-07-31 Bruno Haible <bruno@clisp.org>
+ fchownat: Replace also when chown has the trailing slash bug.
+ * m4/openat.m4 (gl_FUNC_FCHOWNAT): Move the test of REPLACE_CHOWN
+ outside the gl_FUNC_FCHOWNAT_DEREF_BUG invocation. Fixes regression
+ introduced on 2010-04-10.
+ Reported by Rainer Tammer.
+
+2010-07-31 Bruno Haible <bruno@clisp.org>
+
linkat: Work around AIX 7.1 bug.
* m4/linkat.m4 (gl_FUNC_LINKAT): Require AC_CANONICAL_HOST. Test
whether linkat handles trailing slash correctly. If not, replace linkat
diff --git a/m4/openat.m4 b/m4/openat.m4
index 80df704240..eec426a401 100644
--- a/m4/openat.m4
+++ b/m4/openat.m4
@@ -1,4 +1,4 @@
-# serial 29
+# serial 30
# See if we need to use our replacement for Solaris' openat et al functions.
dnl Copyright (C) 2004-2010 Free Software Foundation, Inc.
@@ -99,19 +99,22 @@ main ()
# If we have the fchownat function, and it has the bug (in glibc-2.4)
# that it dereferences symlinks even with AT_SYMLINK_NOFOLLOW, then
# use the replacement function.
+# Also if the fchownat function, like chown, has the trailing slash bug,
+# use the replacement function.
# Also use the replacement function if fchownat is simply not available.
AC_DEFUN([gl_FUNC_FCHOWNAT],
[
AC_REQUIRE([gl_FUNC_CHOWN])
AC_CHECK_FUNC([fchownat],
- [gl_FUNC_FCHOWNAT_DEREF_BUG([
- REPLACE_FCHOWNAT=1
- AC_DEFINE([FCHOWNAT_NOFOLLOW_BUG], [1],
- [Define to 1 if your platform has fchownat, but it cannot
- perform lchown tasks.])
- if test $REPLACE_CHOWN = 1; then
- REPLACE_FCHOWNAT=1
- fi])],
+ [gl_FUNC_FCHOWNAT_DEREF_BUG(
+ [REPLACE_FCHOWNAT=1
+ AC_DEFINE([FCHOWNAT_NOFOLLOW_BUG], [1],
+ [Define to 1 if your platform has fchownat, but it cannot
+ perform lchown tasks.])
+ ])
+ if test $REPLACE_CHOWN = 1; then
+ REPLACE_FCHOWNAT=1
+ fi],
[HAVE_FCHOWNAT=0])
if test $HAVE_FCHOWNAT = 0 || test $REPLACE_FCHOWNAT = 1; then
AC_LIBOBJ([fchownat])