diff options
Diffstat (limited to 'config/gnu-flags')
-rw-r--r-- | config/gnu-flags | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/config/gnu-flags b/config/gnu-flags index 71de5e3..93f044a 100644 --- a/config/gnu-flags +++ b/config/gnu-flags @@ -22,12 +22,17 @@ if test X = "X$cc_flags_set"; then 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.` + cc_vers_all=`expr $cc_vers_major '*' 1000000 + $cc_vers_minor '*' 1000 + $cc_vers_patch` fi -# Warn about old GNU compilers that don't work right. -case "$cc_vendor-$cc_version" in - gcc-2.7.*) - cat <<EOF +# 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 @@ -37,15 +42,23 @@ case "$cc_vendor-$cc_version" in ** gcc version 2.8.1 before reporting bugs to the HDF5 team. ** EOF - sleep 5 - ;; - - pgcc-2.*) - v2=`echo $cc_version |cut -f2 -d.` - v3=`echo $cc_version |cut -f3 -d.` - v=`expr $v2 '*' 1000 + $v3` - if test $v -le 91066; then - cat <<EOF + 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 + 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 + +# 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 @@ -54,10 +67,9 @@ EOF ** Please use gcc-2.8 or egcs-1.1.1 before reporting bugs. ** EOF - sleep 5 - fi - ;; -esac + sleep 5 + +fi # Architecture-specific flags case "$host_cpu" in @@ -153,4 +165,4 @@ esac if test X = "X$cc_flags_set"; then cc_vendor= cc_version= -fi
\ No newline at end of file +fi |