xref: /freebsd/lib/libcxxrt/Version.map (revision 134e17798c9af53632b372348ab828e75e65bf46)
1# $FreeBSD$
2# Define the same version as the libsupc++ from gcc 4.2.1 so that we can use
3# libcxxrt as a drop-in replacement.
4
5CXXABI_1.3 {
6
7  global:
8
9    # ABI functions with C linkage
10    __cxa_allocate_exception;
11    __cxa_bad_cast;
12    __cxa_bad_typeid;
13    __cxa_begin_catch;
14    __cxa_begin_cleanup;
15    __cxa_call_unexpected;
16    __cxa_current_exception_type;
17    __cxa_demangle;
18    __cxa_end_catch;
19    __cxa_end_cleanup;
20    __cxa_free_exception;
21    __cxa_get_globals;
22    __cxa_get_globals_fast;
23    __cxa_guard_abort;
24    __cxa_guard_acquire;
25    __cxa_guard_release;
26    __cxa_pure_virtual;
27    __cxa_rethrow;
28    __cxa_throw;
29    __cxa_throw_bad_array_new_length;
30    __cxa_type_match;
31    __cxa_vec_cctor;
32    __cxa_vec_cleanup;
33    __cxa_vec_ctor;
34    __cxa_vec_delete2;
35    __cxa_vec_delete3;
36    __cxa_vec_delete;
37    __cxa_vec_dtor;
38    __cxa_vec_new2;
39    __cxa_vec_new3;
40    __cxa_vec_new;
41    __dynamic_cast;
42    __gxx_personality_sj0;
43    __gxx_personality_v0;
44
45    extern "C++" {
46        # Type info classes and their destructors
47        "__cxxabiv1::__array_type_info";
48        "__cxxabiv1::__array_type_info::~__array_type_info()";
49        "__cxxabiv1::__class_type_info";
50        "__cxxabiv1::__class_type_info::~__class_type_info()";
51        "__cxxabiv1::__enum_type_info";
52        "__cxxabiv1::__enum_type_info::~__enum_type_info()";
53        "__cxxabiv1::__function_type_info::";
54        "__cxxabiv1::__function_type_info::~__function_type_info()";
55        "__cxxabiv1::__fundamental_type_info";
56        "__cxxabiv1::__fundamental_type_info::~__fundamental_type_info()";
57        "__cxxabiv1::__pbase_type_info";
58        "__cxxabiv1::__pbase_type_info::~__pbase_type_info()";
59        "__cxxabiv1::__pointer_to_member_type_info";
60        "__cxxabiv1::__pointer_to_member_type_info::~__pointer_to_member_type_info()";
61        "__cxxabiv1::__pointer_type_info";
62        "__cxxabiv1::__pointer_type_info::~__pointer_type_info()";
63        "__cxxabiv1::__si_class_type_info";
64        "__cxxabiv1::__si_class_type_info::~__si_class_type_info()";
65        "__cxxabiv1::__vmi_class_type_info";
66        "__cxxabiv1::__vmi_class_type_info::~__vmi_class_type_info()";
67
68        # vtables typeinfo classes.
69        "vtable for __cxxabiv1::__array_type_info";
70        "vtable for __cxxabiv1::__class_type_info";
71        "vtable for __cxxabiv1::__enum_type_info";
72        "vtable for __cxxabiv1::__function_type_info";
73        "vtable for __cxxabiv1::__fundamental_type_info";
74        "vtable for __cxxabiv1::__pbase_type_info";
75        "vtable for __cxxabiv1::__pointer_to_member_type_info";
76        "vtable for __cxxabiv1::__pointer_type_info";
77        "vtable for __cxxabiv1::__si_class_type_info";
78        "vtable for __cxxabiv1::__vmi_class_type_info";
79
80        # Type info for built-in types
81        "typeinfo for bool const*";
82        "typeinfo for bool";
83        "typeinfo for char const*";
84        "typeinfo for char";
85        "typeinfo for double const*";
86        "typeinfo for double";
87        "typeinfo for float const*";
88        "typeinfo for float";
89        "typeinfo for int const*";
90        "typeinfo for int";
91        "typeinfo for long const*";
92        "typeinfo for long double const*";
93        "typeinfo for long double";
94        "typeinfo for long long const*";
95        "typeinfo for long long";
96        "typeinfo for long";
97        "typeinfo for short const*";
98        "typeinfo for short";
99        "typeinfo for signed char const*";
100        "typeinfo for signed char";
101        "typeinfo for unsigned char const*";
102        "typeinfo for unsigned char";
103        "typeinfo for unsigned int const*";
104        "typeinfo for unsigned int";
105        "typeinfo for unsigned long const*";
106        "typeinfo for unsigned long long const*";
107        "typeinfo for unsigned long long";
108        "typeinfo for unsigned long";
109        "typeinfo for unsigned short const*";
110        "typeinfo for unsigned short";
111        "typeinfo for void const*";
112        "typeinfo for void";
113        "typeinfo for wchar_t const*";
114        "typeinfo for wchar_t";
115
116        "typeinfo for bool*";
117        "typeinfo for wchar_t*";
118        "typeinfo for short*";
119        "typeinfo for char*";
120        "typeinfo for unsigned char*";
121        "typeinfo for long long*";
122        "typeinfo for unsigned short*";
123        "typeinfo for long*";
124        "typeinfo for double*";
125        "typeinfo for unsigned long*";
126        "typeinfo for unsigned long long*";
127        "typeinfo for int*";
128        "typeinfo for long double*";
129        "typeinfo for signed char*";
130        "typeinfo for void*";
131        "typeinfo for unsigned int*";
132        "typeinfo for float*";
133
134        "typeinfo for __cxxabiv1::__array_type_info";
135        "typeinfo for __cxxabiv1::__class_type_info";
136        "typeinfo for __cxxabiv1::__enum_type_info";
137        "typeinfo for __cxxabiv1::__function_type_info";
138        "typeinfo for __cxxabiv1::__fundamental_type_info";
139        "typeinfo for __cxxabiv1::__pbase_type_info";
140        "typeinfo for __cxxabiv1::__pointer_to_member_type_info";
141        "typeinfo for __cxxabiv1::__pointer_type_info";
142        "typeinfo for __cxxabiv1::__si_class_type_info";
143        "typeinfo for __cxxabiv1::__vmi_class_type_info";
144
145        # Typeinfo names.
146
147        "typeinfo name for unsigned char const*";
148        "typeinfo name for long const*";
149        "typeinfo name for double const*";
150        "typeinfo name for unsigned long long const*";
151        "typeinfo name for unsigned short const*";
152        "typeinfo name for char const*";
153        "typeinfo name for long long const*";
154        "typeinfo name for short const*";
155        "typeinfo name for unsigned int const*";
156        "typeinfo name for float const*";
157        "typeinfo name for bool const*";
158        "typeinfo name for wchar_t const*";
159        "typeinfo name for int const*";
160        "typeinfo name for unsigned long const*";
161        "typeinfo name for void const*";
162        "typeinfo name for long double const*";
163        "typeinfo name for signed char const*";
164        "typeinfo name for wchar_t";
165        "typeinfo name for short";
166        "typeinfo name for char";
167        "typeinfo name for float";
168        "typeinfo name for void";
169        "typeinfo name for unsigned int";
170        "typeinfo name for bool";
171        "typeinfo name for signed char";
172        "typeinfo name for long double";
173        "typeinfo name for int";
174        "typeinfo name for unsigned long long";
175        "typeinfo name for unsigned long";
176        "typeinfo name for unsigned char";
177        "typeinfo name for long";
178        "typeinfo name for long long";
179        "typeinfo name for unsigned short";
180        "typeinfo name for double";
181
182        "typeinfo name for bool*";
183        "typeinfo name for wchar_t*";
184        "typeinfo name for short*";
185        "typeinfo name for char*";
186        "typeinfo name for unsigned char*";
187        "typeinfo name for long long*";
188        "typeinfo name for unsigned short*";
189        "typeinfo name for long*";
190        "typeinfo name for double*";
191        "typeinfo name for unsigned long*";
192        "typeinfo name for unsigned long long*";
193        "typeinfo name for int*";
194        "typeinfo name for long double*";
195        "typeinfo name for signed char*";
196        "typeinfo name for void*";
197        "typeinfo name for unsigned int*";
198        "typeinfo name for float*";
199
200        "typeinfo name for __cxxabiv1::__array_type_info";
201        "typeinfo name for __cxxabiv1::__class_type_info";
202        "typeinfo name for __cxxabiv1::__enum_type_info";
203        "typeinfo name for __cxxabiv1::__function_type_info";
204        "typeinfo name for __cxxabiv1::__fundamental_type_info";
205        "typeinfo name for __cxxabiv1::__pbase_type_info";
206        "typeinfo name for __cxxabiv1::__pointer_to_member_type_info";
207        "typeinfo name for __cxxabiv1::__pointer_type_info";
208        "typeinfo name for __cxxabiv1::__si_class_type_info";
209        "typeinfo name for __cxxabiv1::__vmi_class_type_info";
210
211        "std::type_info::type_info(std::type_info const&)";
212        "std::type_info::operator=(std::type_info const&)";
213
214
215        # Extensions
216        "pathscale::set_terminate(void (*)())";
217        "pathscale::set_unexpected(void (*)())";
218        "pathscale::set_use_thread_local_handlers(bool)";
219    };
220
221    # C++11 typeinfo not understood by ld.bfd 2.17.50
222    # std::nullptr_t
223    _ZTIDn;_ZTIPDn;_ZTIPKDn;
224    # char16_t
225    _ZTIDi;_ZTIPDi;_ZTIPKDi;
226    # char32_t
227    _ZTIDs;_ZTIPDs;_ZTIPKDs;
228    # IEEE 754r decimal floating point
229    _ZTIDd;_ZTIPDd;_ZTIPKDd;
230    _ZTIDe;_ZTIPDe;_ZTIPKDe;
231    _ZTIDf;_ZTIPDf;_ZTIPKDf;
232    # IEEE 754r half-precision floating point
233    _ZTIDh;_ZTIPDh;_ZTIPKDh;
234
235    # C++11 typeinfo name not understood by ld.bfd 2.17.50
236    # std::nullptr_t
237    _ZTSDn;_ZTSPDn;_ZTSPKDn;
238    # char16_t
239    _ZTSDi;_ZTSPDi;_ZTSPKDi;
240    # char32_t
241    _ZTSDs;_ZTSPDs;_ZTSPKDs;
242    # IEEE 754r decimal floating point
243    _ZTSDd;_ZTSPDd;_ZTSPKDd;
244    _ZTSDe;_ZTSPDe;_ZTSPKDe;
245    _ZTSDf;_ZTSPDf;_ZTSPKDf;
246    # IEEE 754r half-precision floating point
247    _ZTSDh;_ZTSPDh;_ZTSPKDh;
248
249  local:
250    *;
251};
252
253CXXABI_1.3.1 {
254    __cxa_get_exception_ptr;
255} CXXABI_1.3;
256
257CXXABI_1.3.5 {
258    extern "C++" {
259        "typeinfo for __int128 const*";
260        "typeinfo for __int128";
261        "typeinfo for __int128*";
262        "typeinfo for unsigned __int128 const*";
263        "typeinfo for unsigned __int128";
264        "typeinfo for unsigned __int128*";
265    };
266} CXXABI_1.3.1;
267
268CXXABI_1.3.6 {
269    __cxa_deleted_virtual;
270} CXXABI_1.3.5;
271
272CXXABI_1.3.9 {
273    extern "C++" {
274        "typeinfo name for __int128 const*";
275        "typeinfo name for __int128";
276        "typeinfo name for __int128*";
277        "typeinfo name for unsigned __int128 const*";
278        "typeinfo name for unsigned __int128";
279        "typeinfo name for unsigned __int128*";
280        "operator delete[](void*, unsigned int)";
281        "operator delete(void*, unsigned int)";
282        "operator delete[](void*, unsigned long)";
283        "operator delete(void*, unsigned long)";
284    };
285} CXXABI_1.3.6;
286
287CXXRT_1.0 {
288
289    extern "C++" {
290        "std::type_info::name() const";
291        "std::type_info::before(std::type_info const&) const";
292        "std::type_info::operator==(std::type_info const&) const";
293        "std::type_info::operator!=(std::type_info const&) const";
294        "std::bad_cast::bad_cast(std::bad_cast const&)";
295        "std::bad_cast::bad_cast()";
296        "std::bad_cast::operator=(std::bad_cast const&)";
297        "std::bad_typeid::bad_typeid(std::bad_typeid const&)";
298        "std::bad_typeid::bad_typeid()";
299        "std::bad_typeid::operator=(std::bad_typeid const&)";
300        "std::exception::exception(std::exception const&)";
301        "std::exception::exception()";
302        "std::exception::operator=(std::exception const&)";
303        "std::bad_alloc::bad_alloc(std::bad_alloc const&)";
304        "std::bad_alloc::bad_alloc()";
305        "std::bad_alloc::operator=(std::bad_alloc const&)";
306        "std::bad_array_new_length::bad_array_new_length(std::bad_array_new_length const&)";
307        "std::bad_array_new_length::bad_array_new_length()";
308        "std::bad_array_new_length::operator=(std::bad_array_new_length const&)";
309
310    };
311    __cxa_allocate_dependent_exception;
312    __cxa_current_primary_exception;
313    __cxa_decrement_exception_refcount;
314    __cxa_free_dependent_exception;
315    __cxa_increment_exception_refcount;
316    __cxa_rethrow_primary_exception;
317
318} CXXABI_1.3.6;
319
320
321GLIBCXX_3.4 {
322    extern "C++" {
323        "operator delete[](void*)";
324        "operator delete(void*)";
325        "operator new[](unsigned int)";
326        "operator new(unsigned int)";
327        "operator new(unsigned int, std::nothrow_t const&)";
328        "operator new[](unsigned long)";
329        "operator new(unsigned long)";
330        "operator new(unsigned long, std::nothrow_t const&)";
331
332        "std::unexpected()";
333        "std::get_terminate()";
334        "std::get_unexpected()";
335        "std::uncaught_exception()";
336        "std::terminate()";
337
338        "std::type_info::~type_info()";
339        "std::bad_cast::~bad_cast()";
340        "std::bad_typeid::~bad_typeid()";
341        "std::exception::~exception()";
342        "std::bad_alloc::~bad_alloc()";
343        "std::bad_array_new_length::~bad_array_new_length()";
344
345        "std::exception::what() const";
346
347        std::set_new_handler*;
348        std::set_terminate*;
349        std::set_unexpected*;
350        std::type_info::__*;
351
352        "vtable for std::bad_alloc";
353        "vtable for std::bad_cast";
354        "vtable for std::bad_typeid";
355        "vtable for std::exception";
356        "vtable for std::type_info";
357        "vtable for std::bad_array_new_length";
358
359        "typeinfo for std::bad_alloc";
360        "typeinfo for std::bad_typeid";
361        "typeinfo for std::bad_cast";
362        "typeinfo for std::exception";
363        "typeinfo for std::type_info";
364        "typeinfo for std::bad_array_new_length";
365        "typeinfo name for std::bad_alloc";
366        "typeinfo name for std::bad_typeid";
367        "typeinfo name for std::bad_cast";
368        "typeinfo name for std::exception";
369        "typeinfo name for std::type_info";
370        "typeinfo name for std::bad_array_new_length";
371
372    };
373};
374
375GLIBCXX_3.4.9 {
376    extern "C++" {
377        "std::bad_typeid::what() const";
378        "std::bad_cast::what() const";
379        "std::bad_alloc::what() const";
380        "std::bad_array_new_length::what() const";
381    };
382} GLIBCXX_3.4;
383
384GLIBCXX_3.4.20 {
385    extern "C++" {
386        "std::get_new_handler()";
387    };
388} GLIBCXX_3.4.9;
389
390GLIBCXX_3.4.22 {
391    extern "C++" {
392        "std::uncaught_exceptions()";
393    };
394} GLIBCXX_3.4.20;
395
396