-check_symbol_exists(_aligned_malloc malloc.h HAVE__ALIGNED_MALLOC)
-# memalign
-check_symbol_exists(memalign malloc.h HAVE_MEMALIGN)
-# posix_memalign
-check_symbol_exists(posix_memalign stdlib.h HAVE_POSIX_MEMALIGN)
-
+check_symbol_exists(_aligned_malloc malloc.h OPJ_HAVE__ALIGNED_MALLOC)
+# posix_memalign (needs _POSIX_C_SOURCE >= 200112L on Linux)
+set(CMAKE_REQUIRED_DEFINITIONS -D_POSIX_C_SOURCE=200112L)
+check_symbol_exists(posix_memalign stdlib.h OPJ_HAVE_POSIX_MEMALIGN)
+unset(CMAKE_REQUIRED_DEFINITIONS)
+# memalign (obsolete)
+check_symbol_exists(memalign malloc.h OPJ_HAVE_MEMALIGN)