From 1fc698cf14d17a3a8ad018cf9ec100198a339447 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Wed, 28 Nov 2012 22:19:46 -0500
Subject: [PATCH] Suppress parallel build in interfaces/ecpg/preproc/.

This is to see if it will stop intermittent build failures on buildfarm
member okapi.  We know that gmake 3.82 has some problems with sometimes
not honoring dependencies in parallel builds, and it seems likely that
this is more of the same.  Since the vast bulk of the work in the preproc
directory is associated with creating preproc.c and then preproc.o,
parallelism buys us hardly anything here anyway.

Also, make both this .NOTPARALLEL and the one previously added in
interfaces/ecpg/Makefile be conditional on "ifeq ($(MAKE_VERSION),3.82)".
The known bug in gmake is fixed upstream and should not be present in
3.83 and up, and there's no reason to think it affects older releases.
---
 src/interfaces/ecpg/Makefile         | 2 ++
 src/interfaces/ecpg/preproc/Makefile | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/src/interfaces/ecpg/Makefile b/src/interfaces/ecpg/Makefile
index 0116ec0db91..e397210a711 100644
--- a/src/interfaces/ecpg/Makefile
+++ b/src/interfaces/ecpg/Makefile
@@ -10,7 +10,9 @@ SUBDIRS = include pgtypeslib ecpglib compatlib preproc
 # (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.)
+ifeq ($(MAKE_VERSION),3.82)
 .NOTPARALLEL:
+endif
 
 $(recurse)
 
diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile
index 6e117d49c76..58342990676 100644
--- a/src/interfaces/ecpg/preproc/Makefile
+++ b/src/interfaces/ecpg/preproc/Makefile
@@ -30,6 +30,12 @@ OBJS=	preproc.o type.o ecpg.o output.o parser.o \
 	keywords.o c_keywords.o ecpg_keywords.o kwlookup.o ../ecpglib/typename.o descriptor.o variable.o \
 	$(WIN32RES)
 
+# Suppress parallel build to avoid a bug in gmake 3.82
+# (see comments in ../Makefile)
+ifeq ($(MAKE_VERSION),3.82)
+.NOTPARALLEL:
+endif
+
 all: ecpg
 
 ecpg: $(OBJS) | submake-libpgport
-- 
GitLab