libcxxrt: Move mangled symbols out of extern "C++" in Version.map
r260553 added a number of mangled C++ symbols to Version.map inside of an existing `extern "C++"` block. ld.bfd 2.17.50 treats `extern "C++"` permissively and will match both mangled and demangled symbols against the strings in the version map block. ld.lld interprets `extern "C++"` strictly, and matches only demangled symbols. I believe lld's behaviour is correct. Contemporary versions of ld.bfd also behave as lld does, so move the mangled symbols out of the `extern "C++"` block. PR: 225128, 185663 MFC after: 1 week Sponsored by: The FreeBSD Foundation
This commit is contained in:
parent
8557409f20
commit
4d2a062671
@ -112,19 +112,6 @@ CXXABI_1.3 {
|
||||
"typeinfo for void";
|
||||
"typeinfo for wchar_t const*";
|
||||
"typeinfo for wchar_t";
|
||||
# C++11 typeinfo not understood by our linker
|
||||
# std::nullptr_t
|
||||
_ZTIDn;_ZTIPDn;_ZTIPKDn;
|
||||
# char16_t
|
||||
_ZTIDi;_ZTIPDi;_ZTIPKDi;
|
||||
# char32_t
|
||||
_ZTIDs;_ZTIPDs;_ZTIPKDs;
|
||||
# IEEE 754r decimal floating point
|
||||
_ZTIDd;_ZTIPDd;_ZTIPKDd;
|
||||
_ZTIDe;_ZTIPDe;_ZTIPKDe;
|
||||
_ZTIDf;_ZTIPDf;_ZTIPKDf;
|
||||
# IEEE 754r half-precision floating point
|
||||
_ZTIDh;_ZTIPDh;_ZTIPKDh;
|
||||
|
||||
"typeinfo for bool*";
|
||||
"typeinfo for wchar_t*";
|
||||
@ -209,19 +196,6 @@ CXXABI_1.3 {
|
||||
"typeinfo name for void*";
|
||||
"typeinfo name for unsigned int*";
|
||||
"typeinfo name for float*";
|
||||
# C++11 typeinfo name not understood by our linker
|
||||
# std::nullptr_t
|
||||
_ZTSDn;_ZTSPDn;_ZTSPKDn;
|
||||
# char16_t
|
||||
_ZTSDi;_ZTSPDi;_ZTSPKDi;
|
||||
# char32_t
|
||||
_ZTSDs;_ZTSPDs;_ZTSPKDs;
|
||||
# IEEE 754r decimal floating point
|
||||
_ZTSDd;_ZTSPDd;_ZTSPKDd;
|
||||
_ZTSDe;_ZTSPDe;_ZTSPKDe;
|
||||
_ZTSDf;_ZTSPDf;_ZTSPKDf;
|
||||
# IEEE 754r half-precision floating point
|
||||
_ZTSDh;_ZTSPDh;_ZTSPKDh;
|
||||
|
||||
"typeinfo name for __cxxabiv1::__array_type_info";
|
||||
"typeinfo name for __cxxabiv1::__class_type_info";
|
||||
@ -242,10 +216,36 @@ CXXABI_1.3 {
|
||||
"pathscale::set_terminate(void (*)())";
|
||||
"pathscale::set_unexpected(void (*)())";
|
||||
"pathscale::set_use_thread_local_handlers(bool)";
|
||||
|
||||
|
||||
};
|
||||
|
||||
# C++11 typeinfo not understood by ld.bfd 2.17.50
|
||||
# std::nullptr_t
|
||||
_ZTIDn;_ZTIPDn;_ZTIPKDn;
|
||||
# char16_t
|
||||
_ZTIDi;_ZTIPDi;_ZTIPKDi;
|
||||
# char32_t
|
||||
_ZTIDs;_ZTIPDs;_ZTIPKDs;
|
||||
# IEEE 754r decimal floating point
|
||||
_ZTIDd;_ZTIPDd;_ZTIPKDd;
|
||||
_ZTIDe;_ZTIPDe;_ZTIPKDe;
|
||||
_ZTIDf;_ZTIPDf;_ZTIPKDf;
|
||||
# IEEE 754r half-precision floating point
|
||||
_ZTIDh;_ZTIPDh;_ZTIPKDh;
|
||||
|
||||
# C++11 typeinfo name not understood by ld.bfd 2.17.50
|
||||
# std::nullptr_t
|
||||
_ZTSDn;_ZTSPDn;_ZTSPKDn;
|
||||
# char16_t
|
||||
_ZTSDi;_ZTSPDi;_ZTSPKDi;
|
||||
# char32_t
|
||||
_ZTSDs;_ZTSPDs;_ZTSPKDs;
|
||||
# IEEE 754r decimal floating point
|
||||
_ZTSDd;_ZTSPDd;_ZTSPKDd;
|
||||
_ZTSDe;_ZTSPDe;_ZTSPKDe;
|
||||
_ZTSDf;_ZTSPDf;_ZTSPKDf;
|
||||
# IEEE 754r half-precision floating point
|
||||
_ZTSDh;_ZTSPDh;_ZTSPKDh;
|
||||
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user