mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-19 16:50:46 +08:00
[svn-r26642] Fix for HDFFV09202 and HDFFV-9171.
HDFFV-9171 Configure mistakes Cray Compilers for Intel Compilers, HDFFV-9202 subroutine VERIFY() fails when checking 8 byte integers in fortran tests Tested: h5committest
This commit is contained in:
parent
72d896f709
commit
8e5a71c716
2
MANIFEST
2
MANIFEST
@ -88,6 +88,8 @@
|
||||
./config/COPYING
|
||||
./config/BlankForm
|
||||
./config/apple
|
||||
./config/cce-fflags
|
||||
./config/cce-flags
|
||||
./config/commence.am
|
||||
./config/conclude.am
|
||||
./config/examples.am
|
||||
|
73
config/cce-fflags
Normal file
73
config/cce-fflags
Normal file
@ -0,0 +1,73 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright by The HDF Group.
|
||||
# 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
|
||||
# Cray Compiling Environment (CCE) compiler or a derivative. It is careful not to do anything
|
||||
# if the compiler is not Cray; otherwise `cc_flags_set' is set to `yes'
|
||||
#
|
||||
|
||||
# Get the compiler version in a way that works for cce
|
||||
# unless a compiler version is already known
|
||||
#
|
||||
# cc_vendor: The compiler name: Cray
|
||||
# cc_version: Version number: 8.3.0
|
||||
#
|
||||
if test X = "X$f9x_flags_set"; then
|
||||
f9x_version="`$FC $FCFLAGS $H5_FCFLAGS -V 2>&1 |grep 'Cray'`"
|
||||
if test X != "X$f9x_version"; then
|
||||
f9x_vendor=cce
|
||||
f9x_version=`echo $f9x_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'`
|
||||
echo "compiler '$FC' is Cray $f9x_vendor-$f9x_version"
|
||||
fc_version_info=$f9x_version
|
||||
fi
|
||||
fi
|
||||
|
||||
# Common Cray flags for various situations
|
||||
if test "X-cce" = "X-$f9x_vendor"; then
|
||||
# Insert section about version specific problems from compiler flags here,
|
||||
# if necessary.
|
||||
|
||||
arch=
|
||||
# Architecture-specific flags
|
||||
# Nothing currently. (Uncomment code below and modify to add any)
|
||||
#case "$host_os-$host_cpu" in
|
||||
# *-i686)
|
||||
# arch="-march=i686"
|
||||
# ;;
|
||||
#esac
|
||||
|
||||
# General
|
||||
H5_FCFLAGS="${H5_FCFLAGS} -hnocaf"
|
||||
|
||||
# Production
|
||||
# -Wl,-s to remove all symbols for smaller file
|
||||
PROD_FCFLAGS="-O3 -Wl,-s"
|
||||
|
||||
# Debug
|
||||
DEBUG_FCFLAGS="-g -O0"
|
||||
|
||||
# Profile
|
||||
# Use this for profiling with gprof
|
||||
PROFILE_FCFLAGS="-g -p"
|
||||
|
||||
# Flags are set
|
||||
f9x_flags_set=yes
|
||||
fi
|
||||
|
||||
# Clear f9x info if no flags set
|
||||
if test "X-$f9x_flags_set" = "X-"; then
|
||||
f9x_vendor=
|
||||
f9x_version=
|
||||
fi
|
79
config/cce-flags
Normal file
79
config/cce-flags
Normal file
@ -0,0 +1,79 @@
|
||||
# -*- shell-script -*-
|
||||
#
|
||||
# Copyright by The HDF Group.
|
||||
# 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
|
||||
# Cray Compiling Environment (CCE) compiler or a derivative. It is careful not to do anything
|
||||
# if the compiler is not Cray; otherwise `cc_flags_set' is set to `yes'
|
||||
#
|
||||
|
||||
# Get the compiler version in a way that works for cce
|
||||
# unless a compiler version is already known
|
||||
#
|
||||
# cc_vendor: The compiler name: Cray
|
||||
# cc_version: Version number: 8.3.0
|
||||
#
|
||||
if test X = "X$cc_flags_set"; then
|
||||
cc_version="`$CC $CFLAGS $H5_CFLAGS -V 2>&1 |grep 'Cray'`"
|
||||
if test X != "X$cc_version"; then
|
||||
cc_vendor=cce
|
||||
cc_version=`echo $cc_version |sed 's/.*Version \([-a-z0-9\.\-]*\).*/\1/'`
|
||||
echo "compiler '$CC' is Cray $cc_vendor-$cc_version"
|
||||
cc_version_info=$cc_version
|
||||
cxx_version_info=$cc_version
|
||||
fi
|
||||
fi
|
||||
|
||||
# Common Cray flags for various situations
|
||||
if test "X-cce" = "X-$cc_vendor"; then
|
||||
# Insert section about version specific problems from compiler flags here,
|
||||
# if necessary.
|
||||
|
||||
arch=
|
||||
# Architecture-specific flags
|
||||
# Nothing currently. (Uncomment code below and modify to add any)
|
||||
#case "$host_os-$host_cpu" in
|
||||
# *-i686)
|
||||
# arch="-march=i686"
|
||||
# ;;
|
||||
#esac
|
||||
|
||||
# General
|
||||
# Default to C99 standard.
|
||||
H5_CFLAGS="${H5_CFLAGS:--hc99 $arch}"
|
||||
|
||||
# Production
|
||||
# -Wl,-s to remove all symbols for smaller file
|
||||
PROD_CFLAGS="-O3 -Wl,-s"
|
||||
PROD_CPPFLAGS=
|
||||
|
||||
# Debug
|
||||
DEBUG_CFLAGS="-g -O0"
|
||||
DEBUG_CPPFLAGS=
|
||||
|
||||
# Profile
|
||||
# Use this for profiling with gprof
|
||||
PROFILE_CFLAGS="-g -p"
|
||||
PROFILE_CPPFLAGS=
|
||||
|
||||
# Flags are set
|
||||
cc_flags_set=yes
|
||||
|
||||
fi
|
||||
|
||||
# Clear cc info if no flags set
|
||||
if test "X-$cc_flags_set" = "X-"; then
|
||||
cc_vendor=
|
||||
cc_version=
|
||||
fi
|
@ -38,6 +38,9 @@ fi
|
||||
# Figure out PGI C compiler flags
|
||||
. $srcdir/config/pgi-flags
|
||||
|
||||
# Figure out CCE C compiler flags
|
||||
. $srcdir/config/cce-flags
|
||||
|
||||
# Figure out Intel C compiler flags
|
||||
. $srcdir/config/intel-flags
|
||||
|
||||
@ -89,10 +92,13 @@ else
|
||||
esac
|
||||
fi
|
||||
|
||||
# Figure out PGI F90 compiler flags
|
||||
# Figure out PGI FC compiler flags
|
||||
. $srcdir/config/pgi-fflags
|
||||
|
||||
# Figure out Intel F90 compiler flags
|
||||
# Figure out CCE FC compiler flags
|
||||
. $srcdir/config/cce-fflags
|
||||
|
||||
# Figure out Intel FC compiler flags
|
||||
. $srcdir/config/intel-fflags
|
||||
|
||||
case $FC_BASENAME in
|
||||
@ -125,6 +131,10 @@ if test -z "$CXX"; then
|
||||
fi
|
||||
|
||||
# compiler version strings
|
||||
|
||||
# check if the compiler_version_info is already set
|
||||
if test -z "$cc_version_info"; then
|
||||
|
||||
case $CC in
|
||||
# whatever matches *pgcc* will also match *gcc*, so this one must come first
|
||||
*pgcc*)
|
||||
@ -153,7 +163,11 @@ case $CC in
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
# get fortran version info
|
||||
# check if the compiler_version_info is already set
|
||||
if test -z "$fc_version_info"; then
|
||||
case $FC in
|
||||
*gfortran*)
|
||||
fc_version_info=`$FC $FCFLAGS $H5_FCFLAGS --version 2>&1 |\
|
||||
@ -199,9 +213,11 @@ case $FC in
|
||||
echo "No match to get fc_version_info for $FC"
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
||||
# get c++ version info
|
||||
# check if the compiler_version_info is already set
|
||||
if test -z "$cxx_version_info"; then
|
||||
case $CXX in
|
||||
*g++*)
|
||||
cxx_version_info=`$CXX $CXXFLAGS $H5_CXXFLAGS --version 2>&1 |\
|
||||
@ -226,4 +242,4 @@ case $CXX in
|
||||
echo "No match to get cxx_version_info for $CXX"
|
||||
;;
|
||||
esac
|
||||
|
||||
fi
|
||||
|
@ -360,14 +360,13 @@ SUBROUTINE test_genprop_class_callback(total_error)
|
||||
WRITE(*,*) 'Class names do not match! name=',CLASS1_NAME_BUF, 'CLASS1_NAME=',CLASS1_NAME
|
||||
total_error = total_error + 1
|
||||
ENDIF
|
||||
|
||||
! Close class
|
||||
CALL h5pclose_class_f(cid2, error)
|
||||
CALL check("h5pclose_class_f", error, total_error)
|
||||
|
||||
! Verify that the creation callback occurred
|
||||
CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 1, total_error)
|
||||
CALL VERIFY("h5pcreate_f", INT(crt_cb_struct%id), INT(lid1), total_error)
|
||||
CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, lid1, total_error)
|
||||
|
||||
! Check the number of properties in list
|
||||
CALL h5pget_nprops_f(lid1,nprops, error)
|
||||
@ -380,7 +379,7 @@ SUBROUTINE test_genprop_class_callback(total_error)
|
||||
|
||||
! Verify that the creation callback occurred
|
||||
CALL VERIFY("h5pcreate_f", crt_cb_struct%count, 2, total_error)
|
||||
CALL VERIFY("h5pcreate_f", INT(crt_cb_struct%id), INT(lid2), total_error)
|
||||
CALL VERIFY_INTEGER_HID_T("h5pcreate_f", crt_cb_struct%id, lid2, total_error)
|
||||
|
||||
! Check the number of properties in list
|
||||
CALL h5pget_nprops_f(lid2,nprops, error)
|
||||
@ -393,15 +392,15 @@ SUBROUTINE test_genprop_class_callback(total_error)
|
||||
|
||||
! Verify that the close callback occurred
|
||||
CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 1, total_error)
|
||||
CALL VERIFY("h5pcreate_f", INT(cls_cb_struct%id), INT(lid1), total_error)
|
||||
CALL VERIFY_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid1, total_error)
|
||||
|
||||
! Close second list
|
||||
CALL h5pclose_f(lid2, error);
|
||||
CALL check("h5pclose_f", error, total_error)
|
||||
|
||||
! Verify that the close callback occurred
|
||||
! Verify that the close callback occurred
|
||||
CALL VERIFY("h5pcreate_f", cls_cb_struct%count, 2, total_error)
|
||||
CALL VERIFY("h5pcreate_f", INT(cls_cb_struct%id), INT(lid2), total_error)
|
||||
CALL verify_INTEGER_HID_T("h5pcreate_f", cls_cb_struct%id, lid2, total_error)
|
||||
|
||||
! Close class
|
||||
CALL h5pclose_class_f(cid1, error)
|
||||
|
@ -134,20 +134,19 @@ CONTAINS
|
||||
|
||||
!This definition is needed for Windows DLLs
|
||||
!DEC$if defined(BUILD_HDF5_TEST_DLL)
|
||||
!DEC$attributes dllexport :: verify_Fortran_INTEGER_4
|
||||
!DEC$attributes dllexport :: verify_INTEGER_HID_T
|
||||
!DEC$endif
|
||||
SUBROUTINE verify_Fortran_INTEGER_4(string,value,correct_value,total_error)
|
||||
USE HDF5
|
||||
INTEGER, PARAMETER :: int_kind_8 = SELECTED_INT_KIND(Fortran_INTEGER_4) ! should map to INTEGER*4 on most modern processors
|
||||
SUBROUTINE verify_INTEGER_HID_T(string,value,correct_value,total_error)
|
||||
USE HDF5
|
||||
CHARACTER(LEN=*) :: string
|
||||
INTEGER(int_kind_8) :: value, correct_value
|
||||
INTEGER(HID_T) :: value, correct_value
|
||||
INTEGER :: total_error
|
||||
IF (value .NE. correct_value) THEN
|
||||
total_error=total_error+1
|
||||
WRITE(*,*) "ERROR: INCORRECT VALIDATION ", string
|
||||
ENDIF
|
||||
RETURN
|
||||
END SUBROUTINE verify_Fortran_INTEGER_4
|
||||
END SUBROUTINE verify_INTEGER_HID_T
|
||||
|
||||
!This definition is needed for Windows DLLs
|
||||
!DEC$if defined(BUILD_HDF5_TEST_DLL)
|
||||
|
Loading…
x
Reference in New Issue
Block a user