Skip to contentSkip to conversation

libimobiledevice: fix gcc 5 link failure

PATCH New S. Lockwood-Childs 1 participant 1 message Oct 4, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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).

---
 .../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
meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch new file +31 -0
new file mode 100644
index 0000000..eec60e8
@@ -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);
meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb +1 -0
index 06260f7..32aca96 100644
@@ -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"
Signature · 1 line
1.9.1