]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
(gl_FUNC_NONREENTRANT_EUIDACCESS): New macro.
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 25 Jul 2004 07:37:55 +0000 (07:37 +0000)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 25 Jul 2004 07:37:55 +0000 (07:37 +0000)
(gl_FUNC_EUIDACCESS): Use AC_CHECK_DECLS_ONCE, not AC_CHECK_DECLS.
(gl_PREREQ_EUIDACCESS): Check for eaccess and setregid decls.
Require AC_HEADER_STAT.

m4/euidaccess.m4

index 18ce475b117d7db9f99f43642a3ee92585f8820c..4307ae8789aaedffdfed6738861a33809eb856e9 100644 (file)
@@ -1,17 +1,28 @@
-# euidaccess.m4 serial 2
-dnl Copyright (C) 2002, 2003 Free Software Foundation, Inc.
+# euidaccess.m4 serial 3
+dnl Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
 dnl This file is free software, distributed under the terms of the GNU
 dnl General Public License.  As a special exception to the GNU General
 dnl Public License, this file may be distributed as part of a program
 dnl that contains a configuration script generated by Autoconf, under
 dnl the same distribution terms as the rest of that program.
 
+AC_DEFUN([gl_FUNC_NONREENTRANT_EUIDACCESS],
+[
+  AC_REQUIRE([gl_FUNC_EUIDACCESS])
+  AC_DEFINE([PREFER_NONREENTRANT_EUIDACCESS], 1,
+    [Define this if you prefer euidaccess to return the correct result
+     even if this would make it nonreentrant.  Define this only if your
+     entire application is safe even if the uid or gid might temporarily
+     change.  If your application uses signal handlers or threads it
+     is probably not safe.])
+])
+
 AC_DEFUN([gl_FUNC_EUIDACCESS],
 [
   dnl Persuade glibc <unistd.h> to declare euidaccess().
   AC_REQUIRE([AC_GNU_SOURCE])
 
-  AC_CHECK_DECLS([euidaccess])
+  AC_CHECK_DECLS_ONCE([euidaccess])
   AC_REPLACE_FUNCS(euidaccess)
   if test $ac_cv_func_euidaccess = no; then
     gl_PREREQ_EUIDACCESS
@@ -21,6 +32,8 @@ AC_DEFUN([gl_FUNC_EUIDACCESS],
 # Prerequisites of lib/euidaccess.c.
 AC_DEFUN([gl_PREREQ_EUIDACCESS], [
   AC_CHECK_HEADERS_ONCE(unistd.h)
+  AC_CHECK_DECLS_ONCE(eaccess setregid)
   AC_REQUIRE([AC_FUNC_GETGROUPS])
+  AC_REQUIRE([AC_HEADER_STAT])
 ])