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).

Reply via email to