about summary refs log tree commit diff
path: root/stdio-common/Makefile
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-04-24 15:50:19 -0300
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2017-06-29 10:59:07 -0300
commitccfb2964726512f6669fea99a43afa714e2e6a80 (patch)
treeb78d9541645f66e93bc0c45b6e583210548d4de8 /stdio-common/Makefile
parentedc1686af0c0fc2eb535f1d38cdf63c1a5a03675 (diff)
downloadglibc-ccfb2964726512f6669fea99a43afa714e2e6a80.tar.gz
glibc-ccfb2964726512f6669fea99a43afa714e2e6a80.tar.xz
glibc-ccfb2964726512f6669fea99a43afa714e2e6a80.zip
posix: Improve default posix_spawn implementation
This patch improves the default posix implementation of posix_spawn{p}
and align with Linux one.  The main idea is to fix some issues already
fixed in Linux code, and deprecated vfork internal usage (source of
various bug reports).  In a short:

   - It moves POSIX_SPAWN_USEVFORK usage and sets it a no-op.  Since
     the process that actually spawn the new process do not share
     memory with parent (with vfork), it fixes BZ#14750 for this
     implementation.

   - It uses a pipe to correctly obtain the return upon failure
     of execution (BZ#18433).

   - It correctly enable/disable asynchronous cancellation (checked
     on ptl/tst-exec5.c).

   - It correctly disable/enable signal handling.

Using this version instead of Linux shows only one regression,
posix/tst-spawn3, because of pipe2 usage which increase total
number of file descriptor.

	* sysdeps/posix/spawni.c (__spawni_child): New function.
	(__spawni): Rename to __spawnix.
Diffstat (limited to 'stdio-common/Makefile')
0 files changed, 0 insertions, 0 deletions