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.
This commit is contained in:
parent
2b232e11a8
commit
776f9405fa
1 changed files with 2 additions and 2 deletions
|
@ -142,8 +142,8 @@ class X86Linux32 : public Linux
|
||||||
uint32_t st_uid;
|
uint32_t st_uid;
|
||||||
uint32_t st_gid;
|
uint32_t st_gid;
|
||||||
uint64_t st_rdev;
|
uint64_t st_rdev;
|
||||||
int64_t st_size;
|
|
||||||
uint8_t __pad3[4];
|
uint8_t __pad3[4];
|
||||||
|
int64_t st_size;
|
||||||
uint32_t st_blksize;
|
uint32_t st_blksize;
|
||||||
uint64_t st_blocks;
|
uint64_t st_blocks;
|
||||||
uint32_t st_atimeX;
|
uint32_t st_atimeX;
|
||||||
|
@ -153,7 +153,7 @@ class X86Linux32 : public Linux
|
||||||
uint32_t st_ctimeX;
|
uint32_t st_ctimeX;
|
||||||
uint32_t st_ctime_nsec;
|
uint32_t st_ctime_nsec;
|
||||||
uint64_t st_ino;
|
uint64_t st_ino;
|
||||||
} tgt_stat64;
|
} __attribute__((__packed__)) tgt_stat64;
|
||||||
|
|
||||||
static OpenFlagTransTable openFlagTable[];
|
static OpenFlagTransTable openFlagTable[];
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue