# -*- shell-script -*- # # Copyright by The HDF Group. # 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://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have # access to either file, you may request a copy from help@hdfgroup.org. # 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_cv_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. # mpich2 do not support it correctly. But mpich2 reports small version number # indistiguishable from mpich. Some mpich2 reports blank, some reports 1.0.2. if [ -z "$hdf5_cv_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_cv_mpi_complex_derived_datatype_works='no' ;; 1.0.2) # mpich2 is recycling the version number, some report # 1.0.2, some report blank. hdf5_cv_mpi_complex_derived_datatype_works='no' ;; "") # got blank ccversion. Assume it is bad a mpich2. hdf5_cv_mpi_complex_derived_datatype_works='no' ;; *) # assume okay ;; esac fi fi if [ -z "$hdf5_cv_mpi_special_collective_io_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-6]*) hdf5_cv_mpi_special_collective_io_works='no' ;; 1.0.2) # mpich2 is recycling the version number, some report # 1.0.2, some report blank. hdf5_cv_mpi_special_collective_io_works='no' ;; "") # got blank ccversion. Assume it is bad a mpich2. hdf5_cv_mpi_special_collective_io_works='no' ;; *) # assume okay ;; esac fi fi