summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/TLPATCHES
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/icu/TLPATCHES')
-rw-r--r--Build/source/libs/icu/TLPATCHES/ChangeLog483
-rw-r--r--Build/source/libs/icu/TLPATCHES/TL-Changes56
-rw-r--r--Build/source/libs/icu/TLPATCHES/patch-03-gcc-atomic13
-rw-r--r--Build/source/libs/icu/TLPATCHES/patch-12-mingw32
-rw-r--r--Build/source/libs/icu/TLPATCHES/patch-13-STATIC_PREFIX31
-rw-r--r--Build/source/libs/icu/TLPATCHES/patch-14-xopen19
-rw-r--r--Build/source/libs/icu/TLPATCHES/patch-16-putil45
-rw-r--r--Build/source/libs/icu/TLPATCHES/patch-17-cygwin-no-w32api452
-rw-r--r--Build/source/libs/icu/TLPATCHES/patch-20-private73
9 files changed, 1204 insertions, 0 deletions
diff --git a/Build/source/libs/icu/TLPATCHES/ChangeLog b/Build/source/libs/icu/TLPATCHES/ChangeLog
new file mode 100644
index 00000000000..4be9800d1d8
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/ChangeLog
@@ -0,0 +1,483 @@
+2016-03-30 Karl Berry <karl@tug.org>
+
+ * patch-20-private: new file, per Dick Koch.
+ http://tug.org/pipermail/tlbuild/2016q1/003438.html
+
+2016-03-27 Karl Berry <karl@tug.org>
+
+ * Imported icu-57.1 from
+ http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz
+ See ./TL-Changes for procedure.
+
+2015-10-08 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Updated icu-56.1 source tree (icu4c-56_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/56.1/
+
+2015-09-27 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-56.1 source tree (icu4c-56_rc-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/56rc/
+
+ * patch-03-gcc-atomic, patch-12-mingw,
+ patch-13-STATIC_PREFIX, patch-14-xopen, patch-16-putil,
+ patch-17-cygwin-no-w32api: Adapted.
+
+2015-04-12 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Updated icu-55.1 source tree (icu4c-55_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/55.1/
+
+2015-03-19 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-55.1 source tree (icu4c-55_rc-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/55rc/
+
+ * patch-03-gcc-atomic, patch-12-mingw,
+ patch-13-STATIC_PREFIX, patch-14-xopen, patch-16-putil,
+ patch-17-cygwin-no-w32api: Adapted.
+
+2014-10-02 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Updated icu-54.1 source tree (icu4c-54_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/54.1/
+
+2014-09-18 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-54.1 source tree (icu4c-54_rc-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/54rc/
+
+ * patch-11-cygwin64, patch-15-solaris,
+ patch-18-solaris-depend (removed): Included upstream.
+
+ * patch-03-gcc-atomic, patch-12-mingw,
+ patch-13-STATIC_PREFIX, patch-14-xopen, patch-16-putil,
+ patch-17-cygwin-no-w32api: Adapted.
+
+2014-05-14 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-18-solaris-depend (new): Minor build fix for solaris,
+ dependencies for C files require $(CFLAGS), i.e., -std=c99.
+
+2014-04-03 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Updated icu-53.1 source tree (icu4c-53_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/53.1/
+
+2014-03-22 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-16-putil (new): Build fix for Cygwin/MinGW with -ansi,
+ * patch-17-cygwin-no-w32api (new): Use Posix instead of Win32
+ API for Cygwin,
+ from Ken Brown <kbrow1i@gmail.com>.
+
+2014-03-20 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-53.1 source tree (icu4c-53_rc-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/53rc/
+
+ * patch-04-Windows2000 (removed): Drop Windows2000 support.
+ * patch-08-avoid-rebuild (removed): Included upstream.
+
+ * patch-03-gcc-atomic, patch-11-cygwin64, patch-12-mingw,
+ patch-13-STATIC_PREFIX, patch-14-xopen: Adapted.
+
+ * patch-15-solaris (new): Build fix for Solaris, from
+ http://bugs.icu-project.org/trac/ticket/10580
+
+2014-02-21 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-11-cygwin64 (new): Enable Cygwin64 (from Cygwin64 port).
+
+2013-10-10 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Updated icu-52.1 source tree (icu4c-52_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/52.1/
+
+2013-09-26 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Imported icu-52.1 source tree (icu4c-52_rc2-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/52rc/
+
+ * patch-03-gcc-atomic, patch-04-Windows2000,
+ patch-08-avoid-rebuild, patch-12-mingw, patch-13-STATIC_PREFIX,
+ patch-14-xopen: Adapted.
+
+2013-04-02 Karl Berry <karl@tug.org>
+
+ * patch-14-xopen: do not define _XOPEN_SOURCE_EXTENDED on Solaris,
+ notwithstanding comments in icu source.
+ From Apostolos, tlbuild 27 Mar 2013 15:52:26 (and Ettore, later).
+
+2013-03-21 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ Updated icu-51.1 source tree (icu4c-51_1-src.tgz) from:
+ http://download.icu-project.org/files/icu4c/51.1/
+
+2013-03-14 Peter Breitenlohner <peb@mppmu.mpg.de>
+
+ * patch-08-avoid-rebuild: Really avoid to run pkgdata again.
+
+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/TLPATCHES/TL-Changes b/Build/source/libs/icu/TLPATCHES/TL-Changes
new file mode 100644
index 00000000000..90bded3540c
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/TL-Changes
@@ -0,0 +1,56 @@
+Changes applied to the icu-57.1 tree as obtained from:
+ http://download.icu-project.org/files/icu4c/57.1/icu4c-57_1-src.tgz
+
+cd /tmp # or wherever
+tar xf icu4c-*-src.tgz
+cd .../texlive/Build/source/libs/icu/icu-src
+\cp -arf /tmp/icu/* .
+rm -r as_is packaging # don't bother including these in our tree
+#
+# files to add:
+svn status | sed -n 's/^\?//p'
+svn add `!!`
+svn status | sed -n 's/^\?//p' # rerun, should be empty now
+#
+diff -qr . /tmp/icu/ | sed -n -e 's,^Only in \./\(.*\): ,\1/,p'
+svn rm `!!`
+diff ... # rerun, should be empty now
+
+# update generic files (still in icu-src):
+aux=/usr/local/src/dist/build-aux
+cp $aux/config.guess $aux/config.sub $aux/install-sh source/
+
+# apply ./patch-* files, as needed.
+# Run svn diff after each, update patch-* file.
+# Don't lose our leading comments.
+
+# autoreconf.
+# rebuild; must rerun configure (not just config.status),
+# so easiest is to just do a whole new build.
+# That will also test use of the new icu version by our programs.
+
+# Assuming all seems ok, reduce size of source/data/in/icudt*.dat
+# to decrease data segment size, e.g., for old BSD. First, check
+# that we successfully built the full .dat:
+srcdat=.../source/libs/icu/icu-src/source/data/in/icudt57l.dat
+cd .../Work/libs/icu/icu-build/data/out/build/icudt57l
+indat=../../tmp/icudt57l.dat
+diff $srcdat $indat
+# should be identical, amazingly enough.
+
+# we need to use icupkg, which may need LD_LIBRARY_PATH since it is a
+# C++ binary and we didn't cxx-hack it.
+icupkg="env LD_LIBRARY_PATH=$gnu/lib ../../../../bin/icupkg"
+
+# then remove some elements unused by the icu clients in our tree, namely
+# bibtexu (in texk/bibtex-x), upmendex, and xetex (in texk/web2c/xetexdir).
+outdat=icudt57l.dat
+$icupkg -r 'curr/*' $indat $outdat && mv $outdat $indat
+$icupkg -r 'lang/*' $indat $outdat && mv $outdat $indat
+$icupkg -r 'region/*' $indat $outdat && mv $outdat $indat
+$icupkg -r 'rfc*.spp' $indat $outdat && mv $outdat $indat
+$icupkg -r 'zone/*' $indat $outdat && mv $outdat $indat
+ls -l $indat $srcdat # indat should be much smaller
+cp $indat $srcdat
+
+# then commit.
diff --git a/Build/source/libs/icu/TLPATCHES/patch-03-gcc-atomic b/Build/source/libs/icu/TLPATCHES/patch-03-gcc-atomic
new file mode 100644
index 00000000000..2b53072f732
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/patch-03-gcc-atomic
@@ -0,0 +1,13 @@
+ It seems gcc-4.4 uses external calls.
+
+--- source/common/putilimp.h (revision 40154)
++++ source/common/putilimp.h (working copy)
+@@ -191,7 +191,7 @@
+ /* Use the predefined value. */
+ #elif U_PLATFORM == U_PF_MINGW
+ #define U_HAVE_GCC_ATOMICS 0
+-#elif U_GCC_MAJOR_MINOR >= 404 || defined(__clang__)
++#elif U_GCC_MAJOR_MINOR >= 405 || defined(__clang__)
+ /* TODO: Intel icc and IBM xlc on AIX also support gcc atomics. (Intel originated them.)
+ * Add them for these compilers.
+ * Note: Clang sets __GNUC__ defines for version 4.2, so misses the 4.4 test here.
diff --git a/Build/source/libs/icu/TLPATCHES/patch-12-mingw b/Build/source/libs/icu/TLPATCHES/patch-12-mingw
new file mode 100644
index 00000000000..2b8b7b090c7
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/patch-12-mingw
@@ -0,0 +1,32 @@
+ We don't want this for TeX Live cross compilation.
+
+--- source/config/mh-mingw (revision 40154)
++++ source/config/mh-mingw (working copy)
+@@ -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 = lib$(LIBPREFIX)$(STATIC_PREFIX)$(ICUPREFIX)
+-A = a
+-
+ ## An import library is needed for z/OS and MSVC
+ IMPORT_LIB_EXT = .dll.a
+
+-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)
+-
+ #SH### copied from Makefile.inc
+ #SH## for icu-config to test with
+ #SH#ICULIBS_COMMON_LIB_NAME="${LIBICU}${COMMON_STUBNAME}${ICULIBSUFFIX}${ICULIBSUFFIX_VERSION}.${SO}"
diff --git a/Build/source/libs/icu/TLPATCHES/patch-13-STATIC_PREFIX b/Build/source/libs/icu/TLPATCHES/patch-13-STATIC_PREFIX
new file mode 100644
index 00000000000..e35ca62da0d
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/patch-13-STATIC_PREFIX
@@ -0,0 +1,31 @@
+ No `s' for STATIC_PREFIX.
+
+--- source/config/Makefile.inc.in (revision 40154)
++++ source/config/Makefile.inc.in (working copy)
+@@ -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
+
+--- source/icudefs.mk.in (revision 40154)
++++ source/icudefs.mk.in (working copy)
+@@ -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)
diff --git a/Build/source/libs/icu/TLPATCHES/patch-14-xopen b/Build/source/libs/icu/TLPATCHES/patch-14-xopen
new file mode 100644
index 00000000000..6ccb6564407
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/patch-14-xopen
@@ -0,0 +1,19 @@
+ Do not define _XOPEN_SOURCE_EXTENDED on Solaris,
+ notwithstanding comments in icu source.
+
+--- source/common/uposixdefs.h (revision 40154)
++++ source/common/uposixdefs.h (working copy)
+@@ -49,10 +49,13 @@
+ * Make sure things like readlink and such functions work.
+ * Poorly upgraded Solaris machines can't have this defined.
+ * Cleanly installed Solaris can use this #define.
++ * [Experience with TeX Live is that it always causes failure.
++ * http://tug.org/pipermail/tlbuild/2013q1/002493.html
++ * http://tug.org/pipermail/tlbuild/2013q1/002536.html ]
+ *
+ * z/OS needs this definition for timeval and to get usleep.
+ */
+-#if !defined(_XOPEN_SOURCE_EXTENDED)
++#if !defined(_XOPEN_SOURCE_EXTENDED) && !defined(__sun)
+ # define _XOPEN_SOURCE_EXTENDED 1
+ #endif
diff --git a/Build/source/libs/icu/TLPATCHES/patch-16-putil b/Build/source/libs/icu/TLPATCHES/patch-16-putil
new file mode 100644
index 00000000000..c79c526dc9c
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/patch-16-putil
@@ -0,0 +1,45 @@
+--- source/common/putil.cpp (revision 40154)
++++ source/common/putil.cpp (working copy)
+@@ -41,6 +41,20 @@
+ // Must be before any other #includes.
+ #include "uposixdefs.h"
+
++#if (U_PF_MINGW <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN) && defined(__STRICT_ANSI__)
++/* tzset isn't defined in strict ANSI on Cygwin and MinGW. */
++#undef __STRICT_ANSI__
++#endif
++
++/*
++ * Cygwin with GCC requires inclusion of time.h after the above disabling strict asci mode statement.
++ */
++#include <time.h>
++
++#if !U_PLATFORM_USES_ONLY_WIN32_API
++#include <sys/time.h>
++#endif
++
+ /* include ICU headers */
+ #include "unicode/utypes.h"
+ #include "unicode/putil.h"
+@@ -102,21 +116,7 @@
+ # include <sys/neutrino.h>
+ #endif
+
+-#if (U_PF_MINGW <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN) && defined(__STRICT_ANSI__)
+-/* tzset isn't defined in strict ANSI on Cygwin and MinGW. */
+-#undef __STRICT_ANSI__
+-#endif
+-
+ /*
+- * Cygwin with GCC requires inclusion of time.h after the above disabling strict asci mode statement.
+- */
+-#include <time.h>
+-
+-#if !U_PLATFORM_USES_ONLY_WIN32_API
+-#include <sys/time.h>
+-#endif
+-
+-/*
+ * Only include langinfo.h if we have a way to get the codeset. If we later
+ * depend on more feature, we can test on U_HAVE_NL_LANGINFO.
+ *
diff --git a/Build/source/libs/icu/TLPATCHES/patch-17-cygwin-no-w32api b/Build/source/libs/icu/TLPATCHES/patch-17-cygwin-no-w32api
new file mode 100644
index 00000000000..e24041a1f2b
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/patch-17-cygwin-no-w32api
@@ -0,0 +1,452 @@
+--- source/common/putilimp.h (revision 40154)
++++ source/common/putilimp.h (working copy)
+@@ -148,7 +148,7 @@
+
+ #ifdef U_HAVE_MMAP
+ /* Use the predefined value. */
+-#elif U_PLATFORM_HAS_WIN32_API
++#elif U_PLATFORM_USES_ONLY_WIN32_API
+ # define U_HAVE_MMAP 0
+ #else
+ # define U_HAVE_MMAP 1
+@@ -171,7 +171,7 @@
+ */
+ #ifdef U_HAVE_DIRENT_H
+ /* Use the predefined value. */
+-#elif U_PLATFORM_HAS_WIN32_API
++#elif U_PLATFORM_USES_ONLY_WIN32_API
+ # define U_HAVE_DIRENT_H 0
+ #else
+ # define U_HAVE_DIRENT_H 1
+--- source/common/umutex.cpp (revision 40154)
++++ source/common/umutex.cpp (working copy)
+@@ -37,7 +37,7 @@
+ // Build time user mutex hook: #include "U_USER_MUTEX_CPP"
+ #include U_MUTEX_XSTR(U_USER_MUTEX_CPP)
+
+-#elif U_PLATFORM_HAS_WIN32_API
++#elif U_PLATFORM_USES_ONLY_WIN32_API
+
+ //-------------------------------------------------------------------------------------------
+ //
+--- source/common/umutex.h (revision 40154)
++++ source/common/umutex.h (working copy)
+@@ -74,7 +74,7 @@
+ }
+ U_NAMESPACE_END
+
+-#elif U_PLATFORM_HAS_WIN32_API
++#elif U_PLATFORM_USES_ONLY_WIN32_API
+
+ // MSVC compiler. Reads and writes of volatile variables have
+ // acquire and release memory semantics, respectively.
+@@ -318,7 +318,7 @@
+ // #inlcude "U_USER_MUTEX_H"
+ #include U_MUTEX_XSTR(U_USER_MUTEX_H)
+
+-#elif U_PLATFORM_HAS_WIN32_API
++#elif U_PLATFORM_USES_ONLY_WIN32_API
+
+ /* Windows Definitions.
+ * Windows comes first in the platform chain.
+--- source/common/wintz.c (revision 40154)
++++ source/common/wintz.c (working copy)
+@@ -11,7 +11,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ #include "wintz.h"
+ #include "cmemory.h"
+@@ -436,4 +436,4 @@
+ return icuid;
+ }
+
+-#endif /* U_PLATFORM_HAS_WIN32_API */
++#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
+--- source/common/wintz.h (revision 40154)
++++ source/common/wintz.h (working copy)
+@@ -14,7 +14,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ /**
+ * \file
+@@ -29,6 +29,6 @@
+ U_CFUNC const char* U_EXPORT2
+ uprv_detectWindowsTimeZone();
+
+-#endif /* U_PLATFORM_HAS_WIN32_API */
++#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
+
+ #endif /* __WINTZ */
+--- source/i18n/datefmt.cpp (revision 40154)
++++ source/i18n/datefmt.cpp (working copy)
+@@ -496,7 +496,7 @@
+ DateFormat::create(EStyle timeStyle, EStyle dateStyle, const Locale& locale)
+ {
+ UErrorCode status = U_ZERO_ERROR;
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ char buffer[8];
+ int32_t count = locale.getKeywordValue("compat", buffer, sizeof(buffer), status);
+
+--- source/i18n/windtfmt.cpp (revision 40154)
++++ source/i18n/windtfmt.cpp (working copy)
+@@ -11,7 +11,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ #if !UCONFIG_NO_FORMATTING
+
+@@ -312,5 +312,5 @@
+
+ #endif /* #if !UCONFIG_NO_FORMATTING */
+
+-#endif // U_PLATFORM_HAS_WIN32_API
++#endif // U_PLATFORM_USES_ONLY_WIN32_API
+
+--- source/i18n/windtfmt.h (revision 40154)
++++ source/i18n/windtfmt.h (working copy)
+@@ -14,7 +14,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ #if !UCONFIG_NO_FORMATTING
+
+@@ -131,6 +131,6 @@
+
+ #endif /* #if !UCONFIG_NO_FORMATTING */
+
+-#endif // U_PLATFORM_HAS_WIN32_API
++#endif // U_PLATFORM_USES_ONLY_WIN32_API
+
+ #endif // __WINDTFMT
+--- source/i18n/wintzimpl.cpp (revision 40154)
++++ source/i18n/wintzimpl.cpp (working copy)
+@@ -11,7 +11,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API && !UCONFIG_NO_FORMATTING
++#if U_PLATFORM_USES_ONLY_WIN32_API && !UCONFIG_NO_FORMATTING
+
+ #include "wintzimpl.h"
+--- source/i18n/wintzimpl.h (revision 40154)
++++ source/i18n/wintzimpl.h (working copy)
+@@ -14,7 +14,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ /**
+ * \file
+ * \brief C API: Utilities for dealing w/ Windows time zones.
+@@ -32,6 +32,6 @@
+ uprv_getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar *icuid, int32_t length);
+
+
+-#endif /* U_PLATFORM_HAS_WIN32_API */
++#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
+
+ #endif /* __WINTZIMPL */
+Index: source/test/intltest/dtfmttst.cpp
+===================================================================
+--- source/test/intltest/dtfmttst.cpp (revision 40154)
++++ source/test/intltest/dtfmttst.cpp (working copy)
+@@ -23,7 +23,7 @@
+ #include "caltest.h" // for fieldName
+ #include <stdio.h> // for sprintf
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ #include "windttst.h"
+ #endif
+
+@@ -2372,7 +2372,7 @@
+
+ void DateFormatTest::TestHost(void)
+ {
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ Win32DateTimeTest::testLocales(this);
+ #endif
+ }
+Index: source/test/intltest/uobjtest.cpp
+===================================================================
+--- source/test/intltest/uobjtest.cpp (revision 40154)
++++ source/test/intltest/uobjtest.cpp (working copy)
+@@ -382,13 +382,11 @@
+ TESTCLASSID_FACTORY(IndianCalendar, Calendar::createInstance(Locale("@calendar=indian"), status));
+ TESTCLASSID_FACTORY(ChineseCalendar, Calendar::createInstance(Locale("@calendar=chinese"), status));
+ TESTCLASSID_FACTORY(TaiwanCalendar, Calendar::createInstance(Locale("@calendar=roc"), status));
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ TESTCLASSID_FACTORY(Win32DateFormat, DateFormat::createDateInstance(DateFormat::kFull, Locale("@compat=host")));
+-#if U_PLATFORM_USES_ONLY_WIN32_API
+ TESTCLASSID_FACTORY(Win32NumberFormat, NumberFormat::createInstance(Locale("@compat=host"), status));
+ #endif
+ #endif
+-#endif
+
+ #if !UCONFIG_NO_BREAK_ITERATION && !UCONFIG_NO_FILE_IO
+ /* TESTCLASSID_ABSTRACT(BreakIterator); No staticID! */
+Index: source/test/intltest/windttst.cpp
+===================================================================
+--- source/test/intltest/windttst.cpp (revision 40154)
++++ source/test/intltest/windttst.cpp (working copy)
+@@ -11,7 +11,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ #if !UCONFIG_NO_FORMATTING
+
+@@ -191,4 +191,4 @@
+
+ #endif /* #if !UCONFIG_NO_FORMATTING */
+
+-#endif /* U_PLATFORM_HAS_WIN32_API */
++#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
+Index: source/test/intltest/windttst.h
+===================================================================
+--- source/test/intltest/windttst.h (revision 40154)
++++ source/test/intltest/windttst.h (working copy)
+@@ -14,7 +14,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ #if !UCONFIG_NO_FORMATTING
+
+@@ -36,6 +36,6 @@
+
+ #endif /* #if !UCONFIG_NO_FORMATTING */
+
+-#endif // U_PLATFORM_HAS_WIN32_API
++#endif // U_PLATFORM_USES_ONLY_WIN32_API
+
+ #endif // __WINDTTST
+Index: source/test/intltest/winutil.cpp
+===================================================================
+--- source/test/intltest/winutil.cpp (revision 40154)
++++ source/test/intltest/winutil.cpp (working copy)
+@@ -11,7 +11,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ #if !UCONFIG_NO_FORMATTING
+
+@@ -93,4 +93,4 @@
+
+ #endif /* #if !UCONFIG_NO_FORMATTING */
+
+-#endif /* U_PLATFORM_HAS_WIN32_API */
++#endif /* U_PLATFORM_USES_ONLY_WIN32_API */
+Index: source/test/intltest/winutil.h
+===================================================================
+--- source/test/intltest/winutil.h (revision 40154)
++++ source/test/intltest/winutil.h (working copy)
+@@ -14,7 +14,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ #if !UCONFIG_NO_FORMATTING
+
+@@ -41,6 +41,6 @@
+
+ #endif /* #if !UCONFIG_NO_FORMATTING */
+
+-#endif // U_PLATFORM_HAS_WIN32_API
++#endif // U_PLATFORM_USES_ONLY_WIN32_API
+
+ #endif // __WINUTIL
+Index: source/test/perf/collperf/collperf.cpp
+===================================================================
+--- source/test/perf/collperf/collperf.cpp (revision 40154)
++++ source/test/perf/collperf/collperf.cpp (working copy)
+@@ -113,7 +113,7 @@
+ ucol_getSortKey(col, data[i].icu_data, data[i].icu_data_len, icu_key, MAX_KEY_LENGTH);
+ }
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ // pre-generated in CollPerfTest::prepareData(), need not to check error here
+ void win_key_null(int32_t i){
+ //LCMAP_SORTsk 0x00000400 // WC sort sk (normalize)
+@@ -295,7 +295,7 @@
+ return strcmp((char *) da->icu_key, (char *) db->icu_key);
+ }
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ static int win_cmp_null(const void *a, const void *b) {
+ QCAST();
+ //CSTR_LESS_THAN 1
+@@ -330,7 +330,7 @@
+
+ QFUNC(posix_strcoll_null, strcoll, posix_data)
+ QFUNC(posix_cmpkey, strcmp, posix_key)
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ QFUNC(win_cmpkey, strcmp, win_key)
+ QFUNC(win_wcscmp, wcscmp, win_data)
+ #endif
+@@ -450,7 +450,7 @@
+ return strcmp( (char *) rnd[i].icu_key, (char *) ord[j].icu_key );
+ }
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ int win_cmp_null(int32_t i, int32_t j) {
+ int t = CompareStringW(win_langid, 0, rnd[i].win_data, -1, ord[j].win_data, -1);
+ if (t == 0){
+@@ -587,7 +587,7 @@
+ locale = "en_US"; // set default locale
+ }
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ if (options[i].doesOccur) {
+ char *endp;
+ int tmp = strtol(options[i].value, &endp, 0);
+@@ -687,7 +687,7 @@
+ TEST_KEYGEN(TestIcu_KeyGen_null, icu_key_null);
+ TEST_KEYGEN(TestIcu_KeyGen_len, icu_key_len);
+ TEST_KEYGEN(TestPosix_KeyGen_null, posix_key_null);
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ TEST_KEYGEN(TestWin_KeyGen_null, win_key_null);
+ TEST_KEYGEN(TestWin_KeyGen_len, win_key_len);
+ #endif
+@@ -713,7 +713,7 @@
+ TEST_QSORT(TestIcu_qsort_usekey, icu_cmpkey);
+ TEST_QSORT(TestPosix_qsort_strcoll_null, posix_strcoll_null);
+ TEST_QSORT(TestPosix_qsort_usekey, posix_cmpkey);
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ TEST_QSORT(TestWin_qsort_CompareStringW_null, win_cmp_null);
+ TEST_QSORT(TestWin_qsort_CompareStringW_len, win_cmp_len);
+ TEST_QSORT(TestWin_qsort_usekey, win_cmpkey);
+@@ -728,7 +728,7 @@
+ TEST_BIN(TestIcu_BinarySearch_cmpCPO, icu_cmpcpo);
+ TEST_BIN(TestPosix_BinarySearch_strcoll_null, posix_strcoll_null);
+ TEST_BIN(TestPosix_BinarySearch_usekey, posix_cmpkey);
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ TEST_BIN(TestWin_BinarySearch_CompareStringW_null, win_cmp_null);
+ TEST_BIN(TestWin_BinarySearch_CompareStringW_len, win_cmp_len);
+ #endif
+@@ -828,7 +828,7 @@
+ t = strxfrm(posix_key->last(), posix_data->dataOf(i), s);
+ if (t != s) {status = U_INVALID_FORMAT_ERROR;return;}
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ // Win data
+ s = icu_data->lengthOf(i) + 1; // plus terminal NULL
+ win_data->append_one(s);
+@@ -851,7 +851,7 @@
+ rnd_index[i].posix_key = posix_key->last();
+ rnd_index[i].posix_data = posix_data->dataOf(i);
+ rnd_index[i].posix_data_len = posix_data->lengthOf(i);
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ rnd_index[i].win_key = win_key->dataOf(i);
+ rnd_index[i].win_data = win_data->dataOf(i);
+ rnd_index[i].win_data_len = win_data->lengthOf(i);
+@@ -870,7 +870,7 @@
+ SORT(ord_icu_key, icu_cmpkey);
+ SORT(ord_posix_data, posix_strcoll_null);
+ SORT(ord_posix_key, posix_cmpkey);
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ SORT(ord_win_data, win_cmp_len);
+ SORT(ord_win_key, win_cmpkey);
+ SORT(ord_win_wcscmp, win_wcscmp);
+Index: source/test/perf/normperf/normperf.h
+===================================================================
+--- source/test/perf/normperf/normperf.h (revision 40154)
++++ source/test/perf/normperf/normperf.h (working copy)
+@@ -315,7 +315,7 @@
+ }
+ #endif
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ int32_t WinNormNFD(const UChar* src, int32_t srcLen, UChar* dest, int32_t dstLen, int32_t options, UErrorCode* status) {
+ return FoldStringW(MAP_COMPOSITE,src,srcLen,dest,dstLen);
+Index: source/tools/ctestfw/unicode/utimer.h
+===================================================================
+--- source/tools/ctestfw/unicode/utimer.h (revision 40154)
++++ source/tools/ctestfw/unicode/utimer.h (working copy)
+@@ -10,7 +10,7 @@
+
+ #include "unicode/utypes.h"
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ # define VC_EXTRALEAN
+ # define WIN32_LEAN_AND_MEAN
+ # include <windows.h>
+@@ -160,7 +160,7 @@
+ typedef void FuntionToBeTimed(void* param);
+
+
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+
+ struct UTimer{
+ LARGE_INTEGER start;
+Index: source/tools/genrb/derb.cpp
+===================================================================
+--- source/tools/genrb/derb.cpp (revision 40154)
++++ source/tools/genrb/derb.cpp (working copy)
+@@ -204,7 +204,7 @@
+ UBool fromICUData = !uprv_strcmp(inputDir, "-");
+ if (!fromICUData) {
+ UBool absfilename = *arg == U_FILE_SEP_CHAR;
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_HAS_WIN32_API && U_PLATFORM != U_PF_CYGWIN
+ if (!absfilename) {
+ absfilename = (uprv_strlen(arg) > 2 && isalpha(arg[0])
+ && arg[1] == ':' && arg[2] == U_FILE_SEP_CHAR);
+Index: source/tools/toolutil/udbgutil.cpp
+===================================================================
+--- source/tools/toolutil/udbgutil.cpp (revision 40154)
++++ source/tools/toolutil/udbgutil.cpp (working copy)
+@@ -348,8 +348,10 @@
+ */
+ U_CAPI const char *udbg_getPlatform(void)
+ {
+-#if U_PLATFORM_HAS_WIN32_API
++#if U_PLATFORM_USES_ONLY_WIN32_API
+ return "Windows";
++#elif U_PLATFORM == U_PF_CYGWIN
++ return "Cygwin";
+ #elif U_PLATFORM == U_PF_UNKNOWN
+ return "unknown";
+ #elif U_PLATFORM == U_PF_DARWIN
diff --git a/Build/source/libs/icu/TLPATCHES/patch-20-private b/Build/source/libs/icu/TLPATCHES/patch-20-private
new file mode 100644
index 00000000000..d20a7de0d37
--- /dev/null
+++ b/Build/source/libs/icu/TLPATCHES/patch-20-private
@@ -0,0 +1,73 @@
+ The supplied g++-4.2 compiler on 32-bit MacOSX apparently
+ mishandled private enum in the implementation (since newer
+ compilers are ok with it). This can be removed when we drop
+ support for 32-bit MacOSX.
+ http://tug.org/pipermail/tlbuild/2016q1/003438.html
+ (and starting at http://tug.org/pipermail/tlbuild/2016q1/003433.html)
+
+Index: icu-src/source/i18n/dayperiodrules.h
+===================================================================
+--- icu-src/source/i18n/dayperiodrules.h (revision 40174)
++++ icu-src/source/i18n/dayperiodrules.h (working copy)
+@@ -53,7 +53,7 @@
+ // Returns the center of dayPeriod. Half hours are indicated with a .5 .
+ double getMidPointForDayPeriod(DayPeriod dayPeriod, UErrorCode &errorCode) const;
+
+-private:
++/* nothing private to placate old compilers --karl/koch private: */
+ DayPeriodRules();
+
+ // Translates "morning1" to DAYPERIOD_MORNING1, for example.
+Index: icu-src/source/i18n/unicode/dtitvinf.h
+===================================================================
+--- icu-src/source/i18n/unicode/dtitvinf.h (revision 40174)
++++ icu-src/source/i18n/unicode/dtitvinf.h (working copy)
+@@ -150,7 +150,8 @@
+
+ class U_I18N_API DateIntervalInfo U_FINAL : public UObject {
+ public:
+-#ifndef U_HIDE_INTERNAL_API
++/* nothing private to placate old compilers --karl/koch */
++/* ifndef U_HIDE_INTERNAL_API */
+ /**
+ * Default constructor.
+ * It does not initialize any interval patterns except
+@@ -165,7 +166,7 @@
+ * @internal ICU 4.0
+ */
+ DateIntervalInfo(UErrorCode& status);
+-#endif /* U_HIDE_INTERNAL_API */
++/* endif */ /* U_HIDE_INTERNAL_API */
+
+
+ /**
+@@ -328,7 +329,7 @@
+ static UClassID U_EXPORT2 getStaticClassID();
+
+
+-private:
++/* nothing private to placate old compilers --karl/koch private: */
+ /**
+ * DateIntervalFormat will need access to
+ * getBestSkeleton(), parseSkeleton(), enum IntervalPatternIndex,
+@@ -359,7 +360,8 @@
+ kIPI_MAX_INDEX
+ };
+ public:
+-#ifndef U_HIDE_INTERNAL_API
++/* nothing private to placate old compilers --karl/koch */
++/* ifndef U_HIDE_INTERNAL_API */
+ /**
+ * Max index for stored interval patterns
+ * @internal ICU 4.4
+@@ -367,8 +369,8 @@
+ enum {
+ kMaxIntervalPatternIndex = kIPI_MAX_INDEX
+ };
+-#endif /* U_HIDE_INTERNAL_API */
+-private:
++/* endif */ /* U_HIDE_INTERNAL_API */
++/* nothing private to placate old compilers --karl/koch private: */
+
+
+ /**