diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | include/time.h | 8 | ||||
-rw-r--r-- | time/localtime.c | 17 |
3 files changed, 32 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog index 1e555377d2..4724c84e08 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2018-12-18 Albert ARIBAUD <albert.aribaud@3adev.fr> + + * include/time.h + (__localtime64_r): Add. + * time/localtime.c + (__localtime64_r): Add. + [__TIMESIZE != 64] (__localtime_r): Turn into a wrapper. + 2018-12-18 Adhemerval Zanella <adhemerval.zanella@linaro.org> * sysdeps/unix/sysv/linux/s390/kernel_sigaction.h: Use Linux generic diff --git a/include/time.h b/include/time.h index 3bc303a36e..876b8a2b5f 100644 --- a/include/time.h +++ b/include/time.h @@ -67,6 +67,14 @@ libc_hidden_proto (__localtime64) extern struct tm *__localtime_r (const time_t *__timer, struct tm *__tp) attribute_hidden; +#if __TIMESIZE == 64 +# define __localtime64_r __localtime_r +#else +extern struct tm *__localtime64_r (const __time64_t *__timer, + struct tm *__tp); +libc_hidden_proto (__localtime64_r) +#endif + extern struct tm *__gmtime_r (const time_t *__restrict __timer, struct tm *__restrict __tp); libc_hidden_proto (__gmtime_r) diff --git a/time/localtime.c b/time/localtime.c index 96879d4ec0..9367c7082b 100644 --- a/time/localtime.c +++ b/time/localtime.c @@ -25,10 +25,25 @@ struct tm _tmbuf; /* Return the `struct tm' representation of *T in local time, using *TP to store the result. */ struct tm * -__localtime_r (const time_t *t, struct tm *tp) +__localtime64_r (const __time64_t *t, struct tm *tp) { return __tz_convert (*t, 1, tp); } + +/* Provide a 32-bit variant if needed. */ + +#if __TIMESIZE != 64 + +struct tm * +__localtime_r (const time_t *t, struct tm *tp) +{ + __time64_t t64 = *t; + return __localtime64_r (&t64, tp); +} +libc_hidden_def (__localtime64_r) + +#endif + weak_alias (__localtime_r, localtime_r) |