# HG changeset patch # User John Donoghue # Date 1544120749 18000 # Node ID b8eca8e69ef9aa6b8307cda51a1b6ef6330d6cb8 # Parent f19ca4b750b650de6556ac3f5fa9178bd70265b0 icu4c: add patch file * src/icu4c-1-fixes.patch: added patch for icu4c * dist-files.mk: add ref to patch diff -r f19ca4b750b6 -r b8eca8e69ef9 dist-files.mk --- a/dist-files.mk Thu Dec 06 07:50:23 2018 -0500 +++ b/dist-files.mk Thu Dec 06 13:25:49 2018 -0500 @@ -185,6 +185,7 @@ hunspell-test.cpp \ hunspell.mk \ ice.mk \ + icu4c-1-fixes.patch \ icu4c.mk \ id3lib-1-win32.patch \ id3lib.mk \ diff -r f19ca4b750b6 -r b8eca8e69ef9 src/icu4c-1-fixes.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/icu4c-1-fixes.patch Thu Dec 06 13:25:49 2018 -0500 @@ -0,0 +1,54 @@ +diff -ur icu.orig/source/common/umutex.h icu/source/common/umutex.h +--- icu.orig/source/common/umutex.h 2018-11-28 07:44:08.599310972 -0500 ++++ icu/source/common/umutex.h 2018-11-28 07:48:11.600429267 -0500 +@@ -54,15 +54,15 @@ + + #include + +-U_NAMESPACE_BEGIN +- + // Export an explicit template instantiation of std::atomic. + // When building DLLs for Windows this is required as it is used as a data member of the exported SharedObject class. + // See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples. +-#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN ++#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN) + template struct U_COMMON_API std::atomic; + #endif + ++U_NAMESPACE_BEGIN ++ + typedef std::atomic u_atomic_int32_t; + #define ATOMIC_INT32_T_INITIALIZER(val) ATOMIC_VAR_INIT(val) + +diff -ur icu.orig/source/i18n/unicode/numberrangeformatter.h icu/source/i18n/unicode/numberrangeformatter.h +--- icu.orig/source/i18n/unicode/numberrangeformatter.h 2018-11-28 07:44:08.647312767 -0500 ++++ icu/source/i18n/unicode/numberrangeformatter.h 2018-11-28 07:50:46.246265906 -0500 +@@ -185,8 +185,15 @@ + * Export an explicit template instantiation. See datefmt.h + * (When building DLLs for Windows this is required.) + */ +-#if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN) +-template struct U_I18N_API std::atomic; ++#if U_PLATFORM == U_PF_WINDOWS && !defined(U_IN_DOXYGEN) ++} // namespace icu::number ++U_NAMESPACE_END ++ ++template struct U_I18N_API std::atomic< U_NAMESPACE_QUALIFIER number::impl::NumberRangeFormatterImpl*>; ++ ++U_NAMESPACE_BEGIN ++namespace number { // icu::number ++ + #endif + /** \endcond */ + +diff -ur icu.orig/source/test/intltest/numbertest.h icu/source/test/intltest/numbertest.h +--- icu.orig/source/test/intltest/numbertest.h 2018-11-28 07:44:08.547309026 -0500 ++++ icu/source/test/intltest/numbertest.h 2018-11-28 07:51:46.752552939 -0500 +@@ -10,6 +10,7 @@ + #include "intltest.h" + #include "number_affixutils.h" + #include "numparse_stringsegment.h" ++#include "numrange_impl.h" + #include "unicode/locid.h" + #include "unicode/numberformatter.h" + #include "unicode/numberrangeformatter.h"