cairo: disable LTO

Should fix part of #403.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
This commit is contained in:
Timothy Gu 2014-05-08 20:23:21 -07:00
parent e093687cea
commit 05aa359b7a
2 changed files with 47 additions and 0 deletions

46
src/cairo-3-lto.patch Normal file
View File

@ -0,0 +1,46 @@
This file is part of MXE.
See index.html for further information.
Add an option to disable LTO which breaks static linking.
diff -Naur cairo-1.12.16/build/configure.ac.warnings cairo-1.12.16.new/build/configure.ac.warnings
--- cairo-1.12.16/build/configure.ac.warnings 2013-08-26 08:07:21.000000000 -0700
+++ cairo-1.12.16.new/build/configure.ac.warnings 2014-05-08 20:08:11.296371571 -0700
@@ -36,14 +36,30 @@
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
+AC_ARG_ENABLE(lto,
+ AS_HELP_STRING([--enable-lto],
+ [Enable link-time optimization.]), [
+if test "x$enableval" = "xyes"; then
+ 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"
+ 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"
+ ])
+fi
+], [
+ 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"

View File

@ -21,6 +21,7 @@ define $(PKG)_BUILD
$(SED) -i 's,^\(Libs:.*\),\1 @CAIRO_NONPKGCONFIG_LIBS@,' '$(1)/src/cairo.pc.in'
cd '$(1)' && ./configure \
$(MXE_CONFIGURE_OPTS) \
--disable-lto \
--disable-gtk-doc \
--disable-test-surfaces \
--disable-gcov \