Don't synchronize output for recursive make unless -Omake
authorPaul Smith <psmith@gnu.org>
Wed, 1 May 2013 11:59:24 +0000 (07:59 -0400)
committerPaul Smith <psmith@gnu.org>
Wed, 1 May 2013 11:59:24 +0000 (07:59 -0400)
ChangeLog
job.c

index 6badda8339a35eba9c275ea0953e04de825a720c..148ca6a98b369de43a2a22fda6e0306a010b66ba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-05-01  Paul Smith  <psmith@gnu.org>
+
+       * job.c (start_job_command): Don't redirect output for recursive
+       make jobs, unless we're in makefile synchronization mode.
+
 2013-04-29  Eli Zaretskii  <eliz@gnu.org>
 
        * w32/include/dlfcn.h: New file.
diff --git a/job.c b/job.c
index 2a470b69d6d04f28fbc0eece555009cd6934c1aa..2488808045905c8741787855ca32d12bedc9984d 100644 (file)
--- a/job.c
+++ b/job.c
@@ -1707,8 +1707,10 @@ start_job_command (struct child *child)
 #endif
 
 #ifdef OUTPUT_SYNC
-          /* Divert child output into tempfile(s) if output_sync in use. */
-          if (output_sync)
+          /* Divert child output if output_sync in use.  Don't capture
+             recursive make output unless we are synchronizing "make" mode.  */
+          if (output_sync && (output_sync == OUTPUT_SYNC_MAKE
+                              || !(flags & COMMANDS_RECURSE)))
             {
               int outfd = fileno (stdout);
               int errfd = fileno (stderr);