commit 0e2868a505e6050591a179e66205b588ccd0a065 Author: Jakub Bogusz <qbo...@pld-linux.org> Date: Tue Apr 25 18:07:02 2017 +0200
- added cxx-pre11 patch (allow using C++ API in GCC c++98/c++03 mode) - release 2 icu-cxx-pre11.patch | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++ icu.spec | 4 +- 2 files changed, 177 insertions(+), 1 deletion(-) --- diff --git a/icu.spec b/icu.spec index cf2c487..3076f5a 100644 --- a/icu.spec +++ b/icu.spec @@ -7,11 +7,12 @@ Summary: International Components for Unicode Summary(pl.UTF-8): Międzynarodowe komponenty dla unikodu Name: icu Version: 59.1 -Release: 1 +Release: 2 License: MIT-like Group: Libraries Source0: http://download.icu-project.org/files/icu4c/%{version}/%{name}4c-%{ver}-src.tgz # Source0-md5: 54923fa9fab5b2b83f235fb72523de37 +Patch0: %{name}-cxx-pre11.patch URL: http://www.icu-project.org/ BuildRequires: autoconf >= 2.69 BuildRequires: libstdc++-devel @@ -94,6 +95,7 @@ biblioteki programistyczne ICU. %prep %setup -q -n %{name} +%patch0 -p1 %build cd source diff --git a/icu-cxx-pre11.patch b/icu-cxx-pre11.patch new file mode 100644 index 0000000..3a4457a --- /dev/null +++ b/icu-cxx-pre11.patch @@ -0,0 +1,174 @@ +--- icu/source/common/unicode/umachine.h.orig 2017-03-16 20:01:12.000000000 +0100 ++++ icu/source/common/unicode/umachine.h 2017-04-24 21:51:37.750924621 +0200 +@@ -295,7 +295,7 @@ + * If 1, then char16_t is a typedef and not a real type (yet) + * @internal + */ +-#if (U_PLATFORM == U_PF_AIX) && defined(__cplusplus) &&(U_CPLUSPLUS_VERSION < 11) ++#if ((U_PLATFORM == U_PF_AIX) || defined(__GNUC__)) && defined(__cplusplus) && (U_CPLUSPLUS_VERSION < 11) + // for AIX, uchar.h needs to be included + # include <uchar.h> + # define U_CHAR16_IS_TYPEDEF 1 +--- icu/source/common/unicode/char16ptr.h.orig 2017-03-29 06:44:37.000000000 +0200 ++++ icu/source/common/unicode/char16ptr.h 2017-04-25 17:32:39.386782173 +0200 +@@ -61,12 +61,14 @@ + */ + inline Char16Ptr(wchar_t *p); + #endif ++#ifdef U_HAS_NULLPTR_T + /** + * nullptr constructor. + * @param p nullptr + * @draft ICU 59 + */ + inline Char16Ptr(std::nullptr_t p); ++#endif + /** + * Destructor. + * @draft ICU 59 +@@ -114,7 +116,9 @@ + #if U_SIZEOF_WCHAR_T==2 + Char16Ptr::Char16Ptr(wchar_t *p) : p(cast(p)) {} + #endif ++#ifdef U_HAS_NULLPTR_T + Char16Ptr::Char16Ptr(std::nullptr_t p) : p(p) {} ++#endif + Char16Ptr::~Char16Ptr() { + U_ALIASING_BARRIER(p); + } +@@ -130,7 +134,9 @@ + #if U_SIZEOF_WCHAR_T==2 + Char16Ptr::Char16Ptr(wchar_t *p) { u.wp = p; } + #endif ++#ifdef U_HAS_NULLPTR_T + Char16Ptr::Char16Ptr(std::nullptr_t p) { u.cp = p; } ++#endif + Char16Ptr::~Char16Ptr() {} + + char16_t *Char16Ptr::get() const { return u.cp; } +@@ -168,12 +174,14 @@ + */ + inline ConstChar16Ptr(const wchar_t *p); + #endif ++#ifdef U_HAS_NULLPTR_T + /** + * nullptr constructor. + * @param p nullptr + * @draft ICU 59 + */ + inline ConstChar16Ptr(const std::nullptr_t p); ++#endif + + /** + * Destructor. +@@ -222,7 +230,9 @@ + #if U_SIZEOF_WCHAR_T==2 + ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) : p(cast(p)) {} + #endif ++#ifdef U_HAS_NULLPTR_T + ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) : p(p) {} ++#endif + ConstChar16Ptr::~ConstChar16Ptr() { + U_ALIASING_BARRIER(p); + } +@@ -238,7 +248,9 @@ + #if U_SIZEOF_WCHAR_T==2 + ConstChar16Ptr::ConstChar16Ptr(const wchar_t *p) { u.wp = p; } + #endif ++#ifdef U_HASH_NULLPTR_T + ConstChar16Ptr::ConstChar16Ptr(const std::nullptr_t p) { u.cp = p; } ++#endif + ConstChar16Ptr::~ConstChar16Ptr() {} + + const char16_t *ConstChar16Ptr::get() const { return u.cp; } +--- icu/source/common/unicode/platform.h.orig 2017-03-22 20:06:26.000000000 +0100 ++++ icu/source/common/unicode/platform.h 2017-04-25 17:30:01.483450642 +0200 +@@ -503,6 +503,10 @@ + namespace std { + typedef decltype(nullptr) nullptr_t; + }; ++# define U_HAS_NULLPTR_T 1 ++#elif defined(__cplusplus) && (U_CPLUSPLUS_VERSION >= 11) ++# define U_HAS_NULLPTR_T 1 ++// else no U_HAS_NULLPTR_T + #endif + + /** +--- icu/source/common/unicode/unistr.h.orig 2017-03-29 06:44:37.000000000 +0200 ++++ icu/source/common/unicode/unistr.h 2017-04-25 17:33:43.030114781 +0200 +@@ -3049,6 +3049,7 @@ + * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor, + * it should always be available regardless of U_HIDE_DRAFT_API status + */ ++#ifdef U_HAS_NULLPTR_T + /** + * nullptr_t constructor. + * Effectively the same as the default constructor, makes an empty string object. +@@ -3060,6 +3061,7 @@ + * @draft ICU 59 + */ + UNISTR_FROM_STRING_EXPLICIT inline UnicodeString(const std::nullptr_t text); ++#endif + + /** + * char16_t* constructor. +@@ -3108,6 +3110,7 @@ + * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor, + * it should always be available regardless of U_HIDE_DRAFT_API status + */ ++#ifdef U_HAS_NULLPTR_T + /** + * nullptr_t constructor. + * Effectively the same as the default constructor, makes an empty string object. +@@ -3116,6 +3119,7 @@ + * @draft ICU 59 + */ + inline UnicodeString(const std::nullptr_t text, int32_t length); ++#endif + + /** + * Readonly-aliasing char16_t* constructor. +@@ -3202,6 +3206,7 @@ + * Do not use #ifndef U_HIDE_DRAFT_API for the following constructor, + * it should always be available regardless of U_HIDE_DRAFT_API status + */ ++#ifdef U_HAS_NULLPTR_T + /** + * Writable-aliasing nullptr_t constructor. + * Effectively the same as the default constructor, makes an empty string object. +@@ -3211,6 +3216,7 @@ + * @draft ICU 59 + */ + inline UnicodeString(std::nullptr_t buffer, int32_t buffLength, int32_t buffCapacity); ++#endif + + #if U_CHARSET_IS_UTF8 || !UCONFIG_NO_CONVERSION + +@@ -3924,6 +3930,7 @@ + fUnion.fStackFields.fLengthAndFlags=kShortString; + } + ++#ifdef U_HAS_NULLPTR_T + inline UnicodeString::UnicodeString(const std::nullptr_t /*text*/) { + fUnion.fStackFields.fLengthAndFlags=kShortString; + } +@@ -3935,6 +3942,7 @@ + inline UnicodeString::UnicodeString(std::nullptr_t /*buffer*/, int32_t /*buffLength*/, int32_t /*buffCapacity*/) { + fUnion.fStackFields.fLengthAndFlags=kShortString; + } ++#endif + + //======================================== + // Read-only implementation methods +@@ -3985,7 +3993,11 @@ + inline const char16_t * + UnicodeString::getBuffer() const { + if(fUnion.fFields.fLengthAndFlags&(kIsBogus|kOpenGetBuffer)) { ++#ifdef U_HAS_NULLPTR_T + return nullptr; ++#else ++ return 0; ++#endif + } else if(fUnion.fFields.fLengthAndFlags&kUsingStackBuffer) { + return fUnion.fStackFields.fBuffer; + } else { ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/icu.git/commitdiff/0e2868a505e6050591a179e66205b588ccd0a065 _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit