mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-12-27 08:01:04 +08:00
5f0decf371
Setting appropriate macro during configuration. Description: We found special collective IO doesn't work in mpich 1.2.5 and 1.2.6. Solution: Use this script to detect this during configuration and set the correct macro. Platforms tested: heping,mir and copper Misc. update:
83 lines
2.9 KiB
Bash
83 lines
2.9 KiB
Bash
# -*- 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.
|
|
|
|
# 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_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'
|
|
;;
|
|
1.0.2)
|
|
# mpich2 is recycling the version number, some report
|
|
# 1.0.2, some report blank.
|
|
hdf5_mpi_complex_derived_datatype_works='no'
|
|
;;
|
|
"")
|
|
# got blank ccversion. Assume it is bad a mpich2.
|
|
hdf5_mpi_complex_derived_datatype_works='no'
|
|
;;
|
|
*)
|
|
# assume okay
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
|
|
if [ -z "$hdf5_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_mpi_special_collective_io_works='no'
|
|
;;
|
|
1.0.2)
|
|
# mpich2 is recycling the version number, some report
|
|
# 1.0.2, some report blank.
|
|
hdf5_mpi_special_collective_io_works='no'
|
|
;;
|
|
"")
|
|
# got blank ccversion. Assume it is bad a mpich2.
|
|
hdf5_mpi_special_collective_io_works='no'
|
|
;;
|
|
*)
|
|
# assume okay
|
|
;;
|
|
esac
|
|
fi
|
|
fi
|
|
|
|
|