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
This commit is contained in:
parent
721434871d
commit
b923a5521b
@ -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;
|
||||
|
@ -209,18 +209,7 @@ CXXABI_1.3 {
|
||||
|
||||
"std::type_info::type_info(std::type_info const&)";
|
||||
"std::type_info::type_info(std::type_info const&)";
|
||||
"std::type_info::~type_info()";
|
||||
"std::type_info::~type_info()";
|
||||
"std::type_info::~type_info()";
|
||||
"std::type_info::operator=(std::type_info const&)";
|
||||
"std::unexpected()";
|
||||
"std::get_terminate()";
|
||||
"std::set_terminate(void (*)())";
|
||||
"std::get_unexpected()";
|
||||
"std::set_unexpected(void (*)())";
|
||||
"std::set_new_handler(void (*)())";
|
||||
"std::uncaught_exception()";
|
||||
"std::terminate()";
|
||||
|
||||
|
||||
# Extensions
|
||||
@ -243,67 +232,22 @@ CXXABI_1.3.1 {
|
||||
CXXRT_1.0 {
|
||||
|
||||
extern "C++" {
|
||||
"std::bad_cast::what() const";
|
||||
"std::bad_typeid::what() const";
|
||||
"std::bad_alloc::what() const";
|
||||
"std::exception::what() const";
|
||||
"std::type_info::name() const";
|
||||
"std::type_info::before(std::type_info const&) const";
|
||||
"std::type_info::operator==(std::type_info const&) const";
|
||||
"std::type_info::operator!=(std::type_info const&) const";
|
||||
"std::bad_typeid::bad_typeid(std::bad_typeid const&)";
|
||||
"std::bad_typeid::bad_typeid()";
|
||||
"std::bad_typeid::bad_typeid(std::bad_typeid const&)";
|
||||
"std::bad_typeid::bad_typeid()";
|
||||
"std::bad_typeid::~bad_typeid()";
|
||||
"std::bad_typeid::~bad_typeid()";
|
||||
"std::bad_typeid::~bad_typeid()";
|
||||
"std::bad_typeid::operator=(std::bad_typeid const&)";
|
||||
"std::bad_cast::bad_cast(std::bad_cast const&)";
|
||||
"std::bad_cast::bad_cast()";
|
||||
"std::bad_cast::bad_cast(std::bad_cast const&)";
|
||||
"std::bad_cast::bad_cast()";
|
||||
"std::bad_cast::~bad_cast()";
|
||||
"std::bad_cast::~bad_cast()";
|
||||
"std::bad_cast::~bad_cast()";
|
||||
"std::bad_cast::operator=(std::bad_cast const&)";
|
||||
"std::bad_alloc::bad_alloc(std::bad_alloc const&)";
|
||||
"std::bad_alloc::bad_alloc()";
|
||||
"std::bad_alloc::bad_alloc(std::bad_alloc const&)";
|
||||
"std::bad_alloc::bad_alloc()";
|
||||
"std::bad_alloc::~bad_alloc()";
|
||||
"std::bad_alloc::~bad_alloc()";
|
||||
"std::bad_alloc::~bad_alloc()";
|
||||
"std::bad_alloc::operator=(std::bad_alloc const&)";
|
||||
"std::exception::exception(std::exception const&)";
|
||||
"std::exception::exception()";
|
||||
"std::exception::exception(std::exception const&)";
|
||||
"std::exception::exception()";
|
||||
"std::exception::~exception()";
|
||||
"std::exception::~exception()";
|
||||
"std::exception::~exception()";
|
||||
"std::exception::operator=(std::exception const&)";
|
||||
|
||||
|
||||
"vtable for std::bad_typeid";
|
||||
"vtable for std::bad_cast";
|
||||
"vtable for std::bad_alloc";
|
||||
"vtable for std::exception";
|
||||
"vtable for std::type_info";
|
||||
"typeinfo for std::bad_typeid";
|
||||
"typeinfo for std::bad_cast";
|
||||
"typeinfo for std::bad_alloc";
|
||||
"typeinfo for std::exception";
|
||||
"typeinfo for std::type_info";
|
||||
"typeinfo name for std::bad_typeid";
|
||||
"typeinfo name for std::bad_cast";
|
||||
"typeinfo name for std::bad_alloc";
|
||||
"typeinfo name for std::exception";
|
||||
"typeinfo name for std::type_info";
|
||||
|
||||
"std::type_info::__is_function_p() const";
|
||||
"std::type_info::__do_upcast(__cxxabiv1::__class_type_info const*, void**) const";
|
||||
"std::type_info::__is_pointer_p() const";
|
||||
|
||||
|
||||
|
||||
@ -317,6 +261,7 @@ CXXRT_1.0 {
|
||||
|
||||
} CXXABI_1.3.1;
|
||||
|
||||
|
||||
GLIBCXX_3.4 {
|
||||
extern "C++" {
|
||||
"operator delete[](void*)";
|
||||
@ -327,5 +272,50 @@ GLIBCXX_3.4 {
|
||||
"operator new[](unsigned long)";
|
||||
"operator new(unsigned long)";
|
||||
"operator new(unsigned long, std::nothrow_t const&)";
|
||||
|
||||
"std::unexpected()";
|
||||
"std::get_terminate()";
|
||||
"std::get_unexpected()";
|
||||
"std::uncaught_exception()";
|
||||
"std::terminate()";
|
||||
|
||||
"std::type_info::~type_info()";
|
||||
"std::bad_cast::~bad_cast()";
|
||||
"std::exception::~exception()";
|
||||
|
||||
std::set_new_handler*;
|
||||
std::set_terminate*;
|
||||
std::set_unexpected*;
|
||||
std::exception*;
|
||||
std::bad_alloc;
|
||||
std::bad_typeid;
|
||||
std::type_info*;
|
||||
|
||||
"vtable for std::bad_alloc";
|
||||
"vtable for std::bad_cast";
|
||||
"vtable for std::bad_typeid";
|
||||
"vtable for std::exception";
|
||||
"vtable for std::type_info";
|
||||
|
||||
"typeinfo for std::bad_alloc";
|
||||
"typeinfo for std::bad_typeid";
|
||||
"typeinfo for std::exception";
|
||||
"typeinfo for std::bad_cast";
|
||||
"typeinfo for std::exception";
|
||||
"typeinfo for std::type_info";
|
||||
"typeinfo name for std::bad_typeid";
|
||||
"typeinfo name for std::bad_cast";
|
||||
"typeinfo name for std::exception";
|
||||
"typeinfo name for std::type_info";
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
GLIBCXX_3.4.9 {
|
||||
extern "C++" {
|
||||
"std::bad_typeid::what() const";
|
||||
"std::bad_cast::what() const";
|
||||
"std::bad_alloc::what() const";
|
||||
};
|
||||
} GLIBCXX_3.4;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user