1233174Stheraven# $FreeBSD$ 2233174Stheraven# Define the same version as the libsupc++ from gcc 4.2.1 so that we can use 3233174Stheraven# libcxxrt as a drop-in replacement. 4233174Stheraven 5233174StheravenCXXABI_1.3 { 6233174Stheraven 7233174Stheraven global: 8233174Stheraven 9233174Stheraven # ABI functions with C linkage 10233174Stheraven __cxa_allocate_exception; 11233174Stheraven __cxa_bad_cast; 12233174Stheraven __cxa_bad_typeid; 13233174Stheraven __cxa_begin_catch; 14233174Stheraven __cxa_begin_cleanup; 15233174Stheraven __cxa_call_unexpected; 16233174Stheraven __cxa_current_exception_type; 17233174Stheraven __cxa_demangle; 18233174Stheraven __cxa_end_catch; 19233174Stheraven __cxa_end_cleanup; 20233174Stheraven __cxa_free_exception; 21233174Stheraven __cxa_get_globals; 22233174Stheraven __cxa_get_globals_fast; 23233174Stheraven __cxa_guard_abort; 24233174Stheraven __cxa_guard_acquire; 25233174Stheraven __cxa_guard_release; 26233174Stheraven __cxa_pure_virtual; 27233174Stheraven __cxa_rethrow; 28233174Stheraven __cxa_throw; 29233174Stheraven __cxa_type_match; 30233174Stheraven __cxa_vec_cctor; 31233174Stheraven __cxa_vec_cleanup; 32233174Stheraven __cxa_vec_ctor; 33233174Stheraven __cxa_vec_delete2; 34233174Stheraven __cxa_vec_delete3; 35233174Stheraven __cxa_vec_delete; 36233174Stheraven __cxa_vec_dtor; 37233174Stheraven __cxa_vec_new2; 38233174Stheraven __cxa_vec_new3; 39233174Stheraven __cxa_vec_new; 40233174Stheraven __dynamic_cast; 41233174Stheraven __gxx_personality_sj0; 42233174Stheraven __gxx_personality_v0; 43233174Stheraven 44233174Stheraven extern "C++" { 45233174Stheraven # Type info classes and their destructors 46233174Stheraven "__cxxabiv1::__array_type_info"; 47233174Stheraven "__cxxabiv1::__array_type_info::~__array_type_info()"; 48233174Stheraven "__cxxabiv1::__class_type_info"; 49233174Stheraven "__cxxabiv1::__class_type_info::~__class_type_info()"; 50233174Stheraven "__cxxabiv1::__enum_type_info"; 51233174Stheraven "__cxxabiv1::__enum_type_info::~__enum_type_info()"; 52233174Stheraven "__cxxabiv1::__function_type_info::"; 53233174Stheraven "__cxxabiv1::__function_type_info::~__function_type_info()"; 54233174Stheraven "__cxxabiv1::__fundamental_type_info"; 55233174Stheraven "__cxxabiv1::__fundamental_type_info::~__fundamental_type_info()"; 56233174Stheraven "__cxxabiv1::__pbase_type_info"; 57233174Stheraven "__cxxabiv1::__pbase_type_info::~__pbase_type_info()"; 58233174Stheraven "__cxxabiv1::__pointer_to_member_type_info"; 59233174Stheraven "__cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info()"; 60233174Stheraven "__cxxabiv1::__pointer_type_info"; 61233174Stheraven "__cxxabiv1::__pointer_type_info::~__pointer_type_info()"; 62233174Stheraven "__cxxabiv1::__si_class_type_info"; 63233174Stheraven "__cxxabiv1::__si_class_type_info::~__si_class_type_info()"; 64233174Stheraven "__cxxabiv1::__vmi_class_type_info"; 65233174Stheraven "__cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()"; 66233174Stheraven 67233174Stheraven # vtables typeinfo classes. 68233174Stheraven "vtable for __cxxabiv1::__array_type_info"; 69233174Stheraven "vtable for __cxxabiv1::__class_type_info"; 70233174Stheraven "vtable for __cxxabiv1::__enum_type_info"; 71233174Stheraven "vtable for __cxxabiv1::__function_type_info"; 72233174Stheraven "vtable for __cxxabiv1::__fundamental_type_info"; 73233174Stheraven "vtable for __cxxabiv1::__pbase_type_info"; 74233174Stheraven "vtable for __cxxabiv1::__pointer_to_member_type_info"; 75233174Stheraven "vtable for __cxxabiv1::__pointer_type_info"; 76233174Stheraven "vtable for __cxxabiv1::__si_class_type_info"; 77233174Stheraven "vtable for __cxxabiv1::__vmi_class_type_info"; 78233174Stheraven 79233174Stheraven # Type info for built-in types 80233174Stheraven "typeinfo for bool const*"; 81233174Stheraven "typeinfo for bool"; 82233174Stheraven "typeinfo for char const*"; 83233174Stheraven "typeinfo for char"; 84233174Stheraven "typeinfo for double const*"; 85233174Stheraven "typeinfo for double"; 86233174Stheraven "typeinfo for float const*"; 87233174Stheraven "typeinfo for float"; 88233174Stheraven "typeinfo for int const*"; 89233174Stheraven "typeinfo for int"; 90233174Stheraven "typeinfo for long const*"; 91233174Stheraven "typeinfo for long double const*"; 92233174Stheraven "typeinfo for long double"; 93233174Stheraven "typeinfo for long long const*"; 94233174Stheraven "typeinfo for long long"; 95233174Stheraven "typeinfo for long"; 96233174Stheraven "typeinfo for short const*"; 97233174Stheraven "typeinfo for short"; 98233174Stheraven "typeinfo for signed char const*"; 99233174Stheraven "typeinfo for signed char"; 100233174Stheraven "typeinfo for unsigned char const*"; 101233174Stheraven "typeinfo for unsigned char"; 102233174Stheraven "typeinfo for unsigned int const*"; 103233174Stheraven "typeinfo for unsigned int"; 104233174Stheraven "typeinfo for unsigned long const*"; 105233174Stheraven "typeinfo for unsigned long long const*"; 106233174Stheraven "typeinfo for unsigned long long"; 107233174Stheraven "typeinfo for unsigned long"; 108233174Stheraven "typeinfo for unsigned short const*"; 109233174Stheraven "typeinfo for unsigned short"; 110233174Stheraven "typeinfo for void const*"; 111233174Stheraven "typeinfo for void"; 112233174Stheraven "typeinfo for wchar_t const*"; 113233174Stheraven "typeinfo for wchar_t"; 114261644Sdim # C++11 typeinfo not understood by our linker 115261644Sdim # std::nullptr_t 116261644Sdim _ZTIDn;_ZTIPDn;_ZTIPKDn; 117261644Sdim # char16_t 118261644Sdim _ZTIDi;_ZTIPDi;_ZTIPKDi; 119261644Sdim # char32_t 120261644Sdim _ZTIDs;_ZTIPDs;_ZTIPKDs; 121261644Sdim # IEEE 754r decimal floating point 122261644Sdim _ZTIDd;_ZTIPDd;_ZTIPKDd; 123261644Sdim _ZTIDe;_ZTIPDe;_ZTIPKDe; 124261644Sdim _ZTIDf;_ZTIPDf;_ZTIPKDf; 125261644Sdim # IEEE 754r half-precision floating point 126261644Sdim _ZTIDh;_ZTIPDh;_ZTIPKDh; 127233174Stheraven 128233174Stheraven "typeinfo for bool*"; 129233174Stheraven "typeinfo for wchar_t*"; 130233174Stheraven "typeinfo for short*"; 131233174Stheraven "typeinfo for char*"; 132233174Stheraven "typeinfo for unsigned char*"; 133233174Stheraven "typeinfo for long long*"; 134233174Stheraven "typeinfo for unsigned short*"; 135233174Stheraven "typeinfo for long*"; 136233174Stheraven "typeinfo for double*"; 137233174Stheraven "typeinfo for unsigned long*"; 138233174Stheraven "typeinfo for unsigned long long*"; 139233174Stheraven "typeinfo for int*"; 140233174Stheraven "typeinfo for long double*"; 141233174Stheraven "typeinfo for signed char*"; 142233174Stheraven "typeinfo for void*"; 143233174Stheraven "typeinfo for unsigned int*"; 144233174Stheraven "typeinfo for float*"; 145233174Stheraven 146233174Stheraven "typeinfo for __cxxabiv1::__array_type_info"; 147233174Stheraven "typeinfo for __cxxabiv1::__class_type_info"; 148233174Stheraven "typeinfo for __cxxabiv1::__enum_type_info"; 149233174Stheraven "typeinfo for __cxxabiv1::__function_type_info"; 150233174Stheraven "typeinfo for __cxxabiv1::__fundamental_type_info"; 151233174Stheraven "typeinfo for __cxxabiv1::__pbase_type_info"; 152233174Stheraven "typeinfo for __cxxabiv1::__pointer_to_member_type_info"; 153233174Stheraven "typeinfo for __cxxabiv1::__pointer_type_info"; 154233174Stheraven "typeinfo for __cxxabiv1::__si_class_type_info"; 155233174Stheraven "typeinfo for __cxxabiv1::__vmi_class_type_info"; 156233174Stheraven 157233174Stheraven # Typeinfo names. 158233174Stheraven 159233174Stheraven "typeinfo name for unsigned char const*"; 160233174Stheraven "typeinfo name for long const*"; 161233174Stheraven "typeinfo name for double const*"; 162233174Stheraven "typeinfo name for unsigned long long const*"; 163233174Stheraven "typeinfo name for unsigned short const*"; 164233174Stheraven "typeinfo name for char const*"; 165233174Stheraven "typeinfo name for long long const*"; 166233174Stheraven "typeinfo name for short const*"; 167233174Stheraven "typeinfo name for unsigned int const*"; 168233174Stheraven "typeinfo name for float const*"; 169233174Stheraven "typeinfo name for bool const*"; 170233174Stheraven "typeinfo name for wchar_t const*"; 171233174Stheraven "typeinfo name for int const*"; 172233174Stheraven "typeinfo name for unsigned long const*"; 173233174Stheraven "typeinfo name for void const*"; 174233174Stheraven "typeinfo name for long double const*"; 175233174Stheraven "typeinfo name for signed char const*"; 176233174Stheraven "typeinfo name for wchar_t"; 177233174Stheraven "typeinfo name for short"; 178233174Stheraven "typeinfo name for char"; 179233174Stheraven "typeinfo name for float"; 180233174Stheraven "typeinfo name for void"; 181233174Stheraven "typeinfo name for unsigned int"; 182233174Stheraven "typeinfo name for bool"; 183233174Stheraven "typeinfo name for signed char"; 184233174Stheraven "typeinfo name for long double"; 185233174Stheraven "typeinfo name for int"; 186233174Stheraven "typeinfo name for unsigned long long"; 187233174Stheraven "typeinfo name for unsigned long"; 188233174Stheraven "typeinfo name for unsigned char"; 189233174Stheraven "typeinfo name for long"; 190233174Stheraven "typeinfo name for long long"; 191233174Stheraven "typeinfo name for unsigned short"; 192233174Stheraven "typeinfo name for double"; 193233174Stheraven 194233174Stheraven "typeinfo name for bool*"; 195233174Stheraven "typeinfo name for wchar_t*"; 196233174Stheraven "typeinfo name for short*"; 197233174Stheraven "typeinfo name for char*"; 198233174Stheraven "typeinfo name for unsigned char*"; 199233174Stheraven "typeinfo name for long long*"; 200233174Stheraven "typeinfo name for unsigned short*"; 201233174Stheraven "typeinfo name for long*"; 202233174Stheraven "typeinfo name for double*"; 203233174Stheraven "typeinfo name for unsigned long*"; 204233174Stheraven "typeinfo name for unsigned long long*"; 205233174Stheraven "typeinfo name for int*"; 206233174Stheraven "typeinfo name for long double*"; 207233174Stheraven "typeinfo name for signed char*"; 208233174Stheraven "typeinfo name for void*"; 209233174Stheraven "typeinfo name for unsigned int*"; 210233174Stheraven "typeinfo name for float*"; 211261644Sdim # C++11 typeinfo not understood by our linker 212261644Sdim # std::nullptr_t 213261644Sdim _ZTSDn;_ZTIPDn;_ZTIPKDn; 214261644Sdim # char16_t 215261644Sdim _ZTSDi;_ZTIPDi;_ZTIPKDi; 216261644Sdim # char32_t 217261644Sdim _ZTSDs;_ZTIPDs;_ZTIPKDs; 218261644Sdim # IEEE 754r decimal floating point 219261644Sdim _ZTSDd;_ZTIPDd;_ZTIPKDd; 220261644Sdim _ZTSDe;_ZTIPDe;_ZTIPKDe; 221261644Sdim _ZTSDf;_ZTIPDf;_ZTIPKDf; 222261644Sdim # IEEE 754r half-precision floating point 223261644Sdim _ZTSDh;_ZTIPDh;_ZTIPKDh; 224233174Stheraven 225233174Stheraven "typeinfo name for __cxxabiv1::__array_type_info"; 226233174Stheraven "typeinfo name for __cxxabiv1::__class_type_info"; 227233174Stheraven "typeinfo name for __cxxabiv1::__enum_type_info"; 228233174Stheraven "typeinfo name for __cxxabiv1::__function_type_info"; 229233174Stheraven "typeinfo name for __cxxabiv1::__fundamental_type_info"; 230233174Stheraven "typeinfo name for __cxxabiv1::__pbase_type_info"; 231233174Stheraven "typeinfo name for __cxxabiv1::__pointer_to_member_type_info"; 232233174Stheraven "typeinfo name for __cxxabiv1::__pointer_type_info"; 233233174Stheraven "typeinfo name for __cxxabiv1::__si_class_type_info"; 234233174Stheraven "typeinfo name for __cxxabiv1::__vmi_class_type_info"; 235233174Stheraven 236233174Stheraven "std::type_info::type_info(std::type_info const&)"; 237233174Stheraven "std::type_info::operator=(std::type_info const&)"; 238233174Stheraven 239233174Stheraven 240233174Stheraven # Extensions 241233174Stheraven "pathscale::set_terminate(void (*)())"; 242233174Stheraven "pathscale::set_unexpected(void (*)())"; 243233174Stheraven "pathscale::set_use_thread_local_handlers(bool)"; 244233174Stheraven 245233174Stheraven 246233174Stheraven }; 247233174Stheraven 248233174Stheraven local: 249233174Stheraven *; 250233174Stheraven}; 251233174Stheraven 252233174StheravenCXXABI_1.3.1 { 253233174Stheraven __cxa_get_exception_ptr; 254233174Stheraven} CXXABI_1.3; 255233174Stheraven 256233174Stheraven 257233174StheravenCXXRT_1.0 { 258233174Stheraven 259233174Stheraven extern "C++" { 260233174Stheraven "std::type_info::name() const"; 261233174Stheraven "std::type_info::before(std::type_info const&) const"; 262233174Stheraven "std::type_info::operator==(std::type_info const&) const"; 263233174Stheraven "std::type_info::operator!=(std::type_info const&) const"; 264233174Stheraven "std::bad_cast::bad_cast(std::bad_cast const&)"; 265233174Stheraven "std::bad_cast::bad_cast()"; 266233174Stheraven "std::bad_cast::operator=(std::bad_cast const&)"; 267246297Sdim "std::bad_typeid::bad_typeid(std::bad_typeid const&)"; 268246297Sdim "std::bad_typeid::bad_typeid()"; 269246297Sdim "std::bad_typeid::operator=(std::bad_typeid const&)"; 270233174Stheraven "std::exception::exception(std::exception const&)"; 271233174Stheraven "std::exception::exception()"; 272233174Stheraven "std::exception::operator=(std::exception const&)"; 273246297Sdim "std::bad_alloc::bad_alloc(std::bad_alloc const&)"; 274246297Sdim "std::bad_alloc::bad_alloc()"; 275246297Sdim "std::bad_alloc::operator=(std::bad_alloc const&)"; 276233174Stheraven 277233174Stheraven }; 278233174Stheraven __cxa_allocate_dependent_exception; 279233174Stheraven __cxa_current_primary_exception; 280233174Stheraven __cxa_decrement_exception_refcount; 281233174Stheraven __cxa_free_dependent_exception; 282233174Stheraven __cxa_increment_exception_refcount; 283233174Stheraven __cxa_rethrow_primary_exception; 284233174Stheraven 285233174Stheraven} CXXABI_1.3.1; 286236890Stheraven 287246028Stheraven 288236890StheravenGLIBCXX_3.4 { 289236890Stheraven extern "C++" { 290236890Stheraven "operator delete[](void*)"; 291236890Stheraven "operator delete(void*)"; 292236890Stheraven "operator new[](unsigned int)"; 293236890Stheraven "operator new(unsigned int)"; 294236890Stheraven "operator new(unsigned int, std::nothrow_t const&)"; 295236890Stheraven "operator new[](unsigned long)"; 296236890Stheraven "operator new(unsigned long)"; 297236890Stheraven "operator new(unsigned long, std::nothrow_t const&)"; 298246028Stheraven 299246028Stheraven "std::unexpected()"; 300246028Stheraven "std::get_terminate()"; 301246028Stheraven "std::get_unexpected()"; 302246028Stheraven "std::uncaught_exception()"; 303246028Stheraven "std::terminate()"; 304246028Stheraven 305246028Stheraven "std::type_info::~type_info()"; 306246028Stheraven "std::bad_cast::~bad_cast()"; 307246297Sdim "std::bad_typeid::~bad_typeid()"; 308246028Stheraven "std::exception::~exception()"; 309246297Sdim "std::bad_alloc::~bad_alloc()"; 310246028Stheraven 311246297Sdim "std::exception::what() const"; 312246297Sdim 313246028Stheraven std::set_new_handler*; 314246028Stheraven std::set_terminate*; 315246028Stheraven std::set_unexpected*; 316246297Sdim std::type_info::__*; 317246028Stheraven 318246028Stheraven "vtable for std::bad_alloc"; 319246028Stheraven "vtable for std::bad_cast"; 320246028Stheraven "vtable for std::bad_typeid"; 321246028Stheraven "vtable for std::exception"; 322246028Stheraven "vtable for std::type_info"; 323246028Stheraven 324246028Stheraven "typeinfo for std::bad_alloc"; 325246028Stheraven "typeinfo for std::bad_typeid"; 326246028Stheraven "typeinfo for std::bad_cast"; 327246028Stheraven "typeinfo for std::exception"; 328246028Stheraven "typeinfo for std::type_info"; 329246297Sdim "typeinfo name for std::bad_alloc"; 330246028Stheraven "typeinfo name for std::bad_typeid"; 331246028Stheraven "typeinfo name for std::bad_cast"; 332246028Stheraven "typeinfo name for std::exception"; 333246028Stheraven "typeinfo name for std::type_info"; 334246028Stheraven 335236890Stheraven }; 336236890Stheraven}; 337246028Stheraven 338246028StheravenGLIBCXX_3.4.9 { 339246028Stheraven extern "C++" { 340246028Stheraven "std::bad_typeid::what() const"; 341246028Stheraven "std::bad_cast::what() const"; 342246028Stheraven "std::bad_alloc::what() const"; 343246028Stheraven }; 344246028Stheraven} GLIBCXX_3.4; 345246028Stheraven 346