From 1dec2101f9603d5340139f24d36c2e9f396eb311 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Thu, 28 Jun 2018 18:47:45 +0100 Subject: 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 ] (From OE-Core rev: 177f4782e1ffca1eed3c9b102d910239a3dceea4) Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- .../libsdl2/libsdl2/more-gen-depends.patch | 47 ++++++++++++++++++++++ meta/recipes-graphics/libsdl2/libsdl2_2.0.8.bb | 4 +- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-graphics/libsdl2/libsdl2/more-gen-depends.patch (limited to 'meta/recipes-graphics') 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 + +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}" -- cgit v1.2.3-54-g00ecf