git: ab1bf989a944 - stable/14 - Revert commit 6255157d24e2 from llvm-project (by Dimitry Andric):

From: Dimitry Andric <>
Date: Sat, 20 Apr 2024 10:32:36 UTC
The branch stable/14 has been updated by dim:


commit ab1bf989a94495472d91845e83b725d7c20aef5e
Author:     Dimitry Andric <>
AuthorDate: 2024-03-19 13:07:27 +0000
Commit:     Dimitry Andric <>
CommitDate: 2024-04-19 21:14:17 +0000

    Revert commit 6255157d24e2 from llvm-project (by Dimitry Andric):
      [libc++] Re-enable std::pair trivial copy constructor for FreeBSD >= 14
      After many years of using the really old std::pair ABI which did not yet
      have a trivial copy constructor, FreeBSD 14 and later will finally get
      rid of it. Only use the old ABI for FreeBSD 13 and earlier.
      Note: on the FreeBSD side, we will bump our version for this,
      and keep an old compatibility library in a separate package.
      Differential Revision:
    This ABI change can cause crashes when binaries compiled against older
    libc++ versions are run against binaries compiled against this libc++
    For example, lang/ldc uses a precompiled bootstrap ldc2 binary that was
    compiled against the old libc++, but also links against
    If is compiled against the new libc++ version, the ABI
    mismatch results in segfaults or even stack overflows.
    Note: we can only re-enable the std::pair trivial copy constructors
    again when the official libc++ ABI version is bumped to 2.
    PR:             276104
    MFC after:      1 month
    (cherry picked from commit ce4f1f49e036fd806b534decfe38020dae32a384)
 contrib/llvm-project/libcxx/include/__config | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/llvm-project/libcxx/include/__config b/contrib/llvm-project/libcxx/include/__config
index fa5535facb14..a5981984d37e 100644
--- a/contrib/llvm-project/libcxx/include/__config
+++ b/contrib/llvm-project/libcxx/include/__config
@@ -190,7 +190,7 @@
 #    endif
 // Feature macros for disabling pre ABI v1 features. All of these options
 // are deprecated.
-#    if defined(__FreeBSD__) && __FreeBSD__ < 14
+#    if defined(__FreeBSD__)
 #    endif
 // For XCOFF linkers, we have problems if we see a weak hidden version of a symbol