Bug 1263325 - Unbreak build with libc++ and config/gcc_hidden.h after bug 1239083. r?glandium draft
authorJan Beich <jbeich@FreeBSD.org>
Mon, 11 Apr 2016 11:38:54 +0000
changeset 349394 e227202a9d62ee2532ad8fcc995fc983f3edcdcc
parent 349392 1258adc301a8a61b1cb401c28144202ba35825ea
child 518085 455462ca7826294b2b16165cd48fa27ea407bf63
push id15071
push userbmo:jbeich@FreeBSD.org
push dateMon, 11 Apr 2016 11:55:30 +0000
reviewersglandium
bugs1263325, 1239083
milestone48.0a1
Bug 1263325 - Unbreak build with libc++ and config/gcc_hidden.h after bug 1239083. r?glandium MozReview-Commit-ID: 4y4j6o7V54D
intl/icu-patches/bug-1228227-bug-1263325-libc++-gcc_hidden.diff
intl/icu-patches/bug-1228227-libc++-gcc_hidden.diff
intl/icu/source/common/utypeinfo.h
intl/icu/source/io/unicode/ustream.h
intl/update-icu.sh
new file mode 100644
--- /dev/null
+++ b/intl/icu-patches/bug-1228227-bug-1263325-libc++-gcc_hidden.diff
@@ -0,0 +1,66 @@
+Limit libstdc++ workaround to not upset libc++ with pragma visibility.
+
+https://ssl.icu-project.org/trac/ticket/12023
+
+diff --git a/intl/icu/source/common/unicode/std_string.h b/intl/icu/source/common/unicode/std_string.h
+--- a/intl/icu/source/common/unicode/std_string.h
++++ b/intl/icu/source/common/unicode/std_string.h
+@@ -22,16 +22,16 @@
+  * \brief C++ API: Central ICU header for including the C++ standard &lt;string&gt;
+  *                 header and for related definitions.
+  */
+ 
+ #include "unicode/utypes.h"
+ 
+ #if U_HAVE_STD_STRING
+ 
+-#if !defined(_MSC_VER)
++#if defined(__GLIBCXX__)
+ namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
+ #endif
+ #include <string>
+ 
+ #endif  // U_HAVE_STD_STRING
+ 
+ #endif  // __STD_STRING_H__
+diff --git a/intl/icu/source/common/utypeinfo.h b/intl/icu/source/common/utypeinfo.h
+--- a/intl/icu/source/common/utypeinfo.h
++++ b/intl/icu/source/common/utypeinfo.h
+@@ -17,14 +17,14 @@
+ // Whenever 'typeid' is used, this header has to be included
+ // instead of <typeinfo>.
+ // Visual Stuido 10 emits warning 4275 with this change. If you compile
+ // with exception disabled, you have to suppress warning 4275.
+ #if defined(_MSC_VER) && _HAS_EXCEPTIONS == 0
+ #include <exception>
+ using std::exception;
+ #endif
+-#if !defined(_MSC_VER)
++#if defined(__GLIBCXX__)
+ namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
+ #endif
+ #include <typeinfo>  // for 'typeid' to work
+ 
+ #endif
+diff --git a/intl/icu/source/io/unicode/ustream.h b/intl/icu/source/io/unicode/ustream.h
+--- a/intl/icu/source/io/unicode/ustream.h
++++ b/intl/icu/source/io/unicode/ustream.h
+@@ -23,17 +23,17 @@
+  * \file
+  * \brief C++ API: Unicode iostream like API
+  *
+  * At this time, this API is very limited. It contains
+  * operator<< and operator>> for UnicodeString manipulation with the
+  * C++ I/O stream API.
+  */
+ 
+-#if !defined(_MSC_VER)
++#if defined(__GLIBCXX__)
+ namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
+ #endif
+ 
+ #if U_IOSTREAM_SOURCE >= 199711
+ #if (__GNUC__ == 2)
+ #include <iostream>
+ #else
+ #include <istream>
deleted file mode 100644
--- a/intl/icu-patches/bug-1228227-libc++-gcc_hidden.diff
+++ /dev/null
@@ -1,23 +0,0 @@
-Limit libstdc++ workaround to not upset libc++ with pragma visibility.
-
-diff --git a/intl/icu/source/common/unicode/std_string.h b/intl/icu/source/common/unicode/std_string.h
---- a/intl/icu/source/common/unicode/std_string.h
-+++ b/intl/icu/source/common/unicode/std_string.h
-@@ -22,16 +22,16 @@
-  * \brief C++ API: Central ICU header for including the C++ standard &lt;string&gt;
-  *                 header and for related definitions.
-  */
- 
- #include "unicode/utypes.h"
- 
- #if U_HAVE_STD_STRING
- 
--#if !defined(_MSC_VER)
-+#if defined(__GLIBCXX__)
- namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
- #endif
- #include <string>
- 
- #endif  // U_HAVE_STD_STRING
- 
- #endif  // __STD_STRING_H__
--- a/intl/icu/source/common/utypeinfo.h
+++ b/intl/icu/source/common/utypeinfo.h
@@ -17,14 +17,14 @@
 // Whenever 'typeid' is used, this header has to be included
 // instead of <typeinfo>.
 // Visual Stuido 10 emits warning 4275 with this change. If you compile
 // with exception disabled, you have to suppress warning 4275.
 #if defined(_MSC_VER) && _HAS_EXCEPTIONS == 0
 #include <exception>
 using std::exception;
 #endif
-#if !defined(_MSC_VER)
+#if defined(__GLIBCXX__)
 namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
 #endif
 #include <typeinfo>  // for 'typeid' to work
 
 #endif
--- a/intl/icu/source/io/unicode/ustream.h
+++ b/intl/icu/source/io/unicode/ustream.h
@@ -23,17 +23,17 @@
  * \file
  * \brief C++ API: Unicode iostream like API
  *
  * At this time, this API is very limited. It contains
  * operator<< and operator>> for UnicodeString manipulation with the
  * C++ I/O stream API.
  */
 
-#if !defined(_MSC_VER)
+#if defined(__GLIBCXX__)
 namespace std { class type_info; } // WORKAROUND: http://llvm.org/bugs/show_bug.cgi?id=13364
 #endif
 
 #if U_IOSTREAM_SOURCE >= 199711
 #if (__GNUC__ == 2)
 #include <iostream>
 #else
 #include <istream>
--- a/intl/update-icu.sh
+++ b/intl/update-icu.sh
@@ -54,17 +54,17 @@ svn info $1 | grep -v '^Revision: [[:dig
 
 for patch in \
  bug-915735 \
  suppress-warnings.diff \
  bug-1172609-icu-fix.diff \
  bug-1172609-timezone-recreateDefault.diff \
  bug-1198952-workaround-make-3.82-bug.diff \
  icu-release-56-1-flagparser-fix.patch \
- bug-1228227-libc++-gcc_hidden.diff \
+ bug-1228227-bug-1263325-libc++-gcc_hidden.diff \
 ; do
   echo "Applying local patch $patch"
   patch -d ${icu_dir}/../../ -p1 --no-backup-if-mismatch < ${icu_dir}/../icu-patches/$patch
 done
 
 topsrcdir=`dirname $0`/../
 python ${topsrcdir}/js/src/tests/ecma_6/String/make-normalize-generateddata-input.py $topsrcdir