diff options
-rw-r--r-- | debian/changelog | 12 | ||||
-rw-r--r-- | debian/patches/float-endian-detection.patch | 67 | ||||
-rw-r--r-- | debian/patches/series | 1 |
3 files changed, 80 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 90d51bf2..fd158d9c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,15 @@ +libunistring (0.9.3-5.1) unstable; urgency=medium + + * Non-maintainer upload. + * Run dh-autoreconf to update config.{sub,guess} and + {libtool,aclocal}.m4, necessary for some new ports. Thanks Fernando + Seiti Furusato. (Closes: #755745) + * Add patch float-endian-detection.patch which fixes detection of + floating point endianness, gathered from Ubuntu, created by Colin + Watson. + + -- Manuel A. Fernandez Montecelo <mafm@debian.org> Mon, 28 Jul 2014 22:47:32 +0100 + libunistring (0.9.3-5) unstable; urgency=low * Standards-Version 3.9.2 (no changes). 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 <amodra@gmail.com> +Author: Colin Watson <cjwatson@ubuntu.com> +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 diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 00000000..c1d7c664 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1 @@ +float-endian-detection.patch |