diff --git a/CHANGES b/CHANGES index f5eb70c6..1883b972 100644 --- a/CHANGES +++ b/CHANGES @@ -84,6 +84,7 @@ DayOfTheWeek, Month DD, YYYY / The Tcpdump Group Do not require vsnprintf(). tests: Use the -tttt option, by default, for the tests. autoconf, CMake: Get the size of a void * and a time_t. + Fix propagation of cc_werr_cflags() output. Documentation: Fixed errors in doc/README.Win32.md. diff --git a/CMakeLists.txt b/CMakeLists.txt index bf24ed19..ac30eca8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1063,9 +1063,13 @@ endif() # usage: cmake -DEXTRA_CFLAGS='-Wall -Wextra -Werror' ... # if(NOT "${EXTRA_CFLAGS}" STREQUAL "") - foreach(_extra_cflag ${EXTRA_CFLAGS}) - check_and_add_compiler_option("${_extra_cflag}") - endforeach(_extra_cflag) + # The meaning of EXTRA_CFLAGS is "use the exact specified options, or the + # build risks failing to fail", not "try every specified option, omit those + # that do not work and use the rest". Thus use add_compile_options(), not + # foreach()/check_and_add_compiler_option(). Another reason to do that is + # that the effect lasts in testprogs/ and testprogs/fuzz/. + string(REPLACE " " ";" _extra_cflags_list ${EXTRA_CFLAGS}) + add_compile_options(${_extra_cflags_list}) message(STATUS "Added extra compile options (${EXTRA_CFLAGS})") endif() diff --git a/build_common.sh b/build_common.sh index 3c9d7d4c..a512f284 100644 --- a/build_common.sh +++ b/build_common.sh @@ -179,7 +179,10 @@ cc_werr_cflags() { echo '-qhalt=w' ;; suncc-*) - echo '-errwarn=%all' + # GCC and Clang print an identification for every warning, which is + # useful for root cause analysis and bug fixing. Sun C does not do it + # by default, but an additional option makes the style more consistent. + echo '-errwarn=%all -errtags=yes' ;; esac }