libsdl2: Fix build with static libraries disabled

libsdl2 was using foo.o in Makefile dependencies but if libtool is
being used then those are the statically linked intermediate files.
 When static libraries are globally disabled they won't be generated by
libtool so the build fails.

Instead, use the libtool intermediate wrapper .lo files so the build
succeeds.

(From OE-Core rev: 3f935a6e9155e81165e26e94fd6c8504b272441e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2016-02-17 13:33:40 +00:00
parent a46dc87c92
commit c00186377d
2 changed files with 48 additions and 1 deletions

View File

@@ -0,0 +1,46 @@
When building use the libtool intermediate .lo files instead of explicitly using
the .o files. Under libtool foo.lo is the libtool intermediate wrapper, foo.o is
a static build, and .libs/foo.o is a shared build.
If static libraries have been disabled globally then libtool won't generate them
and explicit references to foo.o won't be satisfied.
Upstream-Status: Pending
RP
2016/1/16
Index: SDL2-2.0.3/configure.in
===================================================================
--- SDL2-2.0.3.orig/configure.in
+++ SDL2-2.0.3/configure.in
@@ -3136,23 +3136,23 @@ done
VERSION_OBJECTS=`echo $VERSION_SOURCES`
VERSION_DEPENDS=`echo $VERSION_SOURCES`
-VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
+VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.lo,g'`
VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
-\\$(objects)/\\2.o: \\1/\\2.rc\\\\
+\\$(objects)/\\2.lo: \\1/\\2.rc\\\\
\\$(WINDRES) \\$< \\$@,g"`
SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
-SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.o,g'`
+SDLMAIN_OBJECTS=`echo "$SDLMAIN_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
SDLMAIN_DEPENDS=`echo "$SDLMAIN_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
-\\$(objects)/\\2.o: \\1/\\2.c\\\\
+\\$(objects)/\\2.lo: \\1/\\2.c\\\\
\\$(LIBTOOL) --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.o,g'`
+SDLTEST_OBJECTS=`echo "$SDLTEST_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.c,$(objects)/\1.lo,g'`
SDLTEST_DEPENDS=`echo "$SDLTEST_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.c,\\\\
-\\$(objects)/\\2.o: \\1/\\2.c\\\\
+\\$(objects)/\\2.lo: \\1/\\2.c\\\\
\\$(LIBTOOL) --mode=compile \\$(CC) \\$(CFLAGS) \\$(EXTRA_CFLAGS) $DEPENDENCY_TRACKING_OPTIONS -c \\$< -o \\$@,g"`
# Set runtime shared library paths as needed

View File

@@ -14,7 +14,8 @@ PROVIDES = "virtual/libsdl2"
DEPENDS_class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/nativesdk-libx11 nativesdk-libxrandr nativesdk-libxrender nativesdk-libxext', '', d)}"
SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz"
SRC_URI = "http://www.libsdl.org/release/SDL2-${PV}.tar.gz \
file://linkage.patch"
S = "${WORKDIR}/SDL2-${PV}"