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.

Github-Pull: #36218
Rebased-From: 9c7748315d
This commit is contained in:
fanquake
2026-09-10 12:17:58 +01:00
parent cf1bb33e9a
commit 78c86f07a7

View File

@@ -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)