From af5393c66dd5bf2013287a5f6d26f6c451600c77 Mon Sep 17 00:00:00 2001 From: "S. Lockwood-Childs" Date: Sat, 3 Oct 2015 18:13:11 -0700 Subject: libimobiledevice: fix gcc 5 link failure Drop 'inline' from some functions that had 'inline' keyword without a definition at that point (they were defined in a different file). Signed-off-by: S. Lockwood-Childs Signed-off-by: Martin Jansa --- .../files/inline-without-definition.patch | 31 ++++++++++++++++++++++ .../libimobiledevice/libimobiledevice_1.1.4.bb | 1 + 2 files changed, 32 insertions(+) create mode 100644 meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch (limited to 'meta-oe/recipes-connectivity/libimobiledevice') diff --git a/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch b/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch new file mode 100644 index 0000000000..9a7895fd41 --- /dev/null +++ b/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch @@ -0,0 +1,31 @@ +Fix link error with gcc 5 toolchains + + afc.c:258: error: undefined reference to 'debug_buffer' + collect2: error: ld returned 1 exit status + +debug.h header was declaring things inline without providing a definition. +Files that included this header then failed to link against the corresponding +external symbol in debug.c, because the linker took the 'inline' keyword +seriously rather than ignoring it. + +--- libimobiledevice-1.1.4/src/debug.h.orig 2015-10-03 16:24:08.758740386 -0700 ++++ libimobiledevice-1.1.4/src/debug.h 2015-10-03 16:24:22.706740355 -0700 +@@ -44,14 +44,14 @@ + #define debug_plist(a) + #endif + +-LIBIMOBILEDEVICE_INTERNAL inline void debug_info_real(const char *func, ++LIBIMOBILEDEVICE_INTERNAL void debug_info_real(const char *func, + const char *file, + int line, + const char *format, ...); + +-LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer(const char *data, const int length); +-LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer_to_file(const char *file, const char *data, const int length); +-LIBIMOBILEDEVICE_INTERNAL inline void debug_plist_real(const char *func, ++LIBIMOBILEDEVICE_INTERNAL void debug_buffer(const char *data, const int length); ++LIBIMOBILEDEVICE_INTERNAL void debug_buffer_to_file(const char *file, const char *data, const int length); ++LIBIMOBILEDEVICE_INTERNAL void debug_plist_real(const char *func, + const char *file, + int line, + plist_t plist); diff --git a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb index 06260f75cd..32aca96fd0 100644 --- a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb +++ b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb @@ -12,6 +12,7 @@ DEPENDS = "libplist usbmuxd libtasn1 gnutls libgcrypt" SRC_URI = " \ http://www.libimobiledevice.org/downloads/libimobiledevice-${PV}.tar.bz2 \ file://configure-fix-largefile.patch \ + file://inline-without-definition.patch \ " SRC_URI[md5sum] = "3f28cbc6a2e30d34685049c0abde5183" -- cgit 1.2.3-korg