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.

Reply via email to