1# $FreeBSD$ 2# Define the same version as the libsupc++ from gcc 4.2.1 so that we can use 3# libcxxrt as a drop-in replacement. 4 5CXXABI_1.3 { 6 7 global: 8 9 # ABI functions with C linkage 10 __cxa_allocate_exception; 11 __cxa_bad_cast; 12 __cxa_bad_typeid; 13 __cxa_begin_catch; 14 __cxa_begin_cleanup; 15 __cxa_call_unexpected; 16 __cxa_current_exception_type; 17 __cxa_demangle; 18 __cxa_end_catch; 19 __cxa_end_cleanup; 20 __cxa_free_exception; 21 __cxa_get_globals; 22 __cxa_get_globals_fast; 23 __cxa_guard_abort; 24 __cxa_guard_acquire; 25 __cxa_guard_release; 26 __cxa_pure_virtual; 27 __cxa_rethrow; 28 __cxa_throw; 29 __cxa_throw_bad_array_new_length; 30 __cxa_type_match; 31 __cxa_vec_cctor; 32 __cxa_vec_cleanup; 33 __cxa_vec_ctor; 34 __cxa_vec_delete2; 35 __cxa_vec_delete3; 36 __cxa_vec_delete; 37 __cxa_vec_dtor; 38 __cxa_vec_new2; 39 __cxa_vec_new3; 40 __cxa_vec_new; 41 __dynamic_cast; 42 __gxx_personality_sj0; 43 __gxx_personality_v0; 44 45 extern "C++" { 46 # Type info classes and their destructors 47 "__cxxabiv1::__array_type_info"; 48 "__cxxabiv1::__array_type_info::~__array_type_info()"; 49 "__cxxabiv1::__class_type_info"; 50 "__cxxabiv1::__class_type_info::~__class_type_info()"; 51 "__cxxabiv1::__enum_type_info"; 52 "__cxxabiv1::__enum_type_info::~__enum_type_info()"; 53 "__cxxabiv1::__function_type_info::"; 54 "__cxxabiv1::__function_type_info::~__function_type_info()"; 55 "__cxxabiv1::__fundamental_type_info"; 56 "__cxxabiv1::__fundamental_type_info::~__fundamental_type_info()"; 57 "__cxxabiv1::__pbase_type_info"; 58 "__cxxabiv1::__pbase_type_info::~__pbase_type_info()"; 59 "__cxxabiv1::__pointer_to_member_type_info"; 60 "__cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info()"; 61 "__cxxabiv1::__pointer_type_info"; 62 "__cxxabiv1::__pointer_type_info::~__pointer_type_info()"; 63 "__cxxabiv1::__si_class_type_info"; 64 "__cxxabiv1::__si_class_type_info::~__si_class_type_info()"; 65 "__cxxabiv1::__vmi_class_type_info"; 66 "__cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()"; 67 68 # vtables typeinfo classes. 69 "vtable for __cxxabiv1::__array_type_info"; 70 "vtable for __cxxabiv1::__class_type_info"; 71 "vtable for __cxxabiv1::__enum_type_info"; 72 "vtable for __cxxabiv1::__function_type_info"; 73 "vtable for __cxxabiv1::__fundamental_type_info"; 74 "vtable for __cxxabiv1::__pbase_type_info"; 75 "vtable for __cxxabiv1::__pointer_to_member_type_info"; 76 "vtable for __cxxabiv1::__pointer_type_info"; 77 "vtable for __cxxabiv1::__si_class_type_info"; 78 "vtable for __cxxabiv1::__vmi_class_type_info"; 79 80 # Type info for built-in types 81 "typeinfo for bool const*"; 82 "typeinfo for bool"; 83 "typeinfo for char const*"; 84 "typeinfo for char"; 85 "typeinfo for double const*"; 86 "typeinfo for double"; 87 "typeinfo for float const*"; 88 "typeinfo for float"; 89 "typeinfo for int const*"; 90 "typeinfo for int"; 91 "typeinfo for long const*"; 92 "typeinfo for long double const*"; 93 "typeinfo for long double"; 94 "typeinfo for long long const*"; 95 "typeinfo for long long"; 96 "typeinfo for long"; 97 "typeinfo for short const*"; 98 "typeinfo for short"; 99 "typeinfo for signed char const*"; 100 "typeinfo for signed char"; 101 "typeinfo for unsigned char const*"; 102 "typeinfo for unsigned char"; 103 "typeinfo for unsigned int const*"; 104 "typeinfo for unsigned int"; 105 "typeinfo for unsigned long const*"; 106 "typeinfo for unsigned long long const*"; 107 "typeinfo for unsigned long long"; 108 "typeinfo for unsigned long"; 109 "typeinfo for unsigned short const*"; 110 "typeinfo for unsigned short"; 111 "typeinfo for void const*"; 112 "typeinfo for void"; 113 "typeinfo for wchar_t const*"; 114 "typeinfo for wchar_t"; 115 # C++11 typeinfo not understood by our linker 116 # std::nullptr_t 117 _ZTIDn;_ZTIPDn;_ZTIPKDn; 118 # char16_t 119 _ZTIDi;_ZTIPDi;_ZTIPKDi; 120 # char32_t 121 _ZTIDs;_ZTIPDs;_ZTIPKDs; 122 # IEEE 754r decimal floating point 123 _ZTIDd;_ZTIPDd;_ZTIPKDd; 124 _ZTIDe;_ZTIPDe;_ZTIPKDe; 125 _ZTIDf;_ZTIPDf;_ZTIPKDf; 126 # IEEE 754r half-precision floating point 127 _ZTIDh;_ZTIPDh;_ZTIPKDh; 128 129 "typeinfo for bool*"; 130 "typeinfo for wchar_t*"; 131 "typeinfo for short*"; 132 "typeinfo for char*"; 133 "typeinfo for unsigned char*"; 134 "typeinfo for long long*"; 135 "typeinfo for unsigned short*"; 136 "typeinfo for long*"; 137 "typeinfo for double*"; 138 "typeinfo for unsigned long*"; 139 "typeinfo for unsigned long long*"; 140 "typeinfo for int*"; 141 "typeinfo for long double*"; 142 "typeinfo for signed char*"; 143 "typeinfo for void*"; 144 "typeinfo for unsigned int*"; 145 "typeinfo for float*"; 146 147 "typeinfo for __cxxabiv1::__array_type_info"; 148 "typeinfo for __cxxabiv1::__class_type_info"; 149 "typeinfo for __cxxabiv1::__enum_type_info"; 150 "typeinfo for __cxxabiv1::__function_type_info"; 151 "typeinfo for __cxxabiv1::__fundamental_type_info"; 152 "typeinfo for __cxxabiv1::__pbase_type_info"; 153 "typeinfo for __cxxabiv1::__pointer_to_member_type_info"; 154 "typeinfo for __cxxabiv1::__pointer_type_info"; 155 "typeinfo for __cxxabiv1::__si_class_type_info"; 156 "typeinfo for __cxxabiv1::__vmi_class_type_info"; 157 158 # Typeinfo names. 159 160 "typeinfo name for unsigned char const*"; 161 "typeinfo name for long const*"; 162 "typeinfo name for double const*"; 163 "typeinfo name for unsigned long long const*"; 164 "typeinfo name for unsigned short const*"; 165 "typeinfo name for char const*"; 166 "typeinfo name for long long const*"; 167 "typeinfo name for short const*"; 168 "typeinfo name for unsigned int const*"; 169 "typeinfo name for float const*"; 170 "typeinfo name for bool const*"; 171 "typeinfo name for wchar_t const*"; 172 "typeinfo name for int const*"; 173 "typeinfo name for unsigned long const*"; 174 "typeinfo name for void const*"; 175 "typeinfo name for long double const*"; 176 "typeinfo name for signed char const*"; 177 "typeinfo name for wchar_t"; 178 "typeinfo name for short"; 179 "typeinfo name for char"; 180 "typeinfo name for float"; 181 "typeinfo name for void"; 182 "typeinfo name for unsigned int"; 183 "typeinfo name for bool"; 184 "typeinfo name for signed char"; 185 "typeinfo name for long double"; 186 "typeinfo name for int"; 187 "typeinfo name for unsigned long long"; 188 "typeinfo name for unsigned long"; 189 "typeinfo name for unsigned char"; 190 "typeinfo name for long"; 191 "typeinfo name for long long"; 192 "typeinfo name for unsigned short"; 193 "typeinfo name for double"; 194 195 "typeinfo name for bool*"; 196 "typeinfo name for wchar_t*"; 197 "typeinfo name for short*"; 198 "typeinfo name for char*"; 199 "typeinfo name for unsigned char*"; 200 "typeinfo name for long long*"; 201 "typeinfo name for unsigned short*"; 202 "typeinfo name for long*"; 203 "typeinfo name for double*"; 204 "typeinfo name for unsigned long*"; 205 "typeinfo name for unsigned long long*"; 206 "typeinfo name for int*"; 207 "typeinfo name for long double*"; 208 "typeinfo name for signed char*"; 209 "typeinfo name for void*"; 210 "typeinfo name for unsigned int*"; 211 "typeinfo name for float*"; 212 # C++11 typeinfo name not understood by our linker 213 # std::nullptr_t 214 _ZTSDn;_ZTSPDn;_ZTSPKDn; 215 # char16_t 216 _ZTSDi;_ZTSPDi;_ZTSPKDi; 217 # char32_t 218 _ZTSDs;_ZTSPDs;_ZTSPKDs; 219 # IEEE 754r decimal floating point 220 _ZTSDd;_ZTSPDd;_ZTSPKDd; 221 _ZTSDe;_ZTSPDe;_ZTSPKDe; 222 _ZTSDf;_ZTSPDf;_ZTSPKDf; 223 # IEEE 754r half-precision floating point 224 _ZTSDh;_ZTSPDh;_ZTSPKDh; 225 226 "typeinfo name for __cxxabiv1::__array_type_info"; 227 "typeinfo name for __cxxabiv1::__class_type_info"; 228 "typeinfo name for __cxxabiv1::__enum_type_info"; 229 "typeinfo name for __cxxabiv1::__function_type_info"; 230 "typeinfo name for __cxxabiv1::__fundamental_type_info"; 231 "typeinfo name for __cxxabiv1::__pbase_type_info"; 232 "typeinfo name for __cxxabiv1::__pointer_to_member_type_info"; 233 "typeinfo name for __cxxabiv1::__pointer_type_info"; 234 "typeinfo name for __cxxabiv1::__si_class_type_info"; 235 "typeinfo name for __cxxabiv1::__vmi_class_type_info"; 236 237 "std::type_info::type_info(std::type_info const&)"; 238 "std::type_info::operator=(std::type_info const&)"; 239 240 241 # Extensions 242 "pathscale::set_terminate(void (*)())"; 243 "pathscale::set_unexpected(void (*)())"; 244 "pathscale::set_use_thread_local_handlers(bool)"; 245 246 247 }; 248 249 local: 250 *; 251}; 252 253CXXABI_1.3.1 { 254 __cxa_get_exception_ptr; 255} CXXABI_1.3; 256 257CXXABI_1.3.5 { 258 extern "C++" { 259 "typeinfo for __int128 const*"; 260 "typeinfo for __int128"; 261 "typeinfo for __int128*"; 262 "typeinfo for unsigned __int128 const*"; 263 "typeinfo for unsigned __int128"; 264 "typeinfo for unsigned __int128*"; 265 }; 266} CXXABI_1.3.1; 267 268CXXABI_1.3.6 { 269 __cxa_deleted_virtual; 270} CXXABI_1.3.5; 271 272CXXABI_1.3.9 { 273 extern "C++" { 274 "typeinfo name for __int128 const*"; 275 "typeinfo name for __int128"; 276 "typeinfo name for __int128*"; 277 "typeinfo name for unsigned __int128 const*"; 278 "typeinfo name for unsigned __int128"; 279 "typeinfo name for unsigned __int128*"; 280 }; 281} CXXABI_1.3.6; 282 283CXXRT_1.0 { 284 285 extern "C++" { 286 "std::type_info::name() const"; 287 "std::type_info::before(std::type_info const&) const"; 288 "std::type_info::operator==(std::type_info const&) const"; 289 "std::type_info::operator!=(std::type_info const&) const"; 290 "std::bad_cast::bad_cast(std::bad_cast const&)"; 291 "std::bad_cast::bad_cast()"; 292 "std::bad_cast::operator=(std::bad_cast const&)"; 293 "std::bad_typeid::bad_typeid(std::bad_typeid const&)"; 294 "std::bad_typeid::bad_typeid()"; 295 "std::bad_typeid::operator=(std::bad_typeid const&)"; 296 "std::exception::exception(std::exception const&)"; 297 "std::exception::exception()"; 298 "std::exception::operator=(std::exception const&)"; 299 "std::bad_alloc::bad_alloc(std::bad_alloc const&)"; 300 "std::bad_alloc::bad_alloc()"; 301 "std::bad_alloc::operator=(std::bad_alloc const&)"; 302 "std::bad_array_new_length::bad_array_new_length(std::bad_array_new_length const&)"; 303 "std::bad_array_new_length::bad_array_new_length()"; 304 "std::bad_array_new_length::operator=(std::bad_array_new_length const&)"; 305 306 }; 307 __cxa_allocate_dependent_exception; 308 __cxa_current_primary_exception; 309 __cxa_decrement_exception_refcount; 310 __cxa_free_dependent_exception; 311 __cxa_increment_exception_refcount; 312 __cxa_rethrow_primary_exception; 313 314} CXXABI_1.3.6; 315 316 317GLIBCXX_3.4 { 318 extern "C++" { 319 "operator delete[](void*)"; 320 "operator delete(void*)"; 321 "operator new[](unsigned int)"; 322 "operator new(unsigned int)"; 323 "operator new(unsigned int, std::nothrow_t const&)"; 324 "operator new[](unsigned long)"; 325 "operator new(unsigned long)"; 326 "operator new(unsigned long, std::nothrow_t const&)"; 327 328 "std::unexpected()"; 329 "std::get_terminate()"; 330 "std::get_unexpected()"; 331 "std::uncaught_exception()"; 332 "std::terminate()"; 333 334 "std::type_info::~type_info()"; 335 "std::bad_cast::~bad_cast()"; 336 "std::bad_typeid::~bad_typeid()"; 337 "std::exception::~exception()"; 338 "std::bad_alloc::~bad_alloc()"; 339 "std::bad_array_new_length::~bad_array_new_length()"; 340 341 "std::exception::what() const"; 342 343 std::set_new_handler*; 344 std::set_terminate*; 345 std::set_unexpected*; 346 std::type_info::__*; 347 348 "vtable for std::bad_alloc"; 349 "vtable for std::bad_cast"; 350 "vtable for std::bad_typeid"; 351 "vtable for std::exception"; 352 "vtable for std::type_info"; 353 "vtable for std::bad_array_new_length"; 354 355 "typeinfo for std::bad_alloc"; 356 "typeinfo for std::bad_typeid"; 357 "typeinfo for std::bad_cast"; 358 "typeinfo for std::exception"; 359 "typeinfo for std::type_info"; 360 "typeinfo for std::bad_array_new_length"; 361 "typeinfo name for std::bad_alloc"; 362 "typeinfo name for std::bad_typeid"; 363 "typeinfo name for std::bad_cast"; 364 "typeinfo name for std::exception"; 365 "typeinfo name for std::type_info"; 366 "typeinfo name for std::bad_array_new_length"; 367 368 }; 369}; 370 371GLIBCXX_3.4.9 { 372 extern "C++" { 373 "std::bad_typeid::what() const"; 374 "std::bad_cast::what() const"; 375 "std::bad_alloc::what() const"; 376 "std::bad_array_new_length::what() const"; 377 }; 378} GLIBCXX_3.4; 379 380GLIBCXX_3.4.22 { 381 extern "C++" { 382 "std::uncaught_exceptions()"; 383 }; 384} GLIBCXX_3.4.9; 385 386