Arkadiusz Miskiewicz <[EMAIL PROTECTED]> writes:

> Please take a look at thread:
> http://lists.pld-linux.org/mailman/pipermail/pld-devel-en/2006-December/018341.html
>
> The problem is that coreutils uses own internal copies
> of openat() and fchmodat() even if glibc already provides
> these functions (starting from glibc 2.4).

Sorry, I don't follow.  fchmodat() I can see, but
coreutils should use glibc's openat() if available.

Perhaps you meant to write "mkdirat()" instead of "openat()"?

> + needcompat=no
> + AC_CHECK_FUNC(mkdirat, [], [needcompat=yes])
> + AC_CHECK_FUNC(fchmodat, [], [needcompat=yes])
> + AC_CHECK_FUNC(fchownat, [], [needcompat=yes])

Why is the fchownat line needed?  fchownat is compiled only if openat
is included.

How about the following patch instead?  It seems a bit more
straightforward.  However, I don't fully understand the problem so I
may well have gotten it wrong.

2006-12-11  Paul Eggert  <[EMAIL PROTECTED]>

        * m4/openat.m4 (gl_FUNC_OPENAT): Don't compile mkdirat
        and fchmodat unconditionally, since glibc 2.4 has them.
        Problem reported by Arkadiusz Miskiewicz.

--- m4/openat.m4        20 Nov 2006 22:01:30 -0000      1.9
+++ m4/openat.m4        12 Dec 2006 06:12:43 -0000
@@ -1,4 +1,4 @@
-#serial 11
+#serial 12
 # See if we need to use our replacement for Solaris' openat et al functions.
 
 dnl Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -10,16 +10,12 @@ dnl with or without modifications, as lo
 
 AC_DEFUN([gl_FUNC_OPENAT],
 [
-  # No system provides these functions; compile them unconditionally.
-  AC_LIBOBJ([mkdirat])
-  AC_LIBOBJ([fchmodat])
-
   AC_LIBOBJ([openat-die])
   AC_LIBOBJ([openat-proc])
   AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
   AC_CHECK_FUNCS_ONCE([lchmod])
   AC_CHECK_FUNCS_ONCE([fdopendir])
-  AC_REPLACE_FUNCS(openat)
+  AC_REPLACE_FUNCS([fchmodat mkdirat openat])
   case $ac_cv_func_openat+$ac_cv_func_lstat_dereferences_slashed_symlink in
   yes+yes) ;;
   yes+*) AC_LIBOBJ([fstatat]);;


Reply via email to