< prev index next >
src/java.base/unix/native/libjava/UnixFileSystem_md.c
Print this page
rev 17282 : 8181207: 8177809 breaks AIX 5.3, 6.1 builds
Reviewed-by: vtewari, simonis, clanger
@@ -227,16 +227,20 @@
jlong rv = 0;
WITH_FIELD_PLATFORM_STRING(env, file, ids.path, path) {
struct stat64 sb;
if (stat64(path, &sb) == 0) {
-#ifndef MACOSX
- rv = (jlong)sb.st_mtim.tv_sec * 1000;
- rv += (jlong)sb.st_mtim.tv_nsec / 1000000;
-#else
+#if defined(_AIX)
+ /* AIX 5.3 backward compatibility. */
+ rv = (jlong)sb.st_mtime * 1000;
+ rv += (jlong)sb.st_mtime_n / 1000000;
+#elif defined(MACOSX)
rv = (jlong)sb.st_mtimespec.tv_sec * 1000;
rv += (jlong)sb.st_mtimespec.tv_nsec / 1000000;
+#else
+ rv = (jlong)sb.st_mtim.tv_sec * 1000;
+ rv += (jlong)sb.st_mtim.tv_nsec / 1000000;
#endif
}
} END_PLATFORM_STRING(env, path);
return rv;
}
@@ -417,18 +421,20 @@
if (stat64(path, &sb) == 0) {
struct timeval tv[2];
/* Preserve access time */
-#ifndef MACOSX
- tv[0].tv_sec = sb.st_atim.tv_sec;
- tv[0].tv_usec = sb.st_atim.tv_nsec / 1000;
-#else
+#if defined(_AIX)
+ tv[0].tv_sec = sb.st_atime;
+ tv[0].tv_usec = sb.st_atime_n / 1000;
+#elif defined(MACOSX)
tv[0].tv_sec = sb.st_atimespec.tv_sec;
tv[0].tv_usec = sb.st_atimespec.tv_nsec / 1000;
+#else
+ tv[0].tv_sec = sb.st_atim.tv_sec;
+ tv[0].tv_usec = sb.st_atim.tv_nsec / 1000;
#endif
-
/* Change last-modified time */
tv[1].tv_sec = time / 1000;
tv[1].tv_usec = (time % 1000) * 1000;
if (utimes(path, tv) == 0)
< prev index next >