Commit 72040fcb by Benjamin Kosnik Committed by Benjamin Kosnik

linker-map.gnu: Export string operator+.


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.

From-SVN: r58801
parent 2aff9508
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> 2002-11-01 Benjamin Kosnik <bkoz@redhat.com>
PR libstdc++/8172 PR libstdc++/8172
......
...@@ -28,7 +28,15 @@ GLIBCPP_3.2 { ...@@ -28,7 +28,15 @@ GLIBCPP_3.2 {
# All but the last are terminated with a semicolon. # All but the last are terminated with a semicolon.
extern "C++" 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::c[a-n]*;
std::co[a-c]*; std::co[a-c]*;
std::codecvt_byname*; std::codecvt_byname*;
...@@ -56,13 +64,39 @@ GLIBCPP_3.2 { ...@@ -56,13 +64,39 @@ GLIBCPP_3.2 {
std::__timepunct*; std::__timepunct*;
std::__numeric_limits_base*; std::__numeric_limits_base*;
std::_S_bit_count; std::_S_bit_count;
std::_S_first_one; std::_S_first_one
std::__default_alloc_template*;
std::__malloc_alloc_template*
}; };
# Names not in an 'extern' block are mangled names. # 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 # std::locale destructors
_ZNSt6localeD*; _ZNSt6localeD*;
...@@ -97,6 +131,23 @@ GLIBCPP_3.2 { ...@@ -97,6 +131,23 @@ GLIBCPP_3.2 {
# std::has_facet* # std::has_facet*
_ZSt9has_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) # operator new(unsigned)
_Znwj; _Znwj;
# operator new(unsigned, std::nothrow_t const&) # operator new(unsigned, std::nothrow_t const&)
...@@ -156,6 +207,11 @@ GLIBCPP_3.2.1 { ...@@ -156,6 +207,11 @@ GLIBCPP_3.2.1 {
_ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj; _ZNSt7codecvtIwc11__mbstate_tEC1EP15__locale_structj;
_ZNSt7codecvtIwc11__mbstate_tEC2EP15__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 # stub functions from libmath
sinf; sinf;
sinl; sinl;
......
...@@ -108,6 +108,8 @@ check_compatible(const symbol_info& lhs, const symbol_info& rhs, ...@@ -108,6 +108,8 @@ check_compatible(const symbol_info& lhs, const symbol_info& rhs,
if (verbose) if (verbose)
{ {
cout << tab << "incompatible sizes" << endl; 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, ...@@ -117,9 +119,14 @@ check_compatible(const symbol_info& lhs, const symbol_info& rhs,
if (verbose) if (verbose)
{ {
cout << tab << "incompatible versions" << endl; cout << tab << "incompatible versions" << endl;
cout << tab << lhs.version_name << endl;
cout << tab << rhs.version_name << endl;
} }
} }
if (verbose)
cout << endl;
return ret; return ret;
} }
...@@ -247,7 +254,7 @@ create_symbol_data(const char* file, symbol_infos& symbols, ...@@ -247,7 +254,7 @@ create_symbol_data(const char* file, symbol_infos& symbols,
} }
void 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; using namespace std;
const char tab = '\t'; const char tab = '\t';
...@@ -259,6 +266,7 @@ report_symbol_info(const symbol_info& symbol, std::size_t n) ...@@ -259,6 +266,7 @@ report_symbol_info(const symbol_info& symbol, std::size_t n)
cout << tab << "demangled symbol"<< endl; cout << tab << "demangled symbol"<< endl;
cout << tab << symbol.demangled_name << endl; cout << tab << symbol.demangled_name << endl;
if (ret)
cout << endl; cout << endl;
} }
...@@ -370,7 +378,10 @@ main(int argc, char** argv) ...@@ -370,7 +378,10 @@ main(int argc, char** argv)
test.name); test.name);
if (it1 == end && it2 == end) 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. // Report results.
...@@ -388,7 +399,7 @@ main(int argc, char** argv) ...@@ -388,7 +399,7 @@ main(int argc, char** argv)
// First, report name. // First, report name.
const symbol_info& base = incompatible[j].first; const symbol_info& base = incompatible[j].first;
const symbol_info& test = incompatible[j].second; 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. // Second, report reason or reasons incompatible.
check_compatible(base, test, true); check_compatible(base, test, true);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment