Add sys/stat.h compatibility macros for old NDKs.
Test: make checkbuild
Bug: https://github.com/android-ndk/ndk/issues/417
Change-Id: I04fdb2f31131e87907adab9f3264b783917de542
diff --git a/libc/arch-mips64/bionic/stat.cpp b/libc/arch-mips64/bionic/stat.cpp
index 29a50ed..63b6cd1 100644
--- a/libc/arch-mips64/bionic/stat.cpp
+++ b/libc/arch-mips64/bionic/stat.cpp
@@ -43,11 +43,11 @@
unsigned int st_pad1[3];
__kernel_off_t st_size;
unsigned int _st_atime;
- unsigned int st_atime_nsec;
+ unsigned int _st_atime_nsec;
unsigned int _st_mtime;
- unsigned int st_mtime_nsec;
+ unsigned int _st_mtime_nsec;
unsigned int _st_ctime;
- unsigned int st_ctime_nsec;
+ unsigned int _st_ctime_nsec;
unsigned int st_blksize;
unsigned int st_pad2;
unsigned long st_blocks;
@@ -65,11 +65,11 @@
st->st_blksize = static_cast<int>(s->st_blksize);
st->st_blocks = static_cast<long>(s->st_blocks);
st->st_atim.tv_sec = static_cast<time_t>(s->_st_atime);
- st->st_atim.tv_nsec = static_cast<long>(s->st_atime_nsec);
+ st->st_atim.tv_nsec = static_cast<long>(s->_st_atime_nsec);
st->st_mtim.tv_sec = static_cast<time_t>(s->_st_mtime);
- st->st_mtim.tv_nsec = static_cast<long>(s->st_mtime_nsec);
+ st->st_mtim.tv_nsec = static_cast<long>(s->_st_mtime_nsec);
st->st_ctim.tv_sec = static_cast<time_t>(s->_st_ctime);
- st->st_ctim.tv_nsec = static_cast<long>(s->st_ctime_nsec);
+ st->st_ctim.tv_nsec = static_cast<long>(s->_st_ctime_nsec);
}
int fstat(int fp, struct stat* st) {
diff --git a/libc/include/sys/stat.h b/libc/include/sys/stat.h
index f8d854d..47ff5c4 100644
--- a/libc/include/sys/stat.h
+++ b/libc/include/sys/stat.h
@@ -127,6 +127,10 @@
#define st_atimensec st_atim.tv_nsec
#define st_mtimensec st_mtim.tv_nsec
#define st_ctimensec st_ctim.tv_nsec
+/* Compatibility with Linux headers and old NDKs. */
+#define st_atime_nsec st_atim.tv_nsec
+#define st_mtime_nsec st_mtim.tv_nsec
+#define st_ctime_nsec st_ctim.tv_nsec
#if defined(__USE_BSD)
/* Permission macros provided by glibc for compatibility with BSDs. */