build: enable _GNU_SOURCE on GNU/Hurd

Unconditionally enable _GNU_SOURCE when building on GNU/Hurd; this way
it is possible to properly use/rely on GNU extensions e.g. accept4(),
memrchr(), and the GNU strerror_r().

Closes #17975
This commit is contained in:
Pino Toscano 2025-07-20 09:24:37 +02:00 committed by Daniel Stenberg
parent 960fb49245
commit bed83d9d33
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
2 changed files with 2 additions and 2 deletions

View file

@ -268,7 +268,7 @@ endif()
include(PickyWarnings)
if(CYGWIN OR CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(CYGWIN OR CMAKE_SYSTEM_NAME STREQUAL "Linux" OR CMAKE_SYSTEM_NAME STREQUAL "GNU")
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS "_GNU_SOURCE") # Required for accept4(), pipe2(), sendmmsg()
list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE") # Apply to all feature checks
endif()

View file

@ -574,7 +574,7 @@ AM_CONDITIONAL(BUILD_UNITTESTS, test x$supports_unittests = xyes)
# In order to detect support of sendmmsg() and accept4(), we need to escape the POSIX
# jail by defining _GNU_SOURCE or <sys/socket.h> will not expose it.
case $host_os in
*linux*|cygwin*|msys*)
*linux*|cygwin*|msys*|gnu*)
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
;;
esac