Bug 1390752 - Avoid std::basic_ios<char, std::char_traits<char>>::operator bool() references. r?froydnj
This is similar to what we had until
bug 1278456 removed them when we dropped
support for older libstdc++, but for a different symbol.
--- a/build/unix/stdc++compat/stdc++compat.cpp
+++ b/build/unix/stdc++compat/stdc++compat.cpp
@@ -155,8 +155,17 @@ namespace std {
}
/* For some reason this is a symbol exported by new versions of libstdc++,
* even though the destructor is default there too */
__attribute__((weak)) thread::_State::~_State() = default;
#endif
}
#endif
+
+#if MOZ_LIBSTDCXX_VERSION >= GLIBCXX_VERSION(3, 4, 21)
+namespace std
+{
+ /* Instantiate this template to avoid GLIBCXX_3.4.21 symbol versions
+ * depending on optimization level */
+ template basic_ios<char, char_traits<char> >::operator bool() const;
+}
+#endif