--- old/src/java.base/unix/native/libjava/UnixFileSystem_md.c 2017-06-01 08:09:52.696469000 +0200 +++ new/src/java.base/unix/native/libjava/UnixFileSystem_md.c 2017-06-01 08:09:52.093418000 +0200 @@ -229,12 +229,16 @@ 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); @@ -419,14 +423,16 @@ 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;