summaryrefslogtreecommitdiffstats
path: root/config/gnu-flags
diff options
context:
space:
mode:
Diffstat (limited to 'config/gnu-flags')
-rw-r--r--config/gnu-flags49
1 files changed, 42 insertions, 7 deletions
diff --git a/config/gnu-flags b/config/gnu-flags
index cb2e028..354c7ab 100644
--- a/config/gnu-flags
+++ b/config/gnu-flags
@@ -129,16 +129,15 @@ case "$cc_vendor-$cc_version" in
gcc-2.95.[34])
PROD_CFLAGS="-O3"
;;
- gcc-3.[0-4]*)
- # The optimization level is reduced for gcc 3.* due to problems
+ gcc-3.[0-4]*|gcc-4.0*)
+ # The optimization level is reduced for gcc 3.* and 4.* due to problems
# with code generation for src/H5Tconv.c with the -O2 & -O3
- # optimization levels for gcc 3.2.2 and gcc 3.3.2 (which shows up as
- # failures for various integer types -> long long conversions in the
- # test/dtypes test). Perhaps later versions of gcc will fix this
- # bug... - QAK - 2003/10/20
+ # optimization levels (which shows up as failures for various integer
+ # types -> long long conversions in the test/dtypes test). Perhaps
+ # later versions of gcc will fix this bug... - QAK - 2003/10/20
PROD_CFLAGS="-O"
;;
- gcc-3*)
+ gcc-4*)
# Be optimistic about future versions of gcc.. :-) - QAK - 2003/10/20
PROD_CFLAGS="-O3"
;;
@@ -168,6 +167,39 @@ esac
# 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
+ gcc-4.0*)
+ # Replace -ansi flag with -std=c99 flag
+ CFLAGS="`echo $CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
+
+ # Disable warnings about using 'long long' type
+ CFLAGS="$CFLAGS -Wno-long-long"
+
+ # Append warning flags from gcc-3* case
+ CFLAGS="$CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded"
+
+ # Append warning flags from gcc-3.2* case
+ CFLAGS="$CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization -Wmultichar"
+
+ # The "format=2" warning generates too many warnings about valid
+ # usage in the library.
+ #CFLAGS="$CFLAGS -Wformat=2"
+
+ # The "unreachable code" warning does not appear to be reliable yet...
+ #CFLAGS="$CFLAGS -Wunreachable-code"
+
+ # Append warning flags from gcc-3.3* case
+ CFLAGS="$CFLAGS -Wendif-labels"
+
+ # Append warning flags from gcc-3.4* case
+ CFLAGS="$CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
+
+ # Replace old -W flag with new -Wextra flag
+ CFLAGS="`echo $CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
+
+ # Append more extra warning flags that only gcc4.0+ know about
+ CFLAGS="$CFLAGS -Wvariadic-macros"
+ ;;
+
gcc-3.4*)
# Replace -ansi flag with -std=c99 flag
CFLAGS="`echo $CFLAGS | sed -e 's/-ansi/-std=c99/g'`"
@@ -193,6 +225,9 @@ case "$cc_vendor-$cc_version" in
# Append more extra warning flags that only gcc3.4+ know about
CFLAGS="$CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch"
+
+ # Replace old -W flag with new -Wextra flag
+ CFLAGS="`echo $CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`"
;;
gcc-3.3*)