aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-02-03 01:21:30 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-02-03 01:22:48 +0800
commitdce48c142cae497ffe518b4a4427df6fac46c398 (patch)
tree5e537412fb067e08d912d107a5829f610e4e4fc2
parent21b96e788c965a769ad77544f66187132d8f2d55 (diff)
downloadgsoc2013-evolution-dce48c142cae497ffe518b4a4427df6fac46c398.tar.gz
gsoc2013-evolution-dce48c142cae497ffe518b4a4427df6fac46c398.tar.zst
gsoc2013-evolution-dce48c142cae497ffe518b4a4427df6fac46c398.zip
Disable strict aliasing optimization.
-rw-r--r--configure.ac9
1 files changed, 8 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index 732ac2d1d8..b034b76012 100644
--- a/configure.ac
+++ b/configure.ac
@@ -89,7 +89,14 @@ dnl -Wmissing-format-attribute
dnl -Wshadow
dnl -Wformat-nonliteral
-AM_CPPFLAGS="$WARNING_FLAGS"
+dnl GCC 4.4 got more aggressive in it's aliasing optimizations, changing
+dnl behavior that -- according to the C99 standard -- is supposed to be
+dnl undefined. We may still have aliasing abuses lying around that rely
+dnl on GCC's previous "undefined" behavior but are hidden by type casts,
+dnl so disable the strict-aliasing optimzation until GCC (or even LLVM)
+dnl learns how to detect them and warn us about it.
+dnl XXX This really belongs in AM_CFLAGS.
+AM_CPPFLAGS="$WARNING_FLAGS -fno-strict-aliasing"
AC_SUBST(AM_CPPFLAGS)
LDFLAGS="$LDFLAGS -Wl,--no-undefined"