Sparc v8 has 4k pages, while Sparc v9 has 8k pages.  Because of this,
userland does not assumed a fixed page size (at least true for glibc
and musl).  Allowing the guest to follow the host page size avoids
a variety of emulation problems.

Signed-off-by: Richard Henderson <[email protected]>
---
 target/sparc/cpu-param.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/target/sparc/cpu-param.h b/target/sparc/cpu-param.h
index 7ec4ac84dbb..72aa89bf66a 100644
--- a/target/sparc/cpu-param.h
+++ b/target/sparc/cpu-param.h
@@ -8,7 +8,11 @@
 #define SPARC_CPU_PARAM_H
 
 #ifdef TARGET_SPARC64
-# define TARGET_PAGE_BITS 13 /* 8k */
+# ifdef CONFIG_USER_ONLY
+#  define TARGET_PAGE_BITS_VARY
+# else
+#  define TARGET_PAGE_BITS 13 /* 8k */
+# endif
 # ifdef TARGET_ABI32
 #  define TARGET_VIRT_ADDR_SPACE_BITS 32
 # else
-- 
2.53.0


Reply via email to