This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "uClibc-ng - small C library for embedded systems".
The branch, 1.0 has been updated via cbec6ecd4d0fde5bf7fea20eb0c0c5fc9a6dec90 (commit) from a8ef24af00206f92061753782e15f773f9bd135e (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit cbec6ecd4d0fde5bf7fea20eb0c0c5fc9a6dec90 Author: Waldemar Brodkorb wbx@openadk.org Date: Sat Mar 14 08:06:24 2015 +0100
Add fix from OpenWrt for MIPS64 N64 ABI
https://dev.openwrt.org/browser/trunk/toolchain/uClibc/patches-0.9.33.2/616-...
When booting in Qemu you get for example failures from mdev -s otherwise.
-----------------------------------------------------------------------
Summary of changes: libc/sysdeps/linux/common/xstatconv.c | 27 ++++++++++++++------- libc/sysdeps/linux/mips/bits/kernel_stat.h | 36 ++++++++++++++++++---------- 2 files changed, 42 insertions(+), 21 deletions(-)
diff --git a/libc/sysdeps/linux/common/xstatconv.c b/libc/sysdeps/linux/common/xstatconv.c index 7edc42a..a21579c 100644 --- a/libc/sysdeps/linux/common/xstatconv.c +++ b/libc/sysdeps/linux/common/xstatconv.c @@ -37,9 +37,12 @@ void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf) buf->st_size = kbuf->st_size; 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_atim.tv_sec; + buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec; + buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec; + buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec; + buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec; + buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec; }
void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) @@ -56,9 +59,12 @@ void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) buf->st_size = kbuf->st_size; 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_atim.tv_sec; + buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec; + buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec; + buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec; + buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec; + buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec; }
#ifdef __UCLIBC_HAS_LFS__ @@ -80,9 +86,12 @@ void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf) buf->st_size = kbuf->st_size; 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_atim.tv_sec; + buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec; + buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec; + buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec; + buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec; + buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec; }
#endif /* __UCLIBC_HAS_LFS__ */ diff --git a/libc/sysdeps/linux/mips/bits/kernel_stat.h b/libc/sysdeps/linux/mips/bits/kernel_stat.h index 655c089..a2a6169 100644 --- a/libc/sysdeps/linux/mips/bits/kernel_stat.h +++ b/libc/sysdeps/linux/mips/bits/kernel_stat.h @@ -8,6 +8,18 @@ #include <sgidefs.h>
#if _MIPS_SIM == _MIPS_SIM_ABI64 +typedef struct { + unsigned int tv_sec; + unsigned int tv_nsec; +} __ktimespec_t; +#else +typedef struct { + time_t tv_sec; + unsigned long tv_nsec; +} __ktimespec_t; +#endif + +#if _MIPS_SIM == _MIPS_SIM_ABI64 /* The memory layout is the same as of struct stat64 of the 32-bit kernel. */ struct kernel_stat { __kernel_dev_t st_dev; @@ -20,9 +32,9 @@ struct kernel_stat { __kernel_dev_t st_rdev; unsigned int st_pad2[3]; __kernel_off_t st_size; - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; + __ktimespec_t st_atim; + __ktimespec_t st_mtim; + __ktimespec_t st_ctim; unsigned int st_blksize; unsigned int reserved3; unsigned long st_blocks; @@ -41,9 +53,9 @@ struct kernel_stat { unsigned int st_rdev; unsigned int st_pad2[3]; unsigned long long st_size; - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; + __ktimespec_t st_atim; + __ktimespec_t st_mtim; + __ktimespec_t st_ctim; unsigned int st_blksize; unsigned int reserved3; unsigned long long st_blocks; @@ -62,9 +74,9 @@ struct kernel_stat { long st_pad2[2]; __kernel_off_t st_size; long st_pad3; - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; + __ktimespec_t st_atim; + __ktimespec_t st_mtim; + __ktimespec_t st_ctim; long st_blksize; long st_blocks; long st_pad4[14]; @@ -81,9 +93,9 @@ struct kernel_stat64 { unsigned long st_rdev; unsigned long st_pad1[3]; /* Reserved for st_rdev expansion */ long long st_size; - struct timespec st_atim; - struct timespec st_mtim; - struct timespec st_ctim; + __ktimespec_t st_atim; + __ktimespec_t st_mtim; + __ktimespec_t st_ctim; unsigned long st_blksize; unsigned long st_pad2; long long st_blocks;
hooks/post-receive