https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83834
--- Comment #10 from Jonathan Wakely <redi at gcc dot gnu.org> ---
It looks like the std::c[a-z] pattern only matches one symbol anyway:
"std::cerr"
This should fix it:
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -58,9 +58,7 @@ GLIBCXX_3.4 {
# std::basic_stringbuf
# std::basic_stringstream;
std::basic_[t-z]*;
- std::ba[t-z]*;
- std::b[b-z]*;
- std::c[a-g]*;
+ std::cerr;
# std::char_traits;
# std::c[i-z]*;
std::c[i-n]*;
IMHO it's a bad idea to have such greedy patterns in the base GLIBCXX_3.4
version anyway, because we never want them to match new symbols, only the ones
that already exist in GLIBCXX_3.4
If there are no other symbols that match std::c[a-g]* today, then there should
never be symbols that match it in future either, and so we shouldn't have that
pattern there. Similarly for std::ba[t-z]* and std::b[b-z]* (and others, but I
haven't tried to clean the rest up now).