diff options
-rw-r--r-- | MANIFEST | 1 | ||||
-rw-r--r-- | config/ia64-linux-gnu | 17 | ||||
-rw-r--r-- | config/linux-gnulibc1 | 18 | ||||
-rw-r--r-- | config/mpich | 42 |
4 files changed, 47 insertions, 31 deletions
@@ -86,6 +86,7 @@ ./config/linux-gnuaout ./config/linux-gnulibc1 ./config/linux-gnulibc2 +./config/mpich ./config/nv1-cray ./config/pgi-flags ./config/powerpc-apple diff --git a/config/ia64-linux-gnu b/config/ia64-linux-gnu index 77535d5..307377e 100644 --- a/config/ia64-linux-gnu +++ b/config/ia64-linux-gnu @@ -48,18 +48,5 @@ case $CC_BASENAME in ;; esac -# We know that for mpich 1.2.5 and previous version, complicated derived datatype is -# supported, we need to set the macro to hdf5_mpi_complex_derived_datatype_works to no. -# Notice that this fix will only work if the compiler name is mpicc and mpi package is -# mpich 1.x.x. -if [ -z "$hdf5_mpi_complex_derived_datatype_works" -a $CC_BASENAME = mpicc ]; then - ccversion=`$CC -v 2>&1 | sed -e 's/.*for //p'` - ccversion1=`echo $ccversion | cut -f1 -d.` - ccversion2=`echo $ccversion | cut -f2 -d.` - ccversiontemp=`echo $ccversion | cut -f3 -d.` - ccversion3=`echo $ccversiontemp | cut -c1` - ccversionval=`expr $ccversion1 \* 100 + $ccversion2 \* 10 + $ccversion3` - if [ $ccversionval -lt 126 ]; then - hdf5_mpi_complex_derived_datatype_works='no' - fi -fi +# Check MPICH settings +. $srcdir/config/mpich diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1 index ebc9ed7..ea9db6b 100644 --- a/config/linux-gnulibc1 +++ b/config/linux-gnulibc1 @@ -34,19 +34,5 @@ fi # Figure out Intel C compiler flags . $srcdir/config/intel-flags -# We know that for mpich 1.2.5 and previous version, complicated derived datatype is -# supported, we need to set the macro to hdf5_mpi_complex_derived_datatype_works to no. -# Notice that this fix will only work if the compiler name is mpicc and mpi package is -# mpich 1.x.x. - -if [ -z "$hdf5_mpi_complex_derived_datatype_works" -a \( $CC_BASENAME = mpicc -o $CC_BASENAME = mpiicc \) ]; then - ccversion=`$CC -v 2>&1 | sed -e 's/.*for //p'` - ccversion1=`echo $ccversion | cut -f1 -d.` - ccversion2=`echo $ccversion | cut -f2 -d.` - ccversiontemp=`echo $ccversion | cut -f3 -d.` - ccversion3=`echo $ccversiontemp | cut -c1` - ccversionval=`expr $ccversion1 \* 100 + $ccversion2 \* 10 + $ccversion3` - if [ $ccversionval -lt 126 ]; then - hdf5_mpi_complex_derived_datatype_works='no' - fi -fi +# Check MPICH settings +. $srcdir/config/mpich diff --git a/config/mpich b/config/mpich new file mode 100644 index 0000000..3e63e56 --- /dev/null +++ b/config/mpich @@ -0,0 +1,42 @@ +# -*- shell-script -*- +# +# Copyright by the Board of Trustees of the University of Illinois. +# All rights reserved. +# +# This file is part of HDF5. The full HDF5 copyright notice, including +# terms governing use, modification, and redistribution, is contained in +# the files COPYING and Copyright.html. COPYING can be found at the root +# of the source code distribution tree; Copyright.html can be found at the +# root level of an installed copy of the electronic HDF5 document set and +# is linked from the top-level documents page. It can also be found at +# http://hdf.ncsa.uiuc.edu/HDF5/doc/Copyright.html. If you do not have +# access to either file, you may request a copy from hdfhelp@ncsa.uiuc.edu. + +# This file should be sourced into configure if the compiler is the +# MPICH compiler script. It is careful not to do anything if the compiler +# is not MPICH. + +# Check if mpicc can support complicated derived datatype correctly. +# We know that mpich 1.2.4 and 1.2.5 do not support it correctly. We assume +# older versions do not work either. We don't know of a way of testing its +# correctness without the risk of hanging the configure process. So, we +# set the configure variable hdf5_mpi_complex_derived_datatype_works to no. +# Notice that this code works only if the mpicc compiler shows its $MPIVERSION +# properly. It is confirmed mpicc does that as far back as v1.2.3. + +if [ -z "$hdf5_mpi_complex_derived_datatype_works" ]; then + ccversion=`$CC -v 2>/dev/null` + # mpich compiler will give "mpicc for 1.2.x ..." + if echo "$ccversion" | grep '^mpicc for' > /dev/null ; then + # $CC is an MPICH compiler. Grab the version numbers. + ccversion=`echo $ccversion | cut -f3 -d' '` + case "$ccversion" in + 1.2.[0-5]*) + hdf5_mpi_complex_derived_datatype_works='no' + ;; + *) + # assume okay + ;; + esac + fi +fi |