<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/186b37c645a7a988d7cfa303e63bdf6674f095f5">https://github.com/macports/macports-ports/commit/186b37c645a7a988d7cfa303e63bdf6674f095f5</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 186b37c  ninja: fix build on Tiger
</span>186b37c is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 186b37c645a7a988d7cfa303e63bdf6674f095f5
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Mon Apr 23 22:42:43 2018 -0700

<span style='display:block; white-space:pre;color:#404040;'>    ninja: fix build on Tiger
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    adds replacement for sysconf() call
</span><span style='display:block; white-space:pre;color:#404040;'>    replaces posix_spawn calls with fork()/exec()
</span><span style='display:block; white-space:pre;color:#404040;'>    (essentially reverts <https://github.com/ninja-build/ninja/commit/89587196>)
</span>---
 devel/ninja/Portfile                              |   5 +
 devel/ninja/files/patch-tiger-no-posix-spawn.diff | 146 ++++++++++++++++++++++
 devel/ninja/files/patch-tiger-sysconf.diff        |  65 ++++++++++
 3 files changed, 216 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/ninja/Portfile b/devel/ninja/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e4e689a..d3940d7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/ninja/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/ninja/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -74,4 +74,9 @@ platform darwin {
</span>         depends_build-append    port:python27
         configure.python        ${prefix}/bin/python2.7
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${os.major} == 8} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append patch-tiger-no-posix-spawn.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append patch-tiger-sysconf.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/ninja/files/patch-tiger-no-posix-spawn.diff b/devel/ninja/files/patch-tiger-no-posix-spawn.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..8f29f64
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/ninja/files/patch-tiger-no-posix-spawn.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,146 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/subprocess-posix.cc src/subprocess-posix.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 1de22c3..75ef0b2 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/subprocess-posix.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/subprocess-posix.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -22,9 +22,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <string.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/wait.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <spawn.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-extern char** environ;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,63 +50,62 @@ bool Subprocess::Start(SubprocessSet* set, const string& command) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif  // !USE_PPOLL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SetCloseOnExec(fd_);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  posix_spawn_file_actions_t action;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (posix_spawn_file_actions_init(&action) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Fatal("posix_spawn_file_actions_init: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (posix_spawn_file_actions_addclose(&action, output_pipe[0]) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Fatal("posix_spawn_file_actions_addclose: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  posix_spawnattr_t attr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (posix_spawnattr_init(&attr) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Fatal("posix_spawnattr_init: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  short flags = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  flags |= POSIX_SPAWN_SETSIGMASK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (posix_spawnattr_setsigmask(&attr, &set->old_mask_) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Fatal("posix_spawnattr_setsigmask: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Signals which are set to be caught in the calling process image are set to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // default action in the new process image, so no explicit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // POSIX_SPAWN_SETSIGDEF parameter is needed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (!use_console_) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // Put the child in its own process group, so ctrl-c won't reach it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    flags |= POSIX_SPAWN_SETPGROUP;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // No need to posix_spawnattr_setpgroup(&attr, 0), it's the default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // Open /dev/null over stdin.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (posix_spawn_file_actions_addopen(&action, 0, "/dev/null", O_RDONLY,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                         0) != 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      Fatal("posix_spawn_file_actions_addopen: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   pid_ = fork();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   if (pid_ < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     Fatal("fork: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   if (pid_ == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     close(output_pipe[0]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     // Track which fd we use to report errors on.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     int error_pipe = output_pipe[1];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     do {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       if (sigaction(SIGINT, &set->old_int_act_, 0) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       if (sigaction(SIGTERM, &set->old_term_act_, 0) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       if (sigaction(SIGHUP, &set->old_hup_act_, 0) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       if (sigprocmask(SIG_SETMASK, &set->old_mask_, 0) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       if (!use_console_) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         // Put the child in its own process group, so ctrl-c won't reach it.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         if (setpgid(0, 0) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         // Open /dev/null over stdin.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         int devnull = open("/dev/null", O_RDONLY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         if (devnull < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         if (dup2(devnull, 0) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         close(devnull);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         if (dup2(output_pipe[1], 1) < 0 ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++             dup2(output_pipe[1], 2) < 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++           break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         // Now can use stderr for errors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         error_pipe = 2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++         close(output_pipe[1]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       // In the console case, output_pipe is still inherited by the child and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       // closed when the subprocess finishes, which then notifies ninja.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       execl("/bin/sh", "/bin/sh", "-c", command.c_str(), (char *) NULL);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     } while (false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     // If we get here, something went wrong; the execl should have
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     // replaced us.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     char* err = strerror(errno);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     if (write(error_pipe, err, strlen(err)) < 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       // If the write fails, there's nothing we can do.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++       // But this block seems necessary to silence the warning.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++     _exit(1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (posix_spawn_file_actions_adddup2(&action, output_pipe[1], 1) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      Fatal("posix_spawn_file_actions_adddup2: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (posix_spawn_file_actions_adddup2(&action, output_pipe[1], 2) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      Fatal("posix_spawn_file_actions_adddup2: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (posix_spawn_file_actions_addclose(&action, output_pipe[1]) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      Fatal("posix_spawn_file_actions_addclose: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // In the console case, output_pipe is still inherited by the child and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    // closed when the subprocess finishes, which then notifies ninja.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef POSIX_SPAWN_USEVFORK
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  flags |= POSIX_SPAWN_USEVFORK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (posix_spawnattr_setflags(&attr, flags) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Fatal("posix_spawnattr_setflags: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  const char* spawned_args[] = { "/bin/sh", "-c", command.c_str(), NULL };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (posix_spawn(&pid_, "/bin/sh", &action, &attr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  const_cast<char**>(spawned_args), environ) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Fatal("posix_spawn: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (posix_spawnattr_destroy(&attr) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Fatal("posix_spawnattr_destroy: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (posix_spawn_file_actions_destroy(&action) != 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Fatal("posix_spawn_file_actions_destroy: %s", strerror(errno));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   close(output_pipe[1]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git src/subprocess_test.cc src/subprocess_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0a8c206..672a2f1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/subprocess_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/subprocess_test.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -224,8 +224,7 @@ TEST_F(SubprocessTest, SetWithLots) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   rlimit rlim;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ASSERT_EQ(0, getrlimit(RLIMIT_NOFILE, &rlim));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (rlim.rlim_cur < kNumProcs) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    printf("Raise [ulimit -n] above %u (currently %lu) to make this test go\n",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-           kNumProcs, rlim.rlim_cur);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    printf("Raise [ulimit -n] well above %u (currently %lu) to make this test go\n", kNumProcs, rlim.rlim_cur);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/ninja/files/patch-tiger-sysconf.diff b/devel/ninja/files/patch-tiger-sysconf.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..1392609
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/ninja/files/patch-tiger-sysconf.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,65 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/util.cc.old        2018-04-23 22:08:41.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/util.cc    2018-04-23 22:13:09.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -54,6 +54,47 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "edit_distance.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "metrics.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __MAC_OS_X_VERSION_MIN_REQUIRED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif //#ifndef __MAC_OS_X_VERSION_MIN_REQUIRED
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//#include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//#include <sys/sysctl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define _SC_NPROCESSORS_ONLN 58
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++long tigersysconf(int name){
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (name == _SC_NPROCESSORS_ONLN) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          int nm[2];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          size_t len = 4;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          uint32_t count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          nm[0] = CTL_HW; nm[1] = HW_AVAILCPU;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          sysctl(nm, 2, &count, &len, NULL, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (count < 1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  nm[1] = HW_NCPU;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  sysctl(nm, 2, &count, &len, NULL, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  if (count < 1) { count = 1; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return (long)count;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif //#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif //#ifdef __APPLE__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void Fatal(const char* msg, ...) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   va_list ap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fprintf(stderr, "ninja: fatal: ");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -476,8 +517,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GetNativeSystemInfo(&info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return info.dwNumberOfProcessors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if __MAC_OS_X_VERSION_MIN_REQUIRED < 1050
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  return tigersysconf(_SC_NPROCESSORS_ONLN);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return sysconf(_SC_NPROCESSORS_ONLN);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if defined(_WIN32) || defined(__CYGWIN__)
</span></pre><pre style='margin:0'>

</pre>