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>