From 0f6a92caad25ed65d6b558bb965793ae02c39be1 Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Thu, 9 Nov 2023 19:29:00 +0100 Subject: [PATCH] linux: retrieve page size at build time Fixes RPi 5 16 KB page size. Will not work if cross-compiling however Issue #1288 --- CMakeLists.txt | 5 +++++ core/stdclass.h | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9c53a521f..41a8541f2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -235,6 +235,11 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE $<$:NOCRYPT> $<$,$>:_USE_MATH_DEFINES>) +if(UNIX AND NOT ANDROID AND NOT APPLE) + execute_process(COMMAND getconf PAGESIZE OUTPUT_VARIABLE PAGE_SIZE OUTPUT_STRIP_TRAILING_WHITESPACE) + target_compile_definitions(${PROJECT_NAME} PRIVATE PAGE_SIZE=${PAGE_SIZE}) +endif() + if(NOT "${SENTRY_UPLOAD_URL}" STREQUAL "") target_compile_definitions(${PROJECT_NAME} PRIVATE SENTRY_UPLOAD="${SENTRY_UPLOAD_URL}") endif() diff --git a/core/stdclass.h b/core/stdclass.h index d67901efe..d2e83a78a 100644 --- a/core/stdclass.h +++ b/core/stdclass.h @@ -15,7 +15,7 @@ #undef PAGE_MASK #elif defined(__APPLE__) && defined(__aarch64__) #define PAGE_SIZE 16384 -#else +#elif !defined(PAGE_SIZE) #define PAGE_SIZE 4096 #endif #ifndef PAGE_MASK