[OE-core] [PATCH 2/4] libffi: ensure sysroot paths are not in libffi.pc

Ross Burton ross.burton at intel.com
Thu Feb 4 16:22:50 UTC 2016


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 at intel.com>
---
 .../libffi/libffi/fix-libffi.la-location.patch     | 18 ------------------
 meta/recipes-gnome/libffi/libffi/not-win32.patch   | 22 ++++++++++++++++++++++
 meta/recipes-gnome/libffi/libffi_3.2.1.bb          |  2 +-
 3 files changed, 23 insertions(+), 19 deletions(-)
 delete mode 100644 meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch
 create mode 100644 meta/recipes-gnome/libffi/libffi/not-win32.patch

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
index 775bffc..0000000
--- a/meta/recipes-gnome/libffi/libffi/fix-libffi.la-location.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Upstream-Status: Inappropriate
-
-Signed-off-by: Saul Wold <sgw at 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
index 0000000..1e90125
--- /dev/null
+++ b/meta/recipes-gnome/libffi/libffi/not-win32.patch
@@ -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 at 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
diff --git a/meta/recipes-gnome/libffi/libffi_3.2.1.bb b/meta/recipes-gnome/libffi/libffi_3.2.1.bb
index fd916ca..72e25fb 100644
--- a/meta/recipes-gnome/libffi/libffi_3.2.1.bb
+++ b/meta/recipes-gnome/libffi/libffi_3.2.1.bb
@@ -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 \
 	   "
 
-- 
2.7.0




More information about the Openembedded-core mailing list