https://github.com/zeromq/libzmq/pull/4635 https://github.com/zeromq/libzmq/commit/665d1d46576f9a4eff6fa42a11c54f23b6b11803 From 665d1d46576f9a4eff6fa42a11c54f23b6b11803 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Wed, 29 Nov 2023 14:14:30 +0100 Subject: [PATCH] Build with -D_DEFAULT_SOURCE along with -std=c11 On its own, -std=c11 hides POSIX and other extensions from C headers such as when building against glibc. This causes the posix_memalign probe to fail incorrectly with compilers that do not accept implicit function declarations. _DEFAULT_SOURCE is ignored by most non-GNU/Linux systems or not relevant in this context, so there is no separate check for adding it. --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -122,7 +122,7 @@ if (NOT MSVC) if(NOT CMAKE_C_FLAGS MATCHES "-std=" AND NOT C_STANDARD AND NOT CMAKE_C_STANDARD) check_c_compiler_flag("-std=c11" COMPILER_SUPPORTS_C11) if(COMPILER_SUPPORTS_C11) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_DEFAULT_SOURCE -std=c11") else() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99") endif() --- a/configure.ac +++ b/configure.ac @@ -66,7 +66,7 @@ ZMQ_ORIG_CXXFLAGS="${CXXFLAGS:-none}" # Checks for programs. AC_PROG_CC -AX_CHECK_COMPILE_FLAG([-std=c11], [CFLAGS+=" -std=c11"], [AC_PROG_CC_C99]) +AX_CHECK_COMPILE_FLAG([-std=c11], [CFLAGS+=" -std=c11 -D_DEFAULT_SOURCE"], [AC_PROG_CC_C99]) AC_PROG_CXX AX_CODE_COVERAGE AM_PROG_CC_C_O