summaryrefslogtreecommitdiff
path: root/external
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2017-05-29 14:25:57 +0200
committerEike Rathke <erack@redhat.com>2017-05-29 16:42:44 +0200
commit617aa72fe2c097183cb9dd73dd378d6fb0145208 (patch)
tree73c7c70b72d3684eec547c3d4cf519bdd42a362c /external
parent32d43cb00105e463cda42b926b829407f536cf1c (diff)
Resolves: tdf#108043 Revert "Upgrade to ICU 59.1"
As it would force us to not run on XP *AND* Vista anymore already with this 5.4 release. This is a combination of 4 commits. Revert "Add ICU ticket number for this patch" This reverts commit e24cd3818821971fe3c52820dafe0f5ccb4b023a. Revert "Add ICU ticket number for this patch" This reverts commit 8720877b8b6bc96e330842f7391ae49a21ec2f63. Revert "Upgrade to ICU 59.1 follow-up: only add icu/source/data/misc/icudata.rc" This reverts commit 89de6f62ae1e96d2c492cb5cd8f7d313b51e2f98. Revert "Upgrade to ICU 59.1" This reverts commit fabad007c60958f2ff87e8f636ff6a798ad1f963. Change-Id: Idd2bfecf7f3c148ee404322e7287ac236c46b6cf Reviewed-on: https://gerrit.libreoffice.org/38143 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins <ci@libreoffice.org>
Diffstat (limited to 'external')
-rw-r--r--external/firebird/ExternalProject_firebird.mk1
-rw-r--r--external/harfbuzz/ExternalProject_harfbuzz.mk4
-rw-r--r--external/icu/UnpackedTarball_icu.mk35
-rw-r--r--external/icu/clang-cl.patch.0 (renamed from external/icu/icu4c-clang-cl.patch.1)16
-rw-r--r--external/icu/icu-ubsan.patch.0 (renamed from external/icu/icu4c-ubsan.patch.1)68
-rw-r--r--external/icu/icu4c-59-werror-shadow.patch.175
-rw-r--r--external/icu/icu4c-59-werror-undef.patch.113
-rw-r--r--external/icu/icu4c-aix.patch (renamed from external/icu/icu4c-aix.patch.1)18
-rw-r--r--external/icu/icu4c-android.patch (renamed from external/icu/icu4c-android.patch.1)43
-rw-r--r--external/icu/icu4c-build.patch (renamed from external/icu/icu4c-build.patch.1)97
-rw-r--r--external/icu/icu4c-icu11100.patch.19
-rw-r--r--external/icu/icu4c-icudata-stdlibs.diff (renamed from external/icu/icu4c-icudata-stdlibs.patch.1)9
-rw-r--r--external/icu/icu4c-macosx.patch (renamed from external/icu/icu4c-macosx.patch.1)8
-rw-r--r--external/icu/icu4c-mkdir.patch (renamed from external/icu/icu4c-mkdir.patch.1)7
-rw-r--r--external/icu/icu4c-rpath.patch (renamed from external/icu/icu4c-rpath.patch.1)37
-rw-r--r--external/icu/icu4c-rtti.patch.112
-rw-r--r--external/icu/icu4c-scriptrun.patch (renamed from external/icu/icu4c-scriptrun.patch.1)20
-rw-r--r--external/icu/icu4c-solarisgcc.patch12
-rw-r--r--external/icu/icu4c-solarisgcc.patch.112
-rw-r--r--external/icu/icu4c-warnings.patch10
-rw-r--r--external/icu/icu4c-warnings.patch.111
-rw-r--r--external/icu/khmerbreakengine.patch (renamed from external/icu/icu4c-khmerbreakengine.patch.1)268
-rw-r--r--external/icu/rtti.patch.011
-rw-r--r--external/libcdr/ExternalProject_libcdr.mk2
-rw-r--r--external/libebook/ExternalProject_libebook.mk2
-rw-r--r--external/libfreehand/ExternalProject_libfreehand.mk1
-rw-r--r--external/libmspub/ExternalProject_libmspub.mk2
-rw-r--r--external/libvisio/ExternalProject_libvisio.mk2
28 files changed, 340 insertions, 465 deletions
diff --git a/external/firebird/ExternalProject_firebird.mk b/external/firebird/ExternalProject_firebird.mk
index 988a24b5ed74..361fffc86c64 100644
--- a/external/firebird/ExternalProject_firebird.mk
+++ b/external/firebird/ExternalProject_firebird.mk
@@ -66,7 +66,6 @@ $(call gb_ExternalProject_get_state_target,firebird,build):
-I$(call gb_UnpackedTarball_get_dir,icu)/source/i18n \
-I$(call gb_UnpackedTarball_get_dir,icu)/source/common \
) \
- $(ICU_UCHAR_TYPE) \
$(if $(SYSTEM_LIBTOMMATH),$(LIBTOMMATH_CFLAGS), \
-L$(call gb_UnpackedTarball_get_dir,libtommath) \
) \
diff --git a/external/harfbuzz/ExternalProject_harfbuzz.mk b/external/harfbuzz/ExternalProject_harfbuzz.mk
index 070c58ea80a7..53490abc2eaa 100644
--- a/external/harfbuzz/ExternalProject_harfbuzz.mk
+++ b/external/harfbuzz/ExternalProject_harfbuzz.mk
@@ -47,9 +47,7 @@ $(call gb_ExternalProject_get_state_target,harfbuzz,build) :
$(gb_COMPILERNOOPTFLAGS) $(gb_DEBUG_CFLAGS) \
$(gb_DEBUG_CXXFLAGS), \
$(gb_COMPILEROPTFLAGS)) \
- $(CXXFLAGS) \
- $(ICU_UCHAR_TYPE) \
- $(if $(filter LINUX,$(OS)),-fvisibility=hidden)' \
+ $(CXXFLAGS) $(if $(filter LINUX,$(OS)),-fvisibility=hidden)' \
&& (cd $(EXTERNAL_WORKDIR)/src && $(MAKE) lib) \
)
diff --git a/external/icu/UnpackedTarball_icu.mk b/external/icu/UnpackedTarball_icu.mk
index 1047fdebfeaf..fae37f5dd922 100644
--- a/external/icu/UnpackedTarball_icu.mk
+++ b/external/icu/UnpackedTarball_icu.mk
@@ -11,29 +11,22 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,icu))
$(eval $(call gb_UnpackedTarball_set_tarball,icu,$(ICU_TARBALL)))
-# Data zip contains data/... and needs to end up in icu/source/data/...
-# Only data/misc/icudata.rc is needed for a Cygwin/MSVC build.
-$(eval $(call gb_UnpackedTarball_set_pre_action,icu,\
- unzip -q -d source -o $(gb_UnpackedTarget_TARFILE_LOCATION)/$(ICU_DATA_TARBALL) data/misc/icudata.rc \
-))
-
$(eval $(call gb_UnpackedTarball_add_patches,icu,\
- external/icu/icu4c-build.patch.1 \
- external/icu/icu4c-aix.patch.1 \
- external/icu/icu4c-warnings.patch.1 \
- external/icu/icu4c-macosx.patch.1 \
- external/icu/icu4c-solarisgcc.patch.1 \
- external/icu/icu4c-mkdir.patch.1 \
- external/icu/icu4c-$(if $(filter ANDROID,$(OS)),android,rpath).patch.1 \
- external/icu/icu4c-ubsan.patch.1 \
+ external/icu/icu4c-build.patch \
+ external/icu/icu4c-aix.patch \
+ external/icu/icu4c-warnings.patch \
+ external/icu/icu4c-macosx.patch \
+ external/icu/icu4c-solarisgcc.patch \
+ external/icu/icu4c-mkdir.patch \
+ external/icu/icu4c-$(if $(filter ANDROID,$(OS)),android,rpath).patch \
+ external/icu/icu-ubsan.patch.0 \
external/icu/icu4c-icu11100.patch.1 \
- external/icu/icu4c-scriptrun.patch.1 \
- external/icu/icu4c-rtti.patch.1 \
- external/icu/icu4c-clang-cl.patch.1 \
- $(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.patch.1) \
- external/icu/icu4c-khmerbreakengine.patch.1 \
- external/icu/icu4c-59-werror-undef.patch.1 \
- external/icu/icu4c-59-werror-shadow.patch.1 \
+ external/icu/icu4c-scriptrun.patch \
+ external/icu/rtti.patch.0 \
+ external/icu/clang-cl.patch.0 \
+ $(if $(filter-out ANDROID,$(OS)),external/icu/icu4c-icudata-stdlibs.diff) \
+ external/icu/khmerbreakengine.patch \
+ external/icu/icu4c-changeset-39671.patch.1 \
))
$(eval $(call gb_UnpackedTarball_add_file,icu,source/data/brkitr/khmerdict.dict,external/icu/khmerdict.dict))
diff --git a/external/icu/icu4c-clang-cl.patch.1 b/external/icu/clang-cl.patch.0
index 9e287710a463..4df5d0f56c83 100644
--- a/external/icu/icu4c-clang-cl.patch.1
+++ b/external/icu/clang-cl.patch.0
@@ -1,21 +1,19 @@
-diff -ur icu.org/source/config/mh-cygwin-msvc icu/source/config/mh-cygwin-msvc
---- icu.org/source/config/mh-cygwin-msvc 2017-01-23 01:38:28.000000000 +0100
-+++ icu/source/config/mh-cygwin-msvc 2017-04-21 23:07:28.482892025 +0200
-@@ -55,8 +55,8 @@
+--- source/config/mh-cygwin-msvc
++++ source/config/mh-cygwin-msvc
+@@ -51,8 +51,8 @@
LDFLAGS+=-nologo
# Commands to compile
-COMPILE.c= $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
--COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
+COMPILE.c= true && $(CC) $(CPPFLAGS) $(DEFS) $(CFLAGS) -c
+-COMPILE.cc= $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
+COMPILE.cc= true && $(CXX) $(CPPFLAGS) $(DEFS) $(CXXFLAGS) -c
# Commands to link
LINK.c= LINK.EXE -subsystem:console $(LDFLAGS)
-diff -ur icu.org/source/runConfigureICU icu/source/runConfigureICU
---- icu.org/source/runConfigureICU 2017-01-23 01:38:28.000000000 +0100
-+++ icu/source/runConfigureICU 2017-04-21 23:07:28.482892025 +0200
-@@ -261,8 +261,8 @@
+--- source/runConfigureICU
++++ source/runConfigureICU
+@@ -259,8 +259,8 @@
Cygwin/MSVC)
THE_OS="Windows with Cygwin"
THE_COMP="Microsoft Visual C++"
diff --git a/external/icu/icu4c-ubsan.patch.1 b/external/icu/icu-ubsan.patch.0
index 56594005e9d0..f16503eeb4ac 100644
--- a/external/icu/icu4c-ubsan.patch.1
+++ b/external/icu/icu-ubsan.patch.0
@@ -1,7 +1,6 @@
-diff -ur icu.org/source/common/rbbidata.h icu/source/common/rbbidata.h
---- icu.org/source/common/rbbidata.h 2017-02-03 19:57:23.000000000 +0100
-+++ icu/source/common/rbbidata.h 2017-04-21 22:46:25.371651160 +0200
-@@ -115,7 +115,7 @@
+--- source/common/rbbidata.h
++++ source/common/rbbidata.h
+@@ -113,7 +113,7 @@
/* StatusTable of the set of matching */
/* tags (rule status values) */
int16_t fReserved;
@@ -10,7 +9,7 @@ diff -ur icu.org/source/common/rbbidata.h icu/source/common/rbbidata.h
/* This array does not have two elements */
/* Array Size is actually fData->fHeader->fCatCount */
/* CAUTION: see RBBITableBuilder::getTableSize() */
-@@ -128,7 +128,7 @@
+@@ -126,7 +126,7 @@
uint32_t fRowLen; /* Length of a state table row, in bytes. */
uint32_t fFlags; /* Option Flags for this state table */
uint32_t fReserved; /* reserved */
@@ -19,10 +18,9 @@ diff -ur icu.org/source/common/rbbidata.h icu/source/common/rbbidata.h
/* (making it char[] simplifies ugly address */
/* arithmetic for indexing variable length rows.) */
};
-diff -ur icu.org/source/common/rbbitblb.cpp icu/source/common/rbbitblb.cpp
---- icu.org/source/common/rbbitblb.cpp 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/common/rbbitblb.cpp 2017-04-21 22:46:25.373651159 +0200
-@@ -1095,15 +1095,15 @@
+--- source/common/rbbitblb.cpp
++++ source/common/rbbitblb.cpp
+@@ -1067,15 +1067,15 @@
return 0;
}
@@ -42,7 +40,7 @@ diff -ur icu.org/source/common/rbbitblb.cpp icu/source/common/rbbitblb.cpp
size += numRows * rowSize;
return size;
}
-@@ -1133,7 +1133,7 @@
+@@ -1105,7 +1105,7 @@
}
table->fRowLen = sizeof(RBBIStateTableRow) +
@@ -51,9 +49,8 @@ diff -ur icu.org/source/common/rbbitblb.cpp icu/source/common/rbbitblb.cpp
table->fNumStates = fDStates->size();
table->fFlags = 0;
if (fRB->fLookAheadHardBreak) {
-diff -ur icu.org/source/common/ubidiimp.h icu/source/common/ubidiimp.h
---- icu.org/source/common/ubidiimp.h 2017-02-03 19:57:23.000000000 +0100
-+++ icu/source/common/ubidiimp.h 2017-04-21 22:46:25.374651159 +0200
+--- source/common/ubidiimp.h
++++ source/common/ubidiimp.h
@@ -198,8 +198,8 @@
/* in a Run, logicalStart will get this bit set if the run level is odd */
#define INDEX_ODD_BIT (1UL<<31)
@@ -65,10 +62,9 @@ diff -ur icu.org/source/common/ubidiimp.h icu/source/common/ubidiimp.h
#define REMOVE_ODD_BIT(x) ((x)&=~INDEX_ODD_BIT)
#define GET_INDEX(x) ((x)&~INDEX_ODD_BIT)
-diff -ur icu.org/source/common/ucharstriebuilder.cpp icu/source/common/ucharstriebuilder.cpp
---- icu.org/source/common/ucharstriebuilder.cpp 2017-02-03 19:57:23.000000000 +0100
-+++ icu/source/common/ucharstriebuilder.cpp 2017-04-21 22:46:25.375651159 +0200
-@@ -287,7 +287,7 @@
+--- source/common/ucharstriebuilder.cpp
++++ source/common/ucharstriebuilder.cpp
+@@ -285,7 +285,7 @@
UCharsTrieBuilder::UCTLinearMatchNode::UCTLinearMatchNode(const UChar *units, int32_t len, Node *nextNode)
: LinearMatchNode(len, nextNode), s(units) {
@@ -77,10 +73,9 @@ diff -ur icu.org/source/common/ucharstriebuilder.cpp icu/source/common/ucharstri
}
UBool
-diff -ur icu.org/source/common/ucmndata.cpp icu/source/common/ucmndata.cpp
---- icu.org/source/common/ucmndata.cpp 2017-03-08 16:34:47.000000000 +0100
-+++ icu/source/common/ucmndata.cpp 2017-04-21 22:46:25.376651159 +0200
-@@ -77,7 +77,7 @@
+--- source/common/ucmndata.c
++++ source/common/ucmndata.c
+@@ -75,7 +75,7 @@
typedef struct {
uint32_t count;
uint32_t reserved;
@@ -89,10 +84,9 @@ diff -ur icu.org/source/common/ucmndata.cpp icu/source/common/ucmndata.cpp
} PointerTOC;
-diff -ur icu.org/source/common/ucmndata.h icu/source/common/ucmndata.h
---- icu.org/source/common/ucmndata.h 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/common/ucmndata.h 2017-04-21 22:46:25.377651159 +0200
-@@ -52,7 +52,7 @@
+--- source/common/ucmndata.h
++++ source/common/ucmndata.h
+@@ -50,7 +50,7 @@
typedef struct {
uint32_t count;
@@ -101,10 +95,9 @@ diff -ur icu.org/source/common/ucmndata.h icu/source/common/ucmndata.h
} UDataOffsetTOC;
/**
-diff -ur icu.org/source/common/unicode/stringtriebuilder.h icu/source/common/unicode/stringtriebuilder.h
---- icu.org/source/common/unicode/stringtriebuilder.h 2017-03-10 23:01:34.000000000 +0100
-+++ icu/source/common/unicode/stringtriebuilder.h 2017-04-21 22:47:43.395634383 +0200
-@@ -276,7 +276,7 @@
+--- source/common/unicode/stringtriebuilder.h
++++ source/common/unicode/stringtriebuilder.h
+@@ -269,7 +269,7 @@
void setValue(int32_t v) {
hasValue=TRUE;
value=v;
@@ -113,7 +106,7 @@ diff -ur icu.org/source/common/unicode/stringtriebuilder.h icu/source/common/uni
}
protected:
UBool hasValue;
-@@ -307,7 +307,7 @@
+@@ -296,7 +296,7 @@
class LinearMatchNode : public ValueNode {
public:
LinearMatchNode(int32_t len, Node *nextNode)
@@ -122,7 +115,7 @@ diff -ur icu.org/source/common/unicode/stringtriebuilder.h icu/source/common/uni
length(len), next(nextNode) {}
virtual UBool operator==(const Node &other) const;
virtual int32_t markRightEdgesFirst(int32_t edgeNumber);
-@@ -342,7 +342,7 @@
+@@ -330,7 +330,7 @@
equal[length]=NULL;
values[length]=value;
++length;
@@ -131,7 +124,7 @@ diff -ur icu.org/source/common/unicode/stringtriebuilder.h icu/source/common/uni
}
// Adds a unit which leads to another match node.
void add(int32_t c, Node *node) {
-@@ -350,7 +350,7 @@
+@@ -338,7 +338,7 @@
equal[length]=node;
values[length]=0;
++length;
@@ -140,16 +133,16 @@ diff -ur icu.org/source/common/unicode/stringtriebuilder.h icu/source/common/uni
}
protected:
Node *equal[kMaxBranchLinearSubNodeLength]; // NULL means "has final value".
-@@ -365,7 +365,7 @@
+@@ -353,7 +353,7 @@
class SplitBranchNode : public BranchNode {
public:
- SplitBranchNode(char16_t middleUnit, Node *lessThanNode, Node *greaterOrEqualNode)
+ SplitBranchNode(UChar middleUnit, Node *lessThanNode, Node *greaterOrEqualNode)
- : BranchNode(((0x555555*37+middleUnit)*37+
+ : BranchNode(((0x555555U*37+middleUnit)*37+
hashCode(lessThanNode))*37+hashCode(greaterOrEqualNode)),
unit(middleUnit), lessThan(lessThanNode), greaterOrEqual(greaterOrEqualNode) {}
virtual UBool operator==(const Node &other) const;
-@@ -382,7 +382,7 @@
+@@ -370,7 +370,7 @@
class BranchHeadNode : public ValueNode {
public:
BranchHeadNode(int32_t len, Node *subNode)
@@ -158,9 +151,8 @@ diff -ur icu.org/source/common/unicode/stringtriebuilder.h icu/source/common/uni
length(len), next(subNode) {}
virtual UBool operator==(const Node &other) const;
virtual int32_t markRightEdgesFirst(int32_t edgeNumber);
-diff -ur icu.org/source/i18n/collationdatareader.cpp icu/source/i18n/collationdatareader.cpp
---- icu.org/source/i18n/collationdatareader.cpp 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/i18n/collationdatareader.cpp 2017-04-21 22:46:25.380651158 +0200
+--- source/i18n/collationdatareader.cpp
++++ source/i18n/collationdatareader.cpp
@@ -419,6 +419,7 @@
tailoring.data, ts, fastLatinPrimaries, UPRV_LENGTHOF(fastLatinPrimaries));
if(options == ts.options && ts.variableTop != 0 &&
diff --git a/external/icu/icu4c-59-werror-shadow.patch.1 b/external/icu/icu4c-59-werror-shadow.patch.1
deleted file mode 100644
index 2031f80cb908..000000000000
--- a/external/icu/icu4c-59-werror-shadow.patch.1
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -ur icu.org/source/common/unicode/char16ptr.h icu/source/common/unicode/char16ptr.h
-# https://ssl.icu-project.org/trac/ticket/13176
---- icu.org/source/common/unicode/char16ptr.h 2017-03-29 06:44:37.000000000 +0200
-+++ icu/source/common/unicode/char16ptr.h 2017-04-24 11:56:47.707572355 +0200
-@@ -107,14 +107,14 @@
-
- #ifdef U_ALIASING_BARRIER
-
--Char16Ptr::Char16Ptr(char16_t *p) : p(p) {}
-+Char16Ptr::Char16Ptr(char16_t *p_) : p(p_) {}
- #if !U_CHAR16_IS_TYPEDEF
--Char16Ptr::Char16Ptr(uint16_t *p) : p(cast(p)) {}
-+Char16Ptr::Char16Ptr(uint16_t *p_) : p(cast(p_)) {}
- #endif
- #if U_SIZEOF_WCHAR_T==2
--Char16Ptr::Char16Ptr(wchar_t *p) : p(cast(p)) {}
-+Char16Ptr::Char16Ptr(wchar_t *p_) : p(cast(p_)) {}
- #endif
--Char16Ptr::Char16Ptr(std::nullptr_t p) : p(p) {}
-+Char16Ptr::Char16Ptr(std::nullptr_t p_) : p(p_) {}
- Char16Ptr::~Char16Ptr() {
- U_ALIASING_BARRIER(p);
- }
-@@ -215,14 +215,14 @@
-
- #ifdef U_ALIASING_BARRIER
-
--ConstChar16Ptr::ConstChar16Ptr(const char16_t *p) : p(p) {}
-+ConstChar16Ptr::ConstChar16Ptr(const char16_t *p_) : p(p_) {}
- #if !U_CHAR16_IS_TYPEDEF
--ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p) : p(cast(p)) {}
-+ConstChar16Ptr::ConstChar16Ptr(const uint16_t *p_) : p(cast(p_)) {}
- #endif
- #if U_SIZEOF_WCHAR_T==2
--ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) : p(cast(p)) {}
-+ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p_) : p(cast(p_)) {}
- #endif
--ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p(p) {}
-+ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p_) : p(p_) {}
- ConstChar16Ptr::~ConstChar16Ptr() {
- U_ALIASING_BARRIER(p);
- }
-diff -ur icu.org/source/common/unicode/unistr.h icu/source/common/unicode/unistr.h
---- icu.org/source/common/unicode/unistr.h 2017-03-29 06:44:37.000000000 +0200
-+++ icu/source/common/unicode/unistr.h 2017-04-24 11:59:51.782076511 +0200
-@@ -3080,11 +3080,11 @@
- * uint16_t * constructor.
- * Delegates to UnicodeString(const char16_t *, int32_t).
- * @param text UTF-16 string
-- * @param length string length
-+ * @param length_ string length
- * @draft ICU 59
- */
-- UnicodeString(const uint16_t *text, int32_t length) :
-- UnicodeString(ConstChar16Ptr(text), length) {}
-+ UnicodeString(const uint16_t *text, int32_t length_) :
-+ UnicodeString(ConstChar16Ptr(text), length_) {}
- #endif
-
- /*
-@@ -3097,11 +3097,11 @@
- * (Only defined if U_SIZEOF_WCHAR_T==2.)
- * Delegates to UnicodeString(const char16_t *, int32_t).
- * @param text NUL-terminated UTF-16 string
-- * @param length string length
-+ * @param length_ string length
- * @draft ICU 59
- */
-- UnicodeString(const wchar_t *text, int32_t length) :
-- UnicodeString(ConstChar16Ptr(text), length) {}
-+ UnicodeString(const wchar_t *text, int32_t length_) :
-+ UnicodeString(ConstChar16Ptr(text), length_) {}
- #endif
-
- /*
diff --git a/external/icu/icu4c-59-werror-undef.patch.1 b/external/icu/icu4c-59-werror-undef.patch.1
deleted file mode 100644
index 0792e7357257..000000000000
--- a/external/icu/icu4c-59-werror-undef.patch.1
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ur icu.org/source/common/unicode/uvernum.h icu/source/common/unicode/uvernum.h
-# https://ssl.icu-project.org/trac/ticket/13175
---- icu.org/source/common/unicode/uvernum.h 2017-03-21 02:03:49.000000000 +0100
-+++ icu/source/common/unicode/uvernum.h 2017-04-21 23:44:55.123597927 +0200
-@@ -125,7 +125,7 @@
- * This value will change in the subsequent releases of ICU
- * @stable ICU 2.6
- */
--#if U_PLATFORM_HAS_WINUWP_API == 0
-+#if !defined(U_PLATFORM_HAS_WINUWP_API) || (U_PLATFORM_HAS_WINUWP_API == 0)
- #define U_ICU_VERSION_SHORT "59"
- #else
- // U_DISABLE_RENAMING does not impact dat file name
diff --git a/external/icu/icu4c-aix.patch.1 b/external/icu/icu4c-aix.patch
index 77982163b965..f4a449f9b423 100644
--- a/external/icu/icu4c-aix.patch.1
+++ b/external/icu/icu4c-aix.patch
@@ -1,7 +1,6 @@
-diff -ur icu.org/source/config/mh-aix-gcc icu/source/config/mh-aix-gcc
---- icu.org/source/config/mh-aix-gcc 2016-06-15 20:58:17.000000000 +0200
-+++ icu/source/config/mh-aix-gcc 2017-04-21 21:58:49.731432198 +0200
-@@ -18,84 +18,29 @@
+--- misc/icu/source/config/mh-aix-gcc 2010-06-24 20:58:16.000000000 -0500
++++ misc/build/icu/source/config/mh-aix-gcc 2013-10-31 20:34:16.607982310 +0700
+@@ -13,84 +13,29 @@
GEN_DEPS.c= $(CC) -E -MM $(DEFS) $(CPPFLAGS)
GEN_DEPS.cc= $(CXX) -E -MM $(DEFS) $(CPPFLAGS)
@@ -98,7 +97,7 @@ diff -ur icu.org/source/config/mh-aix-gcc icu/source/config/mh-aix-gcc
## Compilation rules
%.$(STATIC_O): $(srcdir)/%.c
-@@ -123,10 +68,10 @@
+@@ -118,10 +63,10 @@
[ -s $@ ] || rm -f $@'
## Versioned libraries rules
@@ -113,10 +112,9 @@ diff -ur icu.org/source/config/mh-aix-gcc icu/source/config/mh-aix-gcc
## BIR - bind with internal references [so app data and icu data doesn't collide]
-diff -ur icu.org/source/tools/pkgdata/pkgdata.cpp icu/source/tools/pkgdata/pkgdata.cpp
---- icu.org/source/tools/pkgdata/pkgdata.cpp 2017-03-21 02:03:49.000000000 +0100
-+++ icu/source/tools/pkgdata/pkgdata.cpp 2017-04-21 21:58:49.732432195 +0200
-@@ -934,7 +934,7 @@
+--- misc/icu/source/tools/pkgdata/pkgdata.cpp 2013-04-06 20:56:00.935656635 +0100
++++ misc/build/icu/source/tools/pkgdata/pkgdata.cpp 2013-10-31 20:38:10.623984554 +0700
+@@ -902,7 +902,7 @@
uprv_strcat(pkgDataFlags[SO_EXT], ".");
uprv_strcat(pkgDataFlags[SO_EXT], pkgDataFlags[A_EXT]);
@@ -125,7 +123,7 @@ diff -ur icu.org/source/tools/pkgdata/pkgdata.cpp icu/source/tools/pkgdata/pkgda
sprintf(libFileNames[LIB_FILE_VERSION_TMP], "%s%s%s",
libFileNames[LIB_FILE],
FILE_EXTENSION_SEP,
-@@ -1407,15 +1407,6 @@
+@@ -1375,15 +1375,6 @@
pkgDataFlags[LDICUDTFLAGS],
targetDir,
libFileNames[LIB_FILE_CYGWIN_VERSION],
diff --git a/external/icu/icu4c-android.patch.1 b/external/icu/icu4c-android.patch
index c62cf54e5936..0b320a8cad81 100644
--- a/external/icu/icu4c-android.patch.1
+++ b/external/icu/icu4c-android.patch
@@ -1,19 +1,6 @@
-diff -ur icu.org/source/common/unicode/platform.h icu/source/common/unicode/platform.h
---- icu.org/source/common/unicode/platform.h 2017-03-22 20:06:26.000000000 +0100
-+++ icu/source/common/unicode/platform.h 2017-04-21 22:32:31.656693147 +0200
-@@ -818,7 +818,7 @@
- #elif defined(U_STATIC_IMPLEMENTATION)
- # define U_EXPORT
- #elif defined(__GNUC__)
--# define U_EXPORT __attribute__((visibility("default")))
-+# define U_EXPORT
- #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \
- || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550)
- # define U_EXPORT __global
-diff -ur icu.org/source/config/mh-linux icu/source/config/mh-linux
---- icu.org/source/config/mh-linux 2016-06-15 20:58:17.000000000 +0200
-+++ icu/source/config/mh-linux 2017-04-21 22:32:31.653693154 +0200
-@@ -27,7 +27,7 @@
+--- misc/icu/source/config/mh-linux 2013-10-05 03:50:00.000000000 +0700
++++ misc/build/icu/source/config/mh-linux 2013-11-10 17:11:46.856222557 +0700
+@@ -25,7 +25,7 @@
## Compiler switch to embed a library name
# The initial tab in the next line is to prevent icu-config from reading it.
@@ -22,10 +9,9 @@ diff -ur icu.org/source/config/mh-linux icu/source/config/mh-linux
#SH# # We can't depend on MIDDLE_SO_TARGET being set.
#SH# LD_SONAME=
-diff -ur icu.org/source/configure icu/source/configure
---- icu.org/source/configure 2017-04-07 09:40:30.000000000 +0200
-+++ icu/source/configure 2017-04-21 22:32:31.656693147 +0200
-@@ -5134,7 +5134,7 @@
+--- misc/icu/source/configure 2013-10-05 03:54:58.000000000 +0700
++++ misc/build/icu/source/configure 2013-11-10 17:19:19.200218763 +0700
+@@ -4872,7 +4872,7 @@
else
icu_cv_host_frag=mh-linux-va
fi ;;
@@ -34,7 +20,7 @@ diff -ur icu.org/source/configure icu/source/configure
i[34567]86-*-cygwin)
if test "$GCC" = yes; then
icu_cv_host_frag=mh-cygwin
-@@ -6358,6 +6358,10 @@
+@@ -6032,6 +6032,10 @@
# Check to see if genccode can generate simple assembly.
GENCCODE_ASSEMBLY=
case "${host}" in
@@ -45,7 +31,7 @@ diff -ur icu.org/source/configure icu/source/configure
*-linux*|*-kfreebsd*-gnu*|i*86-*-*bsd*|i*86-pc-gnu)
if test "$GCC" = yes; then
# We're using gcc, and the simple -a gcc command line works for genccode
-@@ -7445,6 +7449,10 @@
+@@ -7104,6 +7108,10 @@
# wchar_t can be used
CHECK_UTF16_STRING_RESULT="available"
;;
@@ -56,3 +42,16 @@ diff -ur icu.org/source/configure icu/source/configure
*)
;;
esac
+
+--- misc/icu/source/common/unicode/platform.h 2013-10-05 03:49:10.000000000 +0700
++++ misc/build/icu/source/common/unicode/platform.h 2013-11-10 17:22:27.160217186 +0700
+@@ -703,7 +703,7 @@
+ #elif defined(U_STATIC_IMPLEMENTATION)
+ # define U_EXPORT
+ #elif defined(__GNUC__)
+-# define U_EXPORT __attribute__((visibility("default")))
++# define U_EXPORT
+ #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \
+ || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550)
+ # define U_EXPORT __global
+
diff --git a/external/icu/icu4c-build.patch.1 b/external/icu/icu4c-build.patch
index 6d9ade608cb5..103e9aea5b64 100644
--- a/external/icu/icu4c-build.patch.1
+++ b/external/icu/icu4c-build.patch
@@ -1,7 +1,48 @@
-diff -ur icu.org/source/config/mh-darwin icu/source/config/mh-darwin
---- icu.org/source/config/mh-darwin 2016-06-15 20:58:17.000000000 +0200
-+++ icu/source/config/mh-darwin 2017-04-21 21:30:23.584568210 +0200
-@@ -30,11 +30,7 @@
+--- misc/icu/source/tools/toolutil/pkg_genc.h
++++ misc/build/icu/source/tools/toolutil/pkg_genc.h
+@@ -58,7 +58,7 @@
+ #endif
+
+ #define LARGE_BUFFER_MAX_SIZE 2048
+-#define SMALL_BUFFER_MAX_SIZE 512
++#define SMALL_BUFFER_MAX_SIZE 2048
+ #define SMALL_BUFFER_FLAG_NAMES 32
+ #define BUFFER_PADDING_SIZE 20
+
+--- misc/icu/source/tools/toolutil/pkg_genc.c
++++ misc/build/icu/source/tools/toolutil/pkg_genc.c
+@@ -152,6 +152,28 @@
+
+ ".long ","",HEX_0X
+ },
++ {"gcc-android-arm",
++ "\t.arch armv5te\n"
++ "\t.fpu softvfp\n"
++ "\t.eabi_attribute 20, 1\n"
++ "\t.eabi_attribute 21, 1\n"
++ "\t.eabi_attribute 23, 3\n"
++ "\t.eabi_attribute 24, 1\n"
++ "\t.eabi_attribute 25, 1\n"
++ "\t.eabi_attribute 26, 2\n"
++ "\t.eabi_attribute 30, 6\n"
++ "\t.eabi_attribute 18, 4\n"
++ "\t.file \"%s.s\"\n"
++ "\t.global %s\n"
++ "\t.section .rodata\n"
++ "\t.align 2\n"
++ "\t.type %s, %%object\n"
++ "%s:\n",
++
++ "\t.word ",
++ "\t.section .note.GNU-stack,\"\",%%progbits\n",
++ HEX_0X
++ },
+ /* 16 bytes alignment. */
+ /* http://docs.oracle.com/cd/E19641-01/802-1947/802-1947.pdf */
+ {"sun",
+--- misc/icu/source/config/mh-darwin 2010-09-29 20:37:36.000000000 +0200
++++ misc/build/icu/source/config/mh-darwin 2011-03-15 10:56:26.653056004 +0100
+@@ -28,11 +28,7 @@
SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS) $(LD_SOOPTIONS)
## Compiler switches to embed a library name and version information
@@ -14,7 +55,7 @@ diff -ur icu.org/source/config/mh-darwin icu/source/config/mh-darwin
## Compiler switch to embed a runtime search path
LD_RPATH=
-@@ -50,10 +46,6 @@
+@@ -48,10 +44,6 @@
## Non-shared intermediate object suffix
STATIC_O = ao
@@ -25,7 +66,7 @@ diff -ur icu.org/source/config/mh-darwin icu/source/config/mh-darwin
## Compilation and dependency rules
%.$(STATIC_O): $(srcdir)/%.c
$(call SILENT_COMPILE,$(strip $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS)) -MMD -MT "$*.d $*.o $*.$(STATIC_O)" -o $@ $<)
-@@ -67,16 +59,10 @@
+@@ -65,16 +57,10 @@
## Versioned libraries rules
@@ -45,47 +86,3 @@ diff -ur icu.org/source/config/mh-darwin icu/source/config/mh-darwin
## Remove shared library 's'
STATIC_PREFIX_WHEN_USED =
-diff -ur icu.org/source/tools/toolutil/pkg_genc.cpp icu/source/tools/toolutil/pkg_genc.cpp
---- icu.org/source/tools/toolutil/pkg_genc.cpp 2017-04-13 11:46:02.000000000 +0200
-+++ icu/source/tools/toolutil/pkg_genc.cpp 2017-04-21 21:30:23.583568212 +0200
-@@ -160,6 +160,28 @@
-
- ".long ","",HEX_0X
- },
-+ {"gcc-android-arm",
-+ "\t.arch armv5te\n"
-+ "\t.fpu softvfp\n"
-+ "\t.eabi_attribute 20, 1\n"
-+ "\t.eabi_attribute 21, 1\n"
-+ "\t.eabi_attribute 23, 3\n"
-+ "\t.eabi_attribute 24, 1\n"
-+ "\t.eabi_attribute 25, 1\n"
-+ "\t.eabi_attribute 26, 2\n"
-+ "\t.eabi_attribute 30, 6\n"
-+ "\t.eabi_attribute 18, 4\n"
-+ "\t.file \"%s.s\"\n"
-+ "\t.global %s\n"
-+ "\t.section .rodata\n"
-+ "\t.align 2\n"
-+ "\t.type %s, %%object\n"
-+ "%s:\n",
-+
-+ "\t.word ",
-+ "\t.section .note.GNU-stack,\"\",%%progbits\n",
-+ HEX_0X
-+ },
- /* 16 bytes alignment. */
- /* http://docs.oracle.com/cd/E19641-01/802-1947/802-1947.pdf */
- {"sun",
-diff -ur icu.org/source/tools/toolutil/pkg_genc.h icu/source/tools/toolutil/pkg_genc.h
---- icu.org/source/tools/toolutil/pkg_genc.h 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/tools/toolutil/pkg_genc.h 2017-04-21 21:30:23.582568215 +0200
-@@ -60,7 +60,7 @@
- #endif
-
- #define LARGE_BUFFER_MAX_SIZE 2048
--#define SMALL_BUFFER_MAX_SIZE 512
-+#define SMALL_BUFFER_MAX_SIZE 2048
- #define SMALL_BUFFER_FLAG_NAMES 32
- #define BUFFER_PADDING_SIZE 20
-
diff --git a/external/icu/icu4c-icu11100.patch.1 b/external/icu/icu4c-icu11100.patch.1
index 2f0e390961c1..18bfe4f1c9c2 100644
--- a/external/icu/icu4c-icu11100.patch.1
+++ b/external/icu/icu4c-icu11100.patch.1
@@ -1,7 +1,6 @@
-diff -ur icu.org/source/common/ubidi.cpp icu/source/common/ubidi.cpp
---- icu.org/source/common/ubidi.cpp 2017-03-07 23:57:46.000000000 +0100
-+++ icu/source/common/ubidi.cpp 2017-04-21 22:55:11.352659142 +0200
-@@ -2125,6 +2125,14 @@
+--- icu/source/common/ubidi.c.orig 2014-08-09 20:54:39.338833533 +0100
++++ icu/source/common/ubidi.c 2014-08-09 20:55:48.625469055 +0100
+@@ -2096,6 +2096,14 @@
return DirProp_ON;
}
@@ -16,7 +15,7 @@ diff -ur icu.org/source/common/ubidi.cpp icu/source/common/ubidi.cpp
static void
resolveImplicitLevels(UBiDi *pBiDi,
int32_t start, int32_t limit,
-@@ -2271,7 +2279,7 @@
+@@ -2239,7 +2247,7 @@
/* look for the last char not a BN or LRE/RLE/LRO/RLO/PDF */
for(i=limit-1; i>start&&(DIRPROP_FLAG(dirProps[i])&MASK_BN_EXPLICIT); i--);
dirProp=dirProps[i];
diff --git a/external/icu/icu4c-icudata-stdlibs.patch.1 b/external/icu/icu4c-icudata-stdlibs.diff
index c8d66c6ed06f..16bea7b4a995 100644
--- a/external/icu/icu4c-icudata-stdlibs.patch.1
+++ b/external/icu/icu4c-icudata-stdlibs.diff
@@ -1,7 +1,8 @@
-diff -ur icu.org/source/config/mh-linux icu/source/config/mh-linux
---- icu.org/source/config/mh-linux 2017-04-21 23:09:57.588533707 +0200
-+++ icu/source/config/mh-linux 2017-04-21 23:11:38.075292226 +0200
-@@ -27,7 +27,9 @@
+Index: icu-52~m1/source/config/mh-linux
+===================================================================
+--- build/icu-52~m1.orig/source/config/mh-linux 2013-09-14 18:53:23.284040467 -0400
++++ build/icu-52~m1/source/config/mh-linux 2013-09-14 18:53:23.284040467 -0400
+@@ -21,7 +21,9 @@
RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN'
## These are the library specific LDFLAGS
diff --git a/external/icu/icu4c-macosx.patch.1 b/external/icu/icu4c-macosx.patch
index fee08eb05771..8f9f9a75507e 100644
--- a/external/icu/icu4c-macosx.patch.1
+++ b/external/icu/icu4c-macosx.patch
@@ -1,7 +1,6 @@
-diff -ur icu.org/source/common/putil.cpp icu/source/common/putil.cpp
---- icu.org/source/common/putil.cpp 2017-04-10 16:22:16.000000000 +0200
-+++ icu/source/common/putil.cpp 2017-04-21 22:14:09.940217733 +0200
-@@ -1198,8 +1198,16 @@
+--- misc/icu/source/common/putil.cpp
++++ misc/build/icu/source/common/putil.cpp
+@@ -1111,8 +1111,16 @@
static const time_t decemberSolstice=1198332540; /*2007-12-22 06:09 UT*/
/* This probing will tell us when daylight savings occurs. */
@@ -18,3 +17,4 @@ diff -ur icu.org/source/common/putil.cpp icu/source/common/putil.cpp
if(decemberSol.tm_isdst > 0) {
daylightType = U_DAYLIGHT_DECEMBER;
} else if(juneSol.tm_isdst > 0) {
+
diff --git a/external/icu/icu4c-mkdir.patch.1 b/external/icu/icu4c-mkdir.patch
index 3234f151b677..094ddd5abca4 100644
--- a/external/icu/icu4c-mkdir.patch.1
+++ b/external/icu/icu4c-mkdir.patch
@@ -1,7 +1,6 @@
-diff -ur icu.org/source/data/Makefile.in icu/source/data/Makefile.in
---- icu.org/source/data/Makefile.in 2016-06-15 20:58:17.000000000 +0200
-+++ icu/source/data/Makefile.in 2017-04-21 22:29:00.747158002 +0200
-@@ -367,6 +367,7 @@
+--- misc/icu/source/dataMakefile.in.sav 2012-04-05 22:49:20.000000000 +0200
++++ build/icu/source/data/Makefile.in 2012-12-04 14:24:40.548026700 +0100
+@@ -363,6 +363,7 @@
ifeq ($(PKGDATA_MODE),dll)
SO_VERSION_DATA = $(OUTTMPDIR)/icudata.res
$(SO_VERSION_DATA) : $(MISCSRCDIR)/icudata.rc
diff --git a/external/icu/icu4c-rpath.patch.1 b/external/icu/icu4c-rpath.patch
index debbab1a6e3d..ba1a82595aea 100644
--- a/external/icu/icu4c-rpath.patch.1
+++ b/external/icu/icu4c-rpath.patch
@@ -1,21 +1,6 @@
-diff -ur icu.org/source/config/mh-linux icu/source/config/mh-linux
---- icu.org/source/config/mh-linux 2016-06-15 20:58:17.000000000 +0200
-+++ icu/source/config/mh-linux 2017-04-21 22:38:18.893927819 +0200
-@@ -22,6 +22,10 @@
- LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN
- LD_RPATH_PRE = -Wl,-rpath,
-
-+## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH:
-+ENABLE_RPATH=YES
-+RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN'
-+
- ## These are the library specific LDFLAGS
- LDFLAGSICUDT=-nodefaultlibs -nostdlib
-
-diff -ur icu.org/source/data/pkgdataMakefile.in icu/source/data/pkgdataMakefile.in
---- icu.org/source/data/pkgdataMakefile.in 2016-06-15 20:58:17.000000000 +0200
-+++ icu/source/data/pkgdataMakefile.in 2017-04-21 22:38:18.892927822 +0200
-@@ -17,6 +17,9 @@
+--- misc/icu/source/data/pkgdataMakefile.in 2010-12-22 23:44:02.000000000 +0100
++++ misc/build/icu/source/data/pkgdataMakefile.in 2011-01-03 17:52:44.000000000 +0100
+@@ -15,6 +15,9 @@ include $(top_builddir)/icudefs.mk
OUTPUTFILE=icupkg.inc
MIDDLE_SO_TARGET=
@@ -25,7 +10,7 @@ diff -ur icu.org/source/data/pkgdataMakefile.in icu/source/data/pkgdataMakefile.
all : clean
@echo GENCCODE_ASSEMBLY_TYPE=$(GENCCODE_ASSEMBLY) >> $(OUTPUTFILE)
@echo SO=$(SO) >> $(OUTPUTFILE)
-@@ -26,7 +29,7 @@
+@@ -24,7 +27,7 @@ all : clean
@echo LIB_EXT_ORDER=$(FINAL_SO_TARGET) >> $(OUTPUTFILE)
@echo COMPILE="$(COMPILE.c)" >> $(OUTPUTFILE)
@echo LIBFLAGS="-I$(top_srcdir)/common -I$(top_builddir)/common $(SHAREDLIBCPPFLAGS) $(SHAREDLIBCFLAGS)" >> $(OUTPUTFILE)
@@ -34,3 +19,17 @@ diff -ur icu.org/source/data/pkgdataMakefile.in icu/source/data/pkgdataMakefile.
@echo LDICUDTFLAGS=$(LDFLAGSICUDT) >> $(OUTPUTFILE)
@echo LD_SONAME=$(LD_SONAME) >> $(OUTPUTFILE)
@echo RPATH_FLAGS=$(RPATH_FLAGS) >> $(OUTPUTFILE)
+--- misc/icu/source/config/mh-linux 2010-09-29 20:37:36.000000000 +0200
++++ misc/build/icu/source/config/mh-linux 2011-03-15 10:56:26.653056004 +0100
+@@ -20,6 +20,10 @@
+ LD_RPATH= -Wl,-zorigin,-rpath,'$$'ORIGIN
+ LD_RPATH_PRE = -Wl,-rpath,
+
++## Force RPATH=$ORIGIN to locate own dependencies w/o need for LD_LIBRARY_PATH:
++ENABLE_RPATH=YES
++RPATHLDFLAGS=${LD_RPATH_PRE}'$$ORIGIN'
++
+ ## These are the library specific LDFLAGS
+ LDFLAGSICUDT=-nodefaultlibs -nostdlib
+
+
diff --git a/external/icu/icu4c-rtti.patch.1 b/external/icu/icu4c-rtti.patch.1
deleted file mode 100644
index c058c7f3c87e..000000000000
--- a/external/icu/icu4c-rtti.patch.1
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur icu.org/source/config/mh-linux icu/source/config/mh-linux
---- icu.org/source/config/mh-linux 2017-04-21 23:01:23.257769703 +0200
-+++ icu/source/config/mh-linux 2017-04-21 23:03:23.166481552 +0200
-@@ -36,7 +36,7 @@
- #SH# LD_SONAME=
-
- ## Shared library options
--LD_SOOPTIONS= -Wl,-Bsymbolic
-+LD_SOOPTIONS= -Wl,-Bsymbolic-functions
-
- ## Shared object suffix
- SO = so
diff --git a/external/icu/icu4c-scriptrun.patch.1 b/external/icu/icu4c-scriptrun.patch
index fe81d19c846e..e307811acaad 100644
--- a/external/icu/icu4c-scriptrun.patch.1
+++ b/external/icu/icu4c-scriptrun.patch
@@ -1,7 +1,6 @@
-diff -ur icu.org/source/extra/scrptrun/scrptrun.cpp icu/source/extra/scrptrun/scrptrun.cpp
---- icu.org/source/extra/scrptrun/scrptrun.cpp 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/extra/scrptrun/scrptrun.cpp 2017-04-21 22:59:31.708037770 +0200
-@@ -151,7 +151,11 @@
+--- misc/icu/source/extra/scrptrun/scrptrun.cpp
++++ misc/build/icu/source/extra/scrptrun/scrptrun.cpp
+@@ -150,7 +150,11 @@
// characters above it on the stack will be poped.
if (pairIndex >= 0) {
if ((pairIndex & 1) == 0) {
@@ -14,7 +13,7 @@ diff -ur icu.org/source/extra/scrptrun/scrptrun.cpp icu/source/extra/scrptrun/sc
parenStack[parenSP].scriptCode = scriptCode;
} else if (parenSP >= 0) {
int32_t pi = pairIndex & ~1;
-@@ -185,7 +189,14 @@
+@@ -184,7 +188,14 @@
// pop it from the stack
if (pairIndex >= 0 && (pairIndex & 1) != 0 && parenSP >= 0) {
parenSP -= 1;
@@ -30,10 +29,9 @@ diff -ur icu.org/source/extra/scrptrun/scrptrun.cpp icu/source/extra/scrptrun/sc
}
} else {
// if the run broke on a surrogate pair,
-diff -ur icu.org/source/extra/scrptrun/scrptrun.h icu/source/extra/scrptrun/scrptrun.h
---- icu.org/source/extra/scrptrun/scrptrun.h 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/extra/scrptrun/scrptrun.h 2017-04-21 22:59:31.708037770 +0200
-@@ -19,6 +19,7 @@
+--- misc/icu/source/extra/scrptrun/scrptrun.h
++++ misc/build/icu/source/extra/scrptrun/scrptrun.h
+@@ -17,6 +17,7 @@
#include "unicode/utypes.h"
#include "unicode/uobject.h"
#include "unicode/uscript.h"
@@ -41,7 +39,7 @@ diff -ur icu.org/source/extra/scrptrun/scrptrun.h icu/source/extra/scrptrun/scrp
struct ScriptRecord
{
-@@ -81,7 +82,7 @@
+@@ -79,7 +80,7 @@
int32_t scriptEnd;
UScriptCode scriptCode;
@@ -50,7 +48,7 @@ diff -ur icu.org/source/extra/scrptrun/scrptrun.h icu/source/extra/scrptrun/scrp
int32_t parenSP;
static int8_t highBit(int32_t value);
-@@ -135,6 +136,7 @@
+@@ -133,6 +134,7 @@
scriptEnd = charStart;
scriptCode = USCRIPT_INVALID_CODE;
parenSP = -1;
diff --git a/external/icu/icu4c-solarisgcc.patch b/external/icu/icu4c-solarisgcc.patch
new file mode 100644
index 000000000000..a47d9b1e3506
--- /dev/null
+++ b/external/icu/icu4c-solarisgcc.patch
@@ -0,0 +1,12 @@
+--- build/icu.old/source/common/uposixdefs.h
++++ build/icu/source/common/uposixdefs.h
+@@ -52,7 +52,7 @@
+ *
+ * z/OS needs this definition for timeval and to get usleep.
+ */
+-#if !defined(_XOPEN_SOURCE_EXTENDED)
++#if !defined(_XOPEN_SOURCE_EXTENDED) && (defined(__IBMC__) || defined(__IBMCPP__))
+ # define _XOPEN_SOURCE_EXTENDED 1
+ #endif
+
+
diff --git a/external/icu/icu4c-solarisgcc.patch.1 b/external/icu/icu4c-solarisgcc.patch.1
deleted file mode 100644
index 6000ed0cb9e2..000000000000
--- a/external/icu/icu4c-solarisgcc.patch.1
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur icu.org/source/common/uposixdefs.h icu/source/common/uposixdefs.h
---- icu.org/source/common/uposixdefs.h 2017-03-09 03:12:45.000000000 +0100
-+++ icu/source/common/uposixdefs.h 2017-04-21 22:23:11.857926971 +0200
-@@ -54,7 +54,7 @@
- *
- * z/OS needs this definition for timeval and to get usleep.
- */
--#if !defined(_XOPEN_SOURCE_EXTENDED) && defined(__TOS_MVS__)
-+#if !defined(_XOPEN_SOURCE_EXTENDED) && (defined(__TOS_MVS__) || defined(__IBMC__) || defined(__IBMCPP__))
- # define _XOPEN_SOURCE_EXTENDED 1
- #endif
-
diff --git a/external/icu/icu4c-warnings.patch b/external/icu/icu4c-warnings.patch
new file mode 100644
index 000000000000..96608d7d1ef3
--- /dev/null
+++ b/external/icu/icu4c-warnings.patch
@@ -0,0 +1,10 @@
+--- misc/icu/source/common/unicode/utf16.h
++++ misc/build/icu/source/common/unicode/utf16.h
+@@ -319,6 +319,7 @@
+ (s)[(i)++]=(uint16_t)(((c)&0x3ff)|0xdc00); \
+ } else /* c>0x10ffff or not enough space */ { \
+ (isError)=TRUE; \
++ (void)(isError); \
+ } \
+ }
+
diff --git a/external/icu/icu4c-warnings.patch.1 b/external/icu/icu4c-warnings.patch.1
deleted file mode 100644
index 3c39ba12ded7..000000000000
--- a/external/icu/icu4c-warnings.patch.1
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ur icu.org/source/common/unicode/utf16.h icu/source/common/unicode/utf16.h
---- icu.org/source/common/unicode/utf16.h 2017-02-03 19:57:23.000000000 +0100
-+++ icu/source/common/unicode/utf16.h 2017-04-21 22:05:57.414397617 +0200
-@@ -321,6 +321,7 @@
- (s)[(i)++]=(uint16_t)(((c)&0x3ff)|0xdc00); \
- } else /* c>0x10ffff or not enough space */ { \
- (isError)=TRUE; \
-+ (void)(isError); \
- } \
- }
-
diff --git a/external/icu/icu4c-khmerbreakengine.patch.1 b/external/icu/khmerbreakengine.patch
index 74f60f866257..8f81f315da3e 100644
--- a/external/icu/icu4c-khmerbreakengine.patch.1
+++ b/external/icu/khmerbreakengine.patch
@@ -1,7 +1,8 @@
-diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
---- icu.org/source/common/dictbe.cpp 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/common/dictbe.cpp 2017-04-21 23:14:23.845894374 +0200
-@@ -29,8 +29,17 @@
+diff --git a/source/common/dictbe.cpp b/source/common/dictbe.cpp
+index f1c874d..3ad1b3f 100644
+--- misc/icu/source/common/dictbe.cpp
++++ build/icu/source/common/dictbe.cpp
+@@ -27,8 +27,17 @@ U_NAMESPACE_BEGIN
******************************************************************
*/
@@ -20,7 +21,7 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
}
DictionaryBreakEngine::~DictionaryBreakEngine() {
-@@ -92,7 +101,7 @@
+@@ -90,7 +99,7 @@ DictionaryBreakEngine::findBreaks( UText *text,
result = divideUpDictionaryRange(text, rangeStart, rangeEnd, foundBreaks);
utext_setNativeIndex(text, current);
}
@@ -29,7 +30,7 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
return result;
}
-@@ -103,6 +112,169 @@
+@@ -101,6 +110,169 @@ DictionaryBreakEngine::setCharacters( const UnicodeSet &set ) {
fSet.compact();
}
@@ -199,7 +200,7 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
/*
******************************************************************
* PossibleWord
-@@ -130,35 +302,35 @@
+@@ -128,35 +302,35 @@ private:
public:
PossibleWord() : count(0), prefix(0), offset(-1), mark(0), current(0) {};
~PossibleWord() {};
@@ -244,7 +245,7 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
// Dictionary leaves text after longest prefix, not longest word. Back up.
if (count <= 0) {
utext_setNativeIndex(text, start);
-@@ -830,51 +1002,28 @@
+@@ -828,51 +1002,28 @@ foundBest:
* KhmerBreakEngine
*/
@@ -307,22 +308,14 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
}
KhmerBreakEngine::~KhmerBreakEngine() {
-@@ -886,180 +1035,204 @@
+@@ -884,180 +1036,204 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text,
int32_t rangeStart,
int32_t rangeEnd,
UStack &foundBreaks ) const {
- if ((rangeEnd - rangeStart) < KHMER_MIN_WORD_SPAN) {
- return 0; // Not enough characters for two words
-- }
--
-- uint32_t wordsFound = 0;
-- int32_t cpWordLength = 0;
-- int32_t cuWordLength = 0;
-- int32_t current;
+ uint32_t wordsFound = foundBreaks.size();
- UErrorCode status = U_ZERO_ERROR;
-- PossibleWord words[KHMER_LOOKAHEAD];
--
++ UErrorCode status = U_ZERO_ERROR;
+ int32_t before = 0;
+ int32_t after = 0;
+ int32_t finalBefore = 0;
@@ -338,7 +331,7 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
+ --scanStart;
+ startZwsp = scanBeforeStart(text, scanStart, breakStart);
+ }
- utext_setNativeIndex(text, rangeStart);
++ utext_setNativeIndex(text, rangeStart);
+ scanFwdClusters(text, rangeEnd, initAfter);
+ bool endZwsp = scanAfterEnd(text, utext_nativeLength(text), scanEnd, breakEnd);
+ utext_setNativeIndex(text, rangeEnd - 1);
@@ -349,8 +342,14 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
+ if (breakEnd || fTypes < UBRK_LINE)
+ foundBreaks.push(rangeEnd, status);
+ return foundBreaks.size() - wordsFound;
-+ }
-+
+ }
+
+- uint32_t wordsFound = 0;
+- int32_t cpWordLength = 0;
+- int32_t cuWordLength = 0;
+- int32_t current;
+- UErrorCode status = U_ZERO_ERROR;
+- PossibleWord words[KHMER_LOOKAHEAD];
+ scanStart = rangeStart;
+ scanWJ(text, scanStart, rangeEnd, before, after);
+ if (startZwsp || initAfter >= before) {
@@ -362,20 +361,43 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
+ if (endZwsp && before > finalBefore)
+ before = finalBefore;
+ utext_setNativeIndex(text, rangeStart);
++ int32_t numCodePts = rangeEnd - rangeStart;
++ // bestSnlp[i] is the snlp of the best segmentation of the first i
++ // code points in the range to be matched.
++ UVector32 bestSnlp(numCodePts + 1, status);
++ bestSnlp.addElement(0, status);
++ for(int32_t i = 1; i <= numCodePts; i++) {
++ bestSnlp.addElement(kuint32max, status);
++ }
+
- while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) {
- cuWordLength = 0;
- cpWordLength = 0;
--
++ // prev[i] is the index of the last code point in the previous word in
++ // the best segmentation of the first i characters. Note negative implies
++ // that the code point is part of an unknown word.
++ UVector32 prev(numCodePts + 1, status);
++ for(int32_t i = 0; i <= numCodePts; i++) {
++ prev.addElement(kuint32max, status);
++ }
+
- // Look for candidate words at the current position
- int32_t candidates = words[wordsFound%KHMER_LOOKAHEAD].candidates(text, fDictionary, rangeEnd);
--
++ const int32_t maxWordSize = 20;
++ UVector32 values(maxWordSize, status);
++ values.setSize(maxWordSize);
++ UVector32 lengths(maxWordSize, status);
++ lengths.setSize(maxWordSize);
+
- // If we found exactly one, use that
- if (candidates == 1) {
- cuWordLength = words[wordsFound % KHMER_LOOKAHEAD].acceptMarked(text);
- cpWordLength = words[wordsFound % KHMER_LOOKAHEAD].markedCPLength();
- wordsFound += 1;
- }
--
++ // Dynamic programming to find the best segmentation.
+
- // If there was more than one, see which one can take us forward the most words
- else if (candidates > 1) {
- // If we're already at the end of the range, we're done
@@ -390,12 +412,25 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- words[wordsFound % KHMER_LOOKAHEAD].markCurrent();
- wordsMatched = 2;
- }
--
++ // In outer loop, i is the code point index,
++ // ix is the corresponding string (code unit) index.
++ // They differ when the string contains supplementary characters.
++ int32_t ix = rangeStart;
++ for (int32_t i = 0; i < numCodePts; ++i, utext_setNativeIndex(text, ++ix)) {
++ if ((uint32_t)bestSnlp.elementAti(i) == kuint32max) {
++ continue;
++ }
+
- // If we're already at the end of the range, we're done
- if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) {
- goto foundBest;
- }
--
++ int32_t count;
++ count = fDictionary->matches(text, numCodePts - i, maxWordSize,
++ NULL, lengths.getBuffer(), values.getBuffer(), NULL, &fIgnoreSet, 2);
++ // Note: lengths is filled with code point lengths
++ // The NULL parameter is the ignored code unit lengths.
+
- // See if any of the possible second words is followed by a third word
- do {
- // If we find a third word, stop right away
@@ -406,47 +441,6 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- }
- while (words[(wordsFound + 1) % KHMER_LOOKAHEAD].backUp(text));
- }
-+ utext_setNativeIndex(text, rangeStart);
-+ int32_t numCodePts = rangeEnd - rangeStart;
-+ // bestSnlp[i] is the snlp of the best segmentation of the first i
-+ // code points in the range to be matched.
-+ UVector32 bestSnlp(numCodePts + 1, status);
-+ bestSnlp.addElement(0, status);
-+ for(int32_t i = 1; i <= numCodePts; i++) {
-+ bestSnlp.addElement(kuint32max, status);
-+ }
-+
-+ // prev[i] is the index of the last code point in the previous word in
-+ // the best segmentation of the first i characters. Note negative implies
-+ // that the code point is part of an unknown word.
-+ UVector32 prev(numCodePts + 1, status);
-+ for(int32_t i = 0; i <= numCodePts; i++) {
-+ prev.addElement(kuint32max, status);
-+ }
-+
-+ const int32_t maxWordSize = 20;
-+ UVector32 values(maxWordSize, status);
-+ values.setSize(maxWordSize);
-+ UVector32 lengths(maxWordSize, status);
-+ lengths.setSize(maxWordSize);
-+
-+ // Dynamic programming to find the best segmentation.
-+
-+ // In outer loop, i is the code point index,
-+ // ix is the corresponding string (code unit) index.
-+ // They differ when the string contains supplementary characters.
-+ int32_t ix = rangeStart;
-+ for (int32_t i = 0; i < numCodePts; ++i, utext_setNativeIndex(text, ++ix)) {
-+ if ((uint32_t)bestSnlp.elementAti(i) == kuint32max) {
-+ continue;
-+ }
-+
-+ int32_t count;
-+ count = fDictionary->matches(text, numCodePts - i, maxWordSize,
-+ NULL, lengths.getBuffer(), values.getBuffer(), NULL, &fIgnoreSet, 2);
-+ // Note: lengths is filled with code point lengths
-+ // The NULL parameter is the ignored code unit lengths.
-+
+ for (int32_t j = 0; j < count; j++) {
+ int32_t ln = lengths.elementAti(j);
+ if (ln + i >= numCodePts)
@@ -528,27 +522,17 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- if (cuWordLength <= 0) {
- wordsFound += 1;
- }
--
-- // Update the length with the passed-over characters
-- cuWordLength += chars;
-- }
-- else {
-- // Back up to where we were for next iteration
-- utext_setNativeIndex(text, current+cuWordLength);
+ } while (fMarkSet.contains(c) || fIgnoreSet.contains(c));
+ values.setElementAt(BADSNLP, count);
+ lengths.setElementAt(utext_getNativeIndex(text) - currix, count++);
+ } else {
+ values.setElementAt(BADSNLP, count);
+ lengths.setElementAt(1, count++);
- }
- }
++ }
++ }
-- // Never stop before a combining mark.
-- int32_t currPos;
-- while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
-- utext_next32(text);
-- cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos;
+- // Update the length with the passed-over characters
+- cuWordLength += chars;
+ for (int32_t j = 0; j < count; j++) {
+ uint32_t v = values.elementAti(j);
+ int32_t newSnlp = bestSnlp.elementAti(i) + v;
@@ -559,7 +543,10 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
+ ++ln;
+ utext_next32(text);
+ c = utext_current32(text);
-+ }
+ }
+- else {
+- // Back up to where we were for next iteration
+- utext_setNativeIndex(text, current+cuWordLength);
+ int32_t ln_j_i = ln + i; // yes really i!
+ if (newSnlp < bestSnlp.elementAti(ln_j_i)) {
+ if (v == BADSNLP) {
@@ -572,9 +559,37 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
+ else
+ prev.setElementAt(i, ln_j_i);
+ bestSnlp.setElementAt(newSnlp, ln_j_i);
-+ }
+ }
}
--
++ }
++ // Start pushing the optimal offset index into t_boundary (t for tentative).
++ // prev[numCodePts] is guaranteed to be meaningful.
++ // We'll first push in the reverse order, i.e.,
++ // t_boundary[0] = numCodePts, and afterwards do a swap.
++ UVector32 t_boundary(numCodePts+1, status);
+
+- // Never stop before a combining mark.
+- int32_t currPos;
+- while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) {
+- utext_next32(text);
+- cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos;
++ int32_t numBreaks = 0;
++ // No segmentation found, set boundary to end of range
++ while (numCodePts >= 0 && (uint32_t)bestSnlp.elementAti(numCodePts) == kuint32max) {
++ --numCodePts;
++ }
++ if (numCodePts < 0) {
++ t_boundary.addElement(numCodePts, status);
++ numBreaks++;
++ } else {
++ for (int32_t i = numCodePts; (uint32_t)i != kuint32max; i = prev.elementAti(i)) {
++ if (i < 0) i = -i;
++ t_boundary.addElement(i, status);
++ numBreaks++;
+ }
++ U_ASSERT(prev.elementAti(t_boundary.elementAti(numBreaks - 1)) == 0);
++ }
+
- // Look ahead for possible suffixes if a dictionary word does not follow.
- // We do this in code rather than using a rule so that the heuristic
- // resynch continues to function. For example, one of the suffix characters
@@ -616,30 +631,6 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
- // Did we find a word on this iteration? If so, push it on the break stack
- if (cuWordLength > 0) {
- foundBreaks.push((current+cuWordLength), status);
-+ }
-+ // Start pushing the optimal offset index into t_boundary (t for tentative).
-+ // prev[numCodePts] is guaranteed to be meaningful.
-+ // We'll first push in the reverse order, i.e.,
-+ // t_boundary[0] = numCodePts, and afterwards do a swap.
-+ UVector32 t_boundary(numCodePts+1, status);
-+
-+ int32_t numBreaks = 0;
-+ // No segmentation found, set boundary to end of range
-+ while (numCodePts >= 0 && (uint32_t)bestSnlp.elementAti(numCodePts) == kuint32max) {
-+ --numCodePts;
-+ }
-+ if (numCodePts < 0) {
-+ t_boundary.addElement(numCodePts, status);
-+ numBreaks++;
-+ } else {
-+ for (int32_t i = numCodePts; (uint32_t)i != kuint32max; i = prev.elementAti(i)) {
-+ if (i < 0) i = -i;
-+ t_boundary.addElement(i, status);
-+ numBreaks++;
-+ }
-+ U_ASSERT(prev.elementAti(t_boundary.elementAti(numBreaks - 1)) == 0);
-+ }
-+
+ // Now that we're done, convert positions in t_boundary[] (indices in
+ // the normalized input string) back to indices in the original input UText
+ // while reversing t_boundary and pushing values to foundBreaks.
@@ -668,10 +659,11 @@ diff -ur icu.org/source/common/dictbe.cpp icu/source/common/dictbe.cpp
}
#if !UCONFIG_NO_NORMALIZATION
-diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
---- icu.org/source/common/dictbe.h 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/common/dictbe.h 2017-04-21 23:14:23.845894374 +0200
-@@ -34,6 +34,15 @@
+diff --git a/source/common/dictbe.h b/source/common/dictbe.h
+index d3488cd..26caa75 100644
+--- misc/icu/source/common/dictbe.h
++++ build/icu/source/common/dictbe.h
+@@ -32,6 +32,15 @@ class Normalizer2;
*/
class DictionaryBreakEngine : public LanguageBreakEngine {
private:
@@ -687,7 +679,7 @@ diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
/**
* The set of characters handled by this engine
* @internal
-@@ -48,11 +57,63 @@
+@@ -46,11 +55,63 @@ class DictionaryBreakEngine : public LanguageBreakEngine {
uint32_t fTypes;
@@ -754,7 +746,7 @@ diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
public:
-@@ -83,7 +144,7 @@
+@@ -81,7 +142,7 @@ class DictionaryBreakEngine : public LanguageBreakEngine {
* <p>Find any breaks within a run in the supplied text.</p>
*
* @param text A UText representing the text. The iterator is left at
@@ -763,7 +755,7 @@ diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
* that starts from the first (or last) character in the range.
* @param startPos The start of the run within the supplied text.
* @param endPos The end of the run within the supplied text.
-@@ -245,118 +306,120 @@
+@@ -243,118 +304,120 @@ class LaoBreakEngine : public DictionaryBreakEngine {
};
@@ -996,10 +988,11 @@ diff -ur icu.org/source/common/dictbe.h icu/source/common/dictbe.h
#if !UCONFIG_NO_NORMALIZATION
/*******************************************************************
-diff -ur icu.org/source/common/dictionarydata.cpp icu/source/common/dictionarydata.cpp
---- icu.org/source/common/dictionarydata.cpp 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/common/dictionarydata.cpp 2017-04-21 23:14:23.846894372 +0200
-@@ -44,7 +44,7 @@
+diff --git a/source/common/dictionarydata.cpp b/source/common/dictionarydata.cpp
+index cb594c6..82f2e77 100644
+--- misc/icu/source/common/dictionarydata.cpp
++++ build/icu/source/common/dictionarydata.cpp
+@@ -42,7 +42,7 @@ int32_t UCharsDictionaryMatcher::getType() const {
int32_t UCharsDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t limit,
int32_t *lengths, int32_t *cpLengths, int32_t *values,
@@ -1008,7 +1001,7 @@ diff -ur icu.org/source/common/dictionarydata.cpp icu/source/common/dictionaryda
UCharsTrie uct(characters);
int32_t startingTextIndex = (int32_t)utext_getNativeIndex(text);
-@@ -55,7 +55,13 @@
+@@ -53,7 +53,13 @@ int32_t UCharsDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t
UStringTrieResult result = (codePointsMatched == 0) ? uct.first(c) : uct.next(c);
int32_t lengthMatched = (int32_t)utext_getNativeIndex(text) - startingTextIndex;
codePointsMatched += 1;
@@ -1022,7 +1015,7 @@ diff -ur icu.org/source/common/dictionarydata.cpp icu/source/common/dictionaryda
if (wordCount < limit) {
if (values != NULL) {
values[wordCount] = uct.getValue();
-@@ -112,7 +118,7 @@
+@@ -110,7 +116,7 @@ int32_t BytesDictionaryMatcher::getType() const {
int32_t BytesDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t limit,
int32_t *lengths, int32_t *cpLengths, int32_t *values,
@@ -1031,7 +1024,7 @@ diff -ur icu.org/source/common/dictionarydata.cpp icu/source/common/dictionaryda
BytesTrie bt(characters);
int32_t startingTextIndex = (int32_t)utext_getNativeIndex(text);
int32_t wordCount = 0;
-@@ -122,7 +128,13 @@
+@@ -120,7 +126,13 @@ int32_t BytesDictionaryMatcher::matches(UText *text, int32_t maxLength, int32_t
UStringTrieResult result = (codePointsMatched == 0) ? bt.first(transform(c)) : bt.next(transform(c));
int32_t lengthMatched = (int32_t)utext_getNativeIndex(text) - startingTextIndex;
codePointsMatched += 1;
@@ -1045,10 +1038,11 @@ diff -ur icu.org/source/common/dictionarydata.cpp icu/source/common/dictionaryda
if (wordCount < limit) {
if (values != NULL) {
values[wordCount] = bt.getValue();
-diff -ur icu.org/source/common/dictionarydata.h icu/source/common/dictionarydata.h
---- icu.org/source/common/dictionarydata.h 2017-01-20 01:20:31.000000000 +0100
-+++ icu/source/common/dictionarydata.h 2017-04-21 23:14:23.846894372 +0200
-@@ -21,6 +21,7 @@
+diff --git a/source/common/dictionarydata.h b/source/common/dictionarydata.h
+index 0216ab0..ee9e571 100644
+--- misc/icu/source/common/dictionarydata.h
++++ build/icu/source/common/dictionarydata.h
+@@ -19,6 +19,7 @@
#include "unicode/utext.h"
#include "unicode/udata.h"
#include "udataswp.h"
@@ -1056,7 +1050,7 @@ diff -ur icu.org/source/common/dictionarydata.h icu/source/common/dictionarydata
#include "unicode/uobject.h"
#include "unicode/ustringtrie.h"
-@@ -92,7 +93,7 @@
+@@ -90,7 +91,7 @@ public:
*/
virtual int32_t matches(UText *text, int32_t maxLength, int32_t limit,
int32_t *lengths, int32_t *cpLengths, int32_t *values,
@@ -1065,7 +1059,7 @@ diff -ur icu.org/source/common/dictionarydata.h icu/source/common/dictionarydata
/** @return DictionaryData::TRIE_TYPE_XYZ */
virtual int32_t getType() const = 0;
-@@ -107,7 +108,7 @@
+@@ -105,7 +106,7 @@ public:
virtual ~UCharsDictionaryMatcher();
virtual int32_t matches(UText *text, int32_t maxLength, int32_t limit,
int32_t *lengths, int32_t *cpLengths, int32_t *values,
@@ -1074,7 +1068,7 @@ diff -ur icu.org/source/common/dictionarydata.h icu/source/common/dictionarydata
virtual int32_t getType() const;
private:
const UChar *characters;
-@@ -125,7 +126,7 @@
+@@ -123,7 +124,7 @@ public:
virtual ~BytesDictionaryMatcher();
virtual int32_t matches(UText *text, int32_t maxLength, int32_t limit,
int32_t *lengths, int32_t *cpLengths, int32_t *values,
@@ -1083,10 +1077,11 @@ diff -ur icu.org/source/common/dictionarydata.h icu/source/common/dictionarydata
virtual int32_t getType() const;
private:
UChar32 transform(UChar32 c) const;
-diff -ur icu.org/source/data/Makefile.in icu/source/data/Makefile.in
---- icu.org/source/data/Makefile.in 2017-04-21 23:13:03.248087545 +0200
-+++ icu/source/data/Makefile.in 2017-04-21 23:14:23.846894372 +0200
-@@ -183,7 +183,7 @@
+diff --git a/source/data/Makefile.in b/source/data/Makefile.in
+index 816c82d..c637d70 100644
+--- misc/icu/source/data/Makefile.in
++++ build/icu/source/data/Makefile.in
+@@ -181,7 +181,7 @@ endif
endif
endif
@@ -1095,9 +1090,9 @@ diff -ur icu.org/source/data/Makefile.in icu/source/data/Makefile.in
ifneq ($(ENABLE_STATIC),)
ifeq ($(PKGDATA_MODE),dll)
$(PKGDATA_INVOKE) $(PKGDATA) -e $(ICUDATA_ENTRY_POINT) -T $(OUTTMPDIR) -p $(ICUDATA_NAME) $(PKGDATA_LIBSTATICNAME) -m static $(PKGDATA_VERSIONING) $(PKGDATA_LIST)
-@@ -567,8 +567,14 @@
+@@ -564,8 +564,14 @@ $(BRKBLDDIR)/burmesedict.dict: $(TOOLBINDIR)/gendict$(TOOLEXEEXT) $(DAT_FILES)
$(INVOKE) $(TOOLBINDIR)/gendict --bytes --transform offset-0x1000 -c -i $(BUILDDIR) $(DICTSRCDIR)/burmesedict.txt $(BRKBLDDIR)/burmesedict.dict
-
+
# TODO: figure out why combining characters are here?
-$(BRKBLDDIR)/khmerdict.dict: $(TOOLBINDIR)/gendict$(TOOLEXEEXT) $(DAT_FILES)
- $(INVOKE) $(TOOLBINDIR)/gendict --bytes --transform offset-0x1780 -c -i $(BUILDDIR) $(DICTSRCDIR)/khmerdict.txt $(BRKBLDDIR)/khmerdict.dict
@@ -1109,6 +1104,7 @@ diff -ur icu.org/source/data/Makefile.in icu/source/data/Makefile.in
+$(MAINBUILDDIR)/khmerdict.stamp: $(BRKSRCDIR)/khmerdict.dict build-local
+ cp $< $(BRKBLDDIR)
+ echo "timestamp" > $@
-
+
#################################################### CFU
# CFU FILES
+
diff --git a/external/icu/rtti.patch.0 b/external/icu/rtti.patch.0
new file mode 100644
index 000000000000..2af9622ec9ad
--- /dev/null
+++ b/external/icu/rtti.patch.0
@@ -0,0 +1,11 @@
+--- source/config/mh-linux
++++ source/config/mh-linux
+@@ -35,7 +35,7 @@
+ #SH# LD_SONAME=
+
+ ## Shared library options
+-LD_SOOPTIONS= -Wl,-Bsymbolic
++LD_SOOPTIONS= -Wl,-Bsymbolic-functions
+
+ ## Shared object suffix
+ SO = so
diff --git a/external/libcdr/ExternalProject_libcdr.mk b/external/libcdr/ExternalProject_libcdr.mk
index 2cd41db242cd..86f93daf1b90 100644
--- a/external/libcdr/ExternalProject_libcdr.mk
+++ b/external/libcdr/ExternalProject_libcdr.mk
@@ -36,7 +36,7 @@ $(call gb_ExternalProject_get_state_target,libcdr,build) :
--disable-werror \
--disable-weffc \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
- CXXFLAGS="$(CXXFLAGS) $(ICU_UCHAR_TYPE) $(BOOST_CPPFLAGS) \
+ CXXFLAGS="$(CXXFLAGS) $(BOOST_CPPFLAGS) \
-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED" \
$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
&& $(MAKE) \
diff --git a/external/libebook/ExternalProject_libebook.mk b/external/libebook/ExternalProject_libebook.mk
index 17065829014b..45b15f2f5eb7 100644
--- a/external/libebook/ExternalProject_libebook.mk
+++ b/external/libebook/ExternalProject_libebook.mk
@@ -38,7 +38,7 @@ $(call gb_ExternalProject_get_state_target,libebook,build) :
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
--disable-werror \
--disable-weffc \
- CXXFLAGS="$(CXXFLAGS) $(ICU_UCHAR_TYPE) $(BOOST_CPPFLAGS) \
+ CXXFLAGS="$(CXXFLAGS) $(BOOST_CPPFLAGS) \
-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED" \
XML_CFLAGS="$(LIBXML_CFLAGS)" \
XML_LIBS="$(LIBXML_LIBS)" \
diff --git a/external/libfreehand/ExternalProject_libfreehand.mk b/external/libfreehand/ExternalProject_libfreehand.mk
index f1bbacbb06e4..15a17072e872 100644
--- a/external/libfreehand/ExternalProject_libfreehand.mk
+++ b/external/libfreehand/ExternalProject_libfreehand.mk
@@ -25,7 +25,6 @@ $(eval $(call gb_ExternalProject_use_externals,libfreehand,\
$(call gb_ExternalProject_get_state_target,libfreehand,build) :
$(call gb_ExternalProject_run,build,\
export PKG_CONFIG="" \
- && export CXXFLAGS="$(CXXFLAGS) $(ICU_UCHAR_TYPE)" \
&& MAKE=$(MAKE) ./configure \
--with-pic \
--enable-static \
diff --git a/external/libmspub/ExternalProject_libmspub.mk b/external/libmspub/ExternalProject_libmspub.mk
index 808d74b2f571..a168a62c636f 100644
--- a/external/libmspub/ExternalProject_libmspub.mk
+++ b/external/libmspub/ExternalProject_libmspub.mk
@@ -35,7 +35,7 @@ $(call gb_ExternalProject_get_state_target,libmspub,build) :
--disable-werror \
--disable-weffc \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
- CXXFLAGS="$(CXXFLAGS) $(ICU_UCHAR_TYPE) $(BOOST_CPPFLAGS) \
+ CXXFLAGS="$(CXXFLAGS) $(BOOST_CPPFLAGS) \
-DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED" \
$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
&& $(MAKE) \
diff --git a/external/libvisio/ExternalProject_libvisio.mk b/external/libvisio/ExternalProject_libvisio.mk
index 2f212ceac249..884fde820d00 100644
--- a/external/libvisio/ExternalProject_libvisio.mk
+++ b/external/libvisio/ExternalProject_libvisio.mk
@@ -35,7 +35,7 @@ $(call gb_ExternalProject_get_state_target,libvisio,build) :
$(if $(ENABLE_DEBUG),--enable-debug,--disable-debug) \
--disable-werror \
$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
- CXXFLAGS="$(CXXFLAGS) $(ICU_UCHAR_TYPE) $(BOOST_CPPFLAGS)" \
+ CXXFLAGS="$(CXXFLAGS) $(BOOST_CPPFLAGS)" \
$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
&& $(MAKE) \
)