8214077: test java/io/File/SetLastModified.java fails on ARM32

Replace uses of stat with stat64 in java.base

Reviewed-by: alanb
This commit is contained in:
Nick Gasson 2018-12-14 13:30:21 +00:00 committed by Alan Bateman
parent b83df1e1fc
commit 1d7662e428
3 changed files with 24 additions and 17 deletions

View file

@ -56,6 +56,12 @@
#define fileclose fclose
#endif
#if defined(_ALLBSD_SOURCE)
#define stat64 stat
#define lstat64 lstat
#define fstat64 fstat
#endif
#if defined(__linux__) || defined(_ALLBSD_SOURCE)
static const char *ETC_TIMEZONE_FILE = "/etc/timezone";
static const char *ZONEINFO_DIR = "/usr/share/zoneinfo";
@ -115,7 +121,7 @@ static char *
findZoneinfoFile(char *buf, size_t size, const char *dir)
{
DIR *dirp = NULL;
struct stat statbuf;
struct stat64 statbuf;
struct dirent *dp = NULL;
char *pathname = NULL;
int fd = -1;
@ -156,7 +162,7 @@ findZoneinfoFile(char *buf, size_t size, const char *dir)
if (pathname == NULL) {
break;
}
RESTARTABLE(stat(pathname, &statbuf), res);
RESTARTABLE(stat64(pathname, &statbuf), res);
if (res == -1) {
break;
}
@ -219,7 +225,7 @@ findZoneinfoFile(char *buf, size_t size, const char *dir)
static char *
getPlatformTimeZoneID()
{
struct stat statbuf;
struct stat64 statbuf;
char *tz = NULL;
FILE *fp;
int fd;
@ -256,7 +262,7 @@ getPlatformTimeZoneID()
/*
* Next, try /etc/localtime to find the zone ID.
*/
RESTARTABLE(lstat(DEFAULT_ZONEINFO_FILE, &statbuf), res);
RESTARTABLE(lstat64(DEFAULT_ZONEINFO_FILE, &statbuf), res);
if (res == -1) {
return NULL;
}
@ -296,7 +302,7 @@ getPlatformTimeZoneID()
return NULL;
}
RESTARTABLE(fstat(fd, &statbuf), res);
RESTARTABLE(fstat64(fd, &statbuf), res);
if (res == -1) {
(void) close(fd);
return NULL;
@ -557,7 +563,7 @@ cleanupScf(scf_handle_t *h,
static char *
getSolarisDefaultZoneID() {
char *tz = NULL;
struct stat statbuf;
struct stat64 statbuf;
size_t size;
char *buf;
int fd;
@ -597,7 +603,7 @@ getSolarisDefaultZoneID() {
}
cleanupScf(h, snap, inst, pg, prop, val, tz);
RESTARTABLE(stat(DEFAULT_ZONEINFO_FILE, &statbuf), res);
RESTARTABLE(stat64(DEFAULT_ZONEINFO_FILE, &statbuf), res);
if (res == -1) {
return NULL;
}