skiboot: Race condition in 'gard' build

Change-Id: Ieddbc96706ceb1dfd3a124a4c4b5c7b198af4b46
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-bsp/skiboot/skiboot.inc b/meta-openbmc-machines/meta-openpower/common/recipes-bsp/skiboot/skiboot.inc
index d64a7f6..941f86c 100644
--- a/meta-openbmc-machines/meta-openpower/common/recipes-bsp/skiboot/skiboot.inc
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-bsp/skiboot/skiboot.inc
@@ -4,6 +4,7 @@
 SRC_URI += "git://github.com/open-power/skiboot.git;nobranch=1"
 SRC_URI += "file://0001-external-Use-more-standard-PREFIX-vs-prefix.patch"
 SRC_URI += "file://0002-external-Utilize-DESTDIR-in-shared-makefile.patch"
+SRC_URI += "file://0003-gard-Fix-Makefile-race-condition.patch"
 
 FILESEXTRAPATHS_append := "${THISDIR}/skiboot:"
 
diff --git a/meta-openbmc-machines/meta-openpower/common/recipes-bsp/skiboot/skiboot/0003-gard-Fix-Makefile-race-condition.patch b/meta-openbmc-machines/meta-openpower/common/recipes-bsp/skiboot/skiboot/0003-gard-Fix-Makefile-race-condition.patch
new file mode 100644
index 0000000..703874e
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/common/recipes-bsp/skiboot/skiboot/0003-gard-Fix-Makefile-race-condition.patch
@@ -0,0 +1,43 @@
+From 7355feb27c79c406cc57e03da29e8f7a28f38c7e Mon Sep 17 00:00:00 2001
+From: Patrick Williams <patrick@stwcx.xyz>
+Date: Fri, 16 Sep 2016 15:41:02 -0500
+Subject: [PATCH] gard: Fix Makefile race condition
+
+Commit fd599965 added some dependencies in 'external/pflash'
+for libflash files that are created via symlink.  Replicate
+that same behavior in 'external/gard' to prevent race conditions
+where we attempt to compile files from libflash before they are
+symlink'd.
+
+Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
+---
+ external/gard/rules.mk | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/external/gard/rules.mk b/external/gard/rules.mk
+index dfe93d5..3a7f6d9 100644
+--- a/external/gard/rules.mk
++++ b/external/gard/rules.mk
+@@ -2,7 +2,9 @@
+ 
+ override CFLAGS += -O2 -Wall -Werror -I.
+ OBJS      = version.o gard.o
+-LIBFLASH_OBJS     += libflash-file.o libflash-libflash.o libflash-libffs.o libflash-ecc.o libflash-blocklevel.o
++LIBFLASH_FILES    := libflash.c libffs.c ecc.c blocklevel.c file.c
++LIBFLASH_OBJS     := $(addprefix libflash-, $(LIBFLASH_FILES:.c=.o))
++LIBFLASH_SRC      := $(addprefix libflash/,$(LIBFLASH_FILES))
+ OBJS     += $(LIBFLASH_OBJS)
+ OBJS     += common-arch_flash.o
+ EXE       = gard
+@@ -24,6 +26,8 @@ version.c: make_version.sh .version
+ %.o : %.c
+ 	$(CC) $(CFLAGS) -c $< -o $@
+ 
++$(LIBFLASH_SRC): | links
++
+ $(LIBFLASH_OBJS): libflash-%.o : libflash/%.c
+ 	$(CC) $(CFLAGS) -c $< -o $@
+ 
+-- 
+2.7.3
+