From 992ca2985e4c6b1d09c6e3f8af709ed24b59e1d1 Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Tue, 11 Sep 2012 10:39:40 +0000 Subject: main/make: fix from upstream for parallel builds https://savannah.gnu.org/bugs/?30653 --- main/make/APKBUILD | 4 +- main/make/make-3.82-dont-prune-intermediate.patch | 57 +++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 main/make/make-3.82-dont-prune-intermediate.patch 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 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 + + * 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 -- cgit v1.2.3