Kaydet (Commit) c9599978 authored tarafından Tor Lillqvist's avatar Tor Lillqvist

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
üst 0a5fda73
...@@ -51,6 +51,8 @@ using namespace ::__cxxabiv1; ...@@ -51,6 +51,8 @@ using namespace ::__cxxabiv1;
namespace CPPU_CURRENT_NAMESPACE namespace CPPU_CURRENT_NAMESPACE
{ {
#ifndef _LIBCPP_VERSION
#if MACOSX_SDK_VERSION >= 1070 #if MACOSX_SDK_VERSION >= 1070
// MacOSX10.4u.sdk/usr/include/c++/4.0.0/cxxabi.h defined // 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( ...@@ -100,6 +102,8 @@ std::type_info * create_FAKE_si_class_type_info(
#endif #endif
#endif
void dummy_can_throw_anything( char const * ) void dummy_can_throw_anything( char const * )
{ {
} }
...@@ -212,6 +216,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR ...@@ -212,6 +216,7 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) ); t_rtti_map::const_iterator iFind2( m_generatedRttis.find( unoName ) );
if (iFind2 == m_generatedRttis.end()) if (iFind2 == m_generatedRttis.end())
{ {
#ifndef _LIBCPP_VERSION
// we must generate it ! // we must generate it !
// symbol and rtti-name is nearly identical, // symbol and rtti-name is nearly identical,
// the symbol is prefixed with _ZTI // the symbol is prefixed with _ZTI
...@@ -247,6 +252,10 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR ...@@ -247,6 +252,10 @@ type_info * RTTI::getRTTI( typelib_CompoundTypeDescription *pTypeDescr ) SAL_THR
SAL_WARN_IF( !insertion.second, SAL_WARN_IF( !insertion.second,
"bridges", "bridges",
"inserting new generated rtti failed" ); "inserting new generated rtti failed" );
#else
OSL_FAIL("Cannot generate type_infos with libc++, sigh");
return NULL;
#endif
} }
else // taking already generated rtti else // taking already generated rtti
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment