From 52a5fe70a2c77935afe807fb6e904e512ddd894e Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 2 Mar 2021 17:06:02 -0300 Subject: Use 64 bit time_t stat internally For the legacy ABI with supports 32-bit time_t it calls the 64-bit time directly, since the LFS symbols calls the 64-bit time_t ones internally. Checked on i686-linux-gnu and x86_64-linux-gnu. Reviewed-by: Lukasz Majewski --- locale/loadarchive.c | 8 ++++---- locale/loadlocale.c | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'locale') diff --git a/locale/loadarchive.c b/locale/loadarchive.c index 4177fc8972..512769eaec 100644 --- a/locale/loadarchive.c +++ b/locale/loadarchive.c @@ -78,7 +78,7 @@ static struct archmapped *archmapped; ARCHMAPPED points to this; if mapping the archive header failed, then headmap.ptr is null. */ static struct archmapped headmap; -static struct stat64 archive_stat; /* stat of archive when header mapped. */ +static struct __stat64_t64 archive_stat; /* stat of archive when header mapped. */ /* Record of locales that we have already loaded from the archive. */ struct locale_in_archive @@ -207,7 +207,7 @@ _nl_load_locale_from_archive (int category, const char **namep) /* Cannot open the archive, for whatever reason. */ return NULL; - if (__fstat64 (fd, &archive_stat) == -1) + if (__fstat64_time64 (fd, &archive_stat) == -1) { /* stat failed, very strange. */ close_and_out: @@ -396,7 +396,7 @@ _nl_load_locale_from_archive (int category, const char **namep) /* Open the file if it hasn't happened yet. */ if (fd == -1) { - struct stat64 st; + struct __stat64_t64 st; fd = __open_nocancel (archfname, O_RDONLY|O_LARGEFILE|O_CLOEXEC); if (fd == -1) @@ -405,7 +405,7 @@ _nl_load_locale_from_archive (int category, const char **namep) /* Now verify we think this is really the same archive file we opened before. If it has been changed we cannot trust the header we read previously. */ - if (__fstat64 (fd, &st) < 0 + if (__fstat64_time64 (fd, &st) < 0 || st.st_size != archive_stat.st_size || st.st_mtime != archive_stat.st_mtime || st.st_dev != archive_stat.st_dev diff --git a/locale/loadlocale.c b/locale/loadlocale.c index 9c03490883..f4e6cc9fc2 100644 --- a/locale/loadlocale.c +++ b/locale/loadlocale.c @@ -167,7 +167,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) { int fd; void *filedata; - struct stat64 st; + struct __stat64_t64 st; struct __locale_data *newdata; int save_err; int alloc = ld_mapped; @@ -180,7 +180,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) /* Cannot open the file. */ return; - if (__builtin_expect (__fstat64 (fd, &st), 0) < 0) + if (__glibc_unlikely (__fstat64_time64 (fd, &st) < 0)) { puntfd: __close_nocancel_nostatus (fd); @@ -206,7 +206,7 @@ _nl_load_locale (struct loaded_l10nfile *file, int category) if (__builtin_expect (fd, 0) < 0) return; - if (__builtin_expect (__fstat64 (fd, &st), 0) < 0) + if (__glibc_unlikely (__fstat64_time64 (fd, &st) < 0)) goto puntfd; } -- cgit 1.4.1