summaryrefslogtreecommitdiffstats
path: root/configure.in
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2009-08-25 14:14:21 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2009-08-25 14:14:21 (GMT)
commitb043ee1241522fc0b87787ead985f5d9f3b7af26 (patch)
treed7f3eeea14b36276fb1c29904dcf092c6d81116b /configure.in
parent6c5e37a5938f3dc614f908d5d955b3103db4f367 (diff)
downloadhdf5-b043ee1241522fc0b87787ead985f5d9f3b7af26.zip
hdf5-b043ee1241522fc0b87787ead985f5d9f3b7af26.tar.gz
hdf5-b043ee1241522fc0b87787ead985f5d9f3b7af26.tar.bz2
[svn-r17417] Description:
Bring r17365:17416 from trunk to revise_chunks branch Tested on: FreeBSD/32 6.3 (duty) in debug mode FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode Linux/32 2.6 (jam) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe, in debug mode Linux/64-amd64 2.6 (smirom) w/Intel compilers w/default API=1.6.x, w/C++ & FORTRAN, in production mode Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN, w/szip filter, in production mode Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN, in production mode Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode Mac OS X/32 10.5.8 (amazon) in debug mode Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe, in production mode
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in50
1 files changed, 50 insertions, 0 deletions
diff --git a/configure.in b/configure.in
index 7cc5e6d..533ffb3 100644
--- a/configure.in
+++ b/configure.in
@@ -3053,6 +3053,56 @@ fi
dnl ----------------------------------------------------------------------
dnl Set the flag to indicate that the machine can accurately convert
+dnl 'unsigned long' to 'float' values.
+dnl (This flag should be set for all machines, except for Pathscale compiler
+dnl on Sandia's Linux machine where the compiler interprets 'unsigned long'
+dnl values as negative when the first bit of 'unsigned long' is on during
+dnl the conversion to float.)
+dnl
+AC_MSG_CHECKING([if accurately converting unsigned long to float values])
+
+AC_CACHE_VAL([hdf5_ulong_to_float_accurate],
+ [AC_TRY_RUN([
+ int main(void)
+ {
+ int ret = 0;
+ unsigned long l1;
+ unsigned long l2;
+ unsigned long l3;
+ float f1;
+ float f2;
+ float f3;
+
+
+ if(sizeof(unsigned long)==8) {
+ l1 = 0xffffffffffffffffUL;
+ l2 = 0xffffffffffff0000UL;
+ l3 = 0xf000000000000000UL;
+
+ f1 = (float)l1;
+ f2 = (float)l2;
+ f3 = (float)l3;
+
+ if((f1 < 0) || (f2 < 0) || (f3 < 0))
+ ret = 1;
+ }
+
+done:
+ exit(ret);
+ }
+ ], [hdf5_ulong_to_float_accurate=yes], [hdf5_ulong_to_float_accurate=no],)])
+
+if test ${hdf5_ulong_to_float_accurate} = "yes"; then
+ AC_DEFINE([ULONG_TO_FLOAT_ACCURATE], [1],
+ [Define if your system accurately converting unsigned long to float values.])
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+
+
+dnl ----------------------------------------------------------------------
+dnl Set the flag to indicate that the machine can accurately convert
dnl 'unsigned (long) long' values to 'float' and 'double' values.
dnl (This flag should be set for all machines, except for the SGIs, where
dnl the cache value is set in the config/irix6.x config file) and Solaris