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