Patchwork [v3] libstdc++/54314

login
register
mail settings
Submitter Benjamin Kosnik
Date Sept. 27, 2012, 12:29 a.m.
Message ID <524203131.3311080.1348705764045.JavaMail.root@redhat.com>
Download mbox | patch
Permalink /patch/187250/
State New
Headers show

Comments

Benjamin Kosnik - Sept. 27, 2012, 12:29 a.m.
adds in exports for more vtable bits, as per bugzilla

-benjamin 

tested x86/linux
tested x86/linux --enable-symvers=gnu-versioned-namespace

Patch

012-09-26  Benjamin Kosnik  <bkoz@redhat.com>

       PR libstdc++/54314
       * config/abi/pre/gnu.ver: Add vtable exports.
       * config/abi/pre/gnu-versioned-namespace.ver: Same.



diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
index e7e9162..5f25374 100644
--- a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
+++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
@@ -27,20 +27,11 @@  GLIBCXX_7.0 {
     # Names inside the 'extern' block are demangled names.
     extern "C++"
     {
+      std::*;
       std::__7::*;
-      std::*
+      std::random_device::*
     };
 
-    # locale
-    _ZNSt3__79has_facetINS_*;
-
-    # hash 
-    _ZNSt8__detail3__712__prime_listE;
-    _ZNSt3tr18__detail3__712__prime_listE;
-
-    # thread/mutex/condition_variable/future
-    __once_proxy;
-
     # operator new(size_t)
     _Znw[jmy];
     # operator new(size_t, std::nothrow_t const&)
@@ -64,13 +55,33 @@  GLIBCXX_7.0 {
     # function-scope static objects requires a guard variable.
     _ZGVNSt*;
 
-    _ZTT*;
-    _ZTV*;
+    # construction vtable
+    _ZTCNSt*;
 
-    _ZTI*;
-    _ZTS*;
+    # VTT structure
+    _ZTTNSt*;
 
-    _ZTv0_n*;
+    # vtable
+    _ZTVNSt*;
+
+    # thunk
+    _ZTv0_n24_NS*;
+
+    # typeinfo structure
+    _ZTINSt*;
+
+    # typeinfo name
+    _ZTSNSt*;
+
+    # locale
+    _ZNSt3__79has_facetINS_*;
+
+    # hash 
+    _ZNSt8__detail3__712__prime_listE;
+    _ZNSt3tr18__detail3__712__prime_listE;
+
+    # thread/mutex/condition_variable/future
+    __once_proxy;
 
     # std::__detail::_List_node_base
     _ZNSt8__detail3__715_List_node_base7_M_hook*;
diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver
index 5265b21..396feec 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -1322,6 +1322,7 @@  GLIBCXX_3.4.17 {
 } GLIBCXX_3.4.16;
 
 GLIBCXX_3.4.18 {
+
   global:
 
     # Names inside the 'extern' block are demangled names.
@@ -1330,6 +1331,9 @@  GLIBCXX_3.4.18 {
       std::random_device::*;
     };
 
+    # construction vtable
+    _ZTCSt*;
+
 } GLIBCXX_3.4.17;
 
 # Symbols in the support library (libsupc++) have their own tag.