1## Linker script for GNU namespace versioning. 2## 3## Copyright (C) 2002-2021 Free Software Foundation, Inc. 4## 5## This file is part of the libstdc++ version 3 distribution. 6## 7## This file is part of the GNU ISO C++ Library. This library is free 8## software; you can redistribute it and/or modify it under the 9## terms of the GNU General Public License as published by the 10## Free Software Foundation; either version 3, or (at your option) 11## any later version. 12## 13## This library is distributed in the hope that it will be useful, 14## but WITHOUT ANY WARRANTY; without even the implied warranty of 15## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16## GNU General Public License for more details. 17## 18## You should have received a copy of the GNU General Public License along 19## with this library; see the file COPYING3. If not see 20## <http://www.gnu.org/licenses/>. 21 22GLIBCXX_8.0 { 23 24 global: 25 26 # Names inside the 'extern' block are demangled names. 27 extern "C++" 28 { 29 std::*; 30 std::__8::*; 31 std::random_device::* 32 }; 33 34 # operator new(size_t) 35 _Znw[jmy]; 36 # operator new(size_t, std::nothrow_t const&) 37 _Znw[jmy]RKSt9nothrow_t; 38 39 # operator delete(void*) 40 _ZdlPv; 41 # operator delete(void*, std::nothrow_t const&) 42 _ZdlPvRKSt9nothrow_t; 43 44 # operator new[](size_t) 45 _Zna[jmy]; 46 # operator new[](size_t, std::nothrow_t const&) 47 _Zna[jmy]RKSt9nothrow_t; 48 49 # operator delete[](void*) 50 _ZdaPv; 51 # operator delete[](void*, std::nothrow_t const&) 52 _ZdaPvRKSt9nothrow_t; 53 54 # function-scope static objects requires a guard variable. 55 _ZGVNSt*; 56 57 # VTT structure 58 _ZTTNSt*; 59 60 # vtable 61 _ZTVSt*; 62 _ZTVNSt*; 63 _ZTVN9__gnu_cxx3__818stdio_sync_filebufI[cw]NSt3__811char_traitsI[cw]EEEE; 64 65 # thunk 66 _ZTv0_n12_NS*; 67 _ZTv0_n24_NS*; 68 69 # typeinfo structure 70 _ZTISt*; 71 _ZTINSt*; 72 73 # typeinfo name 74 _ZTSSt*; 75 _ZTSNSt*; 76 77 # locale 78 _ZNSt3__89has_facetINS_*; 79 80 # hash 81 _ZNSt8__detail3__812__prime_listE; 82 _ZNSt3tr18__detail3__812__prime_listE; 83 84 # thread/mutex/condition_variable/future 85 __once_proxy; 86 87 # std::__detail::_List_node_base 88 _ZNSt8__detail3__815_List_node_base7_M_hook*; 89 _ZNSt8__detail3__815_List_node_base9_M_unhookEv; 90 _ZNSt8__detail3__815_List_node_base10_M_reverseEv; 91 _ZNSt8__detail3__815_List_node_base11_M_transfer*; 92 _ZNSt8__detail3__815_List_node_base4swapER*; 93 94 # std::__convert_to_v 95 _ZNSt3__814__convert_to_v*; 96 97 # std::__copy_streambufs 98 _ZNSt3__817__copy_streambufsI*; 99 _ZNSt3__821__copy_streambufs_eofI*; 100 101 # std::__istream_extract(wistream&, wchar_t*, streamsize) 102 _ZNSt3__817__istream_extractIwNS_11char_traitsIwEEEEvRNS_13basic_istreamIT_T0_EEPS4_[ilx]; 103 104 # __gnu_cxx::__atomic_add 105 # __gnu_cxx::__exchange_and_add 106 _ZN9__gnu_cxx3__812__atomic_addEPV[il][il]; 107 _ZN9__gnu_cxx3__818__exchange_and_addEPV[li][il]; 108 109 # __gnu_cxx::__pool 110 _ZN9__gnu_cxx3__86__poolILb[01]EE13_M_initializeEv; 111 _ZN9__gnu_cxx3__86__poolILb[01]EE16_M_reserve_blockE[jmy][jmy]; 112 _ZN9__gnu_cxx3__86__poolILb[01]EE16_M_reclaim_blockEPc[jmy]; 113 _ZN9__gnu_cxx3__86__poolILb[01]EE10_M_destroyEv; 114 _ZN9__gnu_cxx3__86__poolILb1EE16_M_get_thread_idEv; 115 116 _ZN9__gnu_cxx3__817__pool_alloc_base9_M_refillE[jmy]; 117 _ZN9__gnu_cxx3__817__pool_alloc_base16_M_get_free_listE[jmy]; 118 _ZN9__gnu_cxx3__817__pool_alloc_base12_M_get_mutexEv; 119 120 _ZN9__gnu_cxx3__89free_list6_M_getE[jmy]; 121 _ZN9__gnu_cxx3__89free_list8_M_clearEv; 122 123 # __gnu_cxx::stdio_sync_filebuf 124 _ZTVN9__gnu_cxx3__818stdio_sync_filebufI[cw]St3__811char_traitsI[cw]EEE; 125 _ZN9__gnu_cxx3__818stdio_sync_filebufI[cw]NSt3__811char_traitsI[cw]EEE[5-9]*; 126 127 # debug mode 128 _ZN11__gnu_debug19_Safe_sequence_base12_M_get_mutexEv; 129 _ZN11__gnu_debug19_Safe_sequence_base13_M_detach_allEv; 130 _ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv; 131 _ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv; 132 _ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_; 133 134 _ZN11__gnu_debug19_Safe_iterator_base9_M_attach*; 135 _ZN11__gnu_debug19_Safe_iterator_base16_M_attach_single*; 136 _ZN11__gnu_debug19_Safe_iterator_base9_M_detachEv; 137 _ZN11__gnu_debug19_Safe_iterator_base16_M_detach_singleEv; 138 _ZN11__gnu_debug19_Safe_iterator_base12_M_get_mutexEv; 139 _ZNK11__gnu_debug19_Safe_iterator_base11_M_singularEv; 140 _ZNK11__gnu_debug19_Safe_iterator_base14_M_can_compareERKS0_; 141 142 _ZNK11__gnu_debug16_Error_formatter10_M_message*; 143 _ZNK11__gnu_debug16_Error_formatter8_M_error*; 144 145 # __gnu_debug::_Safe_unordered_container_base 146 # __gnu_debug::_Safe_local_iterator_base 147 _ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_; 148 _ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv; 149 _ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb; 150 _ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv; 151 _ZN11__gnu_debug25_Safe_local_iterator_base16_M_attach_singleEPNS_19_Safe_sequence_baseEb; 152 153 # parallel mode 154 _ZN14__gnu_parallel9_Settings3getEv; 155 _ZN14__gnu_parallel9_Settings3setERS0_; 156 157 local: 158 *; 159}; 160 161 162# Symbols in the support library (libsupc++) have their own tag. 163CXXABI_2.0 { 164 165 global: 166 __cxa_allocate_exception; 167 __cxa_allocate_dependent_exception; 168 __cxa_bad_cast; 169 __cxa_bad_typeid; 170 __cxa_begin_catch; 171 __cxa_begin_cleanup; 172 __cxa_call_unexpected; 173 __cxa_current_exception_type; 174 __cxa_deleted_virtual; 175 __cxa_demangle; 176 __cxa_end_catch; 177 __cxa_end_cleanup; 178 __cxa_free_exception; 179 __cxa_free_dependent_exception; 180 __cxa_get_exception_ptr; 181 __cxa_init_primary_exception; 182 __cxa_get_globals; 183 __cxa_get_globals_fast; 184 __cxa_guard_abort; 185 __cxa_guard_acquire; 186 __cxa_guard_release; 187 __cxa_pure_virtual; 188 __cxa_rethrow; 189 __cxa_thread_atexit; 190 __cxa_throw; 191 __cxa_type_match; 192 __cxa_vec_cctor; 193 __cxa_vec_cleanup; 194 __cxa_vec_ctor; 195 __cxa_vec_delete2; 196 __cxa_vec_delete3; 197 __cxa_vec_delete; 198 __cxa_vec_dtor; 199 __cxa_vec_new2; 200 __cxa_vec_new3; 201 __cxa_vec_new; 202 __gxx_personality_v0; 203 __gxx_personality_sj0; 204 __dynamic_cast; 205 206 # std::exception_ptr 207 _ZNSt15__exception_ptr13exception_ptrC1Ev; 208 _ZNSt15__exception_ptr13exception_ptrC2Ev; 209 _ZNSt15__exception_ptr13exception_ptrC1EPv; 210 _ZNSt15__exception_ptr13exception_ptrC1ERKS0_; 211 _ZNSt15__exception_ptr13exception_ptrC2ERKS0_; 212 _ZNSt15__exception_ptr13exception_ptrC1EMS0_FvvE; 213 _ZNSt15__exception_ptr13exception_ptrC2EMS0_FvvE; 214 _ZNSt15__exception_ptr13exception_ptrD1Ev; 215 _ZNSt15__exception_ptr13exception_ptrD2Ev; 216 _ZNSt15__exception_ptr13exception_ptraSERKS0_; 217 _ZNKSt15__exception_ptr13exception_ptrcvMS0_FvvEEv; 218 _ZNKSt15__exception_ptr13exception_ptrntEv; 219 _ZNKSt15__exception_ptr13exception_ptr20__cxa_exception_typeEv; 220 _ZNSt15__exception_ptr13exception_ptr4swapERS0_; 221 _ZNSt15__exception_ptreqERKNS_13exception_ptrES2_; 222 _ZNSt15__exception_ptrneERKNS_13exception_ptrES2_; 223 224 _ZSt17current_exceptionv; 225 _ZSt17rethrow_exceptionNSt15__exception_ptr13exception_ptrE; 226 227 # std::nested_exception 228 _ZNSt16nested_exceptionD*; 229 _ZTISt16nested_exception; 230 _ZTVSt16nested_exception; 231 232 # std::bad_function_call. 233 _ZNSt17bad_function_callD*; 234 _ZTISt17bad_function_call; 235 _ZTSSt17bad_function_call; 236 _ZTVSt17bad_function_call; 237 238 __cxa_throw_bad_array_new_length; 239 _Z*St20bad_array_new_length*; 240 241 __cxa_throw_bad_array_length; 242 _Z*St16bad_array_length*; 243 244 # Default function. 245 _ZSt11_Hash_bytesPKv*; 246 247 # FNV hash. 248 _ZSt15_Fnv_hash_bytesPKv*; 249 250 # __gnu_cxx::_verbose_terminate_handler() 251 _ZN9__gnu_cxx3__827__verbose_terminate_handlerEv; 252 253 # *_type_info classes, ctor and dtor 254 _ZN10__cxxabiv117__array_type_info*; 255 _ZN10__cxxabiv117__class_type_info*; 256 _ZN10__cxxabiv116__enum_type_info*; 257 _ZN10__cxxabiv120__function_type_info*; 258 _ZN10__cxxabiv123__fundamental_type_info*; 259 _ZN10__cxxabiv117__pbase_type_info*; 260 _ZN10__cxxabiv129__pointer_to_member_type_info*; 261 _ZN10__cxxabiv119__pointer_type_info*; 262 _ZN10__cxxabiv120__si_class_type_info*; 263 _ZN10__cxxabiv121__vmi_class_type_info*; 264 265 # *_type_info classes, member functions 266 _ZNK10__cxxabiv117__class_type_info*; 267 _ZNK10__cxxabiv120__function_type_info*; 268 _ZNK10__cxxabiv117__pbase_type_info*; 269 _ZNK10__cxxabiv129__pointer_to_member_type_info*; 270 _ZNK10__cxxabiv119__pointer_type_info*; 271 _ZNK10__cxxabiv120__si_class_type_info*; 272 _ZNK10__cxxabiv121__vmi_class_type_info*; 273 274 # typeinfo structure 275 _ZTI[a-z]; 276 _ZTIP[a-z]; 277 _ZTIPK[a-z]; 278 _ZTIN10__cxxabiv117__array_type_infoE; 279 _ZTIN10__cxxabiv117__class_type_infoE; 280 _ZTIN10__cxxabiv116__enum_type_infoE; 281 _ZTIN10__cxxabiv120__function_type_infoE; 282 _ZTIN10__cxxabiv123__fundamental_type_infoE; 283 _ZTIN10__cxxabiv117__pbase_type_infoE; 284 _ZTIN10__cxxabiv129__pointer_to_member_type_infoE; 285 _ZTIN10__cxxabiv119__pointer_type_infoE; 286 _ZTIN10__cxxabiv120__si_class_type_infoE; 287 _ZTIN10__cxxabiv121__vmi_class_type_infoE; 288 _ZTIN10__cxxabiv115__forced_unwindE; 289 _ZTIN10__cxxabiv119__foreign_exceptionE; 290 _ZTIN10__cxxabiv115__forced_unwindE; 291 _ZTIN10__cxxabiv119__foreign_exceptionE; 292 293 # typeinfo name 294 _ZTS[a-z]; 295 _ZTSP[a-z]; 296 _ZTSPK[a-z]; 297 _ZTSN10__cxxabiv117__array_type_infoE; 298 _ZTSN10__cxxabiv117__class_type_infoE; 299 _ZTSN10__cxxabiv116__enum_type_infoE; 300 _ZTSN10__cxxabiv120__function_type_infoE; 301 _ZTSN10__cxxabiv123__fundamental_type_infoE; 302 _ZTSN10__cxxabiv117__pbase_type_infoE; 303 _ZTSN10__cxxabiv129__pointer_to_member_type_infoE; 304 _ZTSN10__cxxabiv119__pointer_type_infoE; 305 _ZTSN10__cxxabiv120__si_class_type_infoE; 306 _ZTSN10__cxxabiv121__vmi_class_type_infoE; 307 308 # typeinfo for char8_t 309 _ZTIDu; 310 _ZTIPDu; 311 _ZTIPKDu; 312 313 # typeinfo for char16_t and char32_t 314 _ZTIDs; 315 _ZTIPDs; 316 _ZTIPKDs; 317 _ZTIDi; 318 _ZTIPDi; 319 _ZTIPKDi; 320 321 # typeinfo for decimal floating point types 322 _ZTID[fde]; 323 _ZTIPD[fde]; 324 _ZTIPKD[fde]; 325 326 # typeinfo for decltype(nullptr) 327 _ZTIDn; 328 _ZTIPDn; 329 _ZTIPKDn; 330 331 # typeinfo for __int128 and unsigned __int128 332 _ZTI[no]; 333 _ZTIP[no]; 334 _ZTIPK[no]; 335 336 # virtual table 337 _ZTVN10__cxxabiv117__array_type_infoE; 338 _ZTVN10__cxxabiv117__class_type_infoE; 339 _ZTVN10__cxxabiv116__enum_type_infoE; 340 _ZTVN10__cxxabiv120__function_type_infoE; 341 _ZTVN10__cxxabiv123__fundamental_type_infoE; 342 _ZTVN10__cxxabiv117__pbase_type_infoE; 343 _ZTVN10__cxxabiv129__pointer_to_member_type_infoE; 344 _ZTVN10__cxxabiv119__pointer_type_infoE; 345 _ZTVN10__cxxabiv120__si_class_type_infoE; 346 _ZTVN10__cxxabiv121__vmi_class_type_infoE; 347 348 # operator delete(void*, std::size_t) 349 _ZdlPv[jmy]; 350 # operator delete[](void*, std::size_t) 351 _ZdaPv[jmy]; 352 353 # __gnu_cxx::__freeres() 354 _ZN9__gnu_cxx9__freeresEv; 355 356 # C++17 aligned new/delete 357 _Znw[jmy]St11align_val_t; 358 _Znw[jmy]St11align_val_tRKSt9nothrow_t; 359 _Zna[jmy]St11align_val_t; 360 _Zna[jmy]St11align_val_tRKSt9nothrow_t; 361 _ZdlPvSt11align_val_t; 362 _ZdlPvSt11align_val_tRKSt9nothrow_t; 363 _ZdlPv[jmy]St11align_val_t; 364 _ZdaPvSt11align_val_t; 365 _ZdaPvSt11align_val_tRKSt9nothrow_t; 366 _ZdaPv[jmy]St11align_val_t; 367}; 368 369# Symbols in the support library (libsupc++) supporting trans-mem. 370CXXABI_TM_1 { 371 372 global: 373 __cxa_tm_cleanup; 374 375}; 376