Boost logo

Boost-Build :

From: K. Noel Belcourt (kbelco_at_[hidden])
Date: 2008-05-29 16:50:20


This patch fixes bjam hangs on Leopard, as reported by Rene. The
problem is with vfork. On the Mac, the documentation is quite clear
that vfork will suspend the calling process until an execve occurs.
The problem is execunix.c uses execvp after vfork and this hangs bjam
under both Leopard and Tiger on PPC hardware.

While we could (and perhaps eventually will) rewrite execunix.c to
use execve, it's easier to just use fork() instead of vfork() on the
Mac, and that's what this patch proposes.

-- Noel

Index: execunix.c
--- execunix.c (revision 45920)
+++ execunix.c (working copy)
@@ -25,7 +25,7 @@
  # ifdef USE_EXECUNIX
  # include <sys/times.h>

-# if defined(__APPLE__) && defined(__ppc__)
+# if defined(__APPLE__)
  # define NO_VFORK
  # endif

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at