git: ce4f1f49e036 - main - Revert commit 6255157d24e2 from llvm-project (by Dimitry Andric):

From: Dimitry Andric <dim_at_FreeBSD.org>
Date: Sat, 06 Apr 2024 20:19:19 UTC
The branch main has been updated by dim:

URL: https://cgit.FreeBSD.org/src/commit/?id=ce4f1f49e036fd806b534decfe38020dae32a384

commit ce4f1f49e036fd806b534decfe38020dae32a384
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-03-19 13:07:27 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2024-04-06 20:14:31 +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 libc++.so version for this,
      and keep an old compatibility library in a separate package.
    
      Differential Revision: https://reviews.llvm.org/D126462
    
    This ABI change can cause crashes when binaries compiled against older
    libc++ versions are run against binaries compiled against this libc++
    version.
    
    For example, lang/ldc uses a precompiled bootstrap ldc2 binary that was
    compiled against the old libc++, but also links against libLLVM-15.so.
    If libLLVM-15.so 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
---
 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__)
 #      define _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR
 #    endif
 // For XCOFF linkers, we have problems if we see a weak hidden version of a symbol