diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 74 |
1 files changed, 46 insertions, 28 deletions
diff --git a/configure.ac b/configure.ac index 03343d20ae..05edd2011b 100644 --- a/configure.ac +++ b/configure.ac @@ -377,43 +377,44 @@ AC_ARG_ENABLE(extra-gcc-checks, if test $enableval != no then AC_WIRESHARK_GCC_CFLAGS_CHECK(-pedantic) + # + # Various code blocks this one. + # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Woverflow) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings) -# AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4) -# AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code) -# AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast, C) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-fstrict-overflow -Wstrict-overflow=4) + # + # Some memset() calls to clear out structures + # on the stack are getting flagged as "will never + # be executed" by this, at least by Apple's + # i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on + # Apple Inc. build 5658) (LLVM build 2336.11.00), for + # some unknown reason. + # + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunreachable-code) + # + # Due to various places where APIs we don't control + # require us to cast away constness, we can probably + # never enable these ones with -Werror. + # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-qual) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat, C) - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init, C) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wbad-function-cast, C) # - # epan/dissectors/packet-ncp2222.inc blocks this one - # for now. + # Some generated ASN.1 dissectors block this one; + # multiple function declarations for the same + # function are being generated. # - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wredundant-decls) # - # GLib blocks this for now. + # A ton of code blocks this one - it warns about + # implict conversions of void * to/from arbitrary + # pointer types, for example. # - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes) + AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wc++-compat, C) # # All the registration functions block these for now. # AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-prototypes) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wmissing-declarations) - # - # More cleanup needed for this on LP64. - # - AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32) fi ],) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wall -W) # -W is now known as -Wextra @@ -426,6 +427,21 @@ AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wcast-align) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wformat-security) AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wold-style-definition, C) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wshorten-64-to-32) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wstrict-prototypes) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wjump-misses-init, C) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wvla) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Waddress) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Warray-bounds) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wattributes) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wdiv-by-zero) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wignored-qualifiers) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wpragmas) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wlogical-op) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-overlength-strings) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wwrite-strings) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wunsafe-loop-optimizations) +AC_WIRESHARK_GCC_CFLAGS_CHECK(-Wno-long-long) CFLAGS_before_pie=$CFLAGS AC_WIRESHARK_GCC_CFLAGS_CHECK(-fPIE, C) @@ -525,9 +541,9 @@ warnings_as_errors_default="yes" AC_MSG_CHECKING(whether we should treat compiler warnings as errors) AC_ARG_ENABLE(warnings-as-errors, AC_HELP_STRING( [--enable-warnings-as-errors], - [treat warnings as errors (only for GCC or clang) @<:@default=yes@:>@]), + [treat warnings as errors (only for GCC or clang) @<:@default=yes, unless extra warnings are enabled@:>@]), [ - if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes" -a "x$wireshark_extra_gcc_flags" != "xyes"; then + if test "x$ac_supports_gcc_flags" = "xyes" -a "x$enableval" = "xyes"; then with_warnings_as_errors="yes" AC_MSG_RESULT(yes) else @@ -535,6 +551,7 @@ AC_ARG_ENABLE(warnings-as-errors, AC_MSG_RESULT(no) fi ], +[ if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then with_warnings_as_errors="yes" AC_MSG_RESULT(yes) @@ -542,6 +559,7 @@ AC_ARG_ENABLE(warnings-as-errors, with_warnings_as_errors="no" AC_MSG_RESULT(no) fi +] ) AM_CONDITIONAL(HAVE_WARNINGS_AS_ERRORS, test "x$with_warnings_as_errors" = "xyes") |