|
@@ -0,0 +1,56 @@
|
|
|
+Upstream-Status: Submitted [https://github.com/nigels-com/glew/pull/311]
|
|
|
+Signed-off-by: Ross Burton <ross.burton@arm.com>
|
|
|
+
|
|
|
+From 0ce0a85597db48a2fca619bd95e34af091e54ae8 Mon Sep 17 00:00:00 2001
|
|
|
+From: Ross Burton <ross.burton@arm.com>
|
|
|
+Date: Thu, 22 Jul 2021 16:31:11 +0100
|
|
|
+Subject: [PATCH] Fix build race in Makefile
|
|
|
+
|
|
|
+The current rule for the binaries is:
|
|
|
+
|
|
|
+glew.bin: glew.lib bin bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN)
|
|
|
+
|
|
|
+In parallel builds, all of those targets happen at the same time. This
|
|
|
+means that 'bin' can happen *after* 'bin/$(GLEWINFO.BIN)', which is a
|
|
|
+problem as the 'bin' target's responsibility is to create the directory
|
|
|
+that the other target writes into.
|
|
|
+
|
|
|
+Solve this by not having a separate 'create directory' target which is
|
|
|
+fundamentally racy, and simply mkdir in each target which writes into it.
|
|
|
+---
|
|
|
+ Makefile | 9 ++++-----
|
|
|
+ 1 file changed, 4 insertions(+), 5 deletions(-)
|
|
|
+
|
|
|
+diff --git a/Makefile b/Makefile
|
|
|
+index d0e4614..04af44c 100644
|
|
|
+--- a/Makefile
|
|
|
++++ b/Makefile
|
|
|
+@@ -171,21 +171,20 @@ VISUALINFO.BIN.OBJ := $(VISUALINFO.BIN.OBJ:.c=.o)
|
|
|
+ # Don't build glewinfo or visualinfo for NaCL, yet.
|
|
|
+
|
|
|
+ ifneq ($(filter nacl%,$(SYSTEM)),)
|
|
|
+-glew.bin: glew.lib bin
|
|
|
++glew.bin: glew.lib
|
|
|
+ else
|
|
|
+-glew.bin: glew.lib bin bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN)
|
|
|
++glew.bin: glew.lib bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN)
|
|
|
+ endif
|
|
|
+
|
|
|
+-bin:
|
|
|
+- mkdir bin
|
|
|
+-
|
|
|
+ bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJ) $(LIB.SHARED.DIR)/$(LIB.SHARED)
|
|
|
++ @mkdir -p $(dir $@)
|
|
|
+ $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJ) $(BIN.LIBS)
|
|
|
+ ifneq ($(STRIP),)
|
|
|
+ $(STRIP) -x $@
|
|
|
+ endif
|
|
|
+
|
|
|
+ bin/$(VISUALINFO.BIN): $(VISUALINFO.BIN.OBJ) $(LIB.SHARED.DIR)/$(LIB.SHARED)
|
|
|
++ @mkdir -p $(dir $@)
|
|
|
+ $(CC) $(CFLAGS) -o $@ $(VISUALINFO.BIN.OBJ) $(BIN.LIBS)
|
|
|
+ ifneq ($(STRIP),)
|
|
|
+ $(STRIP) -x $@
|
|
|
+--
|
|
|
+2.25.1
|
|
|
+
|