2002-11-04 Benjamin Kosnik <bkoz@redhat.com>
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Nov 2002 22:57:00 +0000 (22:57 +0000)
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 4 Nov 2002 22:57:00 +0000 (22:57 +0000)
* config/linker-map.gnu: Export string operator+.
Export __default_alloc_template::_S_force_new.
* testsuite/abi_check.cc: Output tweaks.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@58801 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/config/linker-map.gnu
libstdc++-v3/testsuite/abi_check.cc

index 67b4639..68dc94f 100644 (file)
@@ -1,3 +1,9 @@
+2002-11-04  Benjamin Kosnik  <bkoz@redhat.com>
+
+       * config/linker-map.gnu: Export string operator+.
+       Export __default_alloc_template::_S_force_new.
+       * testsuite/abi_check.cc: Output tweaks.
+       
 2002-11-01  Benjamin Kosnik  <bkoz@redhat.com>
 
        PR libstdc++/8172
index 8cf226d..e2fa73d 100644 (file)
@@ -28,7 +28,15 @@ GLIBCPP_3.2 {
     # All but the last are terminated with a semicolon.
     extern "C++"
     {
-      std::[A-Za-b]*;
+      std::[A-Za]*;
+      std::ba[a-r]*;
+      std::basic_[a-r]*;
+      std::basic_streambuf*;
+      std::basic_stringbuf*;
+      std::basic_stringstream*;
+      std::basic_[t-z]*;
+      std::ba[t-z]*;
+      std::b[b-z]*;
       std::c[a-n]*;
       std::co[a-c]*;
       std::codecvt_byname*;
@@ -56,13 +64,39 @@ GLIBCPP_3.2 {
       std::__timepunct*;
       std::__numeric_limits_base*;
       std::_S_bit_count;
-      std::_S_first_one;
-      std::__default_alloc_template*;
-      std::__malloc_alloc_template*
+      std::_S_first_one
     };
 
     # Names not in an 'extern' block are mangled names.
 
+    # std::string minus binary operator plus
+    _ZNKSs*;
+    _ZNKSb*;
+    _ZNSs[A-Za-z]*;
+    _ZNSs[0-9][A-Za-z]*;
+    _ZNSs[0-9][0-9][A-Za-z]*;
+    _ZNSs[0-9]_[A-Ra-z]*;
+    _ZNSs[0-9][0-9]_[A-Ra-z]*;
+    _ZNSs12_S_empty_repEv;
+    _ZNSs20_S_empty_rep_storageE;
+    _ZNSbIwSt11char_traitsIwESaIwEE20_S_empty_rep_storageE;
+    _ZNSs12_S_constructEjcRKSaIcE;
+    _ZNSs13_S_copy_chars*;
+    _ZNSbIwSt11char_traitsIwESaIwEE[A-Ra-z]*;
+    _ZNSbIwSt11char_traitsIwESaIwEE[0-9][A-Ra-z]*;
+    _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9][A-Ra-z]*;
+    _ZNSbIwSt11char_traitsIwESaIwEE[0-9]_[A-Ra-z]*;
+    _ZNSbIwSt11char_traitsIwESaIwEE[0-9][0-9]_[A-Ra-z]*;
+    _ZNSbIwSt11char_traitsIwESaIwEE13_S_copy_chars*;
+    _ZNSbIwSt11char_traitsIwESaIwEE12_S_constructEjwRKS1_;
+    _ZNSbIwSt11char_traitsIwESaIwEE12_S_empty_repEv;
+    _ZSt24__uninitialized_copy_auxIN9*;
+    _ZSt26__uninitialized_fill_n_aux*;
+    _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_EPKS3_RKS6_;
+    _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ES3_RKS6_;
+    _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_EPKS3_RKS6_;
+    _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ES3_RKS6_;
+
     # std::locale destructors
     _ZNSt6localeD*;
         
@@ -97,6 +131,23 @@ GLIBCPP_3.2 {
     # std::has_facet*
     _ZSt9has_facet*;
 
+    # std::__default_alloc_template
+    _ZNSt24__default_alloc_templateILb1ELi0EE10deallocate*;
+    _ZNSt24__default_alloc_templateILb1ELi0EE8allocate*;
+    _ZNSt24__default_alloc_templateILb1ELi0EE12_S_free_listE;
+    _ZNSt24__default_alloc_templateILb1ELi0EE22_S_node_allocator_lockE;
+    _ZNSt24__default_alloc_templateILb1ELi0EE9_S_refillE*;
+
+    # std::__default_alloc_template to be removed in the future
+    _ZNSt24__default_alloc_templateILb1ELi0EE10reallocateEPv*;
+    _ZNSt24__default_alloc_templateILb1ELi0EE11_S_round_upE*;
+    _ZNSt24__default_alloc_templateILb1ELi0EE14_S_chunk_allocE*;
+    _ZNSt24__default_alloc_templateILb1ELi0EE17_S_freelist_indexE*;
+    _ZNSt24__default_alloc_templateILb1ELi0EE11_S_end_freeE;
+    _ZNSt24__default_alloc_templateILb1ELi0EE12_S_heap_sizeE;
+    _ZNSt24__default_alloc_templateILb1ELi0EE13_S_start_freeE;
+    _ZNSt24__default_alloc_templateILb1ELi0EE5_Lock*;
+
     # operator new(unsigned)
     _Znwj;
     # operator new(unsigned, std::nothrow_t const&)
@@ -156,6 +207,11 @@ GLIBCPP_3.2.1 {
   _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj;
   _ZNSt7codecvtIwc11__mbstate_tEC2EP15__locale_structj;
 
+  _ZStplIcSt11char_traitsIcESaIcEESbIT_T0_T1_ERKS6_S8_;
+  _ZStplIwSt11char_traitsIwESaIwEESbIT_T0_T1_ERKS6_S8_;
+
+  _ZNSt24__default_alloc_templateILb1ELi0EE12_S_force_newE;
+
   # stub functions from libmath
   sinf;
   sinl;
index 21ca619..c093cd5 100644 (file)
@@ -108,6 +108,8 @@ check_compatible(const symbol_info& lhs, const symbol_info& rhs,
       if (verbose)
        {
          cout << tab << "incompatible sizes" << endl;
+         cout << tab << lhs.size << endl;
+         cout << tab << rhs.size << endl;
        }
     }
 
@@ -117,9 +119,14 @@ check_compatible(const symbol_info& lhs, const symbol_info& rhs,
       if (verbose)
        {
          cout << tab << "incompatible versions" << endl;
+         cout << tab << lhs.version_name << endl;
+         cout << tab << rhs.version_name << endl;
        }
     }
 
+  if (verbose)
+    cout << endl;
+
   return ret;
 }
 
@@ -247,7 +254,7 @@ create_symbol_data(const char* file, symbol_infos& symbols,
 }
 
 void
-report_symbol_info(const symbol_info& symbol, std::size_t n)
+report_symbol_info(const symbol_info& symbol, std::size_t n, bool ret = true)
 {
   using namespace std;
   const char tab = '\t';
@@ -259,7 +266,8 @@ report_symbol_info(const symbol_info& symbol, std::size_t n)
   cout << tab << "demangled symbol"<< endl;
   cout << tab << symbol.demangled_name << endl;
 
-  cout << endl;
+  if (ret)
+    cout << endl;
 }
 
 
@@ -370,7 +378,10 @@ main(int argc, char** argv)
                                          test.name);
 
       if (it1 == end && it2 == end)
-       incompatible.push_back(symbol_pair(test, test));
+       {
+         incompatible.push_back(symbol_pair(test, test));
+         cout << test.version_name << endl;
+       }
     }
 
   // Report results.
@@ -388,7 +399,7 @@ main(int argc, char** argv)
       // First, report name.
       const symbol_info& base = incompatible[j].first;
       const symbol_info& test = incompatible[j].second;
-      report_symbol_info(test, j + 1);
+      report_symbol_info(test, j + 1, false);
 
       // Second, report reason or reasons incompatible.
       check_compatible(base, test, true);