mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-18 07:18:52 +08:00
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
This commit is contained in:
parent
2aff950822
commit
72040fcbf6
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user