icu: Fix compilation with uClibc-ng

uClibc-ng does not define these math functions in math.h , only in
tgmath.h. Therefore the cmath header will not work.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
This commit is contained in:
Rosen Penev 2019-05-01 12:35:37 -07:00
parent 4072e78dbe
commit ba4f02b1f0
No known key found for this signature in database
GPG Key ID: 36D31CFA845F0E3B
2 changed files with 23 additions and 1 deletions

View File

@ -11,7 +11,7 @@ PKG_NAME:=icu4c
MAJOR_VERSION:=64
MINOR_VERSION:=2
PKG_VERSION:=$(MAJOR_VERSION).$(MINOR_VERSION)
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(MAJOR_VERSION)_$(MINOR_VERSION)-src.tgz
PKG_SOURCE_URL:=https://github.com/unicode-org/icu/releases/download/release-$(MAJOR_VERSION)-$(MINOR_VERSION)

View File

@ -0,0 +1,22 @@
--- a/i18n/decimfmt.cpp
+++ b/i18n/decimfmt.cpp
@@ -1812,7 +1812,7 @@ bool DecimalFormat::fastFormatDouble(double input, UnicodeString& output) const
return false;
}
if (std::isnan(input)
- || std::trunc(input) != input
+ || trunc(input) != input
|| input <= INT32_MIN
|| input > INT32_MAX) {
return false;
--- a/i18n/number_decimalquantity.cpp
+++ b/i18n/number_decimalquantity.cpp
@@ -446,7 +446,7 @@ void DecimalQuantity::_setToDoubleFast(double n) {
for (; i <= -22; i += 22) n /= 1e22;
n /= DOUBLE_MULTIPLIERS[-i];
}
- auto result = static_cast<int64_t>(std::round(n));
+ auto result = static_cast<int64_t>(round(n));
if (result != 0) {
_setToLong(result);
scale -= fracLength;