1169691Skan## Linker script for GNU versioning (GNU ld 2.13.91+ only.)
2169691Skan##
3169691Skan## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
4169691Skan## Free Software Foundation, Inc.
5169691Skan##
6169691Skan## This file is part of the GNU ISO C++ Library.  This library is free
7169691Skan## software; you can redistribute it and/or modify it under the
8169691Skan## terms of the GNU General Public License as published by the
9169691Skan## Free Software Foundation; either version 2, or (at your option)
10169691Skan## any later version.
11169691Skan##
12169691Skan## This library is distributed in the hope that it will be useful,
13169691Skan## but WITHOUT ANY WARRANTY; without even the implied warranty of
14169691Skan## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15169691Skan## GNU General Public License for more details.
16169691Skan##
17169691Skan## You should have received a copy of the GNU General Public License along
18169691Skan## with this library; see the file COPYING.  If not, write to the Free
19169691Skan## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
20169691Skan## USA.
21169691Skan
22233749Stheraven## $FreeBSD$
23169691Skan
24169691Skan
25169691Skan# Symbols in the support library (libsupc++) have their own tag.
26169691SkanCXXABI_1.3 {
27169691Skan
28169691Skan  global:
29169691Skan    __cxa_allocate_exception;
30169691Skan    __cxa_bad_cast;
31169691Skan    __cxa_bad_typeid;
32169691Skan    __cxa_begin_catch;
33169691Skan    __cxa_begin_cleanup;
34169691Skan    __cxa_call_unexpected;
35169691Skan    __cxa_current_exception_type;
36169691Skan    __cxa_demangle;
37169691Skan    __cxa_end_catch;
38169691Skan    __cxa_end_cleanup;
39169691Skan    __cxa_free_exception;
40169691Skan    __cxa_get_globals;
41169691Skan    __cxa_get_globals_fast;
42169691Skan    __cxa_guard_abort;
43169691Skan    __cxa_guard_acquire;
44169691Skan    __cxa_guard_release;
45169691Skan    __cxa_pure_virtual;
46169691Skan    __cxa_rethrow;
47169691Skan    __cxa_throw;
48169691Skan    __cxa_type_match;
49169691Skan    __cxa_vec_cctor;
50169691Skan    __cxa_vec_cleanup;
51169691Skan    __cxa_vec_ctor;
52169691Skan    __cxa_vec_delete2;
53169691Skan    __cxa_vec_delete3;
54169691Skan    __cxa_vec_delete;
55169691Skan    __cxa_vec_dtor;
56169691Skan    __cxa_vec_new2;
57169691Skan    __cxa_vec_new3;
58169691Skan    __cxa_vec_new;
59169691Skan    __gxx_personality_v0;
60169691Skan    __gxx_personality_sj0;
61169691Skan    __dynamic_cast;
62169691Skan
63169691Skan    # *_type_info classes, ctor and dtor
64169691Skan    _ZN10__cxxabiv117__array_type_info*;
65169691Skan    _ZN10__cxxabiv117__class_type_info*;
66169691Skan    _ZN10__cxxabiv116__enum_type_info*;
67169691Skan    _ZN10__cxxabiv120__function_type_info*;
68169691Skan    _ZN10__cxxabiv123__fundamental_type_info*;
69169691Skan    _ZN10__cxxabiv117__pbase_type_info*;
70169691Skan    _ZN10__cxxabiv129__pointer_to_member_type_info*;
71169691Skan    _ZN10__cxxabiv119__pointer_type_info*;
72169691Skan    _ZN10__cxxabiv120__si_class_type_info*;
73169691Skan    _ZN10__cxxabiv121__vmi_class_type_info*;
74169691Skan
75169691Skan    # *_type_info classes, member functions
76169691Skan    _ZNK10__cxxabiv117__class_type_info*;
77169691Skan    _ZNK10__cxxabiv120__function_type_info*;
78169691Skan    _ZNK10__cxxabiv117__pbase_type_info*;
79169691Skan    _ZNK10__cxxabiv129__pointer_to_member_type_info*;
80169691Skan    _ZNK10__cxxabiv119__pointer_type_info*;
81169691Skan    _ZNK10__cxxabiv120__si_class_type_info*;
82169691Skan    _ZNK10__cxxabiv121__vmi_class_type_info*;
83169691Skan
84169691Skan    # virtual table
85169691Skan    _ZTVN10__cxxabiv117__array_type_infoE;
86169691Skan    _ZTVN10__cxxabiv117__class_type_infoE;
87169691Skan    _ZTVN10__cxxabiv116__enum_type_infoE;
88169691Skan    _ZTVN10__cxxabiv120__function_type_infoE;
89169691Skan    _ZTVN10__cxxabiv123__fundamental_type_infoE;
90169691Skan    _ZTVN10__cxxabiv117__pbase_type_infoE;
91169691Skan    _ZTVN10__cxxabiv129__pointer_to_member_type_infoE;
92169691Skan    _ZTVN10__cxxabiv119__pointer_type_infoE;
93169691Skan    _ZTVN10__cxxabiv120__si_class_type_infoE;
94169691Skan    _ZTVN10__cxxabiv121__vmi_class_type_infoE;
95169691Skan
96169691Skan    # typeinfo structure (and some names)
97169691Skan    _ZTI[a-fh-z];
98169691Skan    _ZTIP[a-fh-z];
99169691Skan    _ZTIPK[a-fh-z];
100169691Skan    _ZTIN10__cxxabiv117__array_type_infoE;
101169691Skan    _ZTIN10__cxxabiv117__class_type_infoE;
102169691Skan    _ZTIN10__cxxabiv116__enum_type_infoE;
103169691Skan    _ZTIN10__cxxabiv120__function_type_infoE;
104169691Skan    _ZTIN10__cxxabiv123__fundamental_type_infoE;
105169691Skan    _ZTIN10__cxxabiv117__pbase_type_infoE;
106169691Skan    _ZTIN10__cxxabiv129__pointer_to_member_type_infoE;
107169691Skan    _ZTIN10__cxxabiv119__pointer_type_infoE;
108169691Skan    _ZTIN10__cxxabiv120__si_class_type_infoE;
109169691Skan    _ZTIN10__cxxabiv121__vmi_class_type_infoE;
110169691Skan
111169691Skan    # typeinfo name
112169691Skan    _ZTS[a-fh-z];
113169691Skan    _ZTSP[a-fh-z];
114169691Skan    _ZTSPK[a-fh-z];
115169691Skan    _ZTSN10__cxxabiv117__array_type_infoE;
116169691Skan    _ZTSN10__cxxabiv117__class_type_infoE;
117169691Skan    _ZTSN10__cxxabiv116__enum_type_infoE;
118169691Skan    _ZTSN10__cxxabiv120__function_type_infoE;
119169691Skan    _ZTSN10__cxxabiv123__fundamental_type_infoE;
120169691Skan    _ZTSN10__cxxabiv117__pbase_type_infoE;
121169691Skan    _ZTSN10__cxxabiv129__pointer_to_member_type_infoE;
122169691Skan    _ZTSN10__cxxabiv119__pointer_type_infoE;
123169691Skan    _ZTSN10__cxxabiv120__si_class_type_infoE;
124169691Skan    _ZTSN10__cxxabiv121__vmi_class_type_infoE;
125169691Skan
126169691Skan    # __gnu_cxx::_verbose_terminate_handler()
127169691Skan    _ZN9__gnu_cxx27__verbose_terminate_handlerEv;
128169691Skan
129236890Stheraven  local:
130236890Stheraven    *;
131236890Stheraven};
132236614Sdes
133236890StheravenGLIBCXX_3.4 {
134236890Stheraven    # operator new and new[]
135236890Stheraven    _Znai[jm];
136236890Stheraven    _Zna[jm]RKSt9nothrow_t;
137236890Stheraven    _Znw[jm];
138236890Stheraven    _Znw[jm]RKSt9nothrow_t;
139236614Sdes
140236614Sdes    # operator delete and delete[]
141236177Stheraven    _ZdaPv;
142236177Stheraven    _ZdaPvRKSt9nothrow_t;
143236177Stheraven    _ZdlPv;
144236177Stheraven    _ZdlPvRKSt9nothrow_t;
145246028Stheraven    extern "C++" {
146246028Stheraven      std::set_new_handler*;
147246028Stheraven      std::set_terminate*;
148246028Stheraven      std::set_unexpected*;
149246028Stheraven
150251820Stheraven      "std::unexpected()";
151251820Stheraven      "std::get_terminate()";
152251820Stheraven      "std::get_unexpected()";
153251820Stheraven      "std::uncaught_exception()";
154251820Stheraven      "std::terminate()";
155251820Stheraven
156251820Stheraven
157246028Stheraven      std::bad_alloc;
158246028Stheraven      std::bad_cast;
159246028Stheraven      std::exception*;
160246028Stheraven
161246028Stheraven      "typeinfo for std::bad_alloc";
162246028Stheraven      "typeinfo for std::bad_cast";
163246028Stheraven      "typeinfo for std::exception";
164251820Stheraven      "typeinfo for std::type_info";
165246028Stheraven
166246028Stheraven      "typeinfo name for std::bad_alloc";
167246028Stheraven      "typeinfo name for std::bad_cast";
168246028Stheraven      "typeinfo name for std::exception";
169251820Stheraven      "typeinfo name for std::type_info";
170246028Stheraven
171246028Stheraven      "vtable for std::bad_alloc";
172246028Stheraven      "vtable for std::bad_cast";
173246028Stheraven      "vtable for std::exception";
174251820Stheraven      "vtable for std::type_info";
175251820Stheraven
176251820Stheraven      std::type_info::__*;
177251820Stheraven      "std::type_info::~type_info()";
178246028Stheraven    };
179169691Skan};
180169691Skan
181246028StheravenGLIBCXX_3.4.9 {
182246028Stheraven    extern "C++" {
183246028Stheraven        "std::bad_alloc::what() const";
184246028Stheraven        "std::bad_cast::what() const";
185246028Stheraven        "std::bad_typeid::what() const";
186246028Stheraven    };
187246028Stheraven} GLIBCXX_3.4;
188246028Stheraven
189169691SkanCXXABI_1.3.1 {
190169691Skan
191169691Skan    __cxa_get_exception_ptr;
192169691Skan
193169691Skan} CXXABI_1.3;
194