From: Helge Deller Date: Fri, 23 Jan 2026 15:01:08 +0000 (+0100) Subject: linux-user: Fix MADV_XXX constants on hppa target X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5db961f92b38b2a0f9db50b47ef3a718962b374f;p=thirdparty%2Fqemu.git linux-user: Fix MADV_XXX constants on hppa target Older hppa binaries may still use the old MADV_XXX constants for the madivise() syscall. Fix it up in the same manner as it's done in the Linux kernel in the parisc_madvise() function. Signed-off-by: Helge Deller Reviewed-by: Peter Maydell --- diff --git a/linux-user/syscall.c b/linux-user/syscall.c index 64a2f1cbb2..3944004568 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -12922,6 +12922,22 @@ static abi_long do_syscall1(CPUArchState *cpu_env, int num, abi_long arg1, #ifdef TARGET_NR_madvise case TARGET_NR_madvise: +#ifdef TARGET_HPPA + /* Emulate old hppa mapping of MADV_xxx constants. */ + switch (arg3) { + case 65: arg3 = MADV_MERGEABLE; break; + case 66: arg3 = MADV_UNMERGEABLE; break; + case 67: arg3 = MADV_HUGEPAGE; break; + case 68: arg3 = MADV_NOHUGEPAGE; break; + case 69: arg3 = MADV_DONTDUMP; break; + case 70: arg3 = MADV_DODUMP; break; + case 71: arg3 = MADV_WIPEONFORK; break; + case 72: arg3 = MADV_KEEPONFORK; break; + #ifdef MADV_COLLAPSE + case 73: arg3 = MADV_COLLAPSE; break; + #endif + } +#endif /* TARGET_HPPA */ return target_madvise(arg1, arg2, arg3); #endif #ifdef TARGET_NR_fcntl64