From b2260e6df63425ff4e8b9e34a9d28c6d8ff6dce0 Mon Sep 17 00:00:00 2001 From: "Manuel A. Fernandez Montecelo" Date: Mon, 28 Jul 2014 22:47:32 +0100 Subject: Imported Debian patch 0.9.3-5.1 --- debian/patches/float-endian-detection.patch | 67 +++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 debian/patches/float-endian-detection.patch (limited to 'debian/patches/float-endian-detection.patch') diff --git a/debian/patches/float-endian-detection.patch b/debian/patches/float-endian-detection.patch new file mode 100644 index 00000000..66bed0de --- /dev/null +++ b/debian/patches/float-endian-detection.patch @@ -0,0 +1,67 @@ +Description: Fix detection of floating point endianness + See https://lists.gnu.org/archive/html/bug-gnulib/2013-12/msg00104.html +Author: Alan Modra +Author: Colin Watson +Forwarded: no +Last-Update: 2013-12-18 + +Index: b/tests/test-isnanl.h +=================================================================== +--- a/tests/test-isnanl.h ++++ b/tests/test-isnanl.h +@@ -38,6 +38,12 @@ + long double minus_zero = -0.0L; + #endif + ++#ifdef __FLOAT_WORD_ORDER__ ++# define FLOAT_BIG_ENDIAN (__FLOAT_WORD_ORDER__ != __ORDER_LITTLE_ENDIAN__) ++#else ++# define FLOAT_BIG_ENDIAN (LDBL_EXPBIT0_WORD < NWORDS / 2) ++#endif ++ + int + main () + { +@@ -70,10 +76,10 @@ + # if LDBL_EXPBIT0_BIT > 0 + m.word[LDBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (LDBL_EXPBIT0_BIT - 1); + # else +- m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] ++ m.word[LDBL_EXPBIT0_WORD + (FLOAT_BIG_ENDIAN ? 1 : - 1)] + ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); + # endif +- m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] ++ m.word[LDBL_EXPBIT0_WORD + (FLOAT_BIG_ENDIAN ? 1 : - 1)] + |= (unsigned int) 1 << LDBL_EXPBIT0_BIT; + ASSERT (isnanl (m.value)); + } +Index: b/tests/test-signbit.c +=================================================================== +--- a/tests/test-signbit.c ++++ b/tests/test-signbit.c +@@ -56,6 +56,12 @@ + long double minus_zerol = -0.0L; + #endif + ++#ifdef __FLOAT_WORD_ORDER__ ++# define FLOAT_BIG_ENDIAN (__FLOAT_WORD_ORDER__ != __ORDER_LITTLE_ENDIAN__) ++#else ++# define FLOAT_BIG_ENDIAN (LDBL_EXPBIT0_WORD < NWORDS / 2) ++#endif ++ + static void + test_signbitf () + { +@@ -176,10 +182,10 @@ + # if LDBL_EXPBIT0_BIT > 0 + m.word[LDBL_EXPBIT0_WORD] ^= (unsigned int) 1 << (LDBL_EXPBIT0_BIT - 1); + # else +- m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] ++ m.word[LDBL_EXPBIT0_WORD + (FLOAT_BIG_ENDIAN ? 1 : - 1)] + ^= (unsigned int) 1 << (sizeof (unsigned int) * CHAR_BIT - 1); + # endif +- m.word[LDBL_EXPBIT0_WORD + (LDBL_EXPBIT0_WORD < NWORDS / 2 ? 1 : - 1)] ++ m.word[LDBL_EXPBIT0_WORD + (FLOAT_BIG_ENDIAN ? 1 : - 1)] + |= (unsigned int) 1 << LDBL_EXPBIT0_BIT; + (void) signbit (m.value); + #undef NWORDS -- cgit v1.2.3