aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/make/APKBUILD4
-rw-r--r--main/make/make-3.82-dont-prune-intermediate.patch57
2 files changed, 60 insertions, 1 deletions
diff --git a/main/make/APKBUILD b/main/make/APKBUILD
index e474de7248..eee9d2eee9 100644
--- a/main/make/APKBUILD
+++ b/main/make/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=make
pkgver=3.82
-pkgrel=4
+pkgrel=5
pkgdesc="GNU make utility to maintain groups of programs"
url="http://www.gnu.org/software/make"
arch="all"
@@ -15,6 +15,7 @@ source="ftp://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.bz2
make-3.82-jobserver.patch
make-3.82-expensive_glob.patch
make-3.82-parallel-remake.patch
+ make-3.82-dont-prune-intermediate.patch
use-malloc.patch
"
@@ -50,4 +51,5 @@ md5sums="1a11100f3c63fcf5753818e59d63088f make-3.82.tar.bz2
923a06973f4bbc9f27c2ca88a6940d45 make-3.82-jobserver.patch
f2ed48ea701e8ab6e5b870a3d125b71a make-3.82-expensive_glob.patch
89f8032d2f314eb6338739f024d8ecec make-3.82-parallel-remake.patch
+97c9f064c4006c41f29d67febda858af make-3.82-dont-prune-intermediate.patch
44469128d5044e14ac48b3b991889ceb use-malloc.patch"
diff --git a/main/make/make-3.82-dont-prune-intermediate.patch b/main/make/make-3.82-dont-prune-intermediate.patch
new file mode 100644
index 0000000000..f5c1d8e481
--- /dev/null
+++ b/main/make/make-3.82-dont-prune-intermediate.patch
@@ -0,0 +1,57 @@
+2012-09-09 Paul Smith <psmith@gnu.org>
+
+ * remake.c (update_file_1): Force intermediate files to be
+ considered, not pruned, if their non-intermediate parent needs to
+ be remade. Fixes Savannah bug #30653.
+
+Index: remake.c
+===================================================================
+RCS file: /sources/make/make/remake.c,v
+retrieving revision 1.153
+retrieving revision 1.154
+diff -u -r1.153 -r1.154
+--- ./remake.c 5 Mar 2012 14:10:45 -0000 1.153
++++ ./remake.c 10 Sep 2012 02:36:05 -0000 1.154
+@@ -612,6 +612,10 @@
+ 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);
+
+Index: tests/scripts/features/parallelism
+===================================================================
+RCS file: /sources/make/make/tests/scripts/features/parallelism,v
+retrieving revision 1.19
+retrieving revision 1.20
+diff -u -r1.19 -r1.20
+--- ./tests/scripts/features/parallelism 4 Mar 2012 00:24:32 -0000 1.19
++++ ./tests/scripts/features/parallelism 10 Sep 2012 02:36:05 -0000 1.20
+@@ -214,6 +214,23 @@
+ 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