diff options
author | Vince Weaver <vince@csl.cornell.edu> | 2009-10-20 15:15:37 -0400 |
---|---|---|
committer | Vince Weaver <vince@csl.cornell.edu> | 2009-10-20 15:15:37 -0400 |
commit | 776f9405fa0e58ea5ca0354cd233ebb2603bddbf (patch) | |
tree | 3160e90596d9ea0e9fbf08bfea8099ddcd9ae798 | |
parent | 2b232e11a8395c90e792fe743fc681bb3abfb16f (diff) | |
download | gem5-776f9405fa0e58ea5ca0354cd233ebb2603bddbf.tar.xz |
Fix stat64 structure on 32-bit X86_SE
The st_size entry was in the wrong place
(see linux-2.6.29/arch/x86/include/asm/stat.h )
Also, the packed attribute is needed when compiling on a
64-bit machine, otherwise gcc adds extra padding that
break the layout of the structure.
-rw-r--r-- | src/arch/x86/linux/linux.hh | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/arch/x86/linux/linux.hh b/src/arch/x86/linux/linux.hh index a810d4a79..238b5e683 100644 --- a/src/arch/x86/linux/linux.hh +++ b/src/arch/x86/linux/linux.hh @@ -142,8 +142,8 @@ class X86Linux32 : public Linux uint32_t st_uid; uint32_t st_gid; uint64_t st_rdev; - int64_t st_size; uint8_t __pad3[4]; + int64_t st_size; uint32_t st_blksize; uint64_t st_blocks; uint32_t st_atimeX; @@ -153,7 +153,7 @@ class X86Linux32 : public Linux uint32_t st_ctimeX; uint32_t st_ctime_nsec; uint64_t st_ino; - } tgt_stat64; + } __attribute__((__packed__)) tgt_stat64; static OpenFlagTransTable openFlagTable[]; |