cairo: fix build issue with gcc 4.9

Fixes:

  http://autobuild.buildroot.org/results/277/277038de62d6262576a63b213374a33357a8333b/

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
Thomas Petazzoni 2014-05-18 19:14:30 +02:00 committed by Peter Korsgaard
parent 5ac49038da
commit f4c093f2d0
2 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,38 @@
Fix build with gcc 4.9
cairo fails to build with gcc 4.9 due to a bad interaction of cairo
modules with the LTO mechanism. The suggested workaround is to pass
-ffat-lto-objects. See
https://bugs.freedesktop.org/show_bug.cgi?id=77060 for the upstream
bug report, and
https://bugs.archlinux.org/task/40313?project=1&openedfrom=-1+week for
the ArchLinux bug report.
This patch passes -ffat-lto-objects when gcc understands this option,
in order to provide compatibility with gcc versions older than 4.8,
which did not provide this option, but are anyway unaffected by the
issue.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Index: b/configure.ac
===================================================================
--- a/configure.ac
+++ b/configure.ac
@@ -37,6 +37,16 @@
m4_include(build/configure.ac.pthread) dnl checks for pthreads
AC_CACHE_SAVE
+old_cflags=$CFLAGS
+CFLAGS=-ffat-lto-objects
+AC_MSG_CHECKING([whether CC supports -ffat-lto-objects])
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([])],
+ [AC_MSG_RESULT([yes])]
+ [LTO_CFLAGS=-ffat-lto-objects],
+ [AC_MSG_RESULT([no])]
+)
+CFLAGS="${old_CFLAGS} ${LTO_CFLAGS}"
+
dnl ===========================================================================
AC_CHECK_LIB(z, compress,

View File

@ -10,6 +10,7 @@ CAIRO_LICENSE = LGPLv2.1+
CAIRO_LICENSE_FILES = COPYING
CAIRO_SITE = http://cairographics.org/releases
CAIRO_INSTALL_STAGING = YES
CAIRO_AUTORECONF = YES
CAIRO_CONF_ENV = ac_cv_func_posix_getpwuid_r=yes glib_cv_stack_grows=no \
glib_cv_uscore=no ac_cv_func_strtod=yes \