Hello

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.

Vince

Signed-off-by: Vince Weaver <vi...@csl.cornell.edu>

diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1acf1f5..f2dd39e 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -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;


Reply via email to