Date: Sat, 31 Jan 2026 18:41:30 +0000 From: Dimitry Andric <dim@FreeBSD.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org Subject: git: 12e52077d3db - main - databases/mysql80-server: fix build with libc++ 20 and higher Message-ID: <697e4cda.24c69.1758c44a@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by dim: URL: https://cgit.FreeBSD.org/ports/commit/?id=12e52077d3db077a821277d20d8c8c4310174a1b commit 12e52077d3db077a821277d20d8c8c4310174a1b Author: Dimitry Andric <dim@FreeBSD.org> AuthorDate: 2026-01-19 18:46:29 +0000 Commit: Dimitry Andric <dim@FreeBSD.org> CommitDate: 2026-01-31 18:41:22 +0000 databases/mysql80-server: fix build with libc++ 20 and higher With libc++ 20 and higher, databases/mysql80-server fails to compile, resulting in errors similar to: In file included from /wrkdirs/usr/ports/databases/mysql80-server/work/mysql-8.0.44/router/src/harness/src/stdx/filesystem.cc:40: /wrkdirs/usr/ports/databases/mysql80-server/work/mysql-8.0.44/router/src/harness/src/../include/mysql/harness/stdx/expected.h:74:8: error: 'is_default_constructible' cannot be specialized: Users are not allowed to specialize this standard library entity [-Winvalid-specialization] 74 | struct is_default_constructible<std::unique_ptr<T, void (*)(T *)>> | ^ /usr/include/c++/v1/__type_traits/is_constructible.h:49:8: note: marked '_Clang::no_specializations' here 49 | struct _LIBCPP_NO_SPECIALIZATIONS is_default_constructible : integral_constant<bool, __is_constructible(_Tp)> {}; | ^ /usr/include/c++/v1/__config:1167:9: note: expanded from macro '_LIBCPP_NO_SPECIALIZATIONS' 1167 | [[_Clang::__no_specializations__("Users are not allowed to specialize this standard library entity")]] | ^ This is due to a workaround for a std::unique_ptr problem which is only applicable to gcc before 7.1, so the whole workaround can be deleted, which fixes the problem. See also: https://bugs.mysql.com/bug.php?id=119238 PR: 292589 Approved by: maintainer timeout (2 weeks) MFH: 2026Q1 --- ...c_harness_include_mysql_harness_stdx_expected.h | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_stdx_expected.h b/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_stdx_expected.h new file mode 100644 index 000000000000..5dc97a85bb45 --- /dev/null +++ b/databases/mysql80-server/files/patch-router_src_harness_include_mysql_harness_stdx_expected.h @@ -0,0 +1,29 @@ +--- router/src/harness/include/mysql/harness/stdx/expected.h.orig 2025-09-24 11:00:44 UTC ++++ router/src/harness/include/mysql/harness/stdx/expected.h +@@ -55,26 +55,6 @@ + }; + #endif + +-/* workaround default-constructor of std::unique_ptr<T, D> triggering a +- * static-exception when it is tested for "std::is_default_constructible" +- * +- * The problem exists in GCC's libstdc++ up to 7.0.0 and is tracked by C++ std +- * as DR 2801 +- * +- * http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#2801 +- * +- * It is fixed in GCC-7.1.0 and later: +- * +- * https://gcc.gnu.org/legacy-ml/gcc-cvs/2017-01/msg00068.html +- */ +- +-#include <memory> +-namespace std { +-template <class T> +-struct is_default_constructible<std::unique_ptr<T, void (*)(T *)>> +- : std::false_type {}; +-} // namespace std +- + namespace stdx { + + // inplace construction of unexpected values.home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?697e4cda.24c69.1758c44a>
