From 3ba5d78df5a16c76be7776fc24053f3a06626768 Mon Sep 17 00:00:00 2001 From: dim Date: Wed, 8 Mar 2017 07:58:29 +0000 Subject: [PATCH] MFC r314061: Add __int128-related symbols to libcxxrt's version map. Put these into the same CXXABI verions as recent libstdc++. Note that __int128 types are only available on arches where long long is 128 bit wide. Noticed by: harti MFC r314104: 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 git-svn-id: svn://svn.freebsd.org/base/stable/10@314898 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- lib/libcxxrt/Version.map | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/lib/libcxxrt/Version.map b/lib/libcxxrt/Version.map index bb62ed120..8ea01c4e8 100644 --- a/lib/libcxxrt/Version.map +++ b/lib/libcxxrt/Version.map @@ -254,10 +254,31 @@ CXXABI_1.3.1 { __cxa_get_exception_ptr; } CXXABI_1.3; +CXXABI_1.3.5 { + 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 { __cxa_deleted_virtual; -} CXXABI_1.3.1; +} CXXABI_1.3.5; +CXXABI_1.3.9 { + 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 { -- 2.45.0