[meta-oe][PATCH] libsdl-image: Fix link failure by pointing OBJC at CC
Khem Raj <[email protected]>
| Newsgroups | org.openembedded.lists.openembedded-devel |
|---|---|
| Message-ID | <[email protected]> |
configure.in calls AC_PROG_OBJC and libSDL_image_la_SOURCES carries an
Objective-C source, so automake selects Objective-C as the link language
for the library and emits:
libSDL_image_la_LINK = $(LIBTOOL) ... --mode=link $(OBJCLD) \
$(AM_OBJCFLAGS) $(OBJCFLAGS) ...
OBJCLD = $(OBJC)
AC_PROG_OBJC detects a bare compiler carrying none of TOOLCHAIN_OPTIONS,
so while compilation goes through $(CC) and is fine, the link drops
--sysroot and the tune flags and falls over:
ld.lld: error: cannot open crtbeginS.o: No such file or directory
ld.lld: error: unable to find library -lpng
ld.lld: error: unable to find library -ljpeg
ld.lld: error: unable to find library -ltiff
ld.lld: error: unable to find library -lz
ld.lld: error: unable to find library -lSDL
Export OBJC as CC so the link gets the full toolchain options.
configure.in already forces OBJCFLAGS=$CFLAGS, so that needs nothing.
Signed-off-by: Khem Raj <[email protected]>
---
meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
index 29fb8cb4aa..4b4cf4e62d 100644
--- a/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
@@ -17,6 +17,14 @@ inherit autotools pkgconfig
export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
+# configure.in runs AC_PROG_OBJC and libSDL_image_la_SOURCES carries an
+# Objective-C file, so automake picks Objective-C as the link language and
+# links via $(OBJCLD) = $(OBJC) instead of $(CC). AC_PROG_OBJC detects a bare
+# compiler with none of the toolchain options, so the link loses --sysroot and
+# the tune flags and then fails to find crtbeginS.o, -lz, -lSDL and friends.
+# Point OBJC at the full CC; configure.in already forces OBJCFLAGS=$CFLAGS.
+export OBJC = "${CC}"
+
# Disable the run-time loading of the libs and bring back the soname dependencies.
EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared"