1169691Skan## Linker script for GNU namespace versioning.
2169691Skan##
3169691Skan## Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
4169691Skan##
5169691Skan## This file is part of the libstdc++ version 3 distribution.
6169691Skan##
7169691Skan## This file is part of the GNU ISO C++ Library.  This library is free
8169691Skan## software; you can redistribute it and/or modify it under the
9169691Skan## terms of the GNU General Public License as published by the
10169691Skan## Free Software Foundation; either version 2, or (at your option)
11169691Skan## any later version.
12169691Skan##
13169691Skan## This library is distributed in the hope that it will be useful,
14169691Skan## but WITHOUT ANY WARRANTY; without even the implied warranty of
15169691Skan## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16169691Skan## GNU General Public License for more details.
17169691Skan##
18169691Skan## You should have received a copy of the GNU General Public License along
19169691Skan## with this library; see the file COPYING.  If not, write to the Free
20169691Skan## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
21169691Skan## USA.
22169691Skan
23169691SkanGLIBCXX_3.7 {
24169691Skan
25169691Skan  global:
26169691Skan
27169691Skan    # Names inside the 'extern' block are demangled names.
28169691Skan    extern "C++"
29169691Skan    {
30169691Skan      std::_6::*;
31169691Skan      std::*
32169691Skan    };
33169691Skan
34169691Skan    # operator new(size_t)
35169691Skan    _Znw[jm];
36169691Skan    # operator new(size_t, std::nothrow_t const&)
37169691Skan    _Znw[jm]RKSt9nothrow_t;
38169691Skan
39169691Skan    # operator delete(void*)
40169691Skan    _ZdlPv;
41169691Skan    # operator delete(void*, std::nothrow_t const&)
42169691Skan    _ZdlPvRKSt9nothrow_t;
43169691Skan
44169691Skan    # operator new[](size_t)
45169691Skan    _Zna[jm];
46169691Skan    # operator new[](size_t, std::nothrow_t const&)
47169691Skan    _Zna[jm]RKSt9nothrow_t;
48169691Skan
49169691Skan    # operator delete[](void*)
50169691Skan    _ZdaPv;
51169691Skan    # operator delete[](void*, std::nothrow_t const&)
52169691Skan    _ZdaPvRKSt9nothrow_t;
53169691Skan
54169691Skan    # function-scope static objects requires a guard variable.
55169691Skan    _ZGVNSt*;
56169691Skan
57169691Skan    _ZTT*;
58169691Skan    _ZTV*;
59169691Skan
60169691Skan    _ZTI*;
61169691Skan    _ZTS*;
62169691Skan
63169691Skan    _ZTv0_n*;
64169691Skan
65169691Skan    # std::__convert_to_v
66169691Skan    _ZNSt2_614__convert_to_v*;
67169691Skan
68169691Skan    # std::__copy_streambufs
69169691Skan    _ZNSt2_617__copy_streambufsI[cw]NS_11char_traitsI[cw]EEEEiPNS_15basic_streambufIT_T0_EES7_;
70169691Skan
71169691Skan    # __gnu_cxx::__atomic_add
72169691Skan    # __gnu_cxx::__exchange_and_add
73169691Skan    _ZN9__gnu_cxx2_612__atomic_addEPV[il][il];
74169691Skan    _ZN9__gnu_cxx2_618__exchange_and_addEPV[li][il];
75169691Skan
76169691Skan    # __gnu_cxx::__pool
77169691Skan    _ZN9__gnu_cxx2_66__poolILb[01]EE13_M_initializeEv;
78169691Skan    _ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reserve_blockE[jm][jm];
79169691Skan    _ZN9__gnu_cxx2_66__poolILb[01]EE16_M_reclaim_blockEPc[jm];
80169691Skan    _ZN9__gnu_cxx2_66__poolILb[01]EE10_M_destroyEv;
81169691Skan    _ZN9__gnu_cxx2_66__poolILb1EE16_M_get_thread_idEv;
82169691Skan
83169691Skan    _ZN9__gnu_cxx2_617__pool_alloc_base9_M_refillE[jm];    
84169691Skan    _ZN9__gnu_cxx2_617__pool_alloc_base16_M_get_free_listE[jm];
85169691Skan    _ZN9__gnu_cxx2_617__pool_alloc_base12_M_get_mutexEv;
86169691Skan
87169691Skan    _ZN9__gnu_cxx2_69free_list6_M_getE[jm];
88169691Skan    _ZN9__gnu_cxx2_69free_list8_M_clearEv;
89169691Skan
90169691Skan  local:
91169691Skan    *;
92169691Skan};
93169691Skan
94169691Skan
95169691Skan# Symbols in the support library (libsupc++) have their own tag.
96169691SkanCXXABI_1.7 {
97169691Skan
98169691Skan  global:
99169691Skan    __cxa_allocate_exception;
100169691Skan    __cxa_bad_cast;
101169691Skan    __cxa_bad_typeid;
102169691Skan    __cxa_begin_catch;
103169691Skan    __cxa_begin_cleanup;
104169691Skan    __cxa_call_unexpected;
105169691Skan    __cxa_current_exception_type;
106169691Skan    __cxa_demangle;
107169691Skan    __cxa_end_catch;
108169691Skan    __cxa_end_cleanup;
109169691Skan    __cxa_free_exception;
110169691Skan    __cxa_get_exception_ptr;
111169691Skan    __cxa_get_globals;
112169691Skan    __cxa_get_globals_fast;
113169691Skan    __cxa_guard_abort;
114169691Skan    __cxa_guard_acquire;
115169691Skan    __cxa_guard_release;
116169691Skan    __cxa_pure_virtual;
117169691Skan    __cxa_rethrow;
118169691Skan    __cxa_throw;
119169691Skan    __cxa_type_match;
120169691Skan    __cxa_vec_cctor;
121169691Skan    __cxa_vec_cleanup;
122169691Skan    __cxa_vec_ctor;
123169691Skan    __cxa_vec_delete2;
124169691Skan    __cxa_vec_delete3;
125169691Skan    __cxa_vec_delete;
126169691Skan    __cxa_vec_dtor;
127169691Skan    __cxa_vec_new2;
128169691Skan    __cxa_vec_new3;
129169691Skan    __cxa_vec_new;
130169691Skan    __gxx_personality_v0;
131169691Skan    __gxx_personality_sj0;
132169691Skan    __dynamic_cast;
133169691Skan
134169691Skan    # *_type_info classes, ctor and dtor
135169691Skan    _ZN10__cxxabiv117__array_type_info*;
136169691Skan    _ZN10__cxxabiv117__class_type_info*;
137169691Skan    _ZN10__cxxabiv116__enum_type_info*;
138169691Skan    _ZN10__cxxabiv120__function_type_info*;
139169691Skan    _ZN10__cxxabiv123__fundamental_type_info*;
140169691Skan    _ZN10__cxxabiv117__pbase_type_info*;
141169691Skan    _ZN10__cxxabiv129__pointer_to_member_type_info*;
142169691Skan    _ZN10__cxxabiv119__pointer_type_info*;
143169691Skan    _ZN10__cxxabiv120__si_class_type_info*;
144169691Skan    _ZN10__cxxabiv121__vmi_class_type_info*;
145169691Skan
146169691Skan    # *_type_info classes, member functions
147169691Skan    _ZNK10__cxxabiv117__class_type_info*;
148169691Skan    _ZNK10__cxxabiv120__function_type_info*;
149169691Skan    _ZNK10__cxxabiv117__pbase_type_info*;
150169691Skan    _ZNK10__cxxabiv129__pointer_to_member_type_info*;
151169691Skan    _ZNK10__cxxabiv119__pointer_type_info*;
152169691Skan    _ZNK10__cxxabiv120__si_class_type_info*;
153169691Skan    _ZNK10__cxxabiv121__vmi_class_type_info*;
154169691Skan
155169691Skan    # virtual table
156169691Skan    _ZTVN10__cxxabiv117__array_type_infoE;
157169691Skan    _ZTVN10__cxxabiv117__class_type_infoE;
158169691Skan    _ZTVN10__cxxabiv116__enum_type_infoE;
159169691Skan    _ZTVN10__cxxabiv120__function_type_infoE;
160169691Skan    _ZTVN10__cxxabiv123__fundamental_type_infoE;
161169691Skan    _ZTVN10__cxxabiv117__pbase_type_infoE;
162169691Skan    _ZTVN10__cxxabiv129__pointer_to_member_type_infoE;
163169691Skan    _ZTVN10__cxxabiv119__pointer_type_infoE;
164169691Skan    _ZTVN10__cxxabiv120__si_class_type_infoE;
165169691Skan    _ZTVN10__cxxabiv121__vmi_class_type_infoE;
166169691Skan
167169691Skan    # typeinfo structure (and some names)
168169691Skan    _ZTI[a-z];
169169691Skan    _ZTIP[a-z];
170169691Skan    _ZTIPK[a-z];
171169691Skan    _ZTIN10__cxxabiv117__array_type_infoE;
172169691Skan    _ZTIN10__cxxabiv117__class_type_infoE;
173169691Skan    _ZTIN10__cxxabiv116__enum_type_infoE;
174169691Skan    _ZTIN10__cxxabiv120__function_type_infoE;
175169691Skan    _ZTIN10__cxxabiv123__fundamental_type_infoE;
176169691Skan    _ZTIN10__cxxabiv117__pbase_type_infoE;
177169691Skan    _ZTIN10__cxxabiv129__pointer_to_member_type_infoE;
178169691Skan    _ZTIN10__cxxabiv119__pointer_type_infoE;
179169691Skan    _ZTIN10__cxxabiv120__si_class_type_infoE;
180169691Skan    _ZTIN10__cxxabiv121__vmi_class_type_infoE;
181169691Skan
182169691Skan    # typeinfo name
183169691Skan    _ZTS[a-z];
184169691Skan    _ZTSP[a-z];
185169691Skan    _ZTSPK[a-z];
186169691Skan    _ZTSN10__cxxabiv117__array_type_infoE;
187169691Skan    _ZTSN10__cxxabiv117__class_type_infoE;
188169691Skan    _ZTSN10__cxxabiv116__enum_type_infoE;
189169691Skan    _ZTSN10__cxxabiv120__function_type_infoE;
190169691Skan    _ZTSN10__cxxabiv123__fundamental_type_infoE;
191169691Skan    _ZTSN10__cxxabiv117__pbase_type_infoE;
192169691Skan    _ZTSN10__cxxabiv129__pointer_to_member_type_infoE;
193169691Skan    _ZTSN10__cxxabiv119__pointer_type_infoE;
194169691Skan    _ZTSN10__cxxabiv120__si_class_type_infoE;
195169691Skan    _ZTSN10__cxxabiv121__vmi_class_type_infoE;
196169691Skan
197169691Skan    # __gnu_cxx::_verbose_terminate_handler()
198169691Skan    _ZN9__gnu_cxx2_627__verbose_terminate_handlerEv;
199169691Skan
200169691Skan  local:
201169691Skan    *;
202169691Skan};
203