1## Linker script for GNU ld 2.11.94+ only. 2## 3## Copyright (C) 2002, 2003, 2004 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 2, 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 COPYING. If not, write to the Free 20## Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, 21## USA. 22 23GLIBCPP_3.2 { 24 25 global: 26 27 # Names inside the 'extern' block are demangled names. 28 # All but the last are terminated with a semicolon. 29 extern "C++" 30 { 31 std::[A-Za]*; 32 std::ba[a-r]*; 33 std::basic_[a-h]*; 34 std::basic_ifstream*; 35 std::basic_istringstream*; 36 std::basic_istream*; 37 std::basic_iostream*; 38 std::basic_[j-r]*; 39 std::basic_streambuf*; 40 std::basic_stringbuf*; 41 std::basic_stringstream*; 42 std::basic_[t-z]*; 43 std::ba[t-z]*; 44 std::b[b-z]*; 45 std::c[a-n]*; 46 std::co[a-c]*; 47 std::codecvt_byname*; 48 std::codecvt::[A-Za-b]*; 49 std::codecvt::[A-Zd-z]*; 50 std::codecvt_c; 51 std::codecvt_w; 52 std::co[e-z]*; 53 std::c[p-z]*; 54 std::c_[a-z]*; 55 std::[A-Zd-k]*; 56 std::length_error*; 57 std::logic_error*; 58 std::locale::[A-Za-e]*; 59 std::locale::facet::[A-Za-z]*; 60 std::locale::facet::_M*; 61 std::locale::facet::_S_c_locale; 62 std::locale::facet::_S_clone_c_locale*; 63 std::locale::facet::_S_create_c_locale*; 64 std::locale::facet::_S_destroy_c_locale*; 65 std::locale::[A-Zg-z]*; 66 std::locale::_[A-Ra-z]*; 67 std::locale::_S_classic; 68 std::locale::_S_global; 69 std::locale::_S_num_categories; 70 std::locale::_S_normalize_category*; 71 std::locale::_[T-Za-z]*; 72 std::[A-Zm]*; 73 std::n[a-t]*; 74 std::num_put_[cw]; 75 std::numeric*; 76 std::numpunct*; 77 std::num_get*; 78 std::num_get_[cw]; 79 std::n[v-z]*; 80 std::ostrstream*; 81 std::overflow_error*; 82 std::out_of_range*; 83 std::[A-Zp-z]*; 84 std::__throw_*; 85 std::__numeric_limits_base*; 86 std::__timepunct*; 87 std::_S_bit_count; 88 std::_S_first_one 89 }; 90 91 # Names not in an 'extern' block are mangled names. 92 _ZSt7getline*; 93 _ZStrs*; 94 _ZNSo*; 95 _ZNKSt9basic_ios*; 96 _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE15_M_cache_facetsERKSt6locale; 97 _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[A-Z]*; 98 _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[0-9][A-Za-z]*; 99 _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE[0-9][0-9][A-Za-z]*; 100 101 _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEC*; 102 _ZNSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEED*; 103 _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEEC*; 104 _ZNSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEED*; 105 106 _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE6do_put*; 107 108 _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE3put*; 109 _ZNSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE2idE; 110 111 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE14_M_convert_intI[lmxy]EES3_S3_RSt8ios_basecccT_; 112 113 _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE14_M_convert_intI[lmxy]EES3_S3_RSt8ios_basewccT_; 114 115 _ZNKSt7num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEE16_M_convert_floatI[de]EES3_S3_RSt8ios_baseccT_; 116 117 _ZNKSt7num_putIwSt19ostreambuf_iteratorIwSt11char_traitsIwEEE16_M_convert_floatI[de]EES3_S3_RSt8ios_basewcT_; 118 119 _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE12_M_widen_int*; 120 121 _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE14_M_widen_float*; 122 123 _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE9_M_insert*; 124 125 _ZSt9use_facetISt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEEERKT_RKSt6locale; 126 127 # __num_base 128 _ZNSt10__num_base13_S_format_intERKSt8ios_basePccc; 129 _ZNSt10__num_base15_S_format_floatERKSt8ios_basePcc[il]; 130 _ZNSt10__num_base8_S_atomsE; 131 132 # std::string minus binary operator plus 133 _ZNKSs*; 134 _ZNKSb*; 135 _ZNSs[A-Za-z]*; 136 _ZNSs[0-9][A-Za-z]*; 137 _ZNSs[0-9][0-9][A-Za-z]*; 138 _ZNSs[0-9]_[A-Ra-z]*; 139 _ZNSs[0-9][0-9]_[A-Ra-z]*; 140 _ZNSs12_S_empty_repEv; 141 _ZNSs20_S_empty_rep_storageE; 142 _ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE; 143 _ZNSs12_S_constructE*; 144 _ZNSs13_S_copy_charsE*; 145 _ZNSbIwSt11char_traitsIwESaIwEE[A-Ra-z]*; 146 _ZNSbIwSt11char_traitsIwESaIwEE[0-9][A-Ra-z]*; 147 _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9][A-Ra-z]*; 148 _ZNSbIwSt11char_traitsIwESaIwEE[0-9]_[A-Ra-z]*; 149 _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9]_[A-Ra-z]*; 150 _ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_chars*; 151 _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructE[jm]wRKS1_; 152 _ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv; 153 _ZSt24__uninitialized_copy_auxIN9*; 154 _ZSt26__uninitialized_fill_n_aux*; 155 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_; 156 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_; 157 _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_; 158 _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_; 159 160 # std::__basic_file minus showmanyc_helper 161 _ZNSt12__basic_fileIcED*; 162 _ZNSt12__basic_fileIcEC*; 163 _ZNSt12__basic_fileIcE8sys_open*; 164 _ZNSt12__basic_fileIcE8sys_getc*; 165 _ZNSt12__basic_fileIcE10sys_ungetc*; 166 _ZNSt12__basic_fileIcE7seekpos*; 167 _ZNSt12__basic_fileIcE7seekoff*; 168 _ZNSt12__basic_fileIcE6xsputn*; 169 _ZNSt12__basic_fileIcE6xsgetn*; 170 _ZNSt12__basic_fileIcE5close*; 171 _ZNSt12__basic_fileIcE4sync*; 172 _ZNSt12__basic_fileIcE4open*; 173 _ZNSt12__basic_fileIcE2fd*; 174 _ZNSt12__basic_fileIcE12_M_open_modeE*; 175 _ZNKSt12__basic_fileIcE7is_open*; 176 177 # std::locale destructors 178 _ZNSt6localeD*; 179 180 # std::locale::facet destructors 181 _ZNSt6locale5facetD*; 182 183 # std::codecvt<char> members. 184 _ZNKSt7codecvtIcc11__mbstate_tE*; 185 # std::codecvt<char>::~codecvt 186 _ZNSt7codecvtIcc11__mbstate_tED*; 187 # std::codecvt<char>::codecvt(size_t), where size_t variable. 188 _ZNSt7codecvtIcc11__mbstate_tEC[12]E[jm]; 189 # std::codecvt<char>::id 190 _ZNSt7codecvtIcc11__mbstate_tE2idE; 191 192 # std::codecvt<wchar_t> members. 193 _ZNKSt7codecvtIwc11__mbstate_tE*; 194 # std::codecvt<wchar_t>::~codecvt 195 _ZNSt7codecvtIwc11__mbstate_tED*; 196 # std::codecvt<wchar_t>::codecvt(size_t), where size_t variable. 197 _ZNSt7codecvtIwc11__mbstate_tEC[12]E[jm]; 198 # std::codecvt<wchar_t>::id 199 _ZNSt7codecvtIwc11__mbstate_tE2idE; 200 201 # std::use_facet<codecvt> 202 _ZSt9use_facetISt7codecvtIcc11__mbstate_tEERKT_RKSt6locale; 203 _ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale; 204 205 # std::has_facet* 206 _ZSt9has_facet*; 207 208 # std::__default_alloc_template 209 _ZNSt24__default_alloc_templateILb1ELi0EE10deallocate*; 210 _ZNSt24__default_alloc_templateILb1ELi0EE8allocate*; 211 _ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE; 212 _ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE; 213 _ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillE*; 214 215 # std::__default_alloc_template to be removed in the future 216 _ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPv*; 217 _ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upE*; 218 _ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocE*; 219 _ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexE*; 220 _ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE; 221 _ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE; 222 _ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE; 223 _ZNSt24__default_alloc_templateILb1ELi0EE5_Lock*; 224 225 # operator new(unsigned) 226 _Znwj; 227 # operator new(unsigned, std::nothrow_t const&) 228 _ZnwjRKSt9nothrow_t; 229 # operator new(unsigned long) 230 _Znwm; 231 # operator new(unsigned long, std::nothrow_t const&) 232 _ZnwmRKSt9nothrow_t; 233 234 # operator delete(void*) 235 _ZdlPv; 236 # operator delete(void*, std::nothrow_t const&) 237 _ZdlPvRKSt9nothrow_t; 238 239 # operator new[](unsigned) 240 _Znaj; 241 # operator new[](unsigned, std::nothrow_t const&) 242 _ZnajRKSt9nothrow_t; 243 # operator new[](unsigned long) 244 _Znam; 245 # operator new[](unsigned long, std::nothrow_t const&) 246 _ZnamRKSt9nothrow_t; 247 248 # operator delete[](void*) 249 _ZdaPv; 250 # operator delete[](void*, std::nothrow_t const&) 251 _ZdaPvRKSt9nothrow_t; 252 253 # vtable 254 _ZTVS[a-z]; 255 _ZTVSt[0-9][A-Za-z]*; 256 _ZTVSt[0-9][0-9][A-Za-z]*; 257 _ZTTS[a-z]; 258 _ZTTSt[0-9][A-Za-z]*; 259 _ZTTSt[0-9][0-9][A-Za-z]*; 260 _ZTVN9__gnu_cxx*; 261 _ZTVNSt6locale5facetE; 262 _ZTVSt11__timepunctI[cw]E; 263 _ZTVNSt8ios_base7failureE; 264 _ZTVSt23__codecvt_abstract_baseI[cw]c11__mbstate_tE; 265 _ZTVSt21__ctype_abstract_baseI[cw]E; 266 267 # XXX 268 _ZTVN10__cxxabi*; 269 270 # typeinfo 271 _ZTI[a-z]; 272 _ZTIP[a-z]; 273 _ZTIPK[a-z]; 274 _ZTIS[a-z]; 275 _ZTISt[0-9][A-Za-z]*; 276 _ZTISt[0-9][0-9][A-Za-z]*; 277 _ZTS[a-z]; 278 _ZTSS[a-z]; 279 _ZTSP[a-z]; 280 _ZTSPK[a-z]; 281 _ZTSSt[0-9][A-Za-z]*; 282 _ZTSSt[0-9][0-9][A-Za-z]*; 283 _ZTSN9__gnu_cxx*; 284 _ZTIN9__gnu_cxx*; 285 _ZTINSt8ios_base7failureE; 286 _ZTSNSt8ios_base7failureE; 287 _ZTINSt6locale5facetE; 288 _ZTSNSt6locale5facetE; 289 _ZTISt11__timepunctI[cw]E; 290 _ZTSSt11__timepunctI[cw]E; 291 _ZTSSt10__num_base; 292 _ZTISt10__num_base; 293 _ZTSSt21__ctype_abstract_baseI[cw]E; 294 _ZTISt21__ctype_abstract_baseI[cw]E; 295 _ZTISt23__codecvt_abstract_baseI[cw]c11__mbstate_tE; 296 _ZTSSt23__codecvt_abstract_baseI[cw]c11__mbstate_tE; 297 298 # XXX 299 _ZTIN10__cxxabi*; 300 _ZTSN10__cxxabi*; 301 302 # function-scope static objects requires a guard variable. 303 _ZGV*; 304 305 # virtual function thunks 306 _ZTh*; 307 _ZTv*; 308 _ZTc*; 309 310 # std::__convert_to_v 311 _ZSt14__convert_to_v*; 312 313 local: 314 *; 315}; 316 317# Symbols added after GLIBCPP_3.2 318GLIBCPP_3.2.1 { 319 320 _ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj; 321 _ZNSt7codecvtIcc11__mbstate_tEC2EP15__locale_structj; 322 _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj; 323 _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj; 324 325 _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_; 326 _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_; 327 328 # stub functions from libmath 329 sinf; 330 sinl; 331 sinhf; 332 sinhl; 333 cosf; 334 cosl; 335 coshf; 336 coshl; 337 tanf; 338 tanl; 339 tanhf; 340 tanhl; 341 atan2f; 342 atan2l; 343 expf; 344 expl; 345 hypotf; 346 hypotl; 347 hypot; 348 logf; 349 logl; 350 log10f; 351 log10l; 352 powf; 353 powl; 354 sqrtf; 355 sqrtl; 356 copysignf; 357 nan; 358 __signbit; 359 __signbitf; 360 __signbitl; 361 362} GLIBCPP_3.2; 363 364GLIBCPP_3.2.2 { 365 366 _ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE; 367 368} GLIBCPP_3.2.1; 369 370GLIBCPP_3.2.3 { 371 372 global: 373 374 extern "C++" 375 { 376 # Needed only when generic cpu's atomicity.h is in use. 377 __gnu_cxx::_Atomic_add_mutex; 378 __gnu_cxx::_Atomic_add_mutex_once; 379 __gnu_cxx::__gthread_atomic_add_mutex_once; 380 381 std::__num_base::_S_atoms_in; 382 std::__num_base::_S_atoms_out 383 }; 384 385 _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE6_M_pad*; 386 387 _ZNKSt7num_putI[cw]St19ostreambuf_iteratorI[cw]St11char_traitsI[cw]EEE14_M_convert_intI[yxml]EES3_S3_RSt8ios_base[cw]T_; 388 389 _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE14_M_group_float*; 390 391 _ZNKSt7num_putI[wc]St19ostreambuf_iteratorI[wc]St11char_traitsI[wc]EEE12_M_group_int*; 392 393 # __basic_file::showmanyc_helper 394 _ZNSt12__basic_fileIcE16showmanyc_helperEv; 395 396} GLIBCPP_3.2.2; 397 398GLIBCPP_3.2.4 { 399 400 _ZNSt9basic_iosI[cw]St11char_traitsI[cw]EE11_M_setstateESt12_Ios_Iostate; 401 402} GLIBCPP_3.2.3; 403 404# Symbols in the support library (libsupc++) have their own tag. 405CXXABI_1.2 { 406 407 global: 408 __cxa_allocate_exception; 409 __cxa_bad_cast; 410 __cxa_bad_typeid; 411 __cxa_begin_catch; 412 __cxa_call_unexpected; 413 __cxa_current_exception_type; 414 __cxa_demangle; 415 __cxa_end_catch; 416 __cxa_free_exception; 417 __cxa_get_globals; 418 __cxa_get_globals_fast; 419 __cxa_pure_virtual; 420 __cxa_rethrow; 421 __cxa_throw; 422 __cxa_vec_cctor; 423 __cxa_vec_cleanup; 424 __cxa_vec_ctor; 425 __cxa_vec_delete2; 426 __cxa_vec_delete3; 427 __cxa_vec_delete; 428 __cxa_vec_dtor; 429 __cxa_vec_new2; 430 __cxa_vec_new3; 431 __cxa_vec_new; 432 __gxx_personality_v0; 433 __gxx_personality_sj0; 434 __dynamic_cast; 435 436 # __gnu_cxx::_verbose_terminate_handler() 437 _ZN9__gnu_cxx27__verbose_terminate_handlerEv; 438 439 # XXX Should not be exported. 440 __cxa_dyn_string_append_char; 441 __cxa_dyn_string_append_cstr; 442 __cxa_dyn_string_append; 443 __cxa_dyn_string_clear; 444 __cxa_dyn_string_copy_cstr; 445 __cxa_dyn_string_copy; 446 __cxa_dyn_string_delete; 447 __cxa_dyn_string_eq; 448 __cxa_dyn_string_init; 449 __cxa_dyn_string_insert_char; 450 __cxa_dyn_string_insert_cstr; 451 __cxa_dyn_string_insert; 452 __cxa_dyn_string_new; 453 __cxa_dyn_string_prepend_cstr; 454 __cxa_dyn_string_prepend; 455 __cxa_dyn_string_release; 456 __cxa_dyn_string_resize; 457 __cxa_dyn_string_substring; 458 459 local: 460 *; 461}; 462 463# Symbols added after CXXABI_1.2 464CXXABI_1.2.1 { 465 466 __cxa_guard_acquire; 467 __cxa_guard_release; 468 __cxa_guard_abort; 469 470} CXXABI_1.2; 471 472CXXABI_1.2.2 { 473 474 # *_type_info classes, ctor and dtor 475 _ZN10__cxxabiv117__array_type_info*; 476 _ZN10__cxxabiv117__class_type_info*; 477 _ZN10__cxxabiv116__enum_type_info*; 478 _ZN10__cxxabiv120__function_type_info*; 479 _ZN10__cxxabiv123__fundamental_type_info*; 480 _ZN10__cxxabiv117__pbase_type_info*; 481 _ZN10__cxxabiv129__pointer_to_member_type_info*; 482 _ZN10__cxxabiv119__pointer_type_info*; 483 _ZN10__cxxabiv120__si_class_type_info*; 484 _ZN10__cxxabiv121__vmi_class_type_info*; 485 486 # *_type_info classes, member functions 487 _ZNK10__cxxabiv117__class_type_info*; 488 _ZNK10__cxxabiv120__function_type_info*; 489 _ZNK10__cxxabiv117__pbase_type_info*; 490 _ZNK10__cxxabiv129__pointer_to_member_type_info*; 491 _ZNK10__cxxabiv119__pointer_type_info*; 492 _ZNK10__cxxabiv120__si_class_type_info*; 493 _ZNK10__cxxabiv121__vmi_class_type_info*; 494 495} CXXABI_1.2.1; 496