changeset 4894:b8eca8e69ef9

icu4c: add patch file * src/icu4c-1-fixes.patch: added patch for icu4c * dist-files.mk: add ref to patch
author John Donoghue
date Thu, 06 Dec 2018 13:25:49 -0500
parents f19ca4b750b6
children 55bdeeb7414a
files dist-files.mk src/icu4c-1-fixes.patch
diffstat 2 files changed, 55 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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 \
--- /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 <atomic>
+ 
+-U_NAMESPACE_BEGIN
+-
+ // Export an explicit template instantiation of std::atomic<int32_t>. 
+ // 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<int32_t>;
+ #endif
+ 
++U_NAMESPACE_BEGIN
++
+ typedef std::atomic<int32_t> 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<impl::NumberRangeFormatterImpl*>;
++#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"