diff options
author | Tor Lillqvist <tml@iki.fi> | 2013-05-28 18:07:48 +0200 |
---|---|---|
committer | Tor Lillqvist <tml@iki.fi> | 2013-05-28 19:10:21 +0300 |
commit | c95999782ee393a121ab36d2a46ba21940b40708 (patch) | |
tree | c75dc4108bf25cc26d0e849b185696fd10c1b0f5 /bridges/source | |
parent | 0a5fda73e82b7c47db2612954f061f9ab2824de8 (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
Diffstat (limited to 'bridges/source')
-rw-r--r-- | bridges/source/cpp_uno/gcc3_macosx_intel/except.cxx | 9 |
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 { |