From a4daf59eef9845a93c73056f6983b375c2a41fe9 Mon Sep 17 00:00:00 2001
From: Noah Misch <noah@leadboat.com>
Date: Sat, 23 Jul 2016 20:30:03 -0400
Subject: [PATCH] Make the AIX case of Makefile.shlib safe for parallel make.

Use our typical approach, from src/backend/parser.  Back-patch to 9.1
(all supported versions).
---
 src/Makefile.shlib | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/Makefile.shlib b/src/Makefile.shlib
index e728801f5fc..3b20df6388d 100644
--- a/src/Makefile.shlib
+++ b/src/Makefile.shlib
@@ -360,7 +360,16 @@ endif
 else # PORTNAME == aix
 
 # AIX case
-$(shlib) $(stlib): $(OBJS) | $(SHLIB_PREREQS)
+
+# There is no correct way to write a rule that generates two files.
+# Rules with two targets don't have that meaning, they are merely
+# shorthand for two otherwise separate rules.  To be safe for parallel
+# make, we must chain the dependencies like this.  The semicolon is
+# important, otherwise make will choose some built-in rule.
+
+$(stlib): $(shlib) ;
+
+$(shlib): $(OBJS) | $(SHLIB_PREREQS)
 	rm -f $(stlib)
 	$(LINK.static) $(stlib) $^
 	$(RANLIB) $(stlib)
-- 
GitLab