diff --git a/ChangeLog b/ChangeLog index beacecfd1..4b8ceeb57 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21,6 +21,9 @@ Changes in version 0.2.1.1-alpha - 2008-??-?? to avoid unused RAM in buffer chunks and memory pools. - Downgrade "sslv3 alert handshake failure" message to INFO. - Only log guard node status when guard node status has changed. + - Add a couple of extra warnings to --enable-gcc-warnings for GCC 4.3, + and stop using a warning that had become unfixably verbose under GCC + 4.3. o Code simplifications and refactoring: - Refactor code using connection_ap_handshake_attach_circuit() to diff --git a/configure.in b/configure.in index d2a568093..2a153ddbb 100644 --- a/configure.in +++ b/configure.in @@ -723,6 +723,11 @@ if test x$enable_gcc_warnings = xyes; then #error #endif]), have_gcc42=yes, have_gcc42=no) + AC_COMPILE_IFELSE(AC_LANG_PROGRAM([], [ +#if !defined(__GNUC__) || (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 3) +#error +#endif]), have_gcc43=yes, have_gcc43=no) + save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Wshorten-64-to-32" AC_COMPILE_IFELSE(AC_LANG_PROGRAM([], []), have_shorten64_flag=yes, @@ -730,6 +735,7 @@ if test x$enable_gcc_warnings = xyes; then CFLAGS="$save_CFLAGS" CFLAGS="$CFLAGS -W -Wfloat-equal -Wundef -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wbad-function-cast -Wswitch-enum -Werror" + # Disabled, so we can use mallinfo(): -Waggregate-return if test x$have_gcc4 = xyes ; then @@ -741,7 +747,14 @@ if test x$enable_gcc_warnings = xyes; then # These warnings break gcc 4.0.2 and work on gcc 4.2 # XXXX020 Use -fstack-protector. # XXXX020 See if any of these work with earlier versions. - CFLAGS="$CFLAGS -Waddress -Wmissing-noreturn -Wnormalized=id -Woverride-init -Wstrict-overflow=5" + CFLAGS="$CFLAGS -Waddress -Wmissing-noreturn -Wnormalized=id -Woverride-init -Wstrict-overflow=1" + # We used to use -Wstrict-overflow=5, but that breaks us heavily under 4.3. + fi + + if test x$have_gcc43 = xyes ; then + # These warnings break gcc 4.2 and work on gcc 4.3 + # XXXX020 See if any of these work with earlier versions. + CFLAGS="$CFLAGS -Wextra -Warray-bounds" fi if test x$have_shorten64_flag = xyes ; then