]> git.ipfire.org Git - thirdparty/make.git/commitdiff
* job.c (child_execute_job): Fix $(shell...) under NO_OUTPUT_SYNC.
authorPaul Smith <psmith@gnu.org>
Mon, 4 Apr 2016 05:13:43 +0000 (01:13 -0400)
committerPaul Smith <psmith@gnu.org>
Mon, 4 Apr 2016 05:38:32 +0000 (01:38 -0400)
* main.c (decode_output_sync_flags): Use NONE for NO_OUTPUT_SYNC.

job.c
main.c
output.c

diff --git a/job.c b/job.c
index 512240fd1851b2f45ca363a57285086976d306b9..62e2e56aeee0ba95005a648f02c3521f69774d9f 100644 (file)
--- a/job.c
+++ b/job.c
@@ -2026,8 +2026,7 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp)
   int save_fdout = -1;
   int save_fderr = -1;
 
-#ifndef NO_OUTPUT_SYNC
-  /* Divert child output if output_sync in use.  */
+  /* Divert child output if we want to capture output.  */
   if (out && out->syncout)
     {
       if (out->out >= 0)
@@ -2035,7 +2034,6 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp)
       if (out->err >= 0)
         fderr = out->err;
     }
-#endif
 
   /* For each FD which needs to be redirected first make a dup of the standard
      FD to save and mark it close on exec so our child won't see it.  Then
@@ -2124,8 +2122,7 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp)
   int fdout = FD_STDOUT;
   int fderr = FD_STDERR;
 
-#ifndef NO_OUTPUT_SYNC
-  /* Divert child output if output_sync in use.  */
+  /* Divert child output if we want to capture it.  */
   if (out && out->syncout)
     {
       if (out->out >= 0)
@@ -2133,7 +2130,6 @@ child_execute_job (struct output *out, int good_stdin, char **argv, char **envp)
       if (out->err >= 0)
         fderr = out->err;
     }
-#endif
 
   pid = vfork();
   if (pid != 0)
diff --git a/main.c b/main.c
index b9c2b1f726a4d225409cbdf404a6d2b56064c72f..bf8fb0dcac3131840d0ff41d4d3b72372919fe15 100644 (file)
--- a/main.c
+++ b/main.c
@@ -795,6 +795,9 @@ decode_debug_flags (void)
 static void
 decode_output_sync_flags (void)
 {
+#ifdef NO_OUTPUT_SYNC
+  output_sync = OUTPUT_SYNC_NONE;
+#else
   if (output_sync_option)
     {
       if (streq (output_sync_option, "none"))
@@ -812,6 +815,7 @@ decode_output_sync_flags (void)
 
   if (sync_mutex)
     RECORD_SYNC_MUTEX (sync_mutex);
+#endif
 }
 
 #ifdef WINDOWS32
index fef7ab2319713faddd550b5086f50f3429c81126..7e905cc375e8a46c48f6892658b3b64f78136d8a 100644 (file)
--- a/output.c
+++ b/output.c
@@ -344,7 +344,7 @@ setup_tmpfile (struct output *out)
   /* If we failed to create a temp file, disable output sync going forward.  */
  error:
   output_close (out);
-  output_sync = 0;
+  output_sync = OUTPUT_SYNC_NONE;
 }
 
 /* Synchronize the output of jobs in -j mode to keep the results of