h5committested.
This commit is contained in:
@@ -32,18 +32,6 @@ if (HDF5_METADATA_TRACE_FILE)
|
||||
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
|
||||
@@ -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)
|
||||
|
||||
@@ -258,109 +239,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
|
||||
@@ -381,44 +259,10 @@ H5ConversionTests (H5_LDOUBLE_TO_LONG_SPECIAL "Checking IF your system converts
|
||||
#
|
||||
H5ConversionTests (H5_LONG_TO_LDOUBLE_SPECIAL "Checking IF your system can convert (unsigned) long to long double values with special algorithm")
|
||||
# ----------------------------------------------------------------------
|
||||
# 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$)
|
||||
# ----------------------------------------------------------------------
|
||||
# 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
|
||||
#
|
||||
|
||||
Reference in New Issue
Block a user