From 9c7748315d3124d1abe6a4606743cd9274beee66 Mon Sep 17 00:00:00 2001 From: fanquake Date: Thu, 10 Sep 2026 12:17:58 +0100 Subject: [PATCH] build: avoid pipe2 on Darwin (for now) macOS 27 will support pipe2 at runtime, and Xcode 27 (and Command Line Tools) support it at compile time. This means a macOS < 27 system will detect support for pipe2, but then binaries will crash at runtime, as pipe2 is not available. Just avoid pipe2 on macOS for now, and continue using pipe. Note that the compilation also produces availability warnings, and this will need to be backported. --- cmake/introspection.cmake | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/cmake/introspection.cmake b/cmake/introspection.cmake index a99a7660650..bb78c534de6 100644 --- a/cmake/introspection.cmake +++ b/cmake/introspection.cmake @@ -8,7 +8,9 @@ include(CheckCXXSymbolExists) check_cxx_symbol_exists(O_CLOEXEC "fcntl.h" HAVE_O_CLOEXEC) check_cxx_symbol_exists(fdatasync "unistd.h" HAVE_FDATASYNC) check_cxx_symbol_exists(fork "unistd.h" HAVE_DECL_FORK) -check_cxx_symbol_exists(pipe2 "unistd.h" HAVE_DECL_PIPE2) +if (NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin") + check_cxx_symbol_exists(pipe2 "unistd.h" HAVE_DECL_PIPE2) +endif() check_cxx_symbol_exists(setsid "unistd.h" HAVE_DECL_SETSID) if(NOT WIN32)