summaryrefslogtreecommitdiffstats
path: root/configure
diff options
context:
space:
mode:
authorRaymond Lu <songyulu@hdfgroup.org>2005-01-06 18:17:59 (GMT)
committerRaymond Lu <songyulu@hdfgroup.org>2005-01-06 18:17:59 (GMT)
commit82f6a72ec92fa12371c386c70c607dd8957ce8b6 (patch)
tree41e4cf0b57c5a123ded9dbe4c3f951b4ae818f4a /configure
parent03edfaa6e90c150e017b2e8d6a6c0772b2a2650c (diff)
downloadhdf5-82f6a72ec92fa12371c386c70c607dd8957ce8b6.zip
hdf5-82f6a72ec92fa12371c386c70c607dd8957ce8b6.tar.gz
hdf5-82f6a72ec92fa12371c386c70c607dd8957ce8b6.tar.bz2
[svn-r9755] Purpose: New feature
Description: Start to support software conversion between long double and all integers. Solution: No major changes to the algorithm. Changes to configure is to exclude SGI for long double to integers test because there're too many problems in their compiler. Platforms tested: h5committest, modi4, fuss, Teragrid, arabica Misc. update: RELEASE.txt
Diffstat (limited to 'configure')
-rwxr-xr-xconfigure36
1 files changed, 30 insertions, 6 deletions
diff --git a/configure b/configure
index b2a1ef3..65f0d82 100755
--- a/configure
+++ b/configure
@@ -33538,6 +33538,28 @@ else
echo "${ECHO_T}no" >&6
fi
+echo "$as_me:$LINENO: checking if accurately converting between long double and integers works" >&5
+echo $ECHO_N "checking if accurately converting between long double and integers works... $ECHO_C" >&6
+if test "${hdf5_cv_sw_ldouble_to_int_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ hdf5_cv_sw_ldouble_to_int_works=yes
+fi
+
+
+if test ${hdf5_cv_sw_ldouble_to_int_works} = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define SW_LDOUBLE_TO_INT_WORKS 1
+_ACEOF
+
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
echo "$as_me:$LINENO: checking if accurately converting unsigned long long to floating-point values works" >&5
echo $ECHO_N "checking if accurately converting unsigned long long to floating-point values works... $ECHO_C" >&6
@@ -33748,18 +33770,20 @@ else
{
float f = 9701917572145405952.00f;
double d1 = 9701917572145405952.00L;
- double d2 = 2e40L;
+ long double d2 = 9701917572145405952.00L;
+ double d3 = 2e40L;
unsigned long long l1 = (unsigned long long)f;
unsigned long long l2 = (unsigned long long)d1;
- unsigned long long l3;
- unsigned long long l4 = 0x7fffffffffffffffLLU;
+ unsigned long long l3 = (unsigned long long)d2;
+ unsigned long long l4;
+ unsigned long long l5 = 0x7fffffffffffffffLLU;
int ret = 0;
- if(l1 <= l4 || l2 <= l4)
+ if(l1 <= l5 || l2 <= l5 || l3 <= l5)
ret = 1;
- l3 = (unsigned long long)d2;
- if(l3 <= l4)
+ l4 = (unsigned long long)d3;
+ if(l4 <= l5)
ret = 1;
done: