diff --git a/ChangeLog.mips b/ChangeLog.mips index d970dd8b0f..c446ae7a0c 100644 --- a/ChangeLog.mips +++ b/ChangeLog.mips @@ -1,3 +1,10 @@ +2006-06-02 Joseph Myers + + * sysdeps/unix/sysv/linux/mips/kernel_stat.h (struct kernel_stat): + Don't use struct timespec. + * sysdeps/unix/sysv/linux/mips/xstatconv.c (__xstat_conv, + __xstat64_conv): Copy individual timespec fields. + 2006-06-02 Richard Sandiford * sysdeps/mips/Makefile (ASFLAGS-.os): Define. diff --git a/sysdeps/unix/sysv/linux/mips/kernel_stat.h b/sysdeps/unix/sysv/linux/mips/kernel_stat.h index 9de33df263..e785bcd8cf 100644 --- a/sysdeps/unix/sysv/linux/mips/kernel_stat.h +++ b/sysdeps/unix/sysv/linux/mips/kernel_stat.h @@ -16,9 +16,12 @@ struct kernel_stat unsigned int st_rdev; unsigned int __pad2[3]; long long st_size; - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; + unsigned int st_atime_sec; + unsigned int st_atime_nsec; + unsigned int st_mtime_sec; + unsigned int st_mtime_nsec; + unsigned int st_ctime_sec; + unsigned int st_ctime_nsec; unsigned int st_blksize; unsigned int __pad3; unsigned long long st_blocks; @@ -37,9 +40,12 @@ struct kernel_stat long int __pad2[2]; long int st_size; long int __pad3; - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; + unsigned int st_atime_sec; + unsigned int st_atime_nsec; + unsigned int st_mtime_sec; + unsigned int st_mtime_nsec; + unsigned int st_ctime_sec; + unsigned int st_ctime_nsec; long int st_blksize; long int st_blocks; char st_fstype[16]; /* Filesystem type name, unsupported */ diff --git a/sysdeps/unix/sysv/linux/mips/xstatconv.c b/sysdeps/unix/sysv/linux/mips/xstatconv.c index a2c8e84c4f..ccab6b6a79 100644 --- a/sysdeps/unix/sysv/linux/mips/xstatconv.c +++ b/sysdeps/unix/sysv/linux/mips/xstatconv.c @@ -62,9 +62,12 @@ __xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf) buf->st_blksize = kbuf->st_blksize; buf->st_blocks = kbuf->st_blocks; - buf->st_atim = kbuf->st_atim; - buf->st_mtim = kbuf->st_mtim; - buf->st_ctim = kbuf->st_ctim; + buf->st_atim.tv_sec = kbuf->st_atime_sec; + buf->st_atim.tv_nsec = kbuf->st_atime_nsec; + buf->st_mtim.tv_sec = kbuf->st_mtime_sec; + buf->st_mtim.tv_nsec = kbuf->st_mtime_nsec; + buf->st_ctim.tv_sec = kbuf->st_ctime_sec; + buf->st_ctim.tv_nsec = kbuf->st_ctime_nsec; buf->st_pad5[0] = 0; buf->st_pad5[1] = 0; buf->st_pad5[2] = 0; buf->st_pad5[3] = 0; @@ -107,9 +110,12 @@ __xstat64_conv (int vers, struct kernel_stat *kbuf, void *ubuf) buf->st_blksize = kbuf->st_blksize; buf->st_blocks = kbuf->st_blocks; - buf->st_atim = kbuf->st_atim; - buf->st_mtim = kbuf->st_mtim; - buf->st_ctim = kbuf->st_ctim; + buf->st_atim.tv_sec = kbuf->st_atime_sec; + buf->st_atim.tv_nsec = kbuf->st_atime_nsec; + buf->st_mtim.tv_sec = kbuf->st_mtime_sec; + buf->st_mtim.tv_nsec = kbuf->st_mtime_nsec; + buf->st_ctim.tv_sec = kbuf->st_ctime_sec; + buf->st_ctim.tv_nsec = kbuf->st_ctime_nsec; buf->st_pad4[0] = 0; buf->st_pad4[1] = 0; buf->st_pad4[2] = 0; buf->st_pad4[3] = 0;