diff options
author | Eike Rathke <erack@redhat.com> | 2014-04-29 10:10:38 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2014-04-29 18:28:15 +0000 |
commit | 2d843bb104a3091a2ff2c7b4d5655f5fb1393a47 (patch) | |
tree | 409330add96b3352fa26b74355d4b4183f7b3df4 /external/icu | |
parent | fdo#76912: Write a test for this. (diff) | |
download | core-2d843bb104a3091a2ff2c7b4d5655f5fb1393a47.tar.gz core-2d843bb104a3091a2ff2c7b4d5655f5fb1393a47.zip |
upgrade to ICU 53.1, fdo#77071 related
plus further work in i18npool to make that build
adapt i18npool to ICU 53 upgrade, fdo#77071
Korean charset collator can't be built from ko_charset.txt because of
"The runtime code decomposes Hangul syllables on the fly, with recursive
processing but without making the Jamo pieces visible for matching. It
does not work with certain types of contextual mappings."
"While handling a Hangul syllable, contractions starting with Jamo L or
V would not see the following Jamo of that syllable." (this is where we
bail out already with the first syllable of ko_charset.txt)
Another condition to fail is described as "A contraction ending with
Jamo L or L+V would require generating Hangul syllables in
addTailComposites() (588 for a Jamo L), or decomposing a following
Hangul syllable on the fly, during contraction matching."
Excluded the file from the build for ICU >=53 and hope that ICU in the
mean time handles Korean collation correctly.
Additionally, ICU 53 took ages (if it would had finished at all) to
build the collator from zh_TW_charset.txt because of the \u#### escaped
notation. Converted the file's content to characters using
http://www.rishida.net/tools/conversion/
Change-Id: I64213214b4870e7077f72b95fee1ddc9782c2b21
Reviewed-on: https://gerrit.libreoffice.org/9204
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'external/icu')
-rw-r--r-- | external/icu/UnpackedTarball_icu.mk | 1 | ||||
-rw-r--r-- | external/icu/icu4c-buffer-overflow.patch | 4 | ||||
-rw-r--r-- | external/icu/icu4c-ubsan.patch.0 | 22 | ||||
-rw-r--r-- | external/icu/icu4c-wchar_t.patch | 10 |
4 files changed, 7 insertions, 30 deletions
diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk index c550f83ff834..77cd38a8bb1f 100644 --- a/external/icu/UnpackedTarball_icu.mk +++ b/external/icu/UnpackedTarball_icu.mk @@ -21,7 +21,6 @@ $(eval $(call gb_UnpackedTarball_add_patches,icu,\ external/icu/icu4c-mkdir.patch \ external/icu/icu4c-buffer-overflow.patch \ external/icu/icu4c-$(if $(filter ANDROID,$(OS)),android,rpath).patch \ - external/icu/icu4c-ubsan.patch.0 \ )) # vim: set noet sw=4 ts=4: diff --git a/external/icu/icu4c-buffer-overflow.patch b/external/icu/icu4c-buffer-overflow.patch index 46815634addd..fb5f8abbaa58 100644 --- a/external/icu/icu4c-buffer-overflow.patch +++ b/external/icu/icu4c-buffer-overflow.patch @@ -11,7 +11,7 @@ Index: icu/source/tools/pkgdata/pkgdata.cpp =================================================================== --- build/icu.orig/source/tools/pkgdata/pkgdata.cpp +++ build/icu/source/tools/pkgdata/pkgdata.cpp -@@ -1980,12 +1980,12 @@ +@@ -2060,12 +2060,12 @@ const char cmd[] = "icu-config --incpkgdatafile"; /* #1 try the same path where pkgdata was called from. */ @@ -22,7 +22,7 @@ Index: icu/source/tools/pkgdata/pkgdata.cpp - uprv_strncat(cmdBuf, U_FILE_SEP_STRING, 1024); + uprv_strncat(cmdBuf, U_FILE_SEP_STRING, sizeof(cmdBuf)-1-strlen(cmdBuf)); } -- uprv_strncat(cmdBuf, cmd, 1024); +- uprv_strncat(cmdBuf, cmd, 1023); + uprv_strncat(cmdBuf, cmd, sizeof(cmdBuf)-1-strlen(cmdBuf)); if(verbose) { diff --git a/external/icu/icu4c-ubsan.patch.0 b/external/icu/icu4c-ubsan.patch.0 deleted file mode 100644 index 991c537acc0a..000000000000 --- a/external/icu/icu4c-ubsan.patch.0 +++ /dev/null @@ -1,22 +0,0 @@ ---- source/common/ustring.cpp -+++ source/common/ustring.cpp -@@ -1486,7 +1486,7 @@ - */ - - #define STRING_HASH(TYPE, STR, STRLEN, DEREF) \ -- int32_t hash = 0; \ -+ uint32_t hash = 0; \ - const TYPE *p = (const TYPE*) STR; \ - if (p != NULL) { \ - int32_t len = (int32_t)(STRLEN); \ ---- source/i18n/ucol_tok.cpp -+++ source/i18n/ucol_tok.cpp -@@ -48,7 +48,7 @@ - static int32_t U_CALLCONV - uhash_hashTokens(const UHashTok k) - { -- int32_t hash = 0; -+ uint32_t hash = 0; - //uint32_t key = (uint32_t)k.integer; - UColToken *key = (UColToken *)k.pointer; - if (key != 0) { diff --git a/external/icu/icu4c-wchar_t.patch b/external/icu/icu4c-wchar_t.patch index b3eefe104a7f..4a8067c879ad 100644 --- a/external/icu/icu4c-wchar_t.patch +++ b/external/icu/icu4c-wchar_t.patch @@ -6,11 +6,11 @@ # /EHsc enables exception handling -# /Zc:wchar_t makes wchar_t a native type. Required for C++ ABI compatibility. # -D_CRT_SECURE_NO_DEPRECATE is needed to quiet warnings about using standard C functions. --CFLAGS+=/GF /nologo --CXXFLAGS+=/GF /nologo /EHsc /Zc:wchar_t -+CFLAGS+=/GF /nologo /Zc:wchar_t- -+CXXFLAGS+=/GF /nologo /EHsc /Zc:wchar_t- +-CFLAGS+=-GF -nologo +-CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t ++CFLAGS+=-GF -nologo -Zc:wchar_t- ++CXXFLAGS+=-GF -nologo -EHsc -Zc:wchar_t- CPPFLAGS+=-D_CRT_SECURE_NO_DEPRECATE DEFS+=-DWIN32 -DCYGWINMSVC - LDFLAGS+=/nologo + LDFLAGS+=-nologo |