newlib/newlib/libc
Corinna Vinschen 3fbfcd11fb Cygwin: posix_spawn: add Cygwin-specific code fixing process synchronisation
Newlib's posix_spawn has been taken from FreeBSD.  The code relies on
BSD-specific behaviour of vfork, namely the fact that vfork blocks
the parent until the child exits or calls execve as well as the fact
that the child shares parent memory in non-COW mode.

This behaviour can't be emulated by Cygwin.  Cygwin's vfork is
equivalent to fork.  This is POSIX-compliant, but it's lacking BSD's
vfork ingrained synchronization of the parent to wait for the child
calling execve, or the chance to just write a variable and the parent
will see the result.

So this requires a Cygwin-specific solution.  The core function of
posix_spawn, called do_posix_spawn is now implemented twice, once using
the BSD method, and once for Cygwin using Windows synchronization under
the hood waiting for the child to call execve and signalling errors
upstream.  The Windows specifics are hidden inside Cygwin, so newlib
only calls internal Cygwin functions.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2020-08-03 12:41:44 +02:00
..
argz ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
ctype Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
errno makedoc: make errors visible 2017-12-07 11:54:11 +00:00
iconv libc/iconv: find_alias was mis-computing remaining alias table length 2020-07-10 10:51:43 +02:00
include ctype.h: Fix unused variable warnings 2020-07-16 11:27:38 +02:00
locale Locale modifier "@cjksingle" to enforce single-width CJK width. 2020-02-18 11:35:42 +01:00
machine arm: Fix fenv support 2020-07-29 06:58:17 +02:00
misc Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
posix Cygwin: posix_spawn: add Cygwin-specific code fixing process synchronisation 2020-08-03 12:41:44 +02:00
reent ansification: remove _DEFUN 2018-01-17 11:47:26 -06:00
search Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
signal Fix newlib functions perror()/psignal() not to use writev(). 2018-07-05 15:33:49 -04:00
ssp AMD GCN Port contributed by Andrew Stubbs <ams@codesourcery.com> 2019-01-15 10:48:08 -05:00
stdio Typo in license for newlib/libc/stdio/flags.c 2020-02-06 11:58:50 +01:00
stdio64 Use remove-advertising-clause script to edit BSD licenses 2020-01-29 19:03:31 +01:00
stdlib Reimplement aligned_alloc 2020-05-19 15:19:33 +02:00
string Locale modifier "@cjksingle" to enforce single-width CJK width. 2020-02-18 11:35:42 +01:00
sys RTEMS: Include missing header and fix stub 2020-03-13 13:51:20 -05:00
syscalls ansification: remove _HAVE_STDC 2018-01-17 11:47:30 -06:00
time newlib: strftime: fix over-enthusiastic fix from 0283642f35 2018-08-08 23:59:34 +02:00
unix Fix comparison between two character arrays 2018-07-30 09:36:49 +02:00
xdr xdr_private.h needs sys/types.h for u_char 2018-09-06 14:10:42 +02:00
Makefile.am ssp: add build infrastructure 2017-11-29 11:25:46 -06:00
Makefile.in ssp: add build infrastructure 2017-11-29 11:25:46 -06:00
aclocal.m4 Fix up errors in regenerated files for 2.3.0 release. 2016-01-04 12:57:31 -05:00
configure Bump up newlib release to 3.3.0 2020-01-21 15:17:43 -05:00
configure.in ssp: add build infrastructure 2017-11-29 11:25:46 -06:00
libc.in.xml ssp: add documentation 2017-11-29 11:25:45 -06:00
libc.texinfo ssp: add documentation 2017-11-29 11:25:45 -06:00
saber Remove matherr, and SVID and X/Open math library configurations 2019-01-23 10:46:24 +01:00
sys.tex Don't include stdio64 functions in reentrant syscalls menu when not bulding stdio64. 2015-08-03 09:54:33 +01:00