1
0
mirror of https://git.yoctoproject.org/poky synced 2026-05-08 05:09:24 +00:00

icu: update to 64.1

License-update: copyright years changed.

Drop upstreamed/backported patches.

Add a patch to fix big endian build failure.

(From OE-Core rev: 929d37831624fce84580466c4408217c766410f0)

Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2019-04-18 17:59:14 +02:00
committed by Richard Purdie
parent 9fe634f797
commit 1bba6502c1
4 changed files with 32 additions and 95 deletions
@@ -0,0 +1,28 @@
From 9be0b489a94b57419202c552022f25cb95bfac51 Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Wed, 17 Apr 2019 16:41:58 +0200
Subject: [PATCH] Fix big-endian build
Bug-report: https://unicode-org.atlassian.net/browse/ICU-20533
Patch taken from: https://bugs.gentoo.org/682170
Upstream-Status: Pending
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
data/Makefile.in | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/source/data/Makefile.in b/source/data/Makefile.in
index 778b6c7..67203e7 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -148,7 +148,8 @@ ICUDATA_ARCHIVE = $(firstword $(wildcard $(srcdir)/in/$(ICUDATA_BASENAME_VERSION
# and convert it to the current type.
ifneq ($(ICUDATA_ARCHIVE),)
ICUDATA_SOURCE_ARCHIVE = $(OUTDIR)/$(ICUDATA_PLATFORM_NAME).dat
-$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE) $(OUTDIR)
+$(ICUDATA_SOURCE_ARCHIVE): $(ICUDATA_ARCHIVE)
+ $(MKINSTALLDIRS) $(OUTDIR)
$(INVOKE) $(TOOLBINDIR)/icupkg -t$(ICUDATA_CHAR) $(ICUDATA_ARCHIVE) $(ICUDATA_SOURCE_ARCHIVE)
endif
else
@@ -1,27 +0,0 @@
From fcfd57105b4bdb30d906df152ef01748fa95daff Mon Sep 17 00:00:00 2001
From: Alexey Brodkin <abrodkin@synopsys.com>
Date: Thu, 13 Sep 2018 17:13:20 +0300
Subject: [PATCH] icu: Add ARC support
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Upstream-Status: Submitted [ https://github.com/unicode-org/icu/pull/149 ]
---
i18n/double-conversion-utils.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/i18n/double-conversion-utils.h b/i18n/double-conversion-utils.h
index 57fc49b231a3..0bd3e8340673 100644
--- a/i18n/double-conversion-utils.h
+++ b/i18n/double-conversion-utils.h
@@ -86,7 +86,7 @@ inline void abort_noreturn() { abort(); }
defined(__SH4__) || defined(__alpha__) || \
defined(_MIPS_ARCH_MIPS32R2) || \
defined(__AARCH64EL__) || defined(__aarch64__) || \
- defined(__riscv)
+ defined(__riscv) || defined(__arc__)
#define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
#elif defined(__mc68000__)
#undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
2.17.1
@@ -1,63 +0,0 @@
CVE: CVE-2018-18928
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 53d8c8f3d181d87a6aa925b449b51c4a2c922a51 Mon Sep 17 00:00:00 2001
From: Shane Carr <shane@unicode.org>
Date: Mon, 29 Oct 2018 23:52:44 -0700
Subject: [PATCH] ICU-20246 Fixing another integer overflow in number parsing.
---
i18n/fmtable.cpp | 2 +-
i18n/number_decimalquantity.cpp | 5 ++++-
test/intltest/numfmtst.cpp | 8 ++++++++
6 files changed, 31 insertions(+), 4 deletions(-)
diff --git a/i18n/fmtable.cpp b/i18n/fmtable.cpp
index 45c7024fc29..8601d95f4a6 100644
--- a/i18n/fmtable.cpp
+++ b/i18n/fmtable.cpp
@@ -734,7 +734,7 @@ CharString *Formattable::internalGetCharString(UErrorCode &status) {
// not print scientific notation for magnitudes greater than -5 and smaller than some amount (+5?).
if (fDecimalQuantity->isZero()) {
fDecimalStr->append("0", -1, status);
- } else if (std::abs(fDecimalQuantity->getMagnitude()) < 5) {
+ } else if (fDecimalQuantity->getMagnitude() != INT32_MIN && std::abs(fDecimalQuantity->getMagnitude()) < 5) {
fDecimalStr->appendInvariantChars(fDecimalQuantity->toPlainString(), status);
} else {
fDecimalStr->appendInvariantChars(fDecimalQuantity->toScientificString(), status);
diff --git a/i18n/number_decimalquantity.cpp b/i18n/number_decimalquantity.cpp
index 47b930a564b..d5dd7ae694c 100644
--- a/i18n/number_decimalquantity.cpp
+++ b/i18n/number_decimalquantity.cpp
@@ -898,7 +898,10 @@ UnicodeString DecimalQuantity::toScientificString() const {
}
result.append(u'E');
int32_t _scale = upperPos + scale;
- if (_scale < 0) {
+ if (_scale == INT32_MIN) {
+ result.append({u"-2147483648", -1});
+ return result;
+ } else if (_scale < 0) {
_scale *= -1;
result.append(u'-');
} else {
diff --git a/test/intltest/numfmtst.cpp b/test/intltest/numfmtst.cpp
index 34355939113..8d52dc122bf 100644
--- a/test/intltest/numfmtst.cpp
+++ b/test/intltest/numfmtst.cpp
@@ -9226,6 +9226,14 @@ void NumberFormatTest::Test20037_ScientificIntegerOverflow() {
assertEquals(u"Should not overflow and should parse only the first exponent",
u"1E-2147483647",
{sp.data(), sp.length(), US_INV});
+
+ // Test edge case overflow of exponent
+ result = Formattable();
+ nf->parse(u".0003e-2147483644", result, status);
+ sp = result.getDecimalNumber(status);
+ assertEquals(u"Should not overflow",
+ u"3E-2147483648",
+ {sp.data(), sp.length(), US_INV});
}
void NumberFormatTest::Test13840_ParseLongStringCrash() {
@@ -1,6 +1,6 @@
require icu.inc
LIC_FILES_CHKSUM = "file://../LICENSE;md5=63752c57bd0b365c9af9f427ef79c819"
LIC_FILES_CHKSUM = "file://../LICENSE;md5=8bc5d32052a96f214cbdd1e53dfc935d"
def icu_download_version(d):
pvsplit = d.getVar('PV').split('.')
@@ -16,15 +16,14 @@ BASE_SRC_URI = "http://download.icu-project.org/files/icu4c/${PV}/icu4c-${ICU_PV
SRC_URI = "${BASE_SRC_URI} \
file://icu-pkgdata-large-cmd.patch \
file://fix-install-manx.patch \
file://0002-Add-ARC-support.patch \
file://CVE-2018-18928.patch \
file://0001-Fix-big-endian-build.patch \
"
SRC_URI_append_class-target = "\
file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
"
SRC_URI[md5sum] = "9e40f6055294284df958200e308bce50"
SRC_URI[sha256sum] = "05c490b69454fce5860b7e8e2821231674af0a11d7ef2febea9a32512998cb9d"
SRC_URI[md5sum] = "f150be2231c13bb45206d79e0242372b"
SRC_URI[sha256sum] = "92f1b7b9d51b396679c17f35a2112423361b8da3c1b9de00aa94fd768ae296e6"
UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
UPSTREAM_CHECK_URI = "http://download.icu-project.org/files/icu4c/"