libstdc++: Fix versioned namespace build
authorJonathan Wakely <jwakely@redhat.com>
Thu, 11 Feb 2021 16:18:19 +0000 (16:18 +0000)
committerJonathan Wakely <jwakely@redhat.com>
Thu, 11 Feb 2021 17:28:16 +0000 (17:28 +0000)
commitbc0f7db7ebb649fc4c290cb7327fba5c17d4ed28
tree52fd0cf6cb9d596450f194311464a54f461107e6
parentce43c906049b828c0472d8499b52ac6233c869d0
libstdc++: Fix versioned namespace build

The recent changes to define various std::exception_ptr functions inline
included a change so that the definitions of those functions would be
omitted for the ABI unstable gnu-versioned-namespace configuration. That
change was incorrect, because the existing functions that are gated by
the _GLIBCXX_EH_PTR_COMPAT macro are always needed even for the
versioned namespace.

This change introduces a new macro to control whether operator== is
defined as deleted or not, distinct from the existing macro. The new
macro is not defined for versioned namespace builds, but the old macro
still is.

libstdc++-v3/ChangeLog:

* libsupc++/eh_ptr.cc (_GLIBCXX_EH_PTR_RELOPS_COMPAT): Define
new macro.
* libsupc++/exception_ptr.h (_GLIBCXX_EH_PTR_USED): Check new
macro instead of _GLIBCXX_EH_PTR_COMPAT.
(operator==): Likewise.
libstdc++-v3/libsupc++/eh_ptr.cc
libstdc++-v3/libsupc++/exception_ptr.h