Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 20 Apr 2024 10:32:36 GMT
From:      Dimitry Andric <dim@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: ab1bf989a944 - stable/14 - Revert commit 6255157d24e2 from llvm-project (by Dimitry Andric):
Message-ID:  <202404201032.43KAWaFM011428@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/14 has been updated by dim:

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

commit ab1bf989a94495472d91845e83b725d7c20aef5e
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2024-03-19 13:07:27 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
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 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
    
    (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__)
 #      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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202404201032.43KAWaFM011428>