Contents of /trunk/make/patches/make-3.82-dont-prune-intermediate.patch
Parent Directory | Revision Log
Revision 2179 -
(show annotations)
(download)
Wed May 22 12:31:00 2013 UTC (11 years, 4 months ago) by niro
File size: 1848 byte(s)
Wed May 22 12:31:00 2013 UTC (11 years, 4 months ago) by niro
File size: 1848 byte(s)
-more patches from upstream
1 | 2012-09-09 Paul Smith <psmith@gnu.org> |
2 | |
3 | * remake.c (update_file_1): Force intermediate files to be |
4 | considered, not pruned, if their non-intermediate parent needs to |
5 | be remade. Fixes Savannah bug #30653. |
6 | |
7 | Index: remake.c |
8 | =================================================================== |
9 | RCS file: /sources/make/make/remake.c,v |
10 | retrieving revision 1.153 |
11 | retrieving revision 1.154 |
12 | diff -u -r1.153 -r1.154 |
13 | --- remake.c 5 Mar 2012 14:10:45 -0000 1.153 |
14 | +++ remake.c 10 Sep 2012 02:36:05 -0000 1.154 |
15 | @@ -612,6 +612,10 @@ |
16 | d->file->dontcare = file->dontcare; |
17 | } |
18 | |
19 | + /* We may have already considered this file, when we didn't know |
20 | + we'd need to update it. Force update_file() to consider it and |
21 | + not prune it. */ |
22 | + d->file->considered = !considered; |
23 | |
24 | dep_status |= update_file (d->file, depth); |
25 | |
26 | Index: tests/scripts/features/parallelism |
27 | =================================================================== |
28 | RCS file: /sources/make/make/tests/scripts/features/parallelism,v |
29 | retrieving revision 1.19 |
30 | retrieving revision 1.20 |
31 | diff -u -r1.19 -r1.20 |
32 | --- tests/scripts/features/parallelism 4 Mar 2012 00:24:32 -0000 1.19 |
33 | +++ tests/scripts/features/parallelism 10 Sep 2012 02:36:05 -0000 1.20 |
34 | @@ -214,6 +214,23 @@ |
35 | rmfiles(qw(foo.y foo.y.in main.bar)); |
36 | } |
37 | |
38 | +# Ensure intermediate/secondary files are not pruned incorrectly. |
39 | +# See Savannah bug #30653 |
40 | + |
41 | +utouch(-15, 'file2'); |
42 | +utouch(-10, 'file4'); |
43 | +utouch(-5, 'file1'); |
44 | + |
45 | +run_make_test(q! |
46 | +.INTERMEDIATE: file3 |
47 | +file4: file3 ; @mv -f $< $@ |
48 | +file3: file2 ; touch $@ |
49 | +file2: file1 ; @touch $@ |
50 | +!, |
51 | + '--no-print-directory -j2', "touch file3"); |
52 | + |
53 | +#rmfiles('file1', 'file2', 'file3', 'file4'); |
54 | + |
55 | if ($all_tests) { |
56 | # Jobserver FD handling is messed up in some way. |
57 | # Savannah bug #28189 |