From af3de2d19ec65216737192b8cdd948331c3f2e80 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Sun, 9 Sep 2012 15:08:32 -0400
Subject: [PATCH] Use .NOTPARALLEL in ecpg/Makefile to avoid a gmake
 parallelism bug.

Investigation shows that some intermittent build failures in ecpg are the
result of a gmake bug that was reported quite some time ago:
http://savannah.gnu.org/bugs/?30653

Preventing parallel builds of the ecpg subdirectories seems to dodge the
bug.  Per yesterday's pgsql-hackers discussion, there are some other things
in the subdirectory makefiles that seem rather unsafe for parallel builds
too, but there's little point in fixing them as long as we have to work
around a make bug.

Back-patch to 9.1; parallel builds weren't very well supported before
that anyway.
---
 src/interfaces/ecpg/Makefile | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/interfaces/ecpg/Makefile b/src/interfaces/ecpg/Makefile
index 724aab4961d..0116ec0db91 100644
--- a/src/interfaces/ecpg/Makefile
+++ b/src/interfaces/ecpg/Makefile
@@ -4,6 +4,14 @@ include $(top_builddir)/src/Makefile.global
 
 SUBDIRS = include pgtypeslib ecpglib compatlib preproc
 
+# Suppress parallel build of subdirectories to avoid a bug in gmake 3.82, cf
+# http://savannah.gnu.org/bugs/?30653
+# https://bugzilla.redhat.com/show_bug.cgi?id=835424
+# (There are some other parallelism bugs in the subdirectory makefiles
+# themselves, but there's little point in fixing them as long as we have
+# to use this big hammer.)
+.NOTPARALLEL:
+
 $(recurse)
 
 all-pgtypeslib-recurse all-ecpglib-recurse all-compatlib-recurse all-preproc-recurse: all-include-recurse
-- 
GitLab