linux-user: Fix stat64 syscall for SPARC64

Some targets use a stat64 structure for the stat64 syscall while others
use a stat structure. SPARC64 used the wrong kind.

Instead of extending the conditional compilation in syscall.c, now a
macro TARGET_HAS_STRUCT_STAT64 is defined whenever a target has a
target_stat64.

Signed-off-by: Stefan Weil <sw@weilnetz.de>
Reviewed-by: Erik de Castro Lopo <erikd@mega-nerd.com>
This commit is contained in:
Stefan Weil 2013-10-30 22:52:24 +01:00
parent bdf523e692
commit 20d155bc90
2 changed files with 17 additions and 3 deletions

View file

@ -4870,10 +4870,10 @@ static inline abi_long host_to_target_stat64(void *cpu_env,
} else
#endif
{
#if TARGET_ABI_BITS == 64 && !defined(TARGET_ALPHA)
struct target_stat *target_st;
#else
#if defined(TARGET_HAS_STRUCT_STAT64)
struct target_stat64 *target_st;
#else
struct target_stat *target_st;
#endif
if (!lock_user_struct(VERIFY_WRITE, target_st, target_addr, 0))