From f65b1d29deb41d2e17b2145621eea8aa4b478eaa158b778054fbb78e25b262ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ismail=20D=C3=B6nmez?= Date: Wed, 17 May 2017 11:39:21 +0000 Subject: [PATCH] Accepting request 495573 from home:rguenther:branches:X11:common:Factory - Add icu-avoid-x87-excess-precision.diff to avoid FixedPrecision::initVisibleDigits failure on i586 with GCC 7. (bnc#1030253) OBS-URL: https://build.opensuse.org/request/show/495573 OBS-URL: https://build.opensuse.org/package/show/X11:common:Factory/icu?expand=0&rev=76 --- icu-avoid-x87-excess-precision.diff | 11 +++++++++++ icu.changes | 7 +++++++ icu.spec | 2 ++ 3 files changed, 20 insertions(+) create mode 100644 icu-avoid-x87-excess-precision.diff diff --git a/icu-avoid-x87-excess-precision.diff b/icu-avoid-x87-excess-precision.diff new file mode 100644 index 0000000..41bb668 --- /dev/null +++ b/icu-avoid-x87-excess-precision.diff @@ -0,0 +1,11 @@ +--- source/i18n/precision.cpp.orig 2017-05-17 11:05:56.517416029 +0000 ++++ source/i18n/precision.cpp 2017-05-17 11:05:22.700828110 +0000 +@@ -227,7 +227,7 @@ + } + // Try to find n such that value * 10^n is an integer + int32_t n = -1; +- double scaled; ++ volatile double scaled; // make sure scaled is in memory to avoid excess precision with x87 math + for (int32_t i = 0; i < UPRV_LENGTHOF(gPower10); ++i) { + scaled = value * gPower10[i]; + if (scaled > MAX_INT64_IN_DOUBLE || scaled < -MAX_INT64_IN_DOUBLE) { diff --git a/icu.changes b/icu.changes index d474795..eb9b68a 100644 --- a/icu.changes +++ b/icu.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Wed May 17 11:14:47 UTC 2017 - rguenther@suse.com + +- Add icu-avoid-x87-excess-precision.diff to avoid + FixedPrecision::initVisibleDigits failure on i586 with GCC 7. + (bnc#1030253) + ------------------------------------------------------------------- Thu Apr 27 17:33:46 UTC 2017 - jengelh@inai.de diff --git a/icu.spec b/icu.spec index 66d4c37..4e7aa5a 100644 --- a/icu.spec +++ b/icu.spec @@ -37,6 +37,7 @@ Source100: baselibs.conf Patch3: icu-versioning.diff Patch4: icu-fix-install-mode-files.diff Patch6: icu-error-reporting.diff +Patch7: icu-avoid-x87-excess-precision.diff BuildRequires: fdupes BuildRequires: gcc-c++ BuildRequires: pkg-config @@ -157,6 +158,7 @@ unzip %SOURCE2 cd .. %patch -P 3 -P 4 -P 6 -p1 +%patch7 %build cd source