summaryrefslogtreecommitdiff
path: root/m4
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2004-07-25 07:37:55 +0000
committerPaul Eggert <eggert@cs.ucla.edu>2004-07-25 07:37:55 +0000
commitb46f08fd590768353b5a8b0c50087d2196676a7f (patch)
tree5e12aae57b01dc81b48c7f96b7d2df3eb9d574cd /m4
parent6fb55c3b5a687543f63d320882fa23c42736cea6 (diff)
downloadcoreutils-b46f08fd590768353b5a8b0c50087d2196676a7f.tar.xz
(gl_FUNC_NONREENTRANT_EUIDACCESS): New macro.
(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.
Diffstat (limited to 'm4')
-rw-r--r--m4/euidaccess.m419
1 files changed, 16 insertions, 3 deletions
diff --git a/m4/euidaccess.m4 b/m4/euidaccess.m4
index 18ce475b1..4307ae878 100644
--- a/m4/euidaccess.m4
+++ b/m4/euidaccess.m4
@@ -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])
])