[libc++] Introduce a compile-time mechanism to override __libcpp_verbose_abort
This changes the mechanism for verbose termination (again!) to make it
support compile-time customization in addition to link-time customization,
which is important for users who need fine-grained control over what code
gets generated around sites that call the verbose termination handler.
This concern had been raised to me both privately by prospecting users
and in https://llvm.org/D140944, so I think it is clearly worth fixing.
We still support _LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED for
a limited time since the same functionality can be achieved by overriding
the _LIBCPP_VERBOSE_ABORT macro.
Differential Revision: https://reviews.llvm.org/D141326
NOKEYCHECK=True
GitOrigin-RevId: 17c05a44d9f0ab08342c7310bd0e22114e932882
diff --git a/docs/ReleaseNotes.rst b/docs/ReleaseNotes.rst
index f22e076..060ab38 100644
--- a/docs/ReleaseNotes.rst
+++ b/docs/ReleaseNotes.rst
@@ -140,6 +140,10 @@
and such a base template is bound to be incorrect for some types, which could currently cause unexpected
behavior while going undetected.
+- The ``_LIBCPP_AVAILABILITY_CUSTOM_VERBOSE_ABORT_PROVIDED`` macro will not be honored anymore in LLVM 18.
+ Please see the updated documentation about the safe libc++ mode and in particular the ``_LIBCPP_VERBOSE_ABORT``
+ macro for details.
+
API Changes
-----------
- The comparison operators on ``thread::id`` are now defined as free-standing