]> git.ipfire.org Git - thirdparty/make.git/commit
Clean up close-on-exec, particularly with jobserver pipes.
authorPaul Smith <psmith@gnu.org>
Mon, 2 Jan 2017 19:08:54 +0000 (14:08 -0500)
committerPaul Smith <psmith@gnu.org>
Sun, 4 Jun 2017 22:37:20 +0000 (18:37 -0400)
commit2b8e3bb23f96c2458818f011593557d3353dade3
treee9002df0128bbc267d6bb532f4d09979a8e84f0b
parentc4f30e6012c426e79447ee2829f80464ab10af32
Clean up close-on-exec, particularly with jobserver pipes.

* configure.ac: Check sys/file.h and assume fileno() always exists.
* output.h: Move output-specific content from job.h to output.h.
* os.h (fd_inherit, fd_noinherit): New functions manage FD inheritance.
* posixos.c (fd_inherit, fd_noinherit): Implement for POSIX systems.
(jobserver_setup): Force jobserver FDs to not be inherited by default.
(jobserver_pre_child): Enable inheritance in recursive invocations.
(jobserver_post_child): Disable inheritance after recursive invocations.
* w32/w32os.c (fd_inherit, fd_noinherit): Implement for W32 systems.
* job.h (CLOSE_ON_EXEC): Remove macro in deference to new fd_noinherit.
* function.c (func_shell_base): Convert CLOSE_ON_EXEC to fd_noinherit.
* job.c (child_execute_job): Ditto.
* output.c (setup_tmpfile): Ditto.
* read.c (eval_makefile): Ditto, plus remove HAVE_FILENO check.
* w32/include/sub_proc.h: Remove process_noinherit for fd_noinherit.
* w32/subproc/sub_proc.c: Ditto.
13 files changed:
configure.ac
function.c
job.c
job.h
os.h
output.c
output.h
po/POTFILES.in
posixos.c
read.c
w32/include/sub_proc.h
w32/subproc/sub_proc.c
w32/w32os.c