Bug 1263325 - Unbreak build with libc++ and config/gcc_hidden.h after bug 1239083. r=glandium
authorJan Beich <jbeich@FreeBSD.org>
Mon, 11 Apr 2016 11:38:54 +0000
changeset 292791 061ad34e7f0f8e87c114f7dd74fb287638a73851
parent 292790 a956dc9f9398e1b1a2f9b42aae624bca5ed407c5
child 292792 acd02b077759bff2cbe13b1898610f72595d13b7
push id30167
push userkwierso@gmail.com
push dateTue, 12 Apr 2016 22:28:26 +0000
treeherdermozilla-central@fb125ff927ea [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersglandium
bugs1263325, 1239083
milestone48.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
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