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.
