Ping? thanks -- PMM
On 6 July 2013 21:44, Peter Maydell <peter.mayd...@linaro.org> wrote: > OpenRISC uses the asm-generic versions of target_stat and > target_stat64, but it was incorrectly using the x86/ARM/etc version > due to a misplaced defined(TARGET_OPENRISC). The previously unused > OpenRISC section of the ifdef ladder also defined an incorrect > target_stat and omitted the target_stat64 definition. Fix > target_stat, provide target_stat64, and add a comment noting that > these are the asm-generic versions for the benefit of future ports. > > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > This fixes basic problems like "ls -l output is nonsense" and "shell > thinks programs aren't executable and won't run them". > > linux-user/syscall_defs.h | 49 > ++++++++++++++++++++++++++++++++++----------- > 1 file changed, 37 insertions(+), 12 deletions(-) > > diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h > index 92c01a9..cb6341f 100644 > --- a/linux-user/syscall_defs.h > +++ b/linux-user/syscall_defs.h > @@ -1138,8 +1138,7 @@ struct target_winsize { > #endif > > #if (defined(TARGET_I386) && defined(TARGET_ABI32)) || defined(TARGET_ARM) \ > - || defined(TARGET_CRIS) || defined(TARGET_UNICORE32) \ > - || defined(TARGET_OPENRISC) > + || defined(TARGET_CRIS) || defined(TARGET_UNICORE32) > struct target_stat { > unsigned short st_dev; > unsigned short __pad1; > @@ -1837,29 +1836,55 @@ struct target_stat { > abi_ulong __unused[3]; > }; > #elif defined(TARGET_OPENRISC) > + > +/* These are the asm-generic versions of the stat and stat64 structures */ > + > struct target_stat { > abi_ulong st_dev; > abi_ulong st_ino; > - abi_ulong st_nlink; > - > unsigned int st_mode; > + unsigned int st_nlink; > unsigned int st_uid; > unsigned int st_gid; > - unsigned int __pad0; > abi_ulong st_rdev; > + abi_ulong __pad1; > abi_long st_size; > - abi_long st_blksize; > - abi_long st_blocks; /* Number 512-byte blocks allocated. */ > - > - abi_ulong target_st_atime; > + int st_blksize; > + int __pad2; > + abi_long st_blocks; > + abi_long target_st_atime; > abi_ulong target_st_atime_nsec; > - abi_ulong target_st_mtime; > + abi_long target_st_mtime; > abi_ulong target_st_mtime_nsec; > - abi_ulong target_st_ctime; > + abi_long target_st_ctime; > abi_ulong target_st_ctime_nsec; > + unsigned int __unused4; > + unsigned int __unused5; > +}; > > - abi_long __unused[3]; > +struct target_stat64 { > + uint64_t st_dev; > + uint64_t st_ino; > + unsigned int st_mode; > + unsigned int st_nlink; > + unsigned int st_uid; > + unsigned int st_gid; > + uint64_t st_rdev; > + uint64_t __pad1; > + int64_t st_size; > + int st_blksize; > + int __pad2; > + int64_t st_blocks; > + int target_st_atime; > + unsigned int target_st_atime_nsec; > + int target_st_mtime; > + unsigned int target_st_mtime_nsec; > + int target_st_ctime; > + unsigned int target_st_ctime_nsec; > + unsigned int __unused4; > + unsigned int __unused5; > }; > + > #else > #error unsupported CPU > #endif > -- > 1.7.9.5 > >