[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"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.