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
129169691Skan  local:
130169691Skan    *;
131169691Skan};
132169691Skan
133237938StheravenGLIBCXX_3.4 {
134237938Stheraven    # operator new and new[]
135237938Stheraven    _Znai[jm];
136237938Stheraven    _Zna[jm]RKSt9nothrow_t;
137237938Stheraven    _Znw[jm];
138237938Stheraven    _Znw[jm]RKSt9nothrow_t;
139237938Stheraven
140237938Stheraven    # operator delete and delete[]
141237938Stheraven    _ZdaPv;
142237938Stheraven    _ZdaPvRKSt9nothrow_t;
143237938Stheraven    _ZdlPv;
144237938Stheraven    _ZdlPvRKSt9nothrow_t;
145246368Sdim    extern "C++" {
146246368Sdim      std::set_new_handler*;
147246368Sdim      std::set_terminate*;
148246368Sdim      std::set_unexpected*;
149246368Sdim
150252116Stheraven      "std::unexpected()";
151252116Stheraven      "std::get_terminate()";
152252116Stheraven      "std::get_unexpected()";
153252116Stheraven      "std::uncaught_exception()";
154252116Stheraven      "std::terminate()";
155252116Stheraven
156252116Stheraven
157246368Sdim      std::bad_alloc;
158246368Sdim      std::bad_cast;
159246368Sdim      std::exception*;
160246368Sdim
161246368Sdim      "typeinfo for std::bad_alloc";
162246368Sdim      "typeinfo for std::bad_cast";
163246368Sdim      "typeinfo for std::exception";
164252116Stheraven      "typeinfo for std::type_info";
165246368Sdim
166246368Sdim      "typeinfo name for std::bad_alloc";
167246368Sdim      "typeinfo name for std::bad_cast";
168246368Sdim      "typeinfo name for std::exception";
169252116Stheraven      "typeinfo name for std::type_info";
170246368Sdim
171246368Sdim      "vtable for std::bad_alloc";
172246368Sdim      "vtable for std::bad_cast";
173246368Sdim      "vtable for std::exception";
174252116Stheraven      "vtable for std::type_info";
175252116Stheraven
176252116Stheraven      std::type_info::__*;
177252116Stheraven      "std::type_info::~type_info()";
178246368Sdim    };
179237938Stheraven};
180237938Stheraven
181246368SdimGLIBCXX_3.4.9 {
182246368Sdim    extern "C++" {
183246368Sdim        "std::bad_alloc::what() const";
184246368Sdim        "std::bad_cast::what() const";
185246368Sdim        "std::bad_typeid::what() const";
186246368Sdim    };
187246368Sdim} GLIBCXX_3.4;
188246368Sdim
189169691SkanCXXABI_1.3.1 {
190169691Skan
191169691Skan    __cxa_get_exception_ptr;
192169691Skan
193169691Skan} CXXABI_1.3;
194