diff --git a/build-scripts/config_common.cmake b/build-scripts/config_common.cmake index 212141d5e..62c5163ac 100644 --- a/build-scripts/config_common.cmake +++ b/build-scripts/config_common.cmake @@ -464,7 +464,13 @@ else () endif () if (APPLE) + EXEC_PROGRAM(sw_vers ARGS -productVersion OUTPUT_VARIABLE OS_X_VERSION) + STRING(REGEX MATCH "([0-9]+)" OS_X_VERSION ${OS_X_VERSION}) + if (OS_X_VERSION LESS 13) + set(PAGE_ZERO_SIZE_OPTION "-Wl,-pagezero_size,0x4000") + endif () + # On recent macOS versions, by default, the size of page zero is 4GB. # Shrink it to make MAP_32BIT mmap can work. - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-pagezero_size,0x4000") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PAGE_ZERO_SIZE_OPTION}") endif ()