alpha: fix stat64 issue
authorVince Weaver <vince@csl.cornell.edu>
Tue, 29 Dec 2009 05:01:22 +0000 (00:01 -0500)
committerAurelien Jarno <aurelien@aurel32.net>
Thu, 14 Jan 2010 14:59:59 +0000 (15:59 +0100)
The stat64/fstat64 syscalls are broken for alpha linux-user.

This is because Alpha, even though it is native 64-bits, has a stat64
syscall that is different than regular stat.  This means that the
"TARGET_LONG_BITS==64" check in syscall.c isn't enough.  Below is
a patch that fixes things for me, although it might not be the cleanest
fix.

This issue keeps sixtrack and fma3d spec2k benchmarks from running.

Signed-off-by: Vince Weaver <vince@csl.cornell.edu>
Acked-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
linux-user/syscall.c

index 1acf1f5..f2dd39e 100644 (file)
@@ -4004,7 +4004,7 @@ static inline abi_long host_to_target_stat64(void *cpu_env,
     } else
 #endif
     {
-#if TARGET_LONG_BITS == 64
+#if (TARGET_LONG_BITS == 64) && (!defined(TARGET_ALPHA))
         struct target_stat *target_st;
 #else
         struct target_stat64 *target_st;