Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 22 Feb 2017 18:44:57 +0000 (UTC)
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r314104 - head/lib/libcxxrt
Message-ID:  <201702221844.v1MIivRp013429@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dim
Date: Wed Feb 22 18:44:57 2017
New Revision: 314104
URL: https://svnweb.freebsd.org/changeset/base/314104

Log:
  Surround any unmangled C++ names in libcxxrt's version map with 'extern
  "C++"', otherwise ld refuses to make the symbols global in the final
  library.  This causes the __int128-related symbols to go missing when
  the library is stripped during installation.
  
  Helpful hints:	emaste
  MFC after:	2 weeks
  X-MFC-With:	r314061

Modified:
  head/lib/libcxxrt/Version.map

Modified: head/lib/libcxxrt/Version.map
==============================================================================
--- head/lib/libcxxrt/Version.map	Wed Feb 22 17:57:24 2017	(r314103)
+++ head/lib/libcxxrt/Version.map	Wed Feb 22 18:44:57 2017	(r314104)
@@ -255,12 +255,14 @@ CXXABI_1.3.1 {
 } CXXABI_1.3;
 
 CXXABI_1.3.5 {
-    "typeinfo for __int128 const*";
-    "typeinfo for __int128";
-    "typeinfo for __int128*";
-    "typeinfo for unsigned __int128 const*";
-    "typeinfo for unsigned __int128";
-    "typeinfo for unsigned __int128*";
+    extern "C++" {
+        "typeinfo for __int128 const*";
+        "typeinfo for __int128";
+        "typeinfo for __int128*";
+        "typeinfo for unsigned __int128 const*";
+        "typeinfo for unsigned __int128";
+        "typeinfo for unsigned __int128*";
+    };
 } CXXABI_1.3.1;
 
 CXXABI_1.3.6 {
@@ -268,12 +270,14 @@ CXXABI_1.3.6 {
 } CXXABI_1.3.5;
 
 CXXABI_1.3.9 {
-    "typeinfo name for __int128 const*";
-    "typeinfo name for __int128";
-    "typeinfo name for __int128*";
-    "typeinfo name for unsigned __int128 const*";
-    "typeinfo name for unsigned __int128";
-    "typeinfo name for unsigned __int128*";
+    extern "C++" {
+        "typeinfo name for __int128 const*";
+        "typeinfo name for __int128";
+        "typeinfo name for __int128*";
+        "typeinfo name for unsigned __int128 const*";
+        "typeinfo name for unsigned __int128";
+        "typeinfo name for unsigned __int128*";
+    };
 } CXXABI_1.3.6;
 
 CXXRT_1.0 {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201702221844.v1MIivRp013429>