From 497507f5a90977efe1241eae0230b830f17ecbec Mon Sep 17 00:00:00 2001 From: Raymond Lu Date: Mon, 30 Sep 2013 16:51:26 -0500 Subject: [svn-r24231] Issue 1264: CYGWIN had long double rounding problem from unsigned long long. Allen confirmed the problem is gone. So I took out the macro CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM. It skipped the test related to this issue. Tested with h5committest. --- config/cmake/ConfigureChecks.cmake | 6 ------ config/cmake/H5pubconf.h.in | 4 ---- configure | 16 +--------------- configure.ac | 12 ------------ src/H5config.h.in | 4 ---- test/dt_arith.c | 6 +++--- 6 files changed, 4 insertions(+), 44 deletions(-) diff --git a/config/cmake/ConfigureChecks.cmake b/config/cmake/ConfigureChecks.cmake index 5e2697d..aba6d59 100644 --- a/config/cmake/ConfigureChecks.cmake +++ b/config/cmake/ConfigureChecks.cmake @@ -1191,9 +1191,3 @@ 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) diff --git a/config/cmake/H5pubconf.h.in b/config/cmake/H5pubconf.h.in index d049d25..3f623d9 100644 --- a/config/cmake/H5pubconf.h.in +++ b/config/cmake/H5pubconf.h.in @@ -50,10 +50,6 @@ /* Define if C++ compiler recognizes offsetof */ #cmakedefine H5_CXX_HAVE_OFFSETOF @H5_CXX_HAVE_OFFSETOF@ -/* Define a macro for Cygwin (on XP only) where the compiler has rounding - problem converting from unsigned long long to long double */ -#cmakedefine H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM @H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM@ - /* Define the default plugins path to compile */ #cmakedefine H5_DEFAULT_PLUGINDIR "@H5_DEFAULT_PLUGINDIR@" diff --git a/configure b/configure index 53fa643..c640c57 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Id: configure.ac 24205 2013-09-26 22:10:54Z byrn . +# From configure.ac Id: configure.ac 24219 2013-09-29 22:03:42Z hdftest . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for HDF5 1.8.12-snap19. # @@ -8033,20 +8033,6 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then fi ## ---------------------------------------------------------------------- -## The GCC compiler on Cygwin running on Windows XP has rounding problem -## in the data conversion dt_arith.c from unsigned long long to long -## double (see bug HDFFV-1264). I define a macro here to skip the test for -## Cygwin. I'll come back and figure out the problem once I'm available. -## 2010/5/5 - SLU -case "`uname`" in - CYGWIN*) - -$as_echo "#define CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM 1" >>confdefs.h - - ;; -esac - -## ---------------------------------------------------------------------- ## Windows won't create DLLs without the following macro. ## enable_win32_dll=yes diff --git a/configure.ac b/configure.ac index 3b1bd8c..93ed71b 100644 --- a/configure.ac +++ b/configure.ac @@ -1019,18 +1019,6 @@ if test "X${ALLOW_UNSUPPORTED}" != "Xyes"; then fi ## ---------------------------------------------------------------------- -## The GCC compiler on Cygwin running on Windows XP has rounding problem -## in the data conversion dt_arith.c from unsigned long long to long -## double (see bug HDFFV-1264). I define a macro here to skip the test for -## Cygwin. I'll come back and figure out the problem once I'm available. -## 2010/5/5 - SLU -case "`uname`" in - CYGWIN*) - AC_DEFINE([CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM], [1], [Define a macro for Cygwin (on XP only) where the compiler has rounding problem converting from unsigned long long to long double]) - ;; -esac - -## ---------------------------------------------------------------------- ## Windows won't create DLLs without the following macro. ## AC_LIBTOOL_WIN32_DLL diff --git a/src/H5config.h.in b/src/H5config.h.in index 6e3b932..02bafd8 100644 --- a/src/H5config.h.in +++ b/src/H5config.h.in @@ -17,10 +17,6 @@ /* Define if C++ compiler recognizes offsetof */ #undef CXX_HAVE_OFFSETOF -/* Define a macro for Cygwin (on XP only) where the compiler has rounding - problem converting from unsigned long long to long double */ -#undef CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM - /* Define the default plugins path to compile */ #undef DEFAULT_PLUGINDIR diff --git a/test/dt_arith.c b/test/dt_arith.c index 2d24b11..a22bd6d 100644 --- a/test/dt_arith.c +++ b/test/dt_arith.c @@ -5179,9 +5179,9 @@ run_int_fp_conv(const char *name) HDputs(" Test skipped due to compiler error in handling conversion."); } #endif /* H5_LLONG_TO_LDOUBLE_CORRECT */ -#if !H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT +#if H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT nerrors += test_conv_int_fp(name, TEST_NORMAL, H5T_NATIVE_ULLONG, H5T_NATIVE_LDOUBLE); -#else /* !H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */ +#else /* H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */ { char str[256]; /*hello string */ @@ -5191,7 +5191,7 @@ run_int_fp_conv(const char *name) SKIPPED(); HDputs(" Test skipped due to compiler not handling conversion."); } -#endif /* !H5_CYGWIN_ULLONG_TO_LDOUBLE_ROUND_PROBLEM && H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */ +#endif /* H5_ULLONG_TO_FP_CAST_WORKS && H5_ULLONG_TO_LDOUBLE_PRECISION && H5_LLONG_TO_LDOUBLE_CORRECT */ #endif #endif #else /*H5_INTEGER_TO_LDOUBLE_ACCURATE*/ -- cgit v0.12