]> code.ossystems Code Review - openembedded-core.git/commitdiff
libffi: ensure sysroot paths are not in libffi.pc
authorRoss Burton <ross.burton@intel.com>
Thu, 4 Feb 2016 16:22:50 +0000 (16:22 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Thu, 4 Feb 2016 23:35:26 +0000 (23:35 +0000)
Remove a previous patch and solve the problem in a different way, as the same
root cause was causing the absolute sysroot path to appear in libffi.pc.

Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch [deleted file]
meta/recipes-gnome/libffi/libffi/not-win32.patch [new file with mode: 0644]
meta/recipes-gnome/libffi/libffi_3.2.1.bb

diff --git a/meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch b/meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch
deleted file mode 100644 (file)
index 775bffc..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-Index: libffi-3.0.13/Makefile.am
-===================================================================
---- libffi-3.0.13.orig/Makefile.am
-+++ libffi-3.0.13/Makefile.am
-@@ -98,7 +98,7 @@ FLAGS_TO_PASS = $(AM_MAKEFLAGS)
- MAKEOVERRIDES=
--toolexeclib_LTLIBRARIES = libffi.la
-+lib_LTLIBRARIES = libffi.la
- noinst_LTLIBRARIES = libffi_convenience.la
- libffi_la_SOURCES = src/prep_cif.c src/types.c \
diff --git a/meta/recipes-gnome/libffi/libffi/not-win32.patch b/meta/recipes-gnome/libffi/libffi/not-win32.patch
new file mode 100644 (file)
index 0000000..1e90125
--- /dev/null
@@ -0,0 +1,22 @@
+libffi's configure assumes that cross-compiled builds are complicated and
+introduces convoluted path manipulation involving gcc search paths to the
+install paths, resulting in paths like -L/usr/lib/../lib/ appearing in
+libffi.pc.  When pkg-config is then used to obtain the linker flags for libffi
+it can't tell that this path is on the default search path and returns
+$SYSROOT/usr/lib/../lib which then gets written all over the target sysroot.
+This then means the sstate can't be shared and triggers QA errors.
+
+As this block is generally pointless, disable it.
+
+Upstream-Status: Inappropriate
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+--- a/configure.ac~    2014-11-12 11:56:51.000000000 +0000
++++ b/configure.ac     2016-02-04 14:02:53.765710532 +0000
+@@ -593,5 +593,5 @@
+ # These variables are only ever used when we cross-build to X86_WIN32.
+ # And we only support this with GCC, so...
+-if test "x$GCC" = "xyes"; then
++if false; then
+   if test -n "$with_cross_host" &&
+      test x"$with_cross_host" != x"no"; then
\ No newline at end of file
index fd916caf7ee6ff66f0bd33aefa8286f4ec416e47..72e25fb9d5f3248b4174071b89a0378562ac4c94 100644 (file)
@@ -10,7 +10,7 @@ LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=3610bb17683a0089ed64055416b2ae1b"
 
 SRC_URI = "ftp://sourceware.org/pub/libffi/${BP}.tar.gz \
-           file://fix-libffi.la-location.patch \
+           file://not-win32.patch \
           file://0001-mips-Use-compiler-internal-define-for-linux.patch \
           "