svn commit: r328583 - stable/11/lib/libcxxrt

Ed Maste emaste at FreeBSD.org
Tue Jan 30 01:13:06 UTC 2018


Author: emaste
Date: Tue Jan 30 01:13:06 2018
New Revision: 328583
URL: https://svnweb.freebsd.org/changeset/base/328583

Log:
  MFC r328305: 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
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/lib/libcxxrt/Version.map
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/lib/libcxxrt/Version.map
==============================================================================
--- stable/11/lib/libcxxrt/Version.map	Tue Jan 30 00:52:22 2018	(r328582)
+++ stable/11/lib/libcxxrt/Version.map	Tue Jan 30 01:13:06 2018	(r328583)
@@ -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,9 +216,35 @@ 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:
     *;


More information about the svn-src-stable-11 mailing list