testsuite_abi.cc: Add support for not counting GLIBCXX_LDBL_* compat symbols missing if...

2008-03-20  Benjamin Kosnik  <bkoz@redhat.com>

	* testsuite/util/testsuite_abi.cc: Add support for not counting
	GLIBCXX_LDBL_* compat symbols missing if no long double compat
	symbols under test.

From-SVN: r133417
This commit is contained in:
Benjamin Kosnik 2008-03-21 11:31:11 +00:00 committed by Benjamin Kosnik
parent f3270633e0
commit 4a49c70b85
2 changed files with 27 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2008-03-20 Benjamin Kosnik <bkoz@redhat.com>
* testsuite/util/testsuite_abi.cc: Add support for not counting
GLIBCXX_LDBL_* compat symbols missing if no long double compat
symbols under test.
2008-03-20 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/35637

View File

@ -354,6 +354,16 @@ compare_symbols(const char* baseline_file, const char* test_file,
exit(2);
}
// Check to see if any long double compatibility symbols are produced.
bool ld_version_found(false);
symbol_objects::iterator li(test_objects.begin());
while (!ld_version_found && li != test_objects.end())
{
if (li->second.version_name.find("GLIBCXX_LDBL_") != std::string::npos)
ld_version_found = true;
++li;
}
// Sort out names.
// Assuming baseline_names, test_names are both unique w/ no duplicates.
//
@ -389,8 +399,17 @@ compare_symbols(const char* baseline_file, const char* test_file,
for (size_t j = 0; j < missing_size; ++j)
{
symbol& base = baseline_objects[missing_names[j]];
base.status = symbol::subtracted;
incompatible.push_back(symbol_pair(base, base));
// Iff no test long double symbols at all and the symbol missing
// is a baseline long double symbol, skip.
if (!ld_version_found
&& base.version_name.find("GLIBCXX_LDBL_") != std::string::npos)
continue;
else
{
base.status = symbol::subtracted;
incompatible.push_back(symbol_pair(base, base));
}
}
// Check shared names for compatibility.