From 52f0622bfed19a56d2f57b25b07b5a7996915507 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Wed, 10 Jul 2019 09:09:59 -0700 Subject: [PATCH 1/5] Converted duplicated flags code to a set of if statements. --- config/gnu-flags | 568 +++++++++++------------------------------------ 1 file changed, 125 insertions(+), 443 deletions(-) diff --git a/config/gnu-flags b/config/gnu-flags index f401d3dde7..585c2b4a2f 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -37,10 +37,10 @@ if test X = "X$cc_flags_set"; then cc_vendor=`echo $cc_version |sed 's/\([a-z]*\).*/\1/'` cc_version=`echo $cc_version |sed 's/[-a-z]//g'` if test X = "X$cc_vendor" -a X != "X$cc_version"; then - cc_vendor=gcc + cc_vendor=gcc fi if test "-" != "$cc_vendor-$cc_version"; then - echo "compiler '$CC' is GNU $cc_vendor-$cc_version" + echo "compiler '$CC' is GNU $cc_vendor-$cc_version" fi # Some version numbers @@ -127,29 +127,29 @@ case "$cc_vendor-$cc_version" in # Production # NDEBUG is handled explicitly by the configure script case "$cc_vendor-$cc_version" in - gcc-4.*) - PROD_CFLAGS= - ;; - gcc-[56789].*) - PROD_CFLAGS="-fstdarg-opt" - ;; - *) - # gcc automatically inlines based on the optimization level - # this is just a failsafe - PROD_CFLAGS="-finline-functions" - ;; + gcc-4.*) + PROD_CFLAGS= + ;; + gcc-[56789].*) + PROD_CFLAGS="-fstdarg-opt" + ;; + *) + # gcc automatically inlines based on the optimization level + # this is just a failsafe + PROD_CFLAGS="-finline-functions" + ;; esac # Debug # NDEBUG is handled explicitly by the configure script # -g is handled by the symbols flags case "$cc_vendor-$cc_version" in - gcc-[56789].*) - DEBUG_CFLAGS="-ftrapv -fno-common" - ;; - *) - DEBUG_CFLAGS= - ;; + gcc-[56789].*) + DEBUG_CFLAGS="-ftrapv -fno-common" + ;; + *) + DEBUG_CFLAGS= + ;; esac # Developer warnings (suggestions from gcc, not code problems) @@ -166,18 +166,18 @@ case "$cc_vendor-$cc_version" in # Optimization case "$cc_vendor-$cc_version" in - gcc-4.*) - HIGH_OPT_CFLAGS="-O3" - DEBUG_OPT_CFLAGS= - ;; - gcc-[56789].*) - HIGH_OPT_CFLAGS="-O3" - DEBUG_OPT_CFLAGS="-Og" - ;; - *) - HIGH_OPT_CFLAGS="-O" - DEBUG_OPT_CFLAGS= - ;; + gcc-4.*) + HIGH_OPT_CFLAGS="-O3" + DEBUG_OPT_CFLAGS= + ;; + gcc-[56789].*) + HIGH_OPT_CFLAGS="-O3" + DEBUG_OPT_CFLAGS="-Og" + ;; + *) + HIGH_OPT_CFLAGS="-O" + DEBUG_OPT_CFLAGS= + ;; esac NO_OPT_CFLAGS="-O0" @@ -186,434 +186,116 @@ case "$cc_vendor-$cc_version" in ;; esac -# Version specific GCC flags -# -# Please follow the pattern below by adding new versions at the top, copying -# the information from the previous version and adding modifications to that. -case "$cc_vendor-$cc_version" in +# Version-specific GCC flags +if test "X-gcc" = "X-$cc_vendor"; then -# When the gcc 10.x release is out, we should check for additional flags to -# include and break it out into it's own section, like the other versions -# below. -QAK - gcc-9*) - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - - # Append warning flags that only gcc 4.7+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" - - # Append warning flags that only gcc 4.8+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format" - - # Append warning flags that only gcc 4.9+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdate-time" - - # Append warning flags that only gcc 5.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat" - - # Append warning flags that only gcc 6.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa -Wnormalized" - - # Append warning flags that only gcc 7.x+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=2" - H5_CFLAGS="$H5_CFLAGS -Walloc-zero -Walloca -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=2 -Wimplicit-fallthrough=5 -Wrestrict" - - # Append warning flags that only gcc 8.x+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=4 -Wsuggest-attribute=cold -Wsuggest-attribute=malloc" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=cold -Wno-suggest-attribute=malloc" - H5_CFLAGS="$H5_CFLAGS -Wattribute-alias -Wcast-align=strict -Wshift-overflow=2" - - # Append warning flags that only gcc 9.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Wattribute-alias=2 -Wmissing-profile" - ;; - - gcc-8*) - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - - # Append warning flags that only gcc 4.7+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" - - # Append warning flags that only gcc 4.8+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format" - - # Append warning flags that only gcc 4.9+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdate-time" - - # Append warning flags that only gcc 5.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat" - - # Append warning flags that only gcc 6.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa -Wnormalized" - - # Append warning flags that only gcc 7.x+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=2" - H5_CFLAGS="$H5_CFLAGS -Walloc-zero -Walloca -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=2 -Wimplicit-fallthrough=5 -Wrestrict" - - # Append warning flags that only gcc 8.x+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=4 -Wsuggest-attribute=cold -Wsuggest-attribute=malloc" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=cold -Wno-suggest-attribute=malloc" - H5_CFLAGS="$H5_CFLAGS -Wattribute-alias -Wcast-align=strict -Wshift-overflow=2" - ;; - - gcc-7*) - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about + # Special cases # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" + # Disable warnings about using the 'long long' type w/ gcc 4.6 and earlier + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 6; then + H5_CFLAGS="$H5_CFLAGS -Wno-long-long" + fi - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - - # Append warning flags that only gcc 4.7+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" - - # Append warning flags that only gcc 4.8+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format" - - # Append warning flags that only gcc 4.9+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdate-time" - - # Append warning flags that only gcc 5.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat" - - # Append warning flags that only gcc 6.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa -Wnormalized" - - # Append warning flags that only gcc 7.x+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=2" - H5_CFLAGS="$H5_CFLAGS -Walloc-zero -Walloca -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=2 -Wimplicit-fallthrough=5 -Wrestrict" - ;; - - gcc-6*) - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about - # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - - # Append warning flags that only gcc 4.7+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" - - # Append warning flags that only gcc 4.8+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format" - - # Append warning flags that only gcc 4.9+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdate-time" - - # Append warning flags that only gcc 5.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat" - - # Append warning flags that only gcc 6.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa -Wnormalized" - ;; - - gcc-5*) - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about - # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - - # Append warning flags that only gcc 4.7+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" - - # Append warning flags that only gcc 4.8+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format" - - # Append warning flags that only gcc 4.9+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdate-time" - - # Append warning flags that only gcc 5.x+ knows about - H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat" - ;; - - gcc-4.9*) - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about - # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560 -Wvla" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - - # Append warning flags that only gcc 4.7+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" - - # Append warning flags that only gcc 4.8+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format" - - # Append warning flags that only gcc 4.9+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdate-time" - ;; - - gcc-4.8*) - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about - # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560 -Wvla" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - - # Append warning flags that only gcc 4.7+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" - - # Append warning flags that only gcc 4.8+ knows about - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format" - ;; - - gcc-4.7*) - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about - # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560 -Wvla" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - - # Append warning flags that only gcc 4.7+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" - ;; - - gcc-4.6*) - # Disable warnings about using 'long long' type - H5_CFLAGS="$H5_CFLAGS -Wno-long-long" - - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about - # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560 -Wvla" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - - # Append warning flags that only gcc 4.6+ knows about - H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" - DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" - NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" - ;; - - gcc-4.5*) - # Disable warnings about using 'long long' type - H5_CFLAGS="$H5_CFLAGS -Wno-long-long" - - # Append warning flags that only gcc 4.2+ knows about - # (none, or incorporated in -Wall / -Wextra now) - - # Append warning flags that only gcc 4.3+ knows about - # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560 -Wvla" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - - # Append warning flags that only gcc 4.5+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" - ;; - - gcc-4.4*) - # Disable warnings about using 'long long' type - H5_CFLAGS="$H5_CFLAGS -Wno-long-long" - - # Append warning flags that only gcc 4.2+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow" - - # Append warning flags that only gcc 4.3+ knows about - # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560 -Wvla" - - # Append warning flags that only gcc 4.4+ knows about - H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" - ;; - - gcc-4.3*) - # Disable warnings about using 'long long' type - H5_CFLAGS="$H5_CFLAGS -Wno-long-long" - - # Append warning flags that only gcc 4.1+ knows about # -Wvolatile-register-var was later incorporated into -Wall and - # needs to be specified explicitly for gcc 4.1-4.3. - H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var" + # only needs to be specified explicitly for gcc 4.2-4.3 + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 3; then + H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var" + fi - # Append warning flags that only gcc 4.2+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow" + # -Wstrict-aliasing was later incorporated into -Wall and + # only needs to be specified explicitly for gcc 4.5-4.6 + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 6; then + H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing" + fi + + # The non-valued form of -Wstrict-overflow is used in gcc 4.2-4.4 + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 4; then + H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow" + fi + + # -Wvla was later incorporated into -Wpedantic and + # only needs to be specified explicitly for gcc 4 + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2; then + H5_CFLAGS="$H5_CFLAGS -Wvla" + fi - # Append warning flags that only gcc 4.3+ knows about # - # Technically, variable-length arrays are part of the C99 standard, but - # we should approach them a bit cautiously... -QAK - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wvla" - ;; + # Main version-specific flags + # - gcc-4.2*) - # Disable warnings about using 'long long' type - H5_CFLAGS="$H5_CFLAGS -Wno-long-long" + # gcc 4.3 + if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 3; then + H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" + fi - # Append warning flags that only gcc 4.1+ knows about - # -Wvolatile-register-var was later incorporated into -Wall and - # needs to be specified explicitly for gcc 4.1-4.3. - H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var" + # gcc 4.4 + if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 4; then + H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" + fi - # Append warning flags that only gcc 4.2+ knows about - H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow" - ;; + # gcc 4.5 + if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5; then + H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants" + fi - gcc-4.1*) - # Disable warnings about using 'long long' type - H5_CFLAGS="$H5_CFLAGS -Wno-long-long" + # gcc 4.6 + if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 6; then + H5_CFLAGS="$H5_CFLAGS -Wdouble-promotion -Wtrampolines" + DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=const" + NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=const" + fi - # Append warning flags that only gcc 4.1+ knows about - # -Wvolatile-register-var was later incorporated into -Wall and - # needs to be specified explicitly for gcc 4.1-4.3. - H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var" - ;; + # gcc 4.7 + if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 7; then + H5_CFLAGS="$H5_CFLAGS -Wstack-usage=8192 -Wvector-operation-performance" + DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=pure -Wsuggest-attribute=noreturn" + NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn" + fi -esac + # gcc 4.8 + if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 8; then + DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wsuggest-attribute=format" + NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=format" + fi + + # gcc 4.9 + if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 9; then + H5_CFLAGS="$H5_CFLAGS -Wdate-time" + fi + + # gcc 5 + if test $cc_vers_major -ge 5; then + H5_CFLAGS="$H5_CFLAGS -Warray-bounds=2 -Wc99-c11-compat" + fi + + # gcc 6 + if test $cc_vers_major -ge 6; then + H5_CFLAGS="$H5_CFLAGS -Wnull-dereference -Wunused-const-variable -Wduplicated-cond -Whsa -Wnormalized" + fi + + # gcc 7 + if test $cc_vers_major -ge 7; then + DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=2" + H5_CFLAGS="$H5_CFLAGS -Walloc-zero -Walloca -Wduplicated-branches -Wformat-overflow=2 -Wformat-truncation=2 -Wimplicit-fallthrough=5 -Wrestrict" + fi + + # gcc 8 + if test $cc_vers_major -ge 8; then + DEVELOPER_WARNING_CFLAGS="$DEVELOPER_WARNING_CFLAGS -Wstringop-overflow=4 -Wsuggest-attribute=cold -Wsuggest-attribute=malloc" + NO_DEVELOPER_WARNING_CFLAGS="$NO_DEVELOPER_WARNING_CFLAGS -Wno-suggest-attribute=cold -Wno-suggest-attribute=malloc" + H5_CFLAGS="$H5_CFLAGS -Wattribute-alias -Wcast-align=strict -Wshift-overflow=2" + fi + + # gcc 9 + if test $cc_vers_major -ge 9; then + H5_CFLAGS="$H5_CFLAGS -Wattribute-alias=2 -Wmissing-profile" + fi +fi # Clear cc info if no flags set if test "X$cc_flags_set" = "X"; then - cc_vendor= - cc_version= + cc_vendor= + cc_version= fi From 924d4c01a8b32d1a1c2496ca68a066b5bd9343e9 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Wed, 10 Jul 2019 10:49:55 -0700 Subject: [PATCH 2/5] Reworked the config/gnu-flags file to be more organized and robust. --- config/gnu-flags | 164 +++++++++++++++++++++++------------------------ 1 file changed, 82 insertions(+), 82 deletions(-) diff --git a/config/gnu-flags b/config/gnu-flags index 585c2b4a2f..3d7331b269 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -14,7 +14,7 @@ # This file should be sourced into configure if the compiler is the # GNU gcc compiler or a derivative. It is careful not to do anything -# if the compiler is not GNU; otherwise `cc_flags_set' is set to `yes' +# if the compiler is not GNU; otherwise 'cc_flags_set' is set to 'yes' # # Get the compiler version in a way that works for gcc @@ -43,20 +43,21 @@ if test X = "X$cc_flags_set"; then echo "compiler '$CC' is GNU $cc_vendor-$cc_version" fi - # Some version numbers + # Get the compiler version numbers cc_vers_major=`echo $cc_version | cut -f1 -d.` cc_vers_minor=`echo $cc_version | cut -f2 -d.` cc_vers_patch=`echo $cc_version | cut -f3 -d.` test -n "$cc_vers_major" || cc_vers_major=0 test -n "$cc_vers_minor" || cc_vers_minor=0 test -n "$cc_vers_patch" || cc_vers_patch=0 - cc_vers_all=`expr $cc_vers_major '*' 1000000 + $cc_vers_minor '*' 1000 + $cc_vers_patch` fi -# Common GCC flags for various situations -case "$cc_vendor-$cc_version" in - gcc*) - # Architecture-specific flags +if test "X-gcc" = "X-$cc_vendor"; then + + ############################### + # Architecture-specific flags # + ############################### + arch= case "$host_os-$host_cpu" in # FreeBSD sets the information from "uname -m" to the general machine @@ -96,15 +97,65 @@ case "$cc_vendor-$cc_version" in ;; esac - # Host-specific flags - case "`hostname`" in - sleipnir.ncsa.uiuc.edu) - arch="$arch -pipe" - ;; - esac + H5_CFLAGS="$H5_CFLAGS $arch" + + ############## + # Production # + ############## + + # NDEBUG is handled explicitly by the configure script + if test $cc_vers_major -eq 4; then + PROD_CFLAGS= + else + PROD_CFLAGS="-fstdarg-opt" + fi + + ######### + # Debug # + ######### + + # NDEBUG is handled explicitly by the configure script + # -g is handled by the symbols flags + if test $cc_vers_major -eq 4; then + DEBUG_CFLAGS= + else + DEBUG_CFLAGS="-ftrapv -fno-common" + fi + + ########### + # Symbols # + ########### + + NO_SYMBOLS_CFLAGS="-s" + SYMBOLS_CFLAGS="-g -fno-omit-frame-pointer" + + ############# + # Profiling # + ############# + + PROFILE_CFLAGS="-pg" + + ################ + # Optimization # + ################ + + if test $cc_vers_major -eq 4; then + HIGH_OPT_CFLAGS="-O3" + DEBUG_OPT_CFLAGS= + else + HIGH_OPT_CFLAGS="-O3" + DEBUG_OPT_CFLAGS="-Og" + fi + NO_OPT_CFLAGS="-O0" + + ############ + # Warnings # + ############ + + ########### + # General # + ########### - # General flags - # # Note that some of the flags listed here really should be developer # flags (listed in a separate variable, below) but we put them here # because they are not raised by the current code and we'd like to @@ -117,81 +168,25 @@ case "$cc_vendor-$cc_version" in # NOTE: Disable the -Wformat-nonliteral from -Wformat=2 here and re-add # it to the developer flags. # - H5_CFLAGS="$H5_CFLAGS $arch -pedantic -Wall -Wextra -Wbad-function-cast -Wc++-compat -Wcast-align" + H5_CFLAGS="$H5_CFLAGS -pedantic -Wall -Wextra -Wbad-function-cast -Wc++-compat -Wcast-align" H5_CFLAGS="$H5_CFLAGS -Wcast-qual -Wconversion -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-equal" H5_CFLAGS="$H5_CFLAGS -Wformat=2 -Wno-format-nonliteral -Winit-self -Winvalid-pch -Wmissing-declarations -Wmissing-include-dirs" H5_CFLAGS="$H5_CFLAGS -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked" H5_CFLAGS="$H5_CFLAGS -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-enum -Wswitch-default" H5_CFLAGS="$H5_CFLAGS -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings" - # Production - # NDEBUG is handled explicitly by the configure script - case "$cc_vendor-$cc_version" in - gcc-4.*) - PROD_CFLAGS= - ;; - gcc-[56789].*) - PROD_CFLAGS="-fstdarg-opt" - ;; - *) - # gcc automatically inlines based on the optimization level - # this is just a failsafe - PROD_CFLAGS="-finline-functions" - ;; - esac + ###################### + # Developer warnings # + ###################### - # Debug - # NDEBUG is handled explicitly by the configure script - # -g is handled by the symbols flags - case "$cc_vendor-$cc_version" in - gcc-[56789].*) - DEBUG_CFLAGS="-ftrapv -fno-common" - ;; - *) - DEBUG_CFLAGS= - ;; - esac - - # Developer warnings (suggestions from gcc, not code problems) + # (suggestions from gcc, not code problems) # NOTE: -Wformat-nonliteral added back in here (from being disabled in H5_CFLAGS) DEVELOPER_WARNING_CFLAGS="-Winline -Waggregate-return -Wmissing-format-attribute -Wmissing-noreturn -Wformat-nonliteral" NO_DEVELOPER_WARNING_CFLAGS="-Wno-inline -Wno-aggregate-return -Wno-missing-format-attribute -Wno-missing-noreturn" - # Symbols - NO_SYMBOLS_CFLAGS="-s" - SYMBOLS_CFLAGS="-g -fno-omit-frame-pointer" - - # Profile - PROFILE_CFLAGS="-pg" - - # Optimization - case "$cc_vendor-$cc_version" in - gcc-4.*) - HIGH_OPT_CFLAGS="-O3" - DEBUG_OPT_CFLAGS= - ;; - gcc-[56789].*) - HIGH_OPT_CFLAGS="-O3" - DEBUG_OPT_CFLAGS="-Og" - ;; - *) - HIGH_OPT_CFLAGS="-O" - DEBUG_OPT_CFLAGS= - ;; - esac - NO_OPT_CFLAGS="-O0" - - # Flags are set - cc_flags_set=yes - ;; -esac - -# Version-specific GCC flags -if test "X-gcc" = "X-$cc_vendor"; then - - # - # Special cases - # + ####################### + # gcc 4 special cases # + ####################### # Disable warnings about using the 'long long' type w/ gcc 4.6 and earlier if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 6; then @@ -221,9 +216,9 @@ if test "X-gcc" = "X-$cc_vendor"; then H5_CFLAGS="$H5_CFLAGS -Wvla" fi - # - # Main version-specific flags - # + ############################# + # Version-specific warnings # + ############################# # gcc 4.3 if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 3; then @@ -292,6 +287,11 @@ if test "X-gcc" = "X-$cc_vendor"; then if test $cc_vers_major -ge 9; then H5_CFLAGS="$H5_CFLAGS -Wattribute-alias=2 -Wmissing-profile" fi + + ################# + # Flags are set # + ################# + cc_flags_set=yes fi # Clear cc info if no flags set From 40b63bffb7268f363ed7172916350d1b9a73fca8 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Wed, 10 Jul 2019 13:05:50 -0700 Subject: [PATCH 3/5] * Fixed a bug in the gcc warning parsing * Changed version parsing from == gcc 4.x to < to handle ancient compilers. --- config/gnu-flags | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/gnu-flags b/config/gnu-flags index 3d7331b269..4407865931 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -23,7 +23,7 @@ # cc_vendor: The compiler name: gcc # cc_version: Version number: 2.91.60, 2.7.2.1 # -if test X = "X$cc_flags_set"; then +if test "X-" = "X-$cc_flags_set"; then # PathScale compiler spits out gcc version string too. Need to # filter it out. # icc beginning with version 12 includes a "gcc version compatiblilty" @@ -104,7 +104,7 @@ if test "X-gcc" = "X-$cc_vendor"; then ############## # NDEBUG is handled explicitly by the configure script - if test $cc_vers_major -eq 4; then + if test $cc_vers_major -le 4; then PROD_CFLAGS= else PROD_CFLAGS="-fstdarg-opt" @@ -116,7 +116,7 @@ if test "X-gcc" = "X-$cc_vendor"; then # NDEBUG is handled explicitly by the configure script # -g is handled by the symbols flags - if test $cc_vers_major -eq 4; then + if test $cc_vers_major -le 4; then DEBUG_CFLAGS= else DEBUG_CFLAGS="-ftrapv -fno-common" @@ -139,7 +139,7 @@ if test "X-gcc" = "X-$cc_vendor"; then # Optimization # ################ - if test $cc_vers_major -eq 4; then + if test "$cc_vers_major" -le 4; then HIGH_OPT_CFLAGS="-O3" DEBUG_OPT_CFLAGS= else @@ -189,24 +189,24 @@ if test "X-gcc" = "X-$cc_vendor"; then ####################### # Disable warnings about using the 'long long' type w/ gcc 4.6 and earlier - if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 6; then + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 6; then H5_CFLAGS="$H5_CFLAGS -Wno-long-long" fi # -Wvolatile-register-var was later incorporated into -Wall and # only needs to be specified explicitly for gcc 4.2-4.3 - if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 3; then + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 3; then H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var" fi # -Wstrict-aliasing was later incorporated into -Wall and # only needs to be specified explicitly for gcc 4.5-4.6 - if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 6; then + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 6; then H5_CFLAGS="$H5_CFLAGS -Wstrict-aliasing" fi # The non-valued form of -Wstrict-overflow is used in gcc 4.2-4.4 - if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $$cc_vers_minor -le 4; then + if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 4; then H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow" fi From 3fa1cc47008998f2b6d69276724cdb67b4103596 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Wed, 10 Jul 2019 13:40:09 -0700 Subject: [PATCH 4/5] Fix errant quotes --- config/gnu-flags | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/gnu-flags b/config/gnu-flags index 4407865931..c8fd724201 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -139,7 +139,7 @@ if test "X-gcc" = "X-$cc_vendor"; then # Optimization # ################ - if test "$cc_vers_major" -le 4; then + if test $cc_vers_major -le 4; then HIGH_OPT_CFLAGS="-O3" DEBUG_OPT_CFLAGS= else From d5031a55192ac6b8ca81a0e5315cb4739af98896 Mon Sep 17 00:00:00 2001 From: Dana Robinson Date: Sun, 14 Jul 2019 10:46:03 -0700 Subject: [PATCH 5/5] Removed support for gcc 4.3 and earlier. --- config/gnu-flags | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/config/gnu-flags b/config/gnu-flags index c8fd724201..9b619078fc 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -174,6 +174,7 @@ if test "X-gcc" = "X-$cc_vendor"; then H5_CFLAGS="$H5_CFLAGS -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked" H5_CFLAGS="$H5_CFLAGS -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-enum -Wswitch-default" H5_CFLAGS="$H5_CFLAGS -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings" + H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" ###################### # Developer warnings # @@ -193,12 +194,6 @@ if test "X-gcc" = "X-$cc_vendor"; then H5_CFLAGS="$H5_CFLAGS -Wno-long-long" fi - # -Wvolatile-register-var was later incorporated into -Wall and - # only needs to be specified explicitly for gcc 4.2-4.3 - if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 2 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 3; then - H5_CFLAGS="$H5_CFLAGS -Wvolatile-register-var" - fi - # -Wstrict-aliasing was later incorporated into -Wall and # only needs to be specified explicitly for gcc 4.5-4.6 if test $cc_vers_major -eq 4 -a $cc_vers_minor -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -le 6; then @@ -220,11 +215,6 @@ if test "X-gcc" = "X-$cc_vendor"; then # Version-specific warnings # ############################# - # gcc 4.3 - if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 3; then - H5_CFLAGS="$H5_CFLAGS -Wlogical-op -Wlarger-than=2560" - fi - # gcc 4.4 if test $cc_vers_major -ge 5 -o $cc_vers_major -eq 4 -a $cc_vers_minor -ge 4; then H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat"