summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-51.1-PATCHES
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/icu-51.1-PATCHES')
-rw-r--r--Build/source/libs/icu/icu-51.1-PATCHES/ChangeLog363
-rw-r--r--Build/source/libs/icu/icu-51.1-PATCHES/TL-Changes19
-rw-r--r--Build/source/libs/icu/icu-51.1-PATCHES/patch-03-gcc-atomic14
-rw-r--r--Build/source/libs/icu/icu-51.1-PATCHES/patch-04-Windows2000125
-rw-r--r--Build/source/libs/icu/icu-51.1-PATCHES/patch-08-avoid-rebuild79
-rw-r--r--Build/source/libs/icu/icu-51.1-PATCHES/patch-12-mingw64
-rw-r--r--Build/source/libs/icu/icu-51.1-PATCHES/patch-13-STATIC_PREFIX31
7 files changed, 695 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-51.1-PATCHES/ChangeLog b/Build/source/libs/icu/icu-51.1-PATCHES/ChangeLog
new file mode 100644
index 00000000000..f9815ce2050
--- /dev/null
+++ b/Build/source/libs/icu/icu-51.1-PATCHES/ChangeLog
@@ -0,0 +1,363 @@
+2013-03-07 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-51.1 source tree (icu4c-51_rc-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/51rc/
+
+ * patch-11-CURR_FULL_DIR, patch-14-mingw-cross,
+ patch-83-zonemeta-bugfix, patch-84-c++11-bugfix (removed):
+ Now in icu-51.1.
+ * patch-{40,50,60,70,82}-* (removed): Obsolete, layout not used.
+ * patch-02-kFreeBSD (removed): Not needed.
+
+ * patch-03-gcc-atomic, patch-04-Windows2000,
+ patch-08-avoid-rebuild, patch-12-mingw, patch-13-STATIC_PREFIX:
+ Adapted.
+
+2012-11-29 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-04-Windows2000 (new): From Akira.
+
+2012-11-16 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-84-c++11-bugfix (new): Required for gcc-4.7.
+ From http://bugs.icu-project.org/trac/ticket/9728.
+
+2012-11-06 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Updated icu-50.1 source tree (icu4c-50_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/50.1/
+
+ * patch-83-zonemeta-bugfix (new): Required for MinGW.
+
+2012-10-24 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-50.1 source tree (icu4c-50_rc-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/50rc/
+
+ * patch-01-Cygwin, patch-02-FreeBSD (removed): Now in icu-50.1.
+ * patch-14-GENCCODE_ASSEMBLY (removed): Obsolete.
+
+ * patch-{08,11,12,13,40,50,60,70,82}-*:Adapted.
+
+ * patch-02-kFreeBSD (new): Use Posix conform timezone decl.
+ * patch-03-gcc-atomic (new): Required for gcc-4.4.
+ * patch-14-mingw-cross (new): Required for linux->MinGW32 cross.
+
+2012-06-18 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-82-Indic-bugfix (new): Revert ICU SVN commit 26090.
+
+2012-06-09 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-49.1.2 source tree (icu4c-49_1_2-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/49.1.2/
+
+ * patch-07-configure-utf16-string, patch-09-generated (removed):
+ Obsolete.
+
+ * patch-{01,02,08,11,12,13,14,40,50,60,70}-*: Adapted.
+
+2012-04-24 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-02-FreeBSD (new): Build fix for FreeBSD.
+ Reported by Nikola Lecic <nikola.lecic@anthesphoria.net>
+
+2012-04-18 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-49.1.1 source tree (icu4c-49_1_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/49.1.1/
+
+ * patch-05-m4-quoting: Removed, now in icu-49.1.1.
+
+ * patch-{01,07,08,09,11,12,13,14,40,50,60,70}-*: Adapted.
+
+2012-03-23 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-01-Cygwin (new): Build fix for Cygwin.
+ Reported by Ken Brown <kbrow1i@gmail.com>.
+
+2012-03-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Updated icu-49.1 source tree (icu4c-49_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/49.1/
+
+ * patch-{01,02,03,04}-*: Removed, now in icu-49.1.
+
+ * patch-{05,07,08,09,11,12,13,14,40,50,60,70}-*: Adapted.
+
+2012-03-21 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-05-m4-quoting (new): Correct m4 quoting in configure.in.
+
+2012-03-17 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-04-FreeBSD (new): From ICU.
+
+2012-03-15 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-40-auxParam: Fix a typo (auxillary => auxiliary).
+ * patch-70-Arabic: Remove useless changes of original code.
+
+2012-03-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-03-U_PF_UNKNOWN (new): Bug fix for the case that
+ U_PLATFORM == U_PF_UNKNOWN as, e.g., for FreeBSD (why?).
+ Reported by Hilmar Preusse <hille42@web.de>.
+
+2012-03-03 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-49.1 source tree (icu4c-49_rc-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/49rc/
+
+ * patch-40-LESwaps, patch-81-Indic: Removed, now in icu-49.1.
+
+ * patch-01-UVoidFunction (new): Bug fix for '--disable-dyload'.
+ * patch-02-AC_CHECK_TOOL (new): Bug fix for cross compilation.
+
+ * TL-Changes, patch-07-configure-utf16-string,
+ patch-08-avoid-rebuild, patch-09-generated,
+ patch-11-CURR_FULL_DIR, patch-12-mingw, patch-13-STATIC_PREFIX,
+ patch-14-GENCCODE_ASSEMBLY, patch-50-Vertical, patch-60-KernPair,
+ patch-70-Arabic: Adapted.
+ * patch-05-auxParam (removed): Renamed ...
+ * patch-40-auxParam (new): ... to this and adapted.
+
+2011-08-31 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-40-LESwaps: See ICU Ticket #8657, comment 11.
+
+2011-08-09 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-4.8.1 source tree (icu4c-4_8_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/4.8.1/
+
+ * patch-06-mingw: Removed, included in icu-4.8.1.
+
+ * TL-Changes, patch-05-auxParam,
+ patch-07-configure-utf16-string, patch-08-avoid-rebuild,
+ patch-09-generated, patch-11-CURR_FULL_DIR, patch-12-mingw,
+ patch-13-STATIC_PREFIX, patch-14-GENCCODE_ASSEMBLY,
+ patch-50-Vertical, patch-60-KernPair, patch-70-Arabic,
+ patch-81-Indic: Adapted.
+
+ * patch-40-LESwaps: Rewritten, see ICU Ticket #8657, comment 7.
+
+2011-06-19 Karl Berry <karl@tug.org>
+
+ * patch-40-LESwaps: revert to ICU 4.4, as 4.6 and 4.8 code
+ is broken on BigEndian machines.
+ http://bugs.icu-project.org/trac/ticket/8657
+ tlbuild mail, 17 Jun 2011 17:10:38
+
+2011-05-26 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-4.8 source tree (icu4c-4_8-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/4.8/
+
+ * patch-80-Indic: Removed (not needed).
+
+ * TL-Changes, patch-05-auxParam, patch-06-mingw,
+ patch-07-configure-utf16-string, patch-08-avoid-rebuild,
+ patch-09-generated, patch-11-CURR_FULL_DIR, patch-12-mingw,
+ patch-13-STATIC_PREFIX, patch-14-GENCCODE_ASSEMBLY,
+ patch-50-Vertical, patch-60-KernPair, patch-70-Arabic,
+ patch-81-Indic: Adapted.
+
+2011-05-11 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-14-GENCCODE_ASSEMBLY (new): For amd64-kfreebsd.
+
+2011-05-09 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-13-STATIC_PREFIX (new): Never use libsicuxxx.a.
+
+2011-02-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-81-Indic (new): IndicReordering.*: Respect array bounds.
+
+ * patch-05-auxParam: Fix a bug introduced when importing icu-4.6.
+
+2010-12-07 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-11-CURR_FULL_DIR: Correctly handle CURR_FULL_DIR when
+ cross compiling.
+
+2010-12-02 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-4.6 source tree (icu4c-4_6-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/4.6/
+
+ * patch-10-cross-TOOLEXEEXT, patch-13-remove-extra-token:
+ All removed, included in icu-4.6.
+
+ * TL-Changes, patch-05-auxParam, patch-07-configure-utf16-string,
+ patch-08-avoid-rebuild, patch-11-CURR_FULL_DIR, patch-12-mingw,
+ patch-50-Vertical, patch-60-KernPair, patch-70-Arabic,
+ patch-80-Indic: Adapted.
+
+ * patch-06-mingw (new): MinGW32 is Windows, not Cygwin.
+ * patch-09-generated (new): Regenerate configure.
+
+2010-04-08 Karl Berry <karl@tug.org>
+
+ * patch-07-configure-utf16-string: new patch so we can disable the
+ check for UTF16 string literals. See comments in our
+ libs/icu/configure.ac.
+
+2010-03-31 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-4.4 source tree (icu4c-4_4-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/4.4/
+
+ * fix-case-insensitive, patch-07-cygwin, patch-09-cross,
+ patch-20-fix-gt_ge, patch-21-fix-not_aligned,
+ patch-22-fix-JK-adjust_for_marks, patch-23-fix-JK-GlyphPos:
+ All removed, included in icu-4.4.
+
+ * TL-Changes, patch-05-auxParam, patch-08-avoid-rebuild,
+ patch-10-cross-TOOLEXEEXT, patch-11-CURR_FULL_DIR,
+ patch-12-mingw, patch-50-Vertical, patch-60-KernPair,
+ patch-70-Arabic, patch-80-Indic: Adapted.
+
+ * patch-13-remove-extra-token (new): Avoid compiler warning.
+
+2010-02-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Fixes for Linux => MinGW32 cross compilation.
+ * patch-10-cross-TOOLEXEEXT (new): Fix a cross compilation typo.
+ * patch-11-CURR_FULL_DIR (new): Fix for cross compilation on
+ a Unix like system. Does MinGW32 have pwd?
+ * patch-12-mingw (new): Changes in config/mh-mingw (libraries
+ named as for everyone else).
+
+2009-10-28 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-09-cross (new): Modify AC_CHECK_64BIT_LIBS in aclocal.m4
+ to allow cross compilation.
+
+2009-10-26 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-08-avoid-rebuild (new): Modify data/Makefile.in such
+ that libsicudata.a is not rebuilt again and again.
+
+2009-10-25 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-4.2.1 source tree (icu4c-4_2_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/4.2.1/
+
+ * patch-02-syntax, patch-40-Shaping (both removed): Obsolete.
+
+ * TL-Changes, patch-80-Indic: Adapted.
+
+2009-10-24 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-4.0.1 source tree (icu4c-4_0_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/4.0.1/
+
+ * patch-01-backport-4.0.1, patch-01-too_much-4.0.1,
+ patch-06-build-fix, patch-06-partial-4.0.1,
+ patch-10-backport-4.0.1, patch-11-partial-4.0.1,
+ patch-99-test (all removed): Obsolete.
+
+ * TL-Changes, patch-40-Shaping, patch-80-Indic: Adapted.
+
+2009-10-23 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-3.8.1 source tree (icu4c-3_8_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/3.8.1/
+
+ * TL-Changes (new): Description of modifications of source tree.
+
+ * fix-case-insensitive (new): Shell script used to rename
+ source/layout/Features.h => ICUFeatures.h (required for Cygwin)
+ and modify references to that file accordingly.
+
+ * patch-01-backport-4.0.1 (new): Replace layout/CanonData.cpp,
+ layout/GlyphPositionAdjustments.cpp,
+ layout/IndicReordering.{cpp,h}, layout/LELanguages.h,
+ layout/LESwaps.h, layout/OpenTypeLayoutEngine.cpp,
+ layout/ScriptAndLanguage.cpp, layout/ThaiLayoutEngine.{cpp,h},
+ layoutex/ParagraphLayout.cpp, and test/letest/sfnt.h by their
+ 4.0.1 versions.
+ * patch-01-too_much-4.0.1 (new): Undo one change in
+ layoutex/ParagraphLayout.cpp.
+
+ * patch-02-syntax (new): Fix some dubious syntax in
+ layoutex/ParagraphLayout.cpp.
+
+ * patch-05-auxParam (new): Handling of extension for XeTeX in
+ layout/AlternateSubstSubtables.cpp,
+ layout/GlyphIterator.{cpp,h},
+ layout/LEGlyphStorage.{cpp,h},
+ and layout/OpenTypeLayoutEngine.{cpp,h}.
+
+ * patch-06-build-fix (new): Build fix in common/ubidi.c.
+ * patch-06-partial-4.0.1 (new): Partial backport of common/putil.c
+ from 4.0.1.
+ * patch-07-cygwin (new): Changes in config/mh-cygwin (libraries
+ named as for everyone else).
+
+ * patch-10-backport-4.0.1 (new): Replace
+ layout/ScriptAndLanguageTags.{cpp,h} by their 4.0.1 versions.
+ * patch-11-partial-4.0.1 (new): Backport of some changes in
+ layout/LayoutEngine.cpp from 4.0.1.
+
+ Bug fixes originally by: Jonathan Kew <jfkthame@googlemail.com>
+ * patch-20-fix-gt_ge (new): In layout/ClassDefinitionTables.cpp.
+ * patch-21-fix-not_aligned (new): In layout/ExtensionSubtables.cpp.
+ * patch-22-fix-JK-adjust_for_marks (new): In
+ layout/MarkToBasePosnSubtables.cpp.
+ * patch-23-fix-JK-GlyphPos (new): In
+ layout/OpenTypeLayoutEngine.cpp.
+
+ * patch-40-Shaping (new): Update shaping type data in
+ layout/ShapingTypeData.cpp to Unicode 5.1.
+
+ * patch-50-Vertical (new): Handling vertical writing in
+ layout/LEFontInstance.h and layout/ValueRecords.cpp.
+
+ * patch-60-KernPair (new): Modified handling of kerns in
+ layout/LEFontInstance.{cpp,h} and layout/LayoutEngine.cpp.
+
+ * patch-70-Arabic (new): Add Draft Mongolian shaping classes
+ in layout/ArabicShaping.{cpp,h} and LayoutEngine.cpp.
+
+ * patch-80-Indic (new): Backport of some changes in
+ layout/IndicClassTables.cpp from 4.0.1 and in
+ layout/IndicReordering.cpp from 4.2.1.
+
+ * patch-99-test (new): Changes from TeX Live icu-xetex in
+ test/letest/PortableFontInstance.{cpp,h},
+ test/letest/gendata.{cpp,xml}, test/letest/letest.{cpp,xml}.
+
+ These modifications and patches of icu-3.8.1/ reproduce the
+ previous icu-xetex/ source tree (except for test data).
+
+2009-10-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Slightly rearranged the icu-xetex/ source tree.
+
+ * layout/LELanguages.h: Changed some comments, from 4.0.1.
+
+ * layout/LEGlyphStorage.{cpp,h},
+ layout/OpenTypeLayoutEngine.cpp: Renamed adoptAuxDataArrays
+ back to adoptAuxDataArray as it was in 3.8.1.
+
+ * layout/LEGlyphStorage.h: The XeTeX modifications have added
+ an additional parameter for setAuxData, however, in most cases
+ the corresponding argument is NULL. Added an inline definition
+ of the original method.
+ layout/ArabicShaping.cpp, layout/HanLayoutEngine.cpp,
+ layout/HangulLayoutEngine.cpp, layout/IndicReordering.cpp,
+ layout/KhmerReordering.cpp, layout/LayoutEngine.cpp,
+ layout/TibetanReordering.cpp: Restored the original 3.8.1 use of
+ setAuxData without the additional argument NULL.
+
+ * data/Makefile.in: Restored 3.8.1 version, Autoconf >=2.61 ensures
+ a posix shell making, these changes obsolete.
+
+ * layout/ScriptAndLanguageTags.{cpp,h}: Backport from 4.0.1,
+ additional tags and changed comments.
+
+ * layout/OpenTypeLayoutEngine.cpp: Removed some obsolete code,
+ surrounded by #if 0...#endif.
diff --git a/Build/source/libs/icu/icu-51.1-PATCHES/TL-Changes b/Build/source/libs/icu/icu-51.1-PATCHES/TL-Changes
new file mode 100644
index 00000000000..2835e0c9ba0
--- /dev/null
+++ b/Build/source/libs/icu/icu-51.1-PATCHES/TL-Changes
@@ -0,0 +1,19 @@
+Changes applied to the icu-51.1/ tree as obtained from:
+ http://download.icu-project.org/files/icu4c/51.1/icu4c-51_rc-src.tgz
+
+Removed:
+ as_is/
+ packaging/
+
+Updated:
+ source/config.guess
+ source/config.sub
+ source/install-sh
+
+Reduced size of source/data/in/icudt51l.dat
+ icupkg -r 'curr/*' IN OUT
+ icupkg -r 'lang/*' IN OUT
+ icupkg -r 'region/*' IN OUT
+ icupkg -r 'rfc*.spp' IN OUT
+ icupkg -r 'zone/*' IN OUT
+
diff --git a/Build/source/libs/icu/icu-51.1-PATCHES/patch-03-gcc-atomic b/Build/source/libs/icu/icu-51.1-PATCHES/patch-03-gcc-atomic
new file mode 100644
index 00000000000..b8789376f95
--- /dev/null
+++ b/Build/source/libs/icu/icu-51.1-PATCHES/patch-03-gcc-atomic
@@ -0,0 +1,14 @@
+ It seems gcc-4.4 uses external calls.
+
+diff -ur -x config.guess -x config.sub -x install-sh icu-51.1.orig/source/common/putilimp.h icu-51.1/source/common/putilimp.h
+--- icu-51.1.orig/source/common/putilimp.h 2013-03-05 23:11:54.000000000 +0100
++++ icu-51.1/source/common/putilimp.h 2013-03-07 12:08:46.000000000 +0100
+@@ -183,7 +183,7 @@
+ */
+ #ifdef U_HAVE_GCC_ATOMICS
+ /* Use the predefined value. */
+-#elif U_GCC_MAJOR_MINOR >= 404
++#elif U_GCC_MAJOR_MINOR >= 405
+ # define U_HAVE_GCC_ATOMICS 1
+ #else
+ # define U_HAVE_GCC_ATOMICS 0
diff --git a/Build/source/libs/icu/icu-51.1-PATCHES/patch-04-Windows2000 b/Build/source/libs/icu/icu-51.1-PATCHES/patch-04-Windows2000
new file mode 100644
index 00000000000..9431330c92e
--- /dev/null
+++ b/Build/source/libs/icu/icu-51.1-PATCHES/patch-04-Windows2000
@@ -0,0 +1,125 @@
+diff -ur -x config.guess -x config.sub -x install-sh icu-51.1.orig/source/common/wintz.c icu-51.1/source/common/wintz.c
+--- icu-51.1.orig/source/common/wintz.c 2013-03-05 23:11:36.000000000 +0100
++++ icu-51.1/source/common/wintz.c 2013-03-07 12:49:16.000000000 +0100
+@@ -265,6 +265,28 @@
+ TZI tziReg;
+ TIME_ZONE_INFORMATION apiTZI;
+
++ OSVERSIONINFO winosversion;
++ static int NewerThanWindows2000 = -1;
++
++ /* If the OS version is older than Windows XP, we use the
++ * code in ICU-49.1.2, since GetGeoInfo() is not available.
++ */
++
++ if (NewerThanWindows2000 == -1) {
++ if (GetVersionEx (&winosversion) == 0) {
++ /* GetVersionEx() failed for some reason. We assume
++ * the Windows OS is newer than Windows 2000.
++ */
++ NewerThanWindows2000 = 1;
++ } else if (winosversion.dwMajorVersion > 5 ||
++ (winosversion.dwMajorVersion == 5 &&
++ winosversion.dwMinorVersion > 0)) {
++ NewerThanWindows2000 = 1;
++ } else {
++ NewerThanWindows2000 = 0;
++ }
++ }
++
+ /* Obtain TIME_ZONE_INFORMATION from the API, and then convert it
+ to TZI. We could also interrogate the registry directly; we do
+ this below if needed. */
+@@ -285,9 +307,31 @@
+
+ tmpid[0] = 0;
+
+- id = GetUserGeoID(GEOCLASS_NATION);
+- errorCode = GetGeoInfo(id,GEO_ISO2,ISOcode,3,0);
++ if (NewerThanWindows2000 == 1) {
++ HINSTANCE hi;
++ PROC pgetusergeoid, pgetgeoinfo;
++
++ /* if LoadLibrary() and/or GetProcAdress() fail, we again
++ * set NewerThanWindows2000 = 0, and use the code in ICU 49.1.2.
++ */
++
++ hi = LoadLibrary ("kernel32.dll");
++ if (hi == NULL) {
++ NewerThanWindows2000 = 0;
++ } else {
++ pgetusergeoid = GetProcAddress (hi, "GetUserGeoID");
++ pgetgeoinfo = GetProcAddress (hi, "GetGeoInfoA");
++ }
++ if (!pgetusergeoid || !pgetgeoinfo)
++ NewerThanWindows2000 = 0;
+
++ if (NewerThanWindows2000 == 1) {
++ id = (int)pgetusergeoid (GEOCLASS_NATION);
++ errorCode = (int)pgetgeoinfo (id,GEO_ISO2,ISOcode,3,0);
++ }
++ if (hi)
++ FreeLibrary (hi);
++ }
+ bundle = ures_openDirect(NULL, "windowsZones", &status);
+ ures_getByKey(bundle, "mapTimezones", bundle, &status);
+
+@@ -310,14 +354,19 @@
+ tziKey.daylightBias = tziReg.daylightBias;
+
+ if (uprv_memcmp((char *)&tziKey, (char*)&tziReg, sizeof(tziKey)) == 0) {
+- const UChar* icuTZ = NULL;
+- if (errorCode != 0) {
+- icuTZ = ures_getStringByKey(winTZ, ISOcode, &len, &status);
+- }
+- if (errorCode==0 || icuTZ==NULL) {
+- /* fallback to default "001" and reset status */
+- status = U_ZERO_ERROR;
++ const UChar* icuTZ;
++ if (NewerThanWindows2000 == 0) {
+ icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
++ } else if (NewerThanWindows2000 == 1) {
++ icuTZ = NULL;
++ if (errorCode != 0) {
++ icuTZ = ures_getStringByKey(winTZ, ISOcode, &len, &status);
++ }
++ if (errorCode==0 || icuTZ==NULL) {
++ /* fallback to default "001" and reset status */
++ status = U_ZERO_ERROR;
++ icuTZ = ures_getStringByKey(winTZ, "001", &len, &status);
++ }
+ }
+
+ if (U_SUCCESS(status)) {
+@@ -336,12 +385,17 @@
+ * the current time zone information)
+ */
+ if (idFound || tmpid[0] == 0) {
+- /* if icuTZ has more than one city, take only the first (i.e. terminate icuTZ at first space) */
+- int index=0;
+- while (! (*icuTZ == '\0' || *icuTZ ==' ')) {
+- tmpid[index++]=(char)(*icuTZ++); /* safe to assume 'char' is ASCII compatible on windows */
++ if (NewerThanWindows2000 == 0) {
++ uprv_memset(tmpid, 0, sizeof(tmpid));
++ u_austrncpy(tmpid, icuTZ, len);
++ } else if (NewerThanWindows2000 == 1) {
++ /* if icuTZ has more than one city, take only the first (i.e. terminate icuTZ at first space) */
++ int index=0;
++ while (! (*icuTZ == '\0' || *icuTZ ==' ')) {
++ tmpid[index++]=(char)(*icuTZ++); /* safe to assume 'char' is ASCII compatible on windows */
++ }
++ tmpid[index]='\0';
+ }
+- tmpid[index]='\0';
+ }
+ }
+ }
+@@ -364,7 +418,7 @@
+ }
+
+ ures_close(bundle);
+-
++
+ return icuid;
+ }
+
diff --git a/Build/source/libs/icu/icu-51.1-PATCHES/patch-08-avoid-rebuild b/Build/source/libs/icu/icu-51.1-PATCHES/patch-08-avoid-rebuild
new file mode 100644
index 00000000000..d7e31b6220f
--- /dev/null
+++ b/Build/source/libs/icu/icu-51.1-PATCHES/patch-08-avoid-rebuild
@@ -0,0 +1,79 @@
+ Avoid to run pkgdata again and again.
+
+diff -ur -x config.guess -x config.sub -x install-sh icu-51.1.orig/source/data/Makefile.in icu-51.1/source/data/Makefile.in
+--- icu-51.1.orig/source/data/Makefile.in 2013-03-05 23:18:12.000000000 +0100
++++ icu-51.1/source/data/Makefile.in 2013-03-07 12:57:26.000000000 +0100
+@@ -109,7 +109,7 @@
+ .PHONY : all all-local all-recursive install install-local install-files \
+ install-recursive clean clean-local clean-recursive distclean \
+ distclean-local distclean-recursive dist dist-local dist-recursive \
+-check check-local check-recursive build-local clean-resindex build-dir icudata.jar \
++check check-local check-recursive clean-resindex icudata.jar \
+ check-exhaustive
+
+ ## Clear suffix list
+@@ -139,6 +139,7 @@
+ -test -z *.map || $(RMV) *.map
+
+ clean-local: cleanpackage cleanfiles clean-map
++ $(RMV) build-dir* build-local packagedata uni-core-data
+
+ cleanfiles:
+ test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+@@ -185,6 +186,7 @@
+ endif
+ else
+ $(INSTALL_DATA) $(ICUDATA_SOURCE_ARCHIVE) $(OUTDIR)
++ echo timestamp > $@
+ endif
+
+ ## Install ICU data.
+@@ -430,6 +432,7 @@
+ ifneq ($(INCLUDE_UNI_CORE_DATA),)
+ MISC_FILES_LIST+=$(UNI_CORE_DATA)
+ build-local: uni-core-data
++ echo timestamp > $@
+ endif
+
+ #####################################################
+@@ -440,6 +443,7 @@
+
+ ifeq ($(ICUDATA_SOURCE_ARCHIVE),)
+ build-local: build-dir $(SO_VERSION_DATA) $(ALL_FILES) $(PKGDATA_LIST) $(OS390LIST)
++ echo timestamp > $@
+ $(PKGDATA_LIST): $(SRCLISTDEPS)
+ @echo "generating $@ (list of data files)"
+ @-$(RMV) $@
+@@ -457,6 +461,7 @@
+ done;
+ else
+ build-local: build-dir $(SO_VERSION_DATA) $(PKGDATA_LIST) $(OS390LIST)
++ echo timestamp > $@
+ $(PKGDATA_LIST): $(SRCLISTDEPS) $(ICUDATA_SOURCE_ARCHIVE)
+ ifneq ($(ICUDATA_SOURCE_IS_NATIVE_TARGET),YES)
+ @echo "Unpacking $(ICUDATA_SOURCE_ARCHIVE) and generating $@ (list of data files)"
+@@ -471,6 +476,8 @@
+ $(BUILD_DIRS): build-dir
+
+ build-dir:
++ @-$(RMV) $@
++ echo timestamp > $@.tmp
+ @list='$(BUILD_DIRS)'; \
+ for dir in $$list; do \
+ if ! test -d $$dir; then \
+@@ -478,6 +485,7 @@
+ $(MKINSTALLDIRS) $(BUILD_DIRS); \
+ fi; \
+ done
++ mv $@.tmp $@
+
+ # The | is an order-only prerequisite. This helps when the -j option is used,
+ # and we don't want the files to be built before the directories are built.
+@@ -778,6 +786,7 @@
+ # when updating the Unicode data.
+ uni-core-data: build-dir $(UNI_CORE_TARGET_DATA)
+ @echo Unicode .icu files built to $(BUILDDIR)
++ echo timestamp > $@
+
+ # Build the ICU4J icudata.jar.
+ # Command line:
diff --git a/Build/source/libs/icu/icu-51.1-PATCHES/patch-12-mingw b/Build/source/libs/icu/icu-51.1-PATCHES/patch-12-mingw
new file mode 100644
index 00000000000..803d9bbe1b8
--- /dev/null
+++ b/Build/source/libs/icu/icu-51.1-PATCHES/patch-12-mingw
@@ -0,0 +1,64 @@
+ We don't want this for TeX Live cross compilation.
+
+diff -ur -x config.guess -x config.sub -x install-sh icu-51.1.orig/source/config/mh-mingw icu-51.1/source/config/mh-mingw
+--- icu-51.1.orig/source/config/mh-mingw 2013-03-05 23:12:44.000000000 +0100
++++ icu-51.1/source/config/mh-mingw 2013-03-07 13:02:23.000000000 +0100
+@@ -59,27 +59,9 @@
+ ## Non-shared intermediate object suffix
+ STATIC_O = ao
+
+-ifeq ($(ENABLE_SHARED),YES)
+-SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
+-else
+-SO_TARGET_VERSION_SUFFIX =
+-endif
+-
+-# Static library prefix and file extension
+-LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
+-A = a
+-
+ ## An import library is needed for z/OS and MSVC
+ IMPORT_LIB_EXT = .lib
+
+-LIBPREFIX=
+-
+-# Change the stubnames so that poorly working FAT disks and installation programs can work.
+-# This is also for backwards compatibility.
+-DATA_STUBNAME = dt
+-I18N_STUBNAME = in
+-LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)
+-
+ # The #M# is used to delete lines for icu-config
+ # Current full path directory.
+ #CURR_FULL_DIR=$(shell pwd -W)#M# for MSYS
+diff -ur -x config.guess -x config.sub -x install-sh icu-51.1.orig/source/config/mh-mingw64 icu-51.1/source/config/mh-mingw64
+--- icu-51.1.orig/source/config/mh-mingw64 2013-03-05 23:12:44.000000000 +0100
++++ icu-51.1/source/config/mh-mingw64 2013-03-07 13:02:23.000000000 +0100
+@@ -59,27 +59,9 @@
+ ## Non-shared intermediate object suffix
+ STATIC_O = ao
+
+-ifeq ($(ENABLE_SHARED),YES)
+-SO_TARGET_VERSION_SUFFIX = $(SO_TARGET_VERSION_MAJOR)
+-else
+-SO_TARGET_VERSION_SUFFIX =
+-endif
+-
+-# Static library prefix and file extension
+-LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
+-A = a
+-
+ ## An import library is needed for z/OS and MSVC
+ IMPORT_LIB_EXT = .lib
+
+-LIBPREFIX=
+-
+-# Change the stubnames so that poorly working FAT disks and installation programs can work.
+-# This is also for backwards compatibility.
+-DATA_STUBNAME = dt
+-I18N_STUBNAME = in
+-LIBICU = $(STATIC_PREFIX_WHEN_USED)$(ICUPREFIX)
+-
+ # The #M# is used to delete lines for icu-config
+ # Current full path directory.
+ #CURR_FULL_DIR=$(shell pwd -W)#M# for MSYS
diff --git a/Build/source/libs/icu/icu-51.1-PATCHES/patch-13-STATIC_PREFIX b/Build/source/libs/icu/icu-51.1-PATCHES/patch-13-STATIC_PREFIX
new file mode 100644
index 00000000000..41840f0be53
--- /dev/null
+++ b/Build/source/libs/icu/icu-51.1-PATCHES/patch-13-STATIC_PREFIX
@@ -0,0 +1,31 @@
+diff -ur -x config.guess -x config.sub -x install-sh icu-51.1.orig/source/config/Makefile.inc.in icu-51.1/source/config/Makefile.inc.in
+--- icu-51.1.orig/source/config/Makefile.inc.in 2013-03-05 23:12:44.000000000 +0100
++++ icu-51.1/source/config/Makefile.inc.in 2013-03-07 13:04:07.000000000 +0100
+@@ -44,7 +44,7 @@
+ LIBICU = lib$(ICUPREFIX)
+
+ # Static library prefix and file extension
+-STATIC_PREFIX = s
++STATIC_PREFIX =
+ LIBSICU = lib$(STATIC_PREFIX)$(ICUPREFIX)
+ A = a
+
+diff -ur -x config.guess -x config.sub -x install-sh icu-51.1.orig/source/icudefs.mk.in icu-51.1/source/icudefs.mk.in
+--- icu-51.1.orig/source/icudefs.mk.in 2013-03-05 23:18:34.000000000 +0100
++++ icu-51.1/source/icudefs.mk.in 2013-03-07 13:04:07.000000000 +0100
+@@ -207,13 +207,13 @@
+
+ ## If we can't use the shared libraries, use the static libraries
+ ifneq ($(ENABLE_SHARED),YES)
+-STATIC_PREFIX_WHEN_USED = s
++STATIC_PREFIX_WHEN_USED =
+ else
+ STATIC_PREFIX_WHEN_USED =
+ endif
+
+ # Static library prefix and file extension
+-STATIC_PREFIX = s
++STATIC_PREFIX =
+ LIBSICU = $(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
+ A = a
+ SOBJ = $(SO)