|
@@ -0,0 +1,64 @@
|
|
|
+From 0562b040fa17f1722ba2b3096067b45d0582ca53 Mon Sep 17 00:00:00 2001
|
|
|
+From: Paul Eggert <eggert@cs.ucla.edu>
|
|
|
+Date: Mon, 11 Mar 2019 16:40:29 -0700
|
|
|
+Subject: [PATCH] strtod: fix clash with strtold
|
|
|
+
|
|
|
+Problem reported for RHEL 5 by Jesse Caldwell (Bug#34817).
|
|
|
+* lib/strtod.c (compute_minus_zero, minus_zero):
|
|
|
+Simplify by remving the macro / external variable,
|
|
|
+and having just a function. User changed. This avoids
|
|
|
+the need for an external variable that might clash.
|
|
|
+
|
|
|
+Upstream-Status: Backport [rhel5]
|
|
|
+
|
|
|
+Signed-off-by: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
|
|
|
+
|
|
|
+Downloaded from
|
|
|
+http://cgit.openembedded.org/openembedded-core/tree/meta/recipes-core/coreutils/coreutils/strtod_fix_clash_with_strtold.patch
|
|
|
+
|
|
|
+This patch was committed to gnulib:
|
|
|
+http://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=patch;h=3bd82a82cf4ba693d2c31c7b95aaec4e56dc92a4
|
|
|
+and will be included in the next release of coreutils.
|
|
|
+
|
|
|
+Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
|
|
|
+---
|
|
|
+ ChangeLog | 9 +++++++++
|
|
|
+ lib/strtod.c | 11 +++++------
|
|
|
+ 2 files changed, 14 insertions(+), 6 deletions(-)
|
|
|
+
|
|
|
+diff --git a/lib/strtod.c b/lib/strtod.c
|
|
|
+index b9eaa51b4..69b1564e1 100644
|
|
|
+--- a/lib/strtod.c
|
|
|
++++ b/lib/strtod.c
|
|
|
+@@ -294,16 +294,15 @@ parse_number (const char *nptr,
|
|
|
+ ICC 10.0 has a bug when optimizing the expression -zero.
|
|
|
+ The expression -MIN * MIN does not work when cross-compiling
|
|
|
+ to PowerPC on Mac OS X 10.5. */
|
|
|
+-#if defined __hpux || defined __sgi || defined __ICC
|
|
|
+ static DOUBLE
|
|
|
+-compute_minus_zero (void)
|
|
|
++minus_zero (void)
|
|
|
+ {
|
|
|
++#if defined __hpux || defined __sgi || defined __ICC
|
|
|
+ return -MIN * MIN;
|
|
|
+-}
|
|
|
+-# define minus_zero compute_minus_zero ()
|
|
|
+ #else
|
|
|
+-DOUBLE minus_zero = -0.0;
|
|
|
++ return -0.0;
|
|
|
+ #endif
|
|
|
++}
|
|
|
+
|
|
|
+ /* Convert NPTR to a DOUBLE. If ENDPTR is not NULL, a pointer to the
|
|
|
+ character after the last one used in the number is put in *ENDPTR. */
|
|
|
+@@ -479,6 +478,6 @@ STRTOD (const char *nptr, char **endptr)
|
|
|
+ /* Special case -0.0, since at least ICC miscompiles negation. We
|
|
|
+ can't use copysign(), as that drags in -lm on some platforms. */
|
|
|
+ if (!num && negative)
|
|
|
+- return minus_zero;
|
|
|
++ return minus_zero ();
|
|
|
+ return negative ? -num : num;
|
|
|
+ }
|
|
|
+--
|
|
|
+2.20.1
|
|
|
+
|