https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69312
David Edelsohn <dje at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jakub at gcc dot gnu.org --- Comment #3 from David Edelsohn <dje at gcc dot gnu.org> --- The new libstdc++ code creates weak references to the ITM symbols and expects that undefined weak references will be set to zero if not defined. This behavior is SVR4 semantics, but not default AIX semantics. The new libstdc++ code is protected by __GXX_WEAK__, which is defined for AIX because AIX supports MAKE_DECL_ONE_ONLY. The documentation of __GXX_WEAK__ refers to collapsing symbols with "vague linkage" in multiple translation units, which AIX does support. __GXX_WEAK__ does imply the additional SVR4 semantics. libstdc++ should use a different mechanism to protect code that expects SVR4 undefined weak symbol semantics.