summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2017-09-13 13:42:29 +0200
committerEike Rathke <erack@redhat.com>2017-09-13 13:43:12 +0200
commit9e399bc613bb4ea1470bd52c64af920d4e9bc39b (patch)
tree0190adc4700c0c0460b4a8c9355648a455491eaa
parent3f0fba004badec01e536ca0fe2889e7e0bb93d7a (diff)
icu: do not include non-standardized xlocale.h if U_PLATFORM_IS_LINUX_BASED
... should be more platforms ... but be conservative. U_PLATFORM_IMPLEMENTS_POSIX does not hold what it promises. "The file and this data structure is not standardized. Don't rely on it. It can go away without warning." ... And since glibc 2.26 it's gone. https://ssl.icu-project.org/trac/ticket/13329 Change-Id: I4c1f6130571f5d094cb35ce70e4d333763cee32a
-rw-r--r--external/icu/UnpackedTarball_icu.mk1
-rw-r--r--external/icu/icu4c-59-icu13329-xlocale.patch.114
2 files changed, 15 insertions, 0 deletions
diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
index 1ba15a448c75..7fa891f07d6d 100644
--- a/external/icu/UnpackedTarball_icu.mk
+++ b/external/icu/UnpackedTarball_icu.mk
@@ -35,6 +35,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\
external/icu/icu4c-59-werror-undef.patch.1 \
external/icu/icu4c-59-werror-shadow.patch.1 \
external/icu/icu4c-iOS.patch.1 \
+ external/icu/icu4c-59-icu13329-xlocale.patch.1 \
))
$(eval $(call gb_UnpackedTarball_add_file,icu,source/data/brkitr/khmerdict.dict,external/icu/khmerdict.dict))
diff --git a/external/icu/icu4c-59-icu13329-xlocale.patch.1 b/external/icu/icu4c-59-icu13329-xlocale.patch.1
new file mode 100644
index 000000000000..93e14d23fa5a
--- /dev/null
+++ b/external/icu/icu4c-59-icu13329-xlocale.patch.1
@@ -0,0 +1,14 @@
+# xlocale.h is gone with glibc 2.26 and should never had been included.
+# https://ssl.icu-project.org/trac/ticket/13329
+diff -ur icu.org/source/i18n/digitlst.cpp icu/source/i18n/digitlst.cpp
+--- icu.org/source/i18n/digitlst.cpp 2017-01-20 01:20:31.000000000 +0100
++++ icu/source/i18n/digitlst.cpp 2017-09-13 13:25:59.980160603 +0200
+@@ -63,6 +63,8 @@
+ #if U_USE_STRTOD_L
+ # if U_PLATFORM_USES_ONLY_WIN32_API || U_PLATFORM == U_PF_CYGWIN
+ # include <locale.h>
++# elif U_PLATFORM_IS_LINUX_BASED
++# include <ctype.h> // should be for all POSIX.2008 compliant platforms, but..
+ # else
+ # include <xlocale.h>
+ # endif