Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package icu for openSUSE:Factory checked in 
at 2021-03-17 20:13:28
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/icu (Old)
 and      /work/SRC/openSUSE:Factory/.icu.new.2401 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "icu"

Wed Mar 17 20:13:28 2021 rev:78 rq:879226 version:68.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/icu/icu.changes  2021-03-10 08:49:16.198394440 
+0100
+++ /work/SRC/openSUSE:Factory/.icu.new.2401/icu.changes        2021-03-17 
20:13:37.134797890 +0100
@@ -1,0 +2,5 @@
+Mon Mar  8 07:33:00 UTC 2021 - Guillaume GARDET <[email protected]>
+
+- Added icu-1618.patch to fix 2 tests on aarch64 [boo#1182645]
+
+-------------------------------------------------------------------

New:
----
  icu-1618.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ icu.spec ++++++
--- /var/tmp/diff_new_pack.Rrg5z0/_old  2021-03-17 20:13:38.122799241 +0100
+++ /var/tmp/diff_new_pack.Rrg5z0/_new  2021-03-17 20:13:38.126799247 +0100
@@ -44,6 +44,7 @@
 Patch6:         icu-error-reporting.diff
 Patch7:         icu-avoid-x87-excess-precision.diff
 Patch8:         locale.diff
+Patch9:         icu-1618.patch
 BuildRequires:  fdupes
 BuildRequires:  gcc-c++
 BuildRequires:  pkg-config

++++++ icu-1618.patch ++++++
>From 7045a80e08a5f662b9588ad9f0b8a5c1cd558bce Mon Sep 17 00:00:00 2001
From: Frank Tang <[email protected]>
Date: Fri, 5 Mar 2021 02:29:58 +0000
Subject: [PATCH] ICU-21521 Fix cast of uprv_strcmp

See #1618
[Update from guillaume: drop 1st hunk for backporting]
---
 source/common/locid.cpp | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/source/common/locid.cpp b/source/common/locid.cpp
index 448c1de5e44..2d005b23542 100644
--- a/source/common/locid.cpp
+++ b/source/common/locid.cpp
@@ -1618,8 +1622,12 @@ AliasReplacer::outputToString(
           out.append(SEP_CHAR, status);
         }
         variants.sort([](UElement e1, UElement e2) -> int8_t {
-            return uprv_strcmp(
+            // uprv_strcmp return int and in some platform, such as arm64-v8a,
+            // it may return positive values > 127 which cause the casted value
+            // of int8_t negative.
+            int res = uprv_strcmp(
                 (const char*)e1.pointer, (const char*)e2.pointer);
+            return (res == 0) ? 0 : ((res > 0) ? 1 : -1);
         }, status);
         int32_t variantsStart = out.length();
         for (int32_t i = 0; i < variants.size(); i++) {
@@ -1680,8 +1688,12 @@ AliasReplacer::replace(const Locale& locale, CharString& 
out, UErrorCode& status
 
     // Sort the variants
     variants.sort([](UElement e1, UElement e2) -> int8_t {
-        return uprv_strcmp(
+        // uprv_strcmp return int and in some platform, such as arm64-v8a,
+        // it may return positive values > 127 which cause the casted value
+        // of int8_t negative.
+        int res = uprv_strcmp(
             (const char*)e1.pointer, (const char*)e2.pointer);
+        return (res == 0) ? 0 : ((res > 0) ? 1 : -1);
     }, status);
 
     // A changed count to assert when loop too many times.

Reply via email to