From dce48c142cae497ffe518b4a4427df6fac46c398 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 2 Feb 2010 12:21:30 -0500 Subject: Disable strict aliasing optimization. --- configure.ac | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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" -- cgit