summaryrefslogtreecommitdiffstats
path: root/config/cmake/ConfigureChecks.cmake
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2015-04-03 21:41:28 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2015-04-03 21:41:28 (GMT)
commit5630846ea34f29b45aecdb431f846327c4fde9e1 (patch)
tree83e65a0feb757f39472e70d2168048d091cfed50 /config/cmake/ConfigureChecks.cmake
parent820b4dc39136072bccad1455fc0232ec9e710d58 (diff)
parentb9e5e2af4e31b0a60c2d2f6421fb1b3cb9aa0564 (diff)
downloadhdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.zip
hdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.tar.gz
hdf5-5630846ea34f29b45aecdb431f846327c4fde9e1.tar.bz2
[svn-r26724] - merge from trunk & fix conflicts.
- fix bug in opending an already open named datatype. - fix dynamically loaded VOL plugin support with new changes coming in.
Diffstat (limited to 'config/cmake/ConfigureChecks.cmake')
-rw-r--r--config/cmake/ConfigureChecks.cmake166
1 files changed, 2 insertions, 164 deletions
diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake
index ee03f94..2a4e363 100644
--- a/config/cmake/ConfigureChecks.cmake
+++ b/config/cmake/ConfigureChecks.cmake
@@ -33,18 +33,6 @@ endif (HDF5_METADATA_TRACE_FILE)
MARK_AS_ADVANCED (HDF5_METADATA_TRACE_FILE)
# ----------------------------------------------------------------------
-# Decide whether the data accuracy has higher priority during data
-# conversions. If not, some hard conversions will still be prefered even
-# though the data may be wrong (for example, some compilers don't
-# support denormalized floating values) to maximize speed.
-#
-option (HDF5_WANT_DATA_ACCURACY "IF data accuracy is guaranteed during data conversions" ON)
-if (HDF5_WANT_DATA_ACCURACY)
- set (H5_WANT_DATA_ACCURACY 1)
-endif (HDF5_WANT_DATA_ACCURACY)
-MARK_AS_ADVANCED (HDF5_WANT_DATA_ACCURACY)
-
-# ----------------------------------------------------------------------
# Decide whether the presence of user's exception handling functions is
# checked and data conversion exceptions are returned. This is mainly
# for the speed optimization of hard conversions. Soft conversions can
@@ -73,13 +61,6 @@ if (HDF5_ENABLE_HSIZET)
set (${HDF_PREFIX}_HAVE_LARGE_HSIZET 1)
endif (HDF5_ENABLE_HSIZET)
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can handle converting
-# floating-point to long long values.
-# (This flag should be _unset_ for all machines)
-#
-# set (H5_HW_FP_TO_LLONG_NOT_WORKS 0)
-
# so far we have no check for this
set (H5_HAVE_TMPFILE 1)
@@ -259,109 +240,6 @@ ENDMACRO (H5MiscConversionTest)
# Check various conversion capabilities
#-----------------------------------------------------------------------------
-# -----------------------------------------------------------------------
-# Set flag to indicate that the machine can handle conversion from
-# long double to integers accurately. This flag should be set "yes" for
-# all machines except all SGIs. For SGIs, some conversions are
-# incorrect and its cache value is set "no" in its config/irix6.x and
-# irix5.x.
-#
-H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_LDOUBLE_TO_INTEGER_ACCURATE "checking IF converting from long double to integers is accurate")
-# -----------------------------------------------------------------------
-# Set flag to indicate that the machine can do conversion from
-# long double to integers regardless of accuracy. This flag should be
-# set "yes" for all machines except HP-UX 11.00. For HP-UX 11.00, the
-# compiler has 'floating exception' when converting 'long double' to all
-# integers except 'unsigned long long'. Other HP-UX systems are unknown
-# yet. (1/8/05 - SLU)
-#
-H5ConversionTests (H5_LDOUBLE_TO_INTEGER_WORKS "Checking IF converting from long double to integers works")
-# -----------------------------------------------------------------------
-# Set flag to indicate that the machine can handle conversion from
-# integers to long double. (This flag should be set "yes" for all
-# machines except all SGIs, where some conversions are
-# incorrect and its cache value is set "no" in its config/irix6.x and
-# irix5.x)
-#
-H5MiscConversionTest (H5_SIZEOF_LONG_DOUBLE H5_INTEGER_TO_LDOUBLE_ACCURATE "checking IF accurately converting from integers to long double")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'unsigned long' to 'float' values.
-# (This flag should be set for all machines, except for Pathscale compiler
-# on Sandia's Linux machine where the compiler interprets 'unsigned long'
-# values as negative when the first bit of 'unsigned long' is on during
-# the conversion to float.)
-#
-H5ConversionTests (H5_ULONG_TO_FLOAT_ACCURATE "Checking IF accurately converting unsigned long to float values")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'unsigned (long) long' values to 'float' and 'double' values.
-# (This flag should be set for all machines, except for the SGIs, where
-# the cache value is set in the config/irix6.x config file) and Solaris
-# 64-bit machines, where the short program below tests if round-up is
-# correctly handled.
-#
-if (CMAKE_SYSTEM MATCHES "solaris2.*")
- H5ConversionTests (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE "Checking IF accurately converting unsigned long long to floating-point values")
-else (CMAKE_SYSTEM MATCHES "solaris2.*")
- set (H5_ULONG_TO_FP_BOTTOM_BIT_ACCURATE 1)
-endif (CMAKE_SYSTEM MATCHES "solaris2.*")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'float' or 'double' to 'unsigned long long' values.
-# (This flag should be set for all machines, except for PGI compiler
-# where round-up happens when the fraction of float-point value is greater
-# than 0.5.
-#
-H5ConversionTests (H5_FP_TO_ULLONG_ACCURATE "Checking IF accurately roundup converting floating-point to unsigned long long values" )
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'float', 'double' or 'long double' to 'unsigned long long' values.
-# (This flag should be set for all machines, except for HP-UX machines
-# where the maximal number for unsigned long long is 0x7fffffffffffffff
-# during conversion.
-#
-H5ConversionTests (H5_FP_TO_ULLONG_RIGHT_MAXIMUM "Checking IF right maximum converting floating-point to unsigned long long values" )
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'long double' to 'unsigned int' values. (This flag should be set for
-# all machines, except for some Intel compilers on some Linux.)
-#
-H5ConversionTests (H5_LDOUBLE_TO_UINT_ACCURATE "Checking IF correctly converting long double to unsigned int values")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can _compile_
-# 'unsigned long long' to 'float' and 'double' typecasts.
-# (This flag should be set for all machines.)
-#
-if (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$)
- set (H5_ULLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling unsigned long long to floating-point typecasts work")
- message (STATUS "Checking IF compiling unsigned long long to floating-point typecasts work... yes")
-endif (H5_ULLONG_TO_FP_CAST_WORKS MATCHES ^H5_ULLONG_TO_FP_CAST_WORKS$)
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can _compile_
-# 'long long' to 'float' and 'double' typecasts.
-# (This flag should be set for all machines.)
-#
-if (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$)
- set (H5_LLONG_TO_FP_CAST_WORKS 1 CACHE INTERNAL "Checking IF compiling long long to floating-point typecasts work")
- message (STATUS "Checking IF compiling long long to floating-point typecasts work... yes")
-endif (H5_LLONG_TO_FP_CAST_WORKS MATCHES ^H5_LLONG_TO_FP_CAST_WORKS$)
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can convert from
-# 'unsigned long long' to 'long double' without precision loss.
-# (This flag should be set for all machines, except for FreeBSD(sleipnir)
-# where the last 2 bytes of mantissa are lost when compiler tries to do
-# the conversion, and Cygwin where compiler doesn't do rounding correctly.)
-#
-H5ConversionTests (H5_ULLONG_TO_LDOUBLE_PRECISION "Checking IF converting unsigned long long to long double with precision")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can handle overflow converting
-# all floating-point to all integer types.
-# (This flag should be set for all machines, except for Cray X1 where
-# floating exception is generated when the floating-point value is greater
-# than the maximal integer value).
-#
-H5ConversionTests (H5_FP_TO_INTEGER_OVERFLOW_WORKS "Checking IF overflows normally converting floating-point to integer values")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine is using a special algorithm to convert
# 'long double' to '(unsigned) long' values. (This flag should only be set for
@@ -371,10 +249,7 @@ H5ConversionTests (H5_FP_TO_INTEGER_OVERFLOW_WORKS "Checking IF overflows norma
# The machine's conversion gets the correct value. We define the macro and disable
# this kind of test until we figure out what algorithm they use.
#
-if (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$)
- set (H5_LDOUBLE_TO_LONG_SPECIAL 0 CACHE INTERNAL "Define if your system converts long double to (unsigned) long values with special algorithm")
- message (STATUS "Checking IF your system converts long double to (unsigned) long values with special algorithm... no")
-endif (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$)
+H5ConversionTests (H5_LDOUBLE_TO_LONG_SPECIAL "Checking IF your system converts long double to (unsigned) long values with special algorithm")
# ----------------------------------------------------------------------
# Set the flag to indicate that the machine is using a special algorithm
# to convert some values of '(unsigned) long' to 'long double' values.
@@ -383,49 +258,12 @@ endif (H5_LDOUBLE_TO_LONG_SPECIAL MATCHES ^H5_LDOUBLE_TO_LONG_SPECIAL$)
# ..., 7fffff..., the compiler uses a unknown algorithm. We define a
# macro and skip the test for now until we know about the algorithm.
#
-if (H5_LONG_TO_LDOUBLE_SPECIAL MATCHES ^H5_LONG_TO_LDOUBLE_SPECIAL$)
- set (H5_LONG_TO_LDOUBLE_SPECIAL 0 CACHE INTERNAL "Define if your system can convert (unsigned) long to long double values with special algorithm")
- message (STATUS "Checking IF your system can convert (unsigned) long to long double values with special algorithm... no")
-endif (H5_LONG_TO_LDOUBLE_SPECIAL MATCHES ^H5_LONG_TO_LDOUBLE_SPECIAL$)
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# 'long double' to '(unsigned) long long' values. (This flag should be set for
-# all machines, except for Mac OS 10.4 and SGI IRIX64 6.5. When the bit sequence
-# of long double is 0x4351ccf385ebc8a0bfcc2a3c..., the values of (unsigned)long long
-# start to go wrong on these two machines. Adjusting it higher to
-# 0x4351ccf385ebc8a0dfcc... or 0x4351ccf385ebc8a0ffcc... will make the converted
-# values wildly wrong. This test detects this wrong behavior and disable the test.
-#
-H5ConversionTests (H5_LDOUBLE_TO_LLONG_ACCURATE "Checking IF correctly converting long double to (unsigned) long long values")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine can accurately convert
-# '(unsigned) long long' to 'long double' values. (This flag should be set for
-# all machines, except for Mac OS 10.4, when the bit sequences are 003fff...,
-# 007fff..., 00ffff..., 01ffff..., ..., 7fffff..., the converted values are twice
-# as big as they should be.
-#
-H5ConversionTests (H5_LLONG_TO_LDOUBLE_CORRECT "Checking IF correctly converting (unsigned) long long to long double values")
-# ----------------------------------------------------------------------
-# Set the flag to indicate that the machine generates bad code
-# for the H5VM_log2_gen() routine in src/H5VMprivate.h
-# (This flag should be set to no for all machines, except for SGI IRIX64,
-# where the cache value is set to yes in it's config file)
-#
-if (H5_BAD_LOG2_CODE_GENERATED MATCHES ^H5_BAD_LOG2_CODE_GENERATED$)
- set (H5_BAD_LOG2_CODE_GENERATED 0 CACHE INTERNAL "Define if your system generates wrong code for log2 routine")
- message (STATUS "Checking IF your system generates wrong code for log2 routine... no")
-endif (H5_BAD_LOG2_CODE_GENERATED MATCHES ^H5_BAD_LOG2_CODE_GENERATED$)
+H5ConversionTests (H5_LONG_TO_LDOUBLE_SPECIAL "Checking IF your system can convert (unsigned) long to long double values with special algorithm")
# ----------------------------------------------------------------------
# Check if pointer alignments are enforced
#
H5ConversionTests (H5_NO_ALIGNMENT_RESTRICTIONS "Checking IF alignment restrictions are strictly enforced")
-# Define a macro for Cygwin (on XP only) where the compiler has rounding
-# problem converting from unsigned long long to long double */
-if (CYGWIN)
- set (H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM 1)
-endif (CYGWIN)
-
# -----------------------------------------------------------------------
# wrapper script variables
#