diff options
author | David Chisnall <theraven@FreeBSD.org> | 2013-01-28 11:12:49 +0000 |
---|---|---|
committer | David Chisnall <theraven@FreeBSD.org> | 2013-01-28 11:12:49 +0000 |
commit | 4792733bb8002a870fe0e977375c29995a2a0256 (patch) | |
tree | 91475ddf8dac40a9a30ca3181f0b3b4b4e7fe230 /gnu/lib | |
parent | 3758c66a4f46aaf88eb69342711273890ac77f21 (diff) | |
download | src-4792733bb8002a870fe0e977375c29995a2a0256.tar.gz src-4792733bb8002a870fe0e977375c29995a2a0256.zip |
Fix some symbol version mismatches between libstdc++ and libsupc++/libcxxrt
that were causing the runtime and STL libraries to see different versions of
various classes and functions when libstdc++ is used as a filter.
Note: This changes the ABI for libcxxrt, but libcxxrt is currently only in
-STABLE for testing and is not used by anything unless explicitly enabled by
the end user. No default compiler configurations use it.
libc++ will need to be recompiled after this change. make buildworld will do
this automatically, but make in lib/libc++ will not necessarily work unless the
new libcxxrt is installed first.
PR: kern/171610, stand/175453
Reviewed by: kib
MFC after: 1 week
Notes
Notes:
svn path=/head/; revision=246028
Diffstat (limited to 'gnu/lib')
-rw-r--r-- | gnu/lib/libsupc++/Version.map | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/gnu/lib/libsupc++/Version.map b/gnu/lib/libsupc++/Version.map index ec6303ef78ec..dbcf4953979a 100644 --- a/gnu/lib/libsupc++/Version.map +++ b/gnu/lib/libsupc++/Version.map @@ -142,8 +142,37 @@ GLIBCXX_3.4 { _ZdaPvRKSt9nothrow_t; _ZdlPv; _ZdlPvRKSt9nothrow_t; + extern "C++" { + std::set_new_handler*; + std::set_terminate*; + std::set_unexpected*; + + std::bad_alloc; + std::bad_cast; + std::exception*; + + "typeinfo for std::bad_alloc"; + "typeinfo for std::bad_cast"; + "typeinfo for std::exception"; + + "typeinfo name for std::bad_alloc"; + "typeinfo name for std::bad_cast"; + "typeinfo name for std::exception"; + + "vtable for std::bad_alloc"; + "vtable for std::bad_cast"; + "vtable for std::exception"; + }; }; +GLIBCXX_3.4.9 { + extern "C++" { + "std::bad_alloc::what() const"; + "std::bad_cast::what() const"; + "std::bad_typeid::what() const"; + }; +} GLIBCXX_3.4; + CXXABI_1.3.1 { __cxa_get_exception_ptr; |