--- main.c~	2010-07-19 09:10:53.000000000 +0200
+++ main.c	2010-08-11 15:12:09.000000000 +0200
@@ -1765,6 +1765,20 @@ main (int argc, char **argv, char **envp
         }
     }
 
+#ifdef PIPE_BUF
+  if (job_slots > PIPE_BUF)
+#elif defined _POSIX_PIPE_BUF
+  if (job_slots > _POSIX_PIPE_BUF)
+#else
+  if (job_slots > 512)
+#endif
+    {
+      error (NILF,
+	     _("More parallel jobs (-jN) than this platform can handle requested."));
+      error (NILF, _("Resetting to single job (-j1) mode."));
+      job_slots = 1;
+    }
+
   /* If we have >1 slot but no jobserver-fds, then we're a top-level make.
      Set up the pipe and install the fds option for our children.  */
 

Diff finished.  Wed Aug 11 15:12:32 2010
