]> git.ipfire.org Git - thirdparty/zlib-ng.git/commitdiff
Pass POSIX_C_SOURCE for std::alligned_alloc try_compile checks
authorCristi Vîjdea <cvijdea@bitdefender.com>
Fri, 4 Apr 2025 13:32:36 +0000 (16:32 +0300)
committerHans Kristian Rosbach <hk-github@circlestorm.org>
Mon, 7 Apr 2025 21:36:27 +0000 (23:36 +0200)
On FreeBSD 11, definining POSIX_C_SOURCE to a lower level has the efect of inhibiting the language level (__ISO_C_VISIBLE ) to be lower than C11, even in the presence of -std=c11

Since the check_symbol_exists runs without setting POSIX_C_SOURCE, this means that we will spuriously define HAVE_ALIGNED_ALLOC, while in the actual build it is not going to be defined

ref: https://github.com/freebsd/freebsd-src/blob/stable/11/sys/sys/cdefs.h#L738

CMakeLists.txt
configure

index 5243251aaddb2fb67d8ef84ff6b54dbba774d9a5..f6e2b32a5763d264f7098b1813dc8edb188c703b 100644 (file)
@@ -450,7 +450,7 @@ set(CMAKE_REQUIRED_FLAGS)
 #
 # Check for aligned memory allocation support: POSIX
 #
-set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=200112L)
+set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=200112L -D_ISOC11_SOURCE=1)
 set(CMAKE_REQUIRED_FLAGS "${ADDITIONAL_CHECK_FLAGS}")
 check_symbol_exists(posix_memalign stdlib.h HAVE_POSIX_MEMALIGN)
 if(HAVE_POSIX_MEMALIGN)
@@ -462,7 +462,7 @@ set(CMAKE_REQUIRED_DEFINITIONS)
 #
 # Check for aligned memory allocation support: C11
 #
-set(CMAKE_REQUIRED_DEFINITIONS -D_ISOC11_SOURCE=1)
+set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=200112L -D_ISOC11_SOURCE=1)
 set(CMAKE_REQUIRED_FLAGS "${ADDITIONAL_CHECK_FLAGS}")
 check_symbol_exists(aligned_alloc stdlib.h HAVE_ALIGNED_ALLOC)
 if(HAVE_ALIGNED_ALLOC)
index e29ccddd7e71fc732445b6680e9170e7ace7b0fe..4fa8d44e756c215684efceb722f03a4128b0bd63 100755 (executable)
--- a/configure
+++ b/configure
@@ -728,6 +728,7 @@ echo >> configure.log
 # check for aligned memory allocation support: POSIX
 cat > $test.c <<EOF
 #define _POSIX_C_SOURCE 200112L
+#define _ISOC11_SOURCE 1
 #include <stdlib.h>
 int main(void) {
   void *ptr = 0;
@@ -748,6 +749,7 @@ echo >> configure.log
 
 # check for aligned memory allocation support: C11
 cat > $test.c <<EOF
+#define _POSIX_C_SOURCE 200112L
 #define _ISOC11_SOURCE 1
 #include <stdlib.h>
 int main(void) {