From 5329a7d6f1e4323636489f896621be0c3167486f Mon Sep 17 00:00:00 2001 From: Quincey Koziol Date: Thu, 19 Mar 2015 16:52:50 -0500 Subject: [svn-r26491] Description: Bring r26257 from autotools_rework branch back to the trunk - removes the LDOUBLE_TO_INTEGER_ACCURATE macro/define, which was addressing problems with SGI systems and is no longer supported. Tested on: Linux 2.6.x/32 (jam) w/serial & parallel Daily tested on branch for >2 weeks. --- config/cmake/ConfigureChecks.cmake | 8 -------- config/cmake/H5pubconf.h.in | 3 --- configure | 32 -------------------------------- configure.ac | 23 ----------------------- src/H5Tpkg.h | 8 ++++---- src/H5config.h.in | 3 --- test/dt_arith.c | 6 +++--- 7 files changed, 7 insertions(+), 76 deletions(-) diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index 80b44cb..939ee57 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -259,14 +259,6 @@ ENDMACRO (H5MiscConversionTest) #----------------------------------------------------------------------------- # ----------------------------------------------------------------------- -# 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 diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index ff05373..201b661 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -460,9 +460,6 @@ values. */ #cmakedefine H5_INTEGER_TO_LDOUBLE_ACCURATE @H5_INTEGER_TO_LDOUBLE_ACCURATE@ -/* Define if your system can convert long double to integers accurately. */ -#cmakedefine H5_LDOUBLE_TO_INTEGER_ACCURATE @H5_LDOUBLE_TO_INTEGER_ACCURATE@ - /* Define if your system can convert from long double to integer values. */ #cmakedefine H5_LDOUBLE_TO_INTEGER_WORKS @H5_LDOUBLE_TO_INTEGER_WORKS@ diff --git a/configure b/configure index fd806ef..d5b458a 100755 --- a/configure +++ b/configure @@ -28131,38 +28131,6 @@ $as_echo "no" >&6; } esac ## ----------------------------------------------------------------------- -## 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. -## -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if converting from long double to integers is accurate" >&5 -$as_echo_n "checking if converting from long double to integers is accurate... " >&6; } - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no} -else - if ${hdf5_cv_ldouble_to_integer_accurate+:} false; then : - $as_echo_n "(cached) " >&6 -else - hdf5_cv_ldouble_to_integer_accurate=yes -fi - -fi - -if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then - -$as_echo "#define LDOUBLE_TO_INTEGER_ACCURATE 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - -## ----------------------------------------------------------------------- ## 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 diff --git a/configure.ac b/configure.ac index 77171c9..1f93072 100644 --- a/configure.ac +++ b/configure.ac @@ -2558,29 +2558,6 @@ case "`uname`" in esac ## ----------------------------------------------------------------------- -## 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. -## -AC_MSG_CHECKING([if converting from long double to integers is accurate]) - -if test ${ac_cv_sizeof_long_double} = 0; then - hdf5_cv_ldouble_to_integer_accurate=${hdf5_cv_ldouble_to_integer_accurate=no} -else - AC_CACHE_VAL([hdf5_cv_ldouble_to_integer_accurate], [hdf5_cv_ldouble_to_integer_accurate=yes]) -fi - -if test "${hdf5_cv_ldouble_to_integer_accurate}" = "yes"; then - AC_DEFINE([LDOUBLE_TO_INTEGER_ACCURATE], [1], - [Define if your system can convert long double to integers accurately.]) - AC_MSG_RESULT([yes]) -else - AC_MSG_RESULT([no]) -fi - -## ----------------------------------------------------------------------- ## 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 diff --git a/src/H5Tpkg.h b/src/H5Tpkg.h index bd37829..39791e0 100644 --- a/src/H5Tpkg.h +++ b/src/H5Tpkg.h @@ -179,7 +179,7 @@ /* Define an internal macro for converting long double to all integers. SGI compilers give some incorrect * conversions. HP-UX 11.00 compiler generates floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS) || \ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) || \ (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) #define H5T_CONV_INTERNAL_LDOUBLE_INTEGER 1 #endif @@ -187,7 +187,7 @@ /* Define an internal macro for converting long double to unsigned int. SGI compilers give some incorrect * conversions. HP-UX 11.00 compiler generates floating exception. Some Intel compilers on some Linux * give incorrect values. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_UINT_ACCURATE && \ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_UINT_ACCURATE && \ H5_LDOUBLE_TO_INTEGER_WORKS) || (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) #define H5T_CONV_INTERNAL_LDOUBLE_UINT 1 #endif @@ -201,7 +201,7 @@ /* Define an internal macro for converting long double to long long. SGI compilers give some incorrect * conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates floating exception. * The hard conversion on Windows .NET 2003 has a bug and gives wrong exception value. */ -#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_ACCURATE && \ +#if (H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && \ H5_LDOUBLE_TO_INTEGER_WORKS && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ (!H5_WANT_DATA_ACCURACY && !defined(H5_HW_FP_TO_LLONG_NOT_WORKS) && H5_LDOUBLE_TO_INTEGER_WORKS) #define H5T_CONV_INTERNAL_LDOUBLE_LLONG 1 @@ -220,7 +220,7 @@ /* Define an internal macro for converting long double to unsigned long long. SGI compilers give some * incorrect conversions. Mac OS 10.4 gives incorrect conversions. HP-UX 11.00 compiler generates * floating exception. */ -#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_ACCURATE && H5_LDOUBLE_TO_INTEGER_WORKS && \ +#if (H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS && \ H5_FP_TO_ULLONG_ACCURATE && defined(H5_FP_TO_ULLONG_RIGHT_MAXIMUM) && defined(H5_LDOUBLE_TO_LLONG_ACCURATE)) || \ (!H5_WANT_DATA_ACCURACY && H5_LDOUBLE_TO_INTEGER_WORKS) #define H5T_CONV_INTERNAL_LDOUBLE_ULLONG 1 diff --git a/src/H5config.h.in b/src/H5config.h.in index a2fa0ad..d9aef37 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -386,9 +386,6 @@ values. */ #undef INTEGER_TO_LDOUBLE_ACCURATE -/* Define if your system can convert long double to integers accurately. */ -#undef LDOUBLE_TO_INTEGER_ACCURATE - /* Define if your system can convert from long double to integer values. */ #undef LDOUBLE_TO_INTEGER_WORKS diff --git a/test/dt_arith.c b/test/dt_arith.c index 1e183aa..b9f02e2 100644 --- a/test/dt_arith.c +++ b/test/dt_arith.c @@ -5309,7 +5309,7 @@ run_fp_int_conv(const char *name) #endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM*/ #endif -#if H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE +#if H5_LDOUBLE_TO_INTEGER_WORKS #if H5_SIZEOF_LONG_DOUBLE!=H5_SIZEOF_DOUBLE nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_SCHAR); nerrors += test_conv_int_fp(name, test_values, H5T_NATIVE_LDOUBLE, H5T_NATIVE_UCHAR); @@ -5391,7 +5391,7 @@ run_fp_int_conv(const char *name) #endif /*H5_FP_TO_ULLONG_RIGHT_MAXIMUM && H5_LDOUBLE_TO_LLONG_ACCURATE*/ #endif #endif -#else /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/ +#else /*H5_LDOUBLE_TO_INTEGER_WORKS*/ { char str[256]; /*hello string */ @@ -5405,7 +5405,7 @@ run_fp_int_conv(const char *name) HDputs(" Test skipped due to disabled long double."); #endif } -#endif /*H5_LDOUBLE_TO_INTEGER_WORKS && H5_LDOUBLE_TO_INTEGER_ACCURATE*/ +#endif /*H5_LDOUBLE_TO_INTEGER_WORKS */ #ifndef H5_VMS } /* end for */ #endif /* H5_VMS */ -- cgit v0.12