From 60cdebd50c5de5a0656d056fe63094ca35c01e57 Mon Sep 17 00:00:00 2001 From: Martin Jansa Date: Sun, 3 Aug 2014 18:59:39 +0200 Subject: cairo: explicitly disable LTO support by backporting patch which removes it * cairo-native was failing to build in gentoo with gcc-4.9 and LTO enabled, more details in upstream bug https://bugs.freedesktop.org/show_bug.cgi?id=77060 (From OE-Core rev: 7b5c0f7dae89c9b46ffeb31d98cbfe286b55dc13) Signed-off-by: Martin Jansa Signed-off-by: Richard Purdie --- .../cairo/cairo/0001-Remove-LTO-support.patch | 60 ++++++++++++++++++++++ meta/recipes-graphics/cairo/cairo_1.12.14.bb | 4 +- 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-graphics/cairo/cairo/0001-Remove-LTO-support.patch diff --git a/meta/recipes-graphics/cairo/cairo/0001-Remove-LTO-support.patch b/meta/recipes-graphics/cairo/cairo/0001-Remove-LTO-support.patch new file mode 100644 index 0000000000..87297b25b4 --- /dev/null +++ b/meta/recipes-graphics/cairo/cairo/0001-Remove-LTO-support.patch @@ -0,0 +1,60 @@ +From bdf15c249130568093676ed3b6c91f6f5e06f089 Mon Sep 17 00:00:00 2001 +From: Uli Schlachter +Date: Mon, 21 Jul 2014 17:10:16 +0200 +Subject: [PATCH] Remove LTO support + +This just never worked too well and caused too many issues. I don't think anyone +will miss this. + +As mentioned in the below bug report, proper LTO support also requires using +special versions of ranlib, nm and ar which support the LTO object files. +Otherwise, calling the normal ranlib on an .a library breaks the list of +exported symbols and thus completely breaks the static library. + +This (partly) reverts the following commits: + +c3645d97ebd24c6f7ad850785d585aebc706a11c configure.ac: Add a --disable-lto configure option +d486ea30f1a58640a1178de74f705a73845b1cda configure: Conditionally include -flto +0870c6fb5b39dcc04fa376123848adde2d06d2ce gcc-4.5 warnings and optimisation flags. + +(The last commit is the one which brought us -flto in the first place even +though it doesn't talk about this. It's also the one which is only reverted +partly.) + +Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=77060 +CC: Chris Wilson +Signed-off-by: Uli Schlachter +Reviewed-by: Bryce Harrington +Signed-off-by: Martin Jansa + +Upstream-Status: Backport (will be in 1.14*) +Signed-off-by: Martin Jansa +--- + build/configure.ac.warnings | 11 ----------- + 1 file changed, 11 deletions(-) + +diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings +index f984eb2..2c4e34d 100644 +--- a/build/configure.ac.warnings ++++ b/build/configure.ac.warnings +@@ -35,17 +35,6 @@ MAYBE_WARN="$MAYBE_WARN -erroff=E_ENUM_TYPE_MISMATCH_ARG \ + + dnl We also abuse the warning-flag facility to enable other compiler + dnl options. Namely, the following: +- +-dnl -flto working really needs a test link, not just a compile +- +-safe_MAYBE_WARN="$MAYBE_WARN" +-MAYBE_WARN="$MAYBE_WARN -flto" +-AC_TRY_LINK([],[ +- int main(int argc, char **argv) { return 0; } +-],[],[ +- MAYBE_WARN="$safe_MAYBE_WARN" +-]) +- + MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common" + + dnl Also to turn various gcc/glibc-specific preprocessor checks +-- +2.0.2 + diff --git a/meta/recipes-graphics/cairo/cairo_1.12.14.bb b/meta/recipes-graphics/cairo/cairo_1.12.14.bb index 40aa169abe..87b7656ea8 100644 --- a/meta/recipes-graphics/cairo/cairo_1.12.14.bb +++ b/meta/recipes-graphics/cairo/cairo_1.12.14.bb @@ -5,7 +5,9 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77" PR = "r0" SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \ - file://png.patch" + file://0001-Remove-LTO-support.patch \ + file://png.patch \ +" SRC_URI[md5sum] = "27b634113d0f52152d60ae8e2ec7daa7" SRC_URI[sha256sum] = "96d0d1e3f9b74d2ca3469ff187c5e5f25649b1ad35cf06f4f3a83847dff4ac13" -- cgit v1.2.3-54-g00ecf