|
|
953cdea |
diff -up diffutils-3.2/gnulib-tests/float.c.ppc-float diffutils-3.2/gnulib-tests/float.c
|
|
|
953cdea |
--- diffutils-3.2/gnulib-tests/float.c.ppc-float 2011-08-28 12:57:24.000000000 +0100
|
|
|
953cdea |
+++ diffutils-3.2/gnulib-tests/float.c 2011-11-25 14:13:58.090442846 +0000
|
|
|
953cdea |
@@ -22,7 +22,7 @@
|
|
|
953cdea |
/* Specification. */
|
|
|
953cdea |
#include <float.h>
|
|
|
953cdea |
|
|
|
953cdea |
-#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
|
|
|
953cdea |
+#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
|
|
|
953cdea |
const union gl_long_double_union gl_LDBL_MAX =
|
|
|
953cdea |
{ { DBL_MAX, DBL_MAX / (double)134217728UL / (double)134217728UL } };
|
|
|
953cdea |
#elif defined __i386__
|
|
|
953cdea |
diff -up diffutils-3.2/gnulib-tests/float.in.h.ppc-float diffutils-3.2/gnulib-tests/float.in.h
|
|
|
953cdea |
--- diffutils-3.2/gnulib-tests/float.in.h.ppc-float 2011-08-28 12:57:25.000000000 +0100
|
|
|
953cdea |
+++ diffutils-3.2/gnulib-tests/float.in.h 2011-11-25 14:13:58.091442827 +0000
|
|
|
953cdea |
@@ -111,7 +111,8 @@ extern const union gl_long_double_union
|
|
|
953cdea |
#endif
|
|
|
953cdea |
|
|
|
953cdea |
/* On AIX 7.1 with gcc 4.2, the values of LDBL_MIN_EXP, LDBL_MIN, LDBL_MAX are
|
|
|
953cdea |
- wrong. */
|
|
|
953cdea |
+ wrong.
|
|
|
953cdea |
+ On Linux/PowerPC with gcc 4.4, the value of LDBL_MAX is wrong. */
|
|
|
953cdea |
#if (defined _ARCH_PPC || defined _POWER) && defined _AIX && (LDBL_MANT_DIG == 106) && defined __GNUC__
|
|
|
953cdea |
# undef LDBL_MIN_EXP
|
|
|
953cdea |
# define LDBL_MIN_EXP DBL_MIN_EXP
|
|
|
953cdea |
@@ -119,6 +120,8 @@ extern const union gl_long_double_union
|
|
|
953cdea |
# define LDBL_MIN_10_EXP DBL_MIN_10_EXP
|
|
|
953cdea |
# undef LDBL_MIN
|
|
|
953cdea |
# define LDBL_MIN 2.22507385850720138309023271733240406422e-308L /* DBL_MIN = 2^-1022 */
|
|
|
953cdea |
+#endif
|
|
|
953cdea |
+#if (defined _ARCH_PPC || defined _POWER) && (defined _AIX || defined __linux__) && (LDBL_MANT_DIG == 106) && defined __GNUC__
|
|
|
953cdea |
# undef LDBL_MAX
|
|
|
953cdea |
/* LDBL_MAX is represented as { 0x7FEFFFFF, 0xFFFFFFFF, 0x7C8FFFFF, 0xFFFFFFFF }.
|
|
|
953cdea |
It is not easy to define:
|
|
|
953cdea |
diff -up diffutils-3.2/gnulib-tests/test-float.c.ppc-float diffutils-3.2/gnulib-tests/test-float.c
|
|
|
953cdea |
--- diffutils-3.2/gnulib-tests/test-float.c.ppc-float 2011-09-01 23:38:42.000000000 +0100
|
|
|
953cdea |
+++ diffutils-3.2/gnulib-tests/test-float.c 2011-11-25 14:14:04.623319695 +0000
|
|
|
953cdea |
@@ -325,7 +325,11 @@ test_long_double (void)
|
|
|
953cdea |
int n;
|
|
|
953cdea |
|
|
|
953cdea |
ASSERT (m + m > m);
|
|
|
953cdea |
+#if (defined _ARCH_PPC || defined _POWER)
|
|
|
953cdea |
+ for (n = 0; n <= 2 * DBL_MANT_DIG; n++)
|
|
|
953cdea |
+#else
|
|
|
953cdea |
for (n = 0; n <= 2 * LDBL_MANT_DIG; n++)
|
|
|
953cdea |
+#endif
|
|
|
953cdea |
{
|
|
|
953cdea |
volatile long double pow2_n = pow2l (n); /* 2^n */
|
|
|
953cdea |
volatile long double x = m + (m / pow2_n);
|