From 48b2cdbcd761105e8ebad412fcbf23db1ac4ef7c Mon Sep 17 00:00:00 2001
From: Saul Wold <sgw@linux.intel.com>
Date: Sun, 9 Mar 2014 15:22:15 +0200
Subject: [PATCH 1/3] Fix parallel make failure for archives

Upstream-Status: Pending

The lib and gnuefi makefiles were using the lib.a() form which compiles
and ar's as a pair instead of compiling all and then ar'ing which can
parallelize better. This was resulting in build failures on larger values
of -j.

See http://www.chemie.fu-berlin.de/chemnet/use/info/make/make_toc.html#TOC105
for details.

Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Darren Hart <dvhart@linux.intel.com>
[Rebased for 3.0.6]
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
[Rebased for 3.0.8]
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
---
 gnuefi/Makefile | 3 ++-
 lib/Makefile    | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnuefi/Makefile b/gnuefi/Makefile
index 2a61699..89b560a 100644
--- a/gnuefi/Makefile
+++ b/gnuefi/Makefile
@@ -54,7 +54,8 @@ TARGETS	= crt0-efi-$(ARCH).o libgnuefi.a
 
 all:	$(TARGETS)
 
-libgnuefi.a: $(patsubst %,libgnuefi.a(%),$(OBJS))
+libgnuefi.a: $(OBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS)
 
 clean:
 	rm -f $(TARGETS) *~ *.o $(OBJS)
diff --git a/lib/Makefile b/lib/Makefile
index 0e6410d..048751a 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -75,7 +75,7 @@ libsubdirs:
 	for sdir in $(SUBDIRS); do mkdir -p $$sdir; done
 
 libefi.a: $(OBJS)
-	$(AR) $(ARFLAGS) $@ $^
+	$(AR) $(ARFLAGS) $@ $(OBJS)
 
 clean:
 	rm -f libefi.a *~ $(OBJS) */*.o
-- 
2.7.4

