diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2009-12-17 14:14:03 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2009-12-17 14:14:03 (GMT) |
commit | 113a60aac235b9c4fed65c952eda79bdbfbf9d8b (patch) | |
tree | 7adcacf49ab3966e76b756fccfd6d3f6a2880dc4 /config | |
parent | 361dc211fd5e6b8e0c102d116006b4297db68a5d (diff) | |
download | hdf5-113a60aac235b9c4fed65c952eda79bdbfbf9d8b.zip hdf5-113a60aac235b9c4fed65c952eda79bdbfbf9d8b.tar.gz hdf5-113a60aac235b9c4fed65c952eda79bdbfbf9d8b.tar.bz2 |
[svn-r18029] Description:
Code cleanups & tweaks to converge branch toward trunk.
Tested on:
Mac OS X/32 10.6.2 (amazon) debug & production
(h5committest not required on this branch)
Diffstat (limited to 'config')
-rw-r--r-- | config/gnu-flags | 81 |
1 files changed, 73 insertions, 8 deletions
diff --git a/config/gnu-flags b/config/gnu-flags index a8e16cb..c1990e0 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -26,8 +26,10 @@ # cc_version: Version number: 2.91.60, 2.7.2.1 # if test X = "X$cc_flags_set"; then - cc_version="`$CC $CFLAGS $H5_CFLAGS -v 2>&1 |grep 'gcc version' |\ - sed 's/.*gcc version \([-a-z0-9\.]*\).*/\1/'`" + # PathScale compiler spits out gcc version string too. Need to + # filter it out. + cc_version="`$CC $CFLAGS $H5_CFLAGS -v 2>&1 | grep -v 'PathScale' |\ + grep 'gcc version' | sed 's/.*gcc version \([-a-z0-9\.]*\).*/\1/'`" 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 @@ -145,7 +147,17 @@ case "$cc_vendor-$cc_version" in gcc-2.95.[34]) PROD_CFLAGS="-O3" ;; - gcc-3.[0-4]*|gcc-4.[0123]*) + gcc-4.[34]*) + # The optimization level is reduced for gcc 4.[34] due to problems + # with code generation for src/H5Tconv.c with the -O (same -O1) + # optimization levels (which shows up as failures for long double + # types -> signed char conversion in the test/dt_arith test). + # There's either a bug in gcc or our code. Need further investigation. + # Turn off all optimizations to allow the tests to pass for now. + # - AKC - 2009/04/19 + PROD_CFLAGS="-O0" + ;; + gcc-3.[0-4]*|gcc-4.[012]*) # 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 (which shows up as failures for various integer @@ -153,10 +165,6 @@ case "$cc_vendor-$cc_version" in # later versions of gcc will fix this bug... - QAK - 2003/10/20 PROD_CFLAGS="-O" ;; - gcc-4*) - # Be optimistic about future versions of gcc.. :-) - QAK - 2003/10/20 - PROD_CFLAGS="-O3" - ;; *) PROD_CFLAGS="-O" ;; @@ -184,9 +192,66 @@ esac # the information from the previous version and adding modifications to that. case "$cc_vendor-$cc_version" in -# Closer to the gcc 4.4 release, we should check for additional flags to +# Closer to the gcc 4.5 release, we should check for additional flags to # include and break it out into it's own section, like the other versions # below. -QAK + gcc-4.[45]*) + # Replace -ansi flag with -std=c99 flag + H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`" + + # Disable warnings about using 'long long' type + H5_CFLAGS="$H5_CFLAGS -Wno-long-long" + + # Append warning flags from gcc-3* case + # (don't use -Wpadded flag for normal builds, many of the warnings its + # issuing can't be fixed and they are making it hard to detect other, + # more important warnings) + #H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded" + H5_CFLAGS="$H5_CFLAGS -Wfloat-equal -Wmissing-format-attribute" + + # Append warning flags from gcc-3.2* case + H5_CFLAGS="$H5_CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization" + + # Enable more format checking flags, beyond the basic -Wformat included + # in -Wall + H5_CFLAGS="$H5_CFLAGS -Wformat=2" + + # The "unreachable code" warning appears to be reliable now... + H5_CFLAGS="$H5_CFLAGS -Wunreachable-code" + + # Append warning flags from gcc-3.3* case + H5_CFLAGS="$H5_CFLAGS -Wendif-labels" + + # Append warning flags from gcc-3.4* case + H5_CFLAGS="$H5_CFLAGS -Wdeclaration-after-statement -Wold-style-definition -Winvalid-pch" + + # Replace old -W flag with new -Wextra flag + H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-W\ /-Wextra\ /g'`" + + # Append more extra warning flags that only gcc4.0+ know about + H5_CFLAGS="$H5_CFLAGS -Wvariadic-macros -Wnonnull -Winit-self -Wmissing-include-dirs -Wswitch-default -Wswitch-enum -Wunused-macros" + + # Append more extra warning flags that only gcc 4.1+ know about + H5_CFLAGS="$H5_CFLAGS -Wunsafe-loop-optimizations -Wc++-compat" + + # Append more extra warning flags that only gcc 4.2+ know about + H5_CFLAGS="$H5_CFLAGS -Wstrict-overflow" + + # Append more extra warning flags that only gcc 4.3+ know 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=2048 -Wvla" + + # Append more extra warning flags that only gcc 4.4+ know about + H5_CFLAGS="$H5_CFLAGS -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat" + + # Try out the new "stack protector" feature in gcc 4.1 + # (Strictly speaking this isn't really a "warning" flag, so it's added to + # the debugging flags) + #DEBUG_CFLAGS="$DEBUG_CFLAGS -Wstack-protector -fstack-protector-all" + ;; + gcc-4.3*) # Replace -ansi flag with -std=c99 flag H5_CFLAGS="`echo $H5_CFLAGS | sed -e 's/-ansi/-std=c99/g'`" |