summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2018-06-28 18:47:45 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-06-28 23:33:55 +0100
commit177f4782e1ffca1eed3c9b102d910239a3dceea4 (patch)
treeaad572f7de979e7d4c18a59a27386c0f110831e7 /meta/recipes-graphics
parent112683815ed1f63a96e845f264a2fd3390c6d01b (diff)
downloadopenembedded-core-contrib-177f4782e1ffca1eed3c9b102d910239a3dceea4.tar.gz
openembedded-core-contrib-177f4782e1ffca1eed3c9b102d910239a3dceea4.tar.bz2
openembedded-core-contrib-177f4782e1ffca1eed3c9b102d910239a3dceea4.zip
libsdl2: fix build race
There's an occasional build race from headers being generated in parallel with other files which include the headers being compiled. Solve this by adding more dependencies. [ YOCTO #12815 ] Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-graphics')
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch47
-rw-r--r--meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb4
2 files changed, 49 insertions, 2 deletions
diff --git a/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch b/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch
new file mode 100644
index 0000000000..29076bf6cb
--- /dev/null
+++ b/meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch
@@ -0,0 +1,47 @@
+Many source files include e.g. wayland-protocols.h which should be found in the
+sysroot but SDL wants to build its own headers from the XML definitions.
+
+However the rules to generate those headers are only dependencies of the
+top-level libSDL2.la object so can be built in parallel with the rest of the
+objects, which can lead to interesting errors if the header is parsed by the
+compiler whilst it's being written by another process:
+
+| gen/wayland-client-protocol.h:3: error: unterminated #ifndef
+| #ifndef WAYLAND_CLIENT_PROTOCOL_H
+
+Solve this by adding more dependencies so the generated files are built before
+the primary objects.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff --git a/configure.in b/data/poky-tmp/master/work/corei7-64-poky-linux/libsdl2/2.0.8-r0/SDL2-2.0.8/configure.in
+index 1c7e79338..ba07a4a4e 100644
+--- a/configure.in
++++ b/data/poky-tmp/master/work/corei7-64-poky-linux/libsdl2/2.0.8-r0/SDL2-2.0.8/configure.in
+@@ -4011,7 +4011,7 @@ DEPENDS=`echo $SOURCES | tr ' ' '\n'`
+ for EXT in asm cc m c S; do
+ OBJECTS=`echo "$OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.'$EXT',$(objects)/\1.lo,g'`
+ DEPENDS=`echo "$DEPENDS" | sed "s,^\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.$EXT\\$,\\\\
+-\\$(objects)/\\2.lo: \\1/\\2.$EXT\\\\
++\\$(objects)/\\2.lo: \\1/\\2.$EXT \\$(GEN_OBJECTS)\\\\
+ \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
+ done
+
+@@ -4028,14 +4028,14 @@ SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
+ SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
+ SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
+ SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
+-\\$(objects)/\\2.lo: \\1/\\2.c\\\\
++\\$(objects)/\\2.lo: \\1/\\2.c \\$(GEN_OBJECTS)\\\\
+ \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
+
+ SDLTEST_OBJECTS=`echo $SDLTEST_SOURCES`
+ SDLTEST_DEPENDS=`echo $SDLTEST_SOURCES`
+ SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
+ SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
+-\\$(objects)/\\2.lo: \\1/\\2.c\\\\
++\\$(objects)/\\2.lo: \\1/\\2.c\\\\ \\$(GEN_OBJECTS)\\\\
+ \\$(RUN_CMD_CC)\\$(LIBTOOL) --tag=CC --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
+
+ # Set runtime shared library paths as needed
diff --git a/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb b/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb
index 6966dc5c34..accea38aaa 100644
--- a/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb
+++ b/meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb
@@ -12,8 +12,8 @@ LIC_FILES_CHKSUM = "file://COPYING.txt;md5=02ee26814dd044bd7838ae24e05b880f"
PROVIDES = "virtual/libsdl2"
-SRC_URI = " \
- http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
+SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
+ file://more-gen-depends.patch \
"
S = "${WORKDIR}/SDL2-${PV}"