[libcxx-commits] [libcxx] [libcxx][FreeBSD] Ship trivial copy ctor in FreeBSD 16 (PR #216347)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Aug 14 09:29:10 PDT 2026
https://github.com/aokblast updated https://github.com/llvm/llvm-project/pull/216347
>From 3b36581d5ebb3605f751a0a94181a660144f3112 Mon Sep 17 00:00:00 2001
From: ShengYi Hung <aokblast at FreeBSD.org>
Date: Fri, 14 Aug 2026 23:36:12 +0800
Subject: [PATCH 1/2] [libcxx][FreeBSD] Ship trivial copy ctor in FreeBSD 16
---
libcxx/include/__configuration/abi.h | 2 +-
libcxx/include/__cxx03/__configuration/abi.h | 2 +-
.../utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp | 2 --
.../utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp | 2 --
4 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/libcxx/include/__configuration/abi.h b/libcxx/include/__configuration/abi.h
index 757ba69cb17b4..cf05272d67111 100644
--- a/libcxx/include/__configuration/abi.h
+++ b/libcxx/include/__configuration/abi.h
@@ -83,7 +83,7 @@
#elif _LIBCPP_ABI_VERSION == 1
// Feature macros for disabling pre ABI v1 features. All of these options
// are deprecated.
-# if defined(__FreeBSD__)
+# if __FreeBSD__ < 16
# define _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR
# endif
#endif
diff --git a/libcxx/include/__cxx03/__configuration/abi.h b/libcxx/include/__cxx03/__configuration/abi.h
index 56ebe520f65a0..8a91907061f66 100644
--- a/libcxx/include/__cxx03/__configuration/abi.h
+++ b/libcxx/include/__cxx03/__configuration/abi.h
@@ -116,7 +116,7 @@
# endif
// Feature macros for disabling pre ABI v1 features. All of these options
// are deprecated.
-# if defined(__FreeBSD__)
+# if __FreeBSD__ < 16
# define _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR
# endif
#endif
diff --git a/libcxx/test/libcxx-03/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp b/libcxx/test/libcxx-03/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp
index 1dafb10ce1f42..896c08b16f286 100644
--- a/libcxx/test/libcxx-03/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp
+++ b/libcxx/test/libcxx-03/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp
@@ -12,8 +12,6 @@
// Test that we properly provide the trivial copy operations by default.
-// FreeBSD still provides the old ABI for std::pair.
-// XFAIL: freebsd
// ADDITIONAL_COMPILE_FLAGS: -Wno-invalid-offsetof
#include <utility>
diff --git a/libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp b/libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp
index 3ec60c08b8eab..725c81bbb76b4 100644
--- a/libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp
+++ b/libcxx/test/libcxx/utilities/utility/pairs/pairs.pair/abi.trivial_copy_move.pass.cpp
@@ -12,8 +12,6 @@
// Test that we properly provide the trivial copy operations by default.
-// FreeBSD still provides the old ABI for std::pair.
-// XFAIL: freebsd
// ADDITIONAL_COMPILE_FLAGS: -Wno-invalid-offsetof
#include <utility>
>From 607e0c6bf65a77d7b308c9c816418e727b4d5240 Mon Sep 17 00:00:00 2001
From: ShengYi Hung <aokblast at FreeBSD.org>
Date: Sat, 15 Aug 2026 00:28:15 +0800
Subject: [PATCH 2/2] fixup! [libcxx][FreeBSD] Ship trivial copy ctor in
FreeBSD 16
---
libcxx/include/__configuration/abi.h | 2 +-
libcxx/include/__cxx03/__configuration/abi.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/libcxx/include/__configuration/abi.h b/libcxx/include/__configuration/abi.h
index cf05272d67111..560e4d6441bd7 100644
--- a/libcxx/include/__configuration/abi.h
+++ b/libcxx/include/__configuration/abi.h
@@ -83,7 +83,7 @@
#elif _LIBCPP_ABI_VERSION == 1
// Feature macros for disabling pre ABI v1 features. All of these options
// are deprecated.
-# if __FreeBSD__ < 16
+# if defined(__FreeBSD__) && __FreeBSD__ < 16
# define _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR
# endif
#endif
diff --git a/libcxx/include/__cxx03/__configuration/abi.h b/libcxx/include/__cxx03/__configuration/abi.h
index 8a91907061f66..97d688d0dabf7 100644
--- a/libcxx/include/__cxx03/__configuration/abi.h
+++ b/libcxx/include/__cxx03/__configuration/abi.h
@@ -116,7 +116,7 @@
# endif
// Feature macros for disabling pre ABI v1 features. All of these options
// are deprecated.
-# if __FreeBSD__ < 16
+# if defined(__FreeBSD__) && __FreeBSD__ < 16
# define _LIBCPP_DEPRECATED_ABI_DISABLE_PAIR_TRIVIAL_COPY_CTOR
# endif
#endif
More information about the libcxx-commits
mailing list