mirror of
https://git.yoctoproject.org/poky
synced 2026-03-11 09:49:41 +01:00
glew: fix Makefile race
Fix a Makefile race resulting in the target creating a directory being executed after the target to write into that directory. [ YOCTO #14485 ] (From OE-Core rev: caa34b782a4e7d14dabf5a14cc3fb147509cc716) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit e90c1d3b80e35fb685d4b321972743771eb2c2c0) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
8e54218757
commit
8f3fafc0d8
@@ -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
|
||||
|
||||
@@ -6,6 +6,7 @@ LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2ac251558de685c6b9478d89be3149c2"
|
||||
|
||||
SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/${PV}/glew-${PV}.tgz \
|
||||
file://0001-Fix-build-race-in-Makefile.patch \
|
||||
file://no-strip.patch"
|
||||
|
||||
SRC_URI[md5sum] = "3579164bccaef09e36c0af7f4fd5c7c7"
|
||||
|
||||
Reference in New Issue
Block a user