https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108969
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- The patch above means that a program using cout (or any of the standard streams) gets: 0000000000404040 B _ZSt4cout@GLIBCXX_3.4.31 instead of: 0000000000404040 B _ZSt4cout@GLIBCXX_3.4 And then it fails to run with the older libstdc++.so: ./a.out: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.31' not found (required by ./a.out) But I agree that it's not a complete solution for all targets, just a quick fix for linux distros where this is most likely to cause problems today.