diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2015-04-03 21:41:28 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2015-04-03 21:41:28 (GMT) |
commit | 5630846ea34f29b45aecdb431f846327c4fde9e1 (patch) | |
tree | 83e65a0feb757f39472e70d2168048d091cfed50 /config/cmake/ConfigureChecks.cmake | |
parent | 820b4dc39136072bccad1455fc0232ec9e710d58 (diff) | |
parent | b9e5e2af4e31b0a60c2d2f6421fb1b3cb9aa0564 (diff) | |
download | hdf5-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.cmake | 166 |
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 # |