summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@iki.fi>2013-05-28 18:07:48 +0200
committerTor Lillqvist <tml@iki.fi>2013-05-28 19:10:21 +0300
commitc95999782ee393a121ab36d2a46ba21940b40708 (patch)
treec75dc4108bf25cc26d0e849b185696fd10c1b0f5
parent0a5fda73e82b7c47db2612954f061f9ab2824de8 (diff)
Bypass the type_info generation when using libc++ for gcc3_macosx_intel, too
(It causes linker errors, type_info destructor not found and a few others. Possibly this is a bug in Apple's libc++abi?) Change-Id: I50bc97c8e061ff47d4ff16f31d37cfe3b4f5a010
-rw-r--r--bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx b/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
index f00c0ed4ff46..f51cb7540603 100644
--- a/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
+++ b/bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx
@@ -51,6 +51,8 @@ using namespace ::__cxxabiv1;
namespace CPPU_CURRENT_NAMESPACE
{
+#ifndef _LIBCPP_VERSION
+
#if MACOSX_SDK_VERSION >= 1070
// MacOSX10.4u.sdk/usr/include/c++/4.0.0/cxxabi.h defined
@@ -100,6 +102,8 @@ std::type_info * create_FAKE_si_class_type_info(
#endif
+#endif
+
void dummy_can_throw_anything( char const * )
{
}
@@ -212,6 +216,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) );
if (iFind2 == m_generatedRttis.end())
{
+#ifndef _LIBCPP_VERSION
// we must generate it !
// symbol and rtti-name is nearly identical,
// the symbol is prefixed with _ZTI
@@ -247,6 +252,10 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
SAL_WARN_IF( !insertion.second,
"bridges",
"inserting new generated rtti failed" );
+#else
+ OSL_FAIL("Cannot generate type_infos with libc++, sigh");
+ return NULL;
+#endif
}
else // taking already generated rtti
{