From b208c9cf4f539d989426933cae4c7f63e4499cff Mon Sep 17 00:00:00 2001 From: crueter Date: Tue, 3 Mar 2026 14:28:45 -0500 Subject: [PATCH] [settings] Disable fastmem on Linux systems with non-4kb page sizes Asahi, etc Signed-off-by: crueter --- src/common/settings.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/common/settings.cpp b/src/common/settings.cpp index c952567e63..42fa2aa7f6 100644 --- a/src/common/settings.cpp +++ b/src/common/settings.cpp @@ -27,6 +27,10 @@ #include "common/settings.h" #include "common/time_zone.h" +#ifdef __linux__ +#include +#endif + namespace Settings { // Clang 14 and earlier have errors when explicitly instantiating these classes @@ -178,7 +182,10 @@ bool IsFastmemEnabled() { return bool(values.cpuopt_fastmem); else if (values.cpu_accuracy.GetValue() == CpuAccuracy::Unsafe) return bool(values.cpuopt_unsafe_host_mmu); -#if !defined(__APPLE__) && !defined(__linux__) && !defined(__ANDROID__) && !defined(_WIN32) +#if defined(__linux__) + // Only 4kb systems support host MMU right now + return getpagesize() == 4096; +#elif !defined(__APPLE__) && !defined(__ANDROID__) && !defined(_WIN32) return false; #else return true;