Disable use of vfork()

vfork() is just too weird.  For instance, in this build:

  http://hydra.nixos.org/build/3330487

the value fromHook.writeSide becomes corrupted in the parent, even
though the child only reads from it.  At -O0 the problem goes away.
Probably the child is overriding some spilled temporary variable.

If I get bored I may implement using posix_spawn() instead.
This commit is contained in:
Eelco Dolstra 2012-11-15 19:35:18 +01:00
parent 8541d27fce
commit f794465ca8
2 changed files with 2 additions and 2 deletions

View file

@ -116,7 +116,7 @@ AC_CHECK_HEADERS([sys/mount.h], [], [],
# Check for vfork.
AC_FUNC_FORK()
#AC_FUNC_FORK()
# Check for lutimes, optionally used for changing the mtime of

View file

@ -355,7 +355,7 @@ void Goal::trace(const format & f)
/* Common initialisation performed in child processes. */
void commonChildInit(Pipe & logPipe)
static void commonChildInit(Pipe & logPipe)
{
/* Put the child in a separate session (and thus a separate
process group) so that it has no controlling terminal (meaning