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