The 64-bit SPARC V9 syscall ABI uses 32-bit UIDs. Only enable
the 16-bit UID wrappers for 32-bit SPARC (V7 and V8).
Possibly missed in commit 992f48a036 ("Support for 32 bit
ABI on 64 bit targets (only enabled Sparc64)").
Reported-by: Gregor Riepl <onitake@gmail.com>
Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
Tested-by: Zach van Rijn <me@zv.io>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1394
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
linux-user/syscall_defs.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h
index 614a1cbc8e..cc37054cb5 100644
--- a/linux-user/syscall_defs.h
+++ b/linux-user/syscall_defs.h
@@ -61,7 +61,7 @@
#if (defined(TARGET_I386) && defined(TARGET_ABI32)) \
|| (defined(TARGET_ARM) && defined(TARGET_ABI32)) \
- || defined(TARGET_SPARC) \
+ || (defined(TARGET_SPARC) && defined(TARGET_ABI32)) \
|| defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS)
/* 16 bit uid wrappers emulation */
#define USE_UID16
--
2.38.1
On 27/3/23 15:19, Philippe Mathieu-Daudé wrote: > The 64-bit SPARC V9 syscall ABI uses 32-bit UIDs. Only enable > the 16-bit UID wrappers for 32-bit SPARC (V7 and V8). > > Possibly missed in commit 992f48a036 ("Support for 32 bit > ABI on 64 bit targets (only enabled Sparc64)"). > > Reported-by: Gregor Riepl <onitake@gmail.com> > Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Tested-by: Zach van Rijn <me@zv.io> > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1394 > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > linux-user/syscall_defs.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Patch queued.
Le 27/03/2023 à 15:19, Philippe Mathieu-Daudé a écrit : > The 64-bit SPARC V9 syscall ABI uses 32-bit UIDs. Only enable > the 16-bit UID wrappers for 32-bit SPARC (V7 and V8). > > Possibly missed in commit 992f48a036 ("Support for 32 bit > ABI on 64 bit targets (only enabled Sparc64)"). > > Reported-by: Gregor Riepl <onitake@gmail.com> > Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Tested-by: Zach van Rijn <me@zv.io> > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1394 > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> > --- > linux-user/syscall_defs.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h > index 614a1cbc8e..cc37054cb5 100644 > --- a/linux-user/syscall_defs.h > +++ b/linux-user/syscall_defs.h > @@ -61,7 +61,7 @@ > > #if (defined(TARGET_I386) && defined(TARGET_ABI32)) \ > || (defined(TARGET_ARM) && defined(TARGET_ABI32)) \ > - || defined(TARGET_SPARC) \ > + || (defined(TARGET_SPARC) && defined(TARGET_ABI32)) \ > || defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS) > /* 16 bit uid wrappers emulation */ > #define USE_UID16 Acked-by: Laurent Vivier <laurent@vivier.eu>
On 3/27/23 06:19, Philippe Mathieu-Daudé wrote: > The 64-bit SPARC V9 syscall ABI uses 32-bit UIDs. Only enable > the 16-bit UID wrappers for 32-bit SPARC (V7 and V8). > > Possibly missed in commit 992f48a036 ("Support for 32 bit > ABI on 64 bit targets (only enabled Sparc64)"). > > Reported-by: Gregor Riepl <onitake@gmail.com> > Tested-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Tested-by: Zach van Rijn <me@zv.io> > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1394 > Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~ > --- > linux-user/syscall_defs.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h > index 614a1cbc8e..cc37054cb5 100644 > --- a/linux-user/syscall_defs.h > +++ b/linux-user/syscall_defs.h > @@ -61,7 +61,7 @@ > > #if (defined(TARGET_I386) && defined(TARGET_ABI32)) \ > || (defined(TARGET_ARM) && defined(TARGET_ABI32)) \ > - || defined(TARGET_SPARC) \ > + || (defined(TARGET_SPARC) && defined(TARGET_ABI32)) \ > || defined(TARGET_M68K) || defined(TARGET_SH4) || defined(TARGET_CRIS) > /* 16 bit uid wrappers emulation */ > #define USE_UID16
© 2016 - 2024 Red Hat, Inc.