1## Linker script for GNU namespace versioning.
2##
3## Copyright (C) 2002, 2003, 2004, 2005 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, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21## USA.
22
23GLIBCXX_3.7 {
24
25  global:
26
27    # Names inside the 'extern' block are demangled names.
28    extern "C++"
29    {
30      std::_6::*;
31      std::*
32    };
33
34    # operator new(size_t)
35    _Znw[jm];
36    # operator new(size_t, std::nothrow_t const&)
37    _Znw[jm]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[jm];
46    # operator new[](size_t, std::nothrow_t const&)
47    _Zna[jm]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    _ZTT*;
58    _ZTV*;
59
60    _ZTI*;
61    _ZTS*;
62
63    _ZTv0_n*;
64
65    # std::__convert_to_v
66    _ZNSt2_614__convert_to_v*;
67
68    # std::__copy_streambufs
69    _ZNSt2_617__copy_streambufsI[cw]NS_11char_traitsI[cw]EEEEiPNS_15basic_streambufIT_T0_EES7_;
70
71    # __gnu_cxx::__atomic_add
72    # __gnu_cxx::__exchange_and_add
73    _ZN9__gnu_cxx2_612__atomic_addEPV[il][il];
74    _ZN9__gnu_cxx2_618__exchange_and_addEPV[li][il];
75
76    # __gnu_cxx::__pool
77    _ZN9__gnu_cxx2_66__poolILb[01]EE13_M_initializeEv;
78    _ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reserve_blockE[jm][jm];
79    _ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reclaim_blockEPc[jm];
80    _ZN9__gnu_cxx2_66__poolILb[01]EE10_M_destroyEv;
81    _ZN9__gnu_cxx2_66__poolILb1EE16_M_get_thread_idEv;
82
83    _ZN9__gnu_cxx2_617__pool_alloc_base9_M_refillE[jm];    
84    _ZN9__gnu_cxx2_617__pool_alloc_base16_M_get_free_listE[jm];
85    _ZN9__gnu_cxx2_617__pool_alloc_base12_M_get_mutexEv;
86
87    _ZN9__gnu_cxx2_69free_list6_M_getE[jm];
88    _ZN9__gnu_cxx2_69free_list8_M_clearEv;
89
90  local:
91    *;
92};
93
94
95# Symbols in the support library (libsupc++) have their own tag.
96CXXABI_1.7 {
97
98  global:
99    __cxa_allocate_exception;
100    __cxa_bad_cast;
101    __cxa_bad_typeid;
102    __cxa_begin_catch;
103    __cxa_begin_cleanup;
104    __cxa_call_unexpected;
105    __cxa_current_exception_type;
106    __cxa_demangle;
107    __cxa_end_catch;
108    __cxa_end_cleanup;
109    __cxa_free_exception;
110    __cxa_get_exception_ptr;
111    __cxa_get_globals;
112    __cxa_get_globals_fast;
113    __cxa_guard_abort;
114    __cxa_guard_acquire;
115    __cxa_guard_release;
116    __cxa_pure_virtual;
117    __cxa_rethrow;
118    __cxa_throw;
119    __cxa_type_match;
120    __cxa_vec_cctor;
121    __cxa_vec_cleanup;
122    __cxa_vec_ctor;
123    __cxa_vec_delete2;
124    __cxa_vec_delete3;
125    __cxa_vec_delete;
126    __cxa_vec_dtor;
127    __cxa_vec_new2;
128    __cxa_vec_new3;
129    __cxa_vec_new;
130    __gxx_personality_v0;
131    __gxx_personality_sj0;
132    __dynamic_cast;
133
134    # *_type_info classes, ctor and dtor
135    _ZN10__cxxabiv117__array_type_info*;
136    _ZN10__cxxabiv117__class_type_info*;
137    _ZN10__cxxabiv116__enum_type_info*;
138    _ZN10__cxxabiv120__function_type_info*;
139    _ZN10__cxxabiv123__fundamental_type_info*;
140    _ZN10__cxxabiv117__pbase_type_info*;
141    _ZN10__cxxabiv129__pointer_to_member_type_info*;
142    _ZN10__cxxabiv119__pointer_type_info*;
143    _ZN10__cxxabiv120__si_class_type_info*;
144    _ZN10__cxxabiv121__vmi_class_type_info*;
145
146    # *_type_info classes, member functions
147    _ZNK10__cxxabiv117__class_type_info*;
148    _ZNK10__cxxabiv120__function_type_info*;
149    _ZNK10__cxxabiv117__pbase_type_info*;
150    _ZNK10__cxxabiv129__pointer_to_member_type_info*;
151    _ZNK10__cxxabiv119__pointer_type_info*;
152    _ZNK10__cxxabiv120__si_class_type_info*;
153    _ZNK10__cxxabiv121__vmi_class_type_info*;
154
155    # virtual table
156    _ZTVN10__cxxabiv117__array_type_infoE;
157    _ZTVN10__cxxabiv117__class_type_infoE;
158    _ZTVN10__cxxabiv116__enum_type_infoE;
159    _ZTVN10__cxxabiv120__function_type_infoE;
160    _ZTVN10__cxxabiv123__fundamental_type_infoE;
161    _ZTVN10__cxxabiv117__pbase_type_infoE;
162    _ZTVN10__cxxabiv129__pointer_to_member_type_infoE;
163    _ZTVN10__cxxabiv119__pointer_type_infoE;
164    _ZTVN10__cxxabiv120__si_class_type_infoE;
165    _ZTVN10__cxxabiv121__vmi_class_type_infoE;
166
167    # typeinfo structure (and some names)
168    _ZTI[a-z];
169    _ZTIP[a-z];
170    _ZTIPK[a-z];
171    _ZTIN10__cxxabiv117__array_type_infoE;
172    _ZTIN10__cxxabiv117__class_type_infoE;
173    _ZTIN10__cxxabiv116__enum_type_infoE;
174    _ZTIN10__cxxabiv120__function_type_infoE;
175    _ZTIN10__cxxabiv123__fundamental_type_infoE;
176    _ZTIN10__cxxabiv117__pbase_type_infoE;
177    _ZTIN10__cxxabiv129__pointer_to_member_type_infoE;
178    _ZTIN10__cxxabiv119__pointer_type_infoE;
179    _ZTIN10__cxxabiv120__si_class_type_infoE;
180    _ZTIN10__cxxabiv121__vmi_class_type_infoE;
181
182    # typeinfo name
183    _ZTS[a-z];
184    _ZTSP[a-z];
185    _ZTSPK[a-z];
186    _ZTSN10__cxxabiv117__array_type_infoE;
187    _ZTSN10__cxxabiv117__class_type_infoE;
188    _ZTSN10__cxxabiv116__enum_type_infoE;
189    _ZTSN10__cxxabiv120__function_type_infoE;
190    _ZTSN10__cxxabiv123__fundamental_type_infoE;
191    _ZTSN10__cxxabiv117__pbase_type_infoE;
192    _ZTSN10__cxxabiv129__pointer_to_member_type_infoE;
193    _ZTSN10__cxxabiv119__pointer_type_infoE;
194    _ZTSN10__cxxabiv120__si_class_type_infoE;
195    _ZTSN10__cxxabiv121__vmi_class_type_infoE;
196
197    # __gnu_cxx::_verbose_terminate_handler()
198    _ZN9__gnu_cxx2_627__verbose_terminate_handlerEv;
199
200  local:
201    *;
202};
203