On 23 Jan 2018, at 23:41, Ed Maste <ema...@freebsd.org> wrote: > > Author: emaste > Date: Tue Jan 23 22:41:13 2018 > New Revision: 328305 > URL: https://svnweb.freebsd.org/changeset/base/328305 > > Log: > 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 > > Modified: > head/lib/libcxxrt/Version.map > > Modified: head/lib/libcxxrt/Version.map > ============================================================================== > --- head/lib/libcxxrt/Version.map Tue Jan 23 22:18:45 2018 > (r328304) > +++ head/lib/libcxxrt/Version.map Tue Jan 23 22:41:13 2018 > (r328305) > @@ -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;
Maybe, for readability, we should change these to unmangled form instead? I didn't really understand why the file had mixed mangled and unmangled forms. -Dimitry
signature.asc
Description: Message signed with OpenPGP