https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94987
Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> --- C++11 support in GCC 4.8 is experimental and there is no guarantee of compatibility with other versions. In particular, you cannot mix code that uses C++11 built with 4.8 and 5 (or anything later than 5). See https://stackoverflow.com/questions/46746878/is-it-safe-to-link-c17-c14-and-c11-objects/49119902#49119902 for more details. The reason there is no _State_base in libstdc++.a is that the type was replaced with _State_baseV2. The old type is still exported from the shared library, because we can't remove symbols from that, but it's not in the static library because _State_base is not declared in the headers for any GCC version with non-experimental C++11 support.