summary refs log tree commit diff
path: root/pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch')
-rw-r--r--pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch46
1 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch b/pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch
new file mode 100644
index 000000000000..9bb7add0bde2
--- /dev/null
+++ b/pkgs/development/tools/build-managers/gnumake/intermediate-parallel.patch
@@ -0,0 +1,46 @@
+diff --git remake.c remake.c
+index c0bf709..b1ddd23 100644
+--- remake.c
++++ remake.c
+@@ -612,6 +612,10 @@ update_file_1 (struct file *file, unsigned int depth)
+                 d->file->dontcare = file->dontcare;
+               }
+ 
++            /* We may have already considered this file, when we didn't know
++               we'd need to update it.  Force update_file() to consider it and
++               not prune it.  */
++            d->file->considered = !considered;
+ 
+ 	    dep_status |= update_file (d->file, depth);
+ 
+diff --git tests/scripts/features/parallelism tests/scripts/features/parallelism
+index d4250f0..76d24a7 100644
+--- tests/scripts/features/parallelism
++++ tests/scripts/features/parallelism
+@@ -214,6 +214,23 @@ rm main.x");
+     rmfiles(qw(foo.y foo.y.in main.bar));
+ }
+ 
++# Ensure intermediate/secondary files are not pruned incorrectly.
++# See Savannah bug #30653
++
++utouch(-15, 'file2');
++utouch(-10, 'file4');
++utouch(-5,  'file1');
++
++run_make_test(q!
++.INTERMEDIATE: file3
++file4: file3 ; @mv -f $< $@
++file3: file2 ; touch $@
++file2: file1 ; @touch $@
++!,
++              '--no-print-directory -j2', "touch file3");
++
++#rmfiles('file1', 'file2', 'file3', 'file4');
++
+ if ($all_tests) {
+     # Jobserver FD handling is messed up in some way.
+     # Savannah bug #28189
+-- 
+1.7.12
+