diff options
author | Bill Wendling <wendling@ncsa.uiuc.edu> | 2003-07-28 21:38:04 (GMT) |
---|---|---|
committer | Bill Wendling <wendling@ncsa.uiuc.edu> | 2003-07-28 21:38:04 (GMT) |
commit | 0603e2db00e773702906387620e5644c23360703 (patch) | |
tree | a3f999ab9a8ac0ae015fedb9eb45a709a99c4a85 /config/gnu-flags | |
parent | 6e0e3da2837214179812cf613e78227d4cbb78b3 (diff) | |
download | hdf5-0603e2db00e773702906387620e5644c23360703.zip hdf5-0603e2db00e773702906387620e5644c23360703.tar.gz hdf5-0603e2db00e773702906387620e5644c23360703.tar.bz2 |
[svn-r7269] Purpose:
Update
Description:
Revamped the configuration system. The configurations for the Fortran
and C++ libraries are no longer separate from the "main"
configuration system. This involved removing the "configure*" and
"aclocal.m4" files from the fortran/ and c++/ subdirectories. Also
merging settings in the config/ subdirectories into the main config/
subdirectory.
Fortran header files had to be modified a little for Linux. It was
checking if it was a Linux machine by some #defines, however with the
-std=c99 switch, these defines weren't there. I added a check for
some other ones which should be there whether the -std=c99 switch is
used or not.
Platforms tested:
Verbena (Fortran & C++)
Sol (Fortran & C++)
Copper (Fortran & C++)
Modi4 (Parallel, Fortran, & C++)
Misc. update:
Diffstat (limited to 'config/gnu-flags')
-rw-r--r-- | config/gnu-flags | 336 |
1 files changed, 170 insertions, 166 deletions
diff --git a/config/gnu-flags b/config/gnu-flags index 7833aaf..afb451a 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -12,129 +12,129 @@ # cc_version: Version number: 2.91.60, 2.7.2.1 # if test X = "X$cc_flags_set"; then - cc_version="`$CC $CFLAGS -v 2>&1 |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 - cc_vendor=gcc - fi - if test "-" != "$cc_vendor-$cc_version"; then - echo "compiler '$CC' is GNU $cc_vendor-$cc_version" - fi - - # Some 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` + cc_version="`$CC $CFLAGS -v 2>&1 |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 + cc_vendor=gcc + fi + if test "-" != "$cc_vendor-$cc_version"; then + echo "compiler '$CC' is GNU $cc_vendor-$cc_version" + fi + + # Some 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 # GCC compilers before gcc-2.8.1 have problems with `long long'. if test gcc = "$cc_vendor" -a "$cc_vers_all" -lt 2008001; then - cat <<EOF - ** - ** This compiler may be unable to properly compile the long long - ** data type used extensively by hdf5, although specifying - ** --disable-hsizet for configure may work around those bugs. - ** There may be other code generation problems also, especially - ** when optimizations are enabled. Please upgrade to at least GNU - ** gcc version 2.8.1 before reporting bugs to the HDF5 team. - ** + cat <<EOF + ** + ** This compiler may be unable to properly compile the long long + ** data type used extensively by hdf5, although specifying + ** --disable-hsizet for configure may work around those bugs. + ** There may be other code generation problems also, especially + ** when optimizations are enabled. Please upgrade to at least GNU + ** gcc version 2.8.1 before reporting bugs to the HDF5 team. + ** EOF - sleep 5 + sleep 5 # Current EGCS compilers have problems with `long long' and register # allocation when optimizations are turned on for x86 systems. elif test egcs = "$cc_vendor" -a "$cc_vers_all" -le 2091066; then - if test "$HSIZET" != "large"; then - cat <<EOF - ** - ** This compiler may have problems allocating registers when - ** optimizations are enabled on some platforms. Specifying - ** --disable-hsizet usually avoids the bug. - ** + if test "$HSIZET" != "large"; then + cat <<EOF + ** + ** This compiler may have problems allocating registers when + ** optimizations are enabled on some platforms. Specifying + ** --disable-hsizet usually avoids the bug. + ** EOF - sleep 5 - fi + sleep 5 + fi # All current versions of PGCC have problems also. elif test pgcc = "$cc_vendor" -a "$cc_vers_all" -le 2091066; then - cat <<EOF - ** - ** This compiler may have problems allocating registers for long - ** long data types when optimizations are enabled. There may be - ** other code generation problems as well. We know of no version - ** of pgcc which is capable of compiling HDF5 in production mode. - ** Please use gcc-2.8 or egcs-1.1.1 before reporting bugs. - ** + cat <<EOF + ** + ** This compiler may have problems allocating registers for long + ** long data types when optimizations are enabled. There may be + ** other code generation problems as well. We know of no version + ** of pgcc which is capable of compiling HDF5 in production mode. + ** Please use gcc-2.8 or egcs-1.1.1 before reporting bugs. + ** EOF - sleep 5 + sleep 5 fi # Architecture-specific flags case "$host_os-$host_cpu" in - # FreeBSD sets the information from "hostname -m" to the general machine - # architecture, not the specific CPU for the machine, so even our - # Pentium II Xeon server is set to "i386". Once we know we are on a FreeBSD - # machine, use the "sysctl" command to get the CPU hardware model. - freebsd*) - host_cpu_model=`sysctl -n hw.model` - case "$host_cpu_model" in - # Hmm.. this might not catch Celerons, but it won't hurt them either... - *Pro*|*II*|*III*|*IV*|*Athlon*) - ARCH=${ARCH:="-march=i686"} - ;; - esac - ;; - - *-i686) - ARCH=${ARCH:="-march=i686"} - ;; + # FreeBSD sets the information from "hostname -m" to the general machine + # architecture, not the specific CPU for the machine, so even our + # Pentium II Xeon server is set to "i386". Once we know we are on a FreeBSD + # machine, use the "sysctl" command to get the CPU hardware model. + freebsd*) + host_cpu_model=`sysctl -n hw.model` + case "$host_cpu_model" in + # Hmm.. this might not catch Celerons, but it won't hurt them either... + *Pro*|*II*|*III*|*IV*|*Athlon*) + ARCH=${ARCH:="-march=i686"} + ;; + esac + ;; + + *-i686) + ARCH=${ARCH:="-march=i686"} + ;; esac # Host-specific flags case "`hostname`" in - sleipnir.ncsa.uiuc.edu) -# case "$cc_vendor-$cc_version" in -# gcc-3*) -# ARCH="`echo $ARCH | sed -e 's/i686/athlon-mp/g'`" -# ;; -# esac - ARCH="$ARCH -pipe" - ;; + sleipnir.ncsa.uiuc.edu) +# case "$cc_vendor-$cc_version" in +# gcc-3*) +# ARCH="`echo $ARCH | sed -e 's/i686/athlon-mp/g'`" +# ;; +# esac + ARCH="$ARCH -pipe" + ;; esac # Common GCC flags for various situations case "$cc_vendor-$cc_version" in - gcc*|egcs*|pgcc*) - # General - CFLAGS="$CFLAGS $ARCH -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline" - - # Production - case "$cc_vendor-$cc_version" in - gcc-2.95.[34]|gcc-3*) - PROD_CFLAGS="-O3 $NOFP" - ;; - *) - PROD_CFLAGS="-O $NOFP -finline-functions" - ;; - esac - PROD_CPPFLAGS= - - # Debug - DEBUG_CFLAGS="-g -fverbose-asm" - DEBUG_CPPFLAGS= - - # Profile - PROFILE_CFLAGS=-pg - PROFILE_CPPFLAGS= - + gcc*|egcs*|pgcc*) + # General + CFLAGS="$CFLAGS $ARCH -ansi -pedantic -Wall -W -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsign-compare -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline" + + # Production + case "$cc_vendor-$cc_version" in + gcc-2.95.[34]|gcc-3*) + PROD_CFLAGS="-O3 $NOFP" + ;; + *) + PROD_CFLAGS="-O $NOFP -finline-functions" ;; + esac + + PROD_CPPFLAGS= + + # Debug + DEBUG_CFLAGS="-g -fverbose-asm" + DEBUG_CPPFLAGS= + + # Profile + PROFILE_CFLAGS=-pg + PROFILE_CPPFLAGS= + ;; esac # Version specific GCC flags @@ -142,78 +142,82 @@ 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-3.3*) - # Replace -ansi flag with -std=c99 flag - CFLAGS="`echo $CFLAGS | sed -e 's/-ansi/-std=c99/g'`" - - # Append warning flags from gcc-2.95.* case - 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" - # 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 more extra warning flags that only gcc3.3+ know about - CFLAGS="$CFLAGS -Wendif-labels" - - # Flags are set - cc_flags_set=yes - ;; - - gcc-3.2*) - # Replace -ansi flag with -std=c99 flag - CFLAGS="`echo $CFLAGS | sed -e 's/-ansi/-std=c99/g'`" - - # Append warning flags from gcc-2.95.* case - CFLAGS="$CFLAGS -Wno-long-long" - - # Append warning flags from gcc-3* case - CFLAGS="$CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded" - - # Append more extra warning flags that only gcc3.2+ know about - CFLAGS="$CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization" - # 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" - - # Flags are set - cc_flags_set=yes - ;; - - gcc-3*) - # Replace -ansi flag with -std=c99 flag - CFLAGS="`echo $CFLAGS | sed -e 's/-ansi/-std=c99/g'`" - - # Append warning flags from gcc-2.95.* case - CFLAGS="$CFLAGS -Wno-long-long" - - # Append some extra warning flags that only gcc3+ know about - CFLAGS="$CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded" - - # Flags are set - cc_flags_set=yes - ;; - - gcc-2.95*) - # Append some extra warning flags that only gcc2.95+ know about - CFLAGS="$CFLAGS -Wno-long-long" - - # Flags are set - cc_flags_set=yes - ;; + gcc-3.3*) + # Replace -ansi flag with -std=c99 flag + CFLAGS="`echo $CFLAGS | sed -e 's/-ansi/-std=c99/g'`" + + # Append warning flags from gcc-2.95.* case + 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" + + # 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 more extra warning flags that only gcc3.3+ know about + CFLAGS="$CFLAGS -Wendif-labels" + + # Flags are set + cc_flags_set=yes + ;; + + gcc-3.2*) + # Replace -ansi flag with -std=c99 flag + CFLAGS="`echo $CFLAGS | sed -e 's/-ansi/-std=c99/g'`" + + # Append warning flags from gcc-2.95.* case + CFLAGS="$CFLAGS -Wno-long-long" + + # Append warning flags from gcc-3* case + CFLAGS="$CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded" + + # Append more extra warning flags that only gcc3.2+ know about + CFLAGS="$CFLAGS -Wmissing-noreturn -Wpacked -Wdisabled-optimization" + + # 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" + + # Flags are set + cc_flags_set=yes + ;; + + gcc-3*) + # Replace -ansi flag with -std=c99 flag + CFLAGS="`echo $CFLAGS | sed -e 's/-ansi/-std=c99/g'`" + + # Append warning flags from gcc-2.95.* case + CFLAGS="$CFLAGS -Wno-long-long" + + # Append some extra warning flags that only gcc3+ know about + CFLAGS="$CFLAGS -Wfloat-equal -Wmissing-format-attribute -Wpadded" + + # Flags are set + cc_flags_set=yes + ;; + + gcc-2.95*) + # Append some extra warning flags that only gcc2.95+ know about + CFLAGS="$CFLAGS -Wno-long-long" + + # Flags are set + cc_flags_set=yes + ;; esac # Clear cc info if no flags set -if test X = "X$cc_flags_set"; then - cc_vendor= - cc_version= +if test "X$cc_flags_set" = "X"; then + cc_vendor= + cc_version= fi |