mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-05 13:11:33 +00:00
* NEWS, doc/posix-functions/open.texi: * doc/posix-functions/openat.texi: Document this. * lib/fcntl.in.h (O_CLOEXEC): Default to a nonzero value. (GNULIB_defined_O_CLOEXEC): New symbol. * lib/open.c: Include cloexec.h. (open): Support O_CLOEXEC. * lib/openat.c: Include cloexec.h. (rpl_openat): Support O_CLOEXEC. * lib/popen-safer.c: Do not include cloexec.h. (open_noinherit): Remove. (popen_safer): Use O_CLOEXEC instead of set_cloexec_flag. * lib/save-cwd.c: Do not include cloexec.h. (save_cwd): Use O_CLOEXEC instead of set_cloexec_flag. * m4/open-cloexec.m4: New file. * m4/open.m4 (gl_FUNC_OPEN): Require gl_PREPROC_O_CLOEXEC. Replace 'open' if O_CLOEXEC is not present. * m4/openat.m4 (gl_FUNC_OPENAT): Require gl_PREPROC_O_CLOEXEC. Replace 'openat' if O_CLOEXEC is not present. * modules/freopen (Depends-on): Depend on 'open' if replacing freopen. * modules/open (Files): Add m4/open-cloexec.m4. (Depends-on): Depend on cloexec if replacing 'open'. * modules/openat (Files): Add m4/open-cloexec.m4. (Depends-on): Depend on cloexec if replacing openat. * modules/popen-safer (Depends-on): Remove cloexec. * modules/save-cwd (Depends-on): Remove cloexec, and add fd-safer-flag and 'open'.
39 lines
1.0 KiB
Plaintext
39 lines
1.0 KiB
Plaintext
# serial 46
|
|
# See if we need to use our replacement for Solaris' openat et al functions.
|
|
|
|
dnl Copyright (C) 2004-2017 Free Software Foundation, Inc.
|
|
dnl This file is free software; the Free Software Foundation
|
|
dnl gives unlimited permission to copy and/or distribute it,
|
|
dnl with or without modifications, as long as this notice is preserved.
|
|
|
|
# Written by Jim Meyering.
|
|
|
|
AC_DEFUN([gl_FUNC_OPENAT],
|
|
[
|
|
AC_REQUIRE([gl_FCNTL_H_DEFAULTS])
|
|
AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS])
|
|
AC_CHECK_FUNCS_ONCE([openat])
|
|
AC_REQUIRE([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK])
|
|
AC_REQUIRE([gl_PREPROC_O_CLOEXEC])
|
|
case $ac_cv_func_openat+$gl_cv_func_lstat_dereferences_slashed_symlink+$gl_cv_macro_O_CLOEXEC in
|
|
yes+*yes+yes)
|
|
;;
|
|
yes+*)
|
|
# Solaris 10 lacks O_CLOEXEC.
|
|
# Solaris 9 has *at functions, but uniformly mishandles trailing
|
|
# slash in all of them.
|
|
REPLACE_OPENAT=1
|
|
;;
|
|
*)
|
|
HAVE_OPENAT=0
|
|
;;
|
|
esac
|
|
])
|
|
|
|
# Prerequisites of lib/openat.c.
|
|
AC_DEFUN([gl_PREREQ_OPENAT],
|
|
[
|
|
AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T])
|
|
:
|
|
])
|