[cairo-commit] 3 commits - build/configure.ac.warnings configure.ac

Bryce Harrington bryce at kemper.freedesktop.org
Fri Jul 11 18:35:10 PDT 2014


 build/configure.ac.warnings |   15 ++++++++++-----
 configure.ac                |    2 ++
 2 files changed, 12 insertions(+), 5 deletions(-)

New commits:
commit 2a37cbbabc00c7474be5baa25f848778b1773b2c
Author: Bryce Harrington <b.harrington at samsung.com>
Date:   Tue Jul 8 15:53:41 2014 -0700

    configure.ac: Fix broken build for Qt backend
    
    When --enable-qt is specified, the build will break due to missing
    libstdc++:
    
      CCLD     cairo-test-suite
    /usr/bin/ld: ../boilerplate/.libs/libcairoboilerplate.a(libcairoboilerplate_cxx_la-cairo-boilerplate-qt.o): undefined reference to symbol '__gxx_personality_v0@@CXXABI_1.3'
    //usr/lib/x86_64-linux-gnu/libstdc++.so.6: error adding symbols: DSO missing from command line
    collect2: error: ld returned 1 exit status
    
    When using g++ to compile and link code, g++ automatically links
    libstdc++.  However, in cairo we're using g++ only to compile, so need
    to explicitly link against libstdc++ for backends that need iostream,
    stl, or other stdc++ features.
    
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=59038
    Signed-off-by: Bryce Harrington <b.harrington at samsung.com>
    Reviewed-by: Uli Schlachter <psychon at znc.in>

diff --git a/configure.ac b/configure.ac
index 59bd03d..23f2054 100644
--- a/configure.ac
+++ b/configure.ac
@@ -191,6 +191,7 @@ CAIRO_ENABLE_SURFACE_BACKEND(qt, Qt, no, [
 		    [qt_REQUIRES=""
 		     use_qt="no (requires Qt4 development libraries)"
 		     ])
+  qt_NONPKGCONFIG_LIBS="-lstdc++"
 ])
 
 dnl ===========================================================================
commit c3645d97ebd24c6f7ad850785d585aebc706a11c
Author: Bryce Harrington <b.harrington at samsung.com>
Date:   Tue Jul 8 13:14:20 2014 -0700

    configure.ac: Add a --disable-lto configure option
    
    Link-Time Optimization seems to be stable enough with gcc 4.8 and 4.9,
    but has proven to be an issue in the past for many cairo users (webkit,
    efl, ubuntu, opensuse, gentoo, arch...) who carry patches to disable it.
    
    Gentoo's patch[1] adds a --disable-lto option to leave it enabled by
    default but give users the ability to work around lto related build
    problems (c.f. fdo #77060).  Patch appears to have been authored by
    Alexandre Rostovtsev[2].
    
    1: sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/x11-libs/cairo/files/cairo-1.12.16-lto-optional.patch
    2: https://bugs.gentoo.org/show_bug.cgi?id=509552
    
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=60852
    Signed-off-by: Bryce Harrington <b.harrington at samsung.com>
    Reviewed-by: Uli Schlachter <psychon at znc.in>

diff --git a/build/configure.ac.warnings b/build/configure.ac.warnings
index f984eb2..a72d948 100644
--- a/build/configure.ac.warnings
+++ b/build/configure.ac.warnings
@@ -38,13 +38,18 @@ 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([],[
+AC_ARG_ENABLE(lto,
+  AS_HELP_STRING([--disable-lto],
+                 [Do not try to use Link-Time Optimization]))
+if test "x$enable_lto" != "xno"; then
+   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
 
 MAYBE_WARN="$MAYBE_WARN -fno-strict-aliasing -fno-common"
 
commit 0f46fc8dc173698b6d61ba757e1e42f2319d6ace
Author: Bryce Harrington <b.harrington at samsung.com>
Date:   Tue Jul 8 12:39:02 2014 -0700

    configure.ac: Quell warnings about AM_PROG_AR when using automake 1.12
    
    Without this, autogen.sh issues warnings like:
    
      /usr/share/automake-1.14/am/ltlibrary.am: warning: 'libcairoboilerplate_cxx.la': linking libtool libraries using a non-POSIX
      /usr/share/automake-1.14/am/ltlibrary.am: archiver requires 'AM_PROG_AR' in 'configure.ac'
      boilerplate/Makefile.am:18:   while processing Libtool library 'libcairoboilerplate_cxx.la'
    
    AM_PROG_AR was introduced in automake 1.11.2.  As per the docs for
    AM_PROG_AR, it is supposed to be included when the archiver ('ar') is
    used, but prior to automake 1.12 the warning was only shown iff
    -Wextra-portability was specified.  automake 1.12 introduced a change
    that includes -Wextra-portability when -Wall is specified.
    
    For further discussion of the issue, see:
    
      http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11401
      http://lists.gnu.org/archive/html/automake/2012-05/msg00014.html
    
    Signed-off-by: Bryce Harrington <b.harrington at samsung.com>
    Reviewed-by: Uli Schlachter <psychon at znc.in>

diff --git a/configure.ac b/configure.ac
index 4fdd2fb..59bd03d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -15,6 +15,7 @@ AC_CHECK_HEADERS([unistd.h sys/ioctl.h])
 
 AM_INIT_AUTOMAKE([1.11 foreign -Wall no-define no-dist-gzip dist-xz])
 AM_SILENT_RULES([yes])
+m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) dnl Workaround for Automake 1.12
 
 # Initialize libtool
 LT_PREREQ([2.2])


More information about the cairo-commit mailing list