summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMuQun Yang <ymuqun@hdfgroup.org>2005-09-08 22:10:18 (GMT)
committerMuQun Yang <ymuqun@hdfgroup.org>2005-09-08 22:10:18 (GMT)
commit02db013002c44fbdf01c6c78847d8eca287eee57 (patch)
treef9495b707b7c847962c11ac9110adf817695a612
parent7c0dfc0e1ff740f9e1646145c598c53279cd2701 (diff)
downloadhdf5-02db013002c44fbdf01c6c78847d8eca287eee57.zip
hdf5-02db013002c44fbdf01c6c78847d8eca287eee57.tar.gz
hdf5-02db013002c44fbdf01c6c78847d8eca287eee57.tar.bz2
[svn-r11376] Purpose:
To support collective IO for irregular selection in the upcoming 1.6.4 release Description: To add a macro to detect complicate derived datatype for some platform. Solution: See release.txt for more description about this. Platforms tested: AIX 5.1(32bit and 64bit) Linux 2.4(heping)-mpich 1.2.6 Linux 2.4(NCSA teragrid) -mpich 1.2.5 Altrix(cobalt) IRIX 6.5- c compiler version 7.4.3(NCAR SGI) Linux 2.4(tune) - CMPI 2.1.0 Misc. update:
-rw-r--r--config/ia64-linux-gnu16
-rw-r--r--config/irix6.x17
-rw-r--r--config/linux-gnulibc116
-rw-r--r--config/powerpc-ibm-aix4.x2
-rw-r--r--config/powerpc-ibm-aix5.x5
5 files changed, 56 insertions, 0 deletions
diff --git a/config/ia64-linux-gnu b/config/ia64-linux-gnu
index 76f669f3..67dab13 100644
--- a/config/ia64-linux-gnu
+++ b/config/ia64-linux-gnu
@@ -34,3 +34,19 @@ case $CC_BASENAME in
PROFILE_CPPFLAGS=
;;
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
diff --git a/config/irix6.x b/config/irix6.x
index c8918a1..a9d93e1 100644
--- a/config/irix6.x
+++ b/config/irix6.x
@@ -80,3 +80,20 @@ case "X-$CC_BASENAME" in
PROFILE_CPPFLAGS=
;;
esac
+
+# For IRIX 6.5, any version that is older than MIPSpro 7.3.1.3m,
+# the MPI derived datatype is not working.
+# Versions 7.4.2m or newer work.
+# Fix $hdf5_mpi_complex_derived_datatype_works if it is not set and is using cc.
+if [ -z "$hdf5_mpi_complex_derived_datatype_works" -a $CC_BASENAME = cc ]; then
+ ccversion=`$CC -version 2>&1 | sed -e 's/.*Version //p'`
+ ccversion1=`echo $ccversion | cut -f1 -d.`
+ ccversion2=`echo $ccversion | cut -f2 -d.`
+ # Assume all versions 7.4.* or newer are okay
+ # and assume ccversion2 is never larger than 99.
+ ccversionval=`expr $ccversion1 \* 100 + $ccversion2`
+ if [ $ccversionval -lt 704 ]; then
+ hdf5_mpi_complex_derived_datatype_works='no'
+ fi
+fi
+
diff --git a/config/linux-gnulibc1 b/config/linux-gnulibc1
index bec3fa4..06d0bbf 100644
--- a/config/linux-gnulibc1
+++ b/config/linux-gnulibc1
@@ -21,3 +21,19 @@ 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 ]; 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 \ No newline at end of file
diff --git a/config/powerpc-ibm-aix4.x b/config/powerpc-ibm-aix4.x
index 8b8ae02..2c71673 100644
--- a/config/powerpc-ibm-aix4.x
+++ b/config/powerpc-ibm-aix4.x
@@ -82,3 +82,5 @@ ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t=8}
# Don't cache size_t and off_t because they depend on if -D_LARGE_FILES is used
#ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4}
#ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8}
+
+hdf5_mpi_complex_derived_datatype_works=${hdf5_mpi_complex_derived_datatype_works='no'} \ No newline at end of file
diff --git a/config/powerpc-ibm-aix5.x b/config/powerpc-ibm-aix5.x
index 485ef6c..50761aa 100644
--- a/config/powerpc-ibm-aix5.x
+++ b/config/powerpc-ibm-aix5.x
@@ -107,3 +107,8 @@ ac_cv_sizeof_uint_fast64_t=${ac_cv_sizeof_uint_fast64_t=8}
# Don't cache size_t and off_t because they depend on if -D_LARGE_FILES is used
#ac_cv_sizeof_size_t=${ac_cv_sizeof_size_t=4}
#ac_cv_sizeof_off_t=${ac_cv_sizeof_off_t=8}
+
+# With poe version 3.2.0.19 or lower(using lpp -l all | grep ppe.poe to check the version number,
+# IBM MPI-IO implementation has a bug,
+#it cannot generate correct MPI derived datatype. Please uncomment the following line:
+#hdf5_mpi_complex_derived_datatype_works=${hdf5_mpi_complex_derived_datatype_works='no'}