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

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to