diff options
author | Lukasz Majewski <lukma@denx.de> | 2020-03-16 08:31:41 +0100 |
---|---|---|
committer | Lukasz Majewski <lukma@denx.de> | 2020-05-20 16:45:16 +0200 |
commit | e9698175b0b60407db1e89bcf29437ab224bca0b (patch) | |
tree | cb1b6779101327e185e1868b5200cc8a06e98c0b /sysdeps/unix/sysv/linux/clock.c | |
parent | 5b9b177bf62bcdaf42255f88ad9ebf090528c5e1 (diff) | |
download | glibc-e9698175b0b60407db1e89bcf29437ab224bca0b.tar.gz glibc-e9698175b0b60407db1e89bcf29437ab224bca0b.tar.xz glibc-e9698175b0b60407db1e89bcf29437ab224bca0b.zip |
y2038: Replace __clock_gettime with __clock_gettime64
The __clock_gettime internal function is not supporting 64 bit time on architectures with __WORDSIZE == 32 and __TIMESIZE != 64 (like e.g. ARM 32 bit). The __clock_gettime64 function shall be used instead in the glibc itself as it supports 64 bit time on those systems. This patch does not bring any changes to systems with __WORDSIZE == 64 as for them the __clock_gettime64 is aliased to __clock_gettime (in ./include/time.h).
Diffstat (limited to 'sysdeps/unix/sysv/linux/clock.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/clock.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/sysdeps/unix/sysv/linux/clock.c b/sysdeps/unix/sysv/linux/clock.c index 24a8df0cf5..157ae8eb3f 100644 --- a/sysdeps/unix/sysv/linux/clock.c +++ b/sysdeps/unix/sysv/linux/clock.c @@ -23,15 +23,12 @@ clock_t clock (void) { - struct timespec ts; + struct __timespec64 ts; _Static_assert (CLOCKS_PER_SEC == 1000000, "CLOCKS_PER_SEC should be 1000000"); - /* clock_gettime shouldn't fail here since CLOCK_PROCESS_CPUTIME_ID is - supported since 2.6.12. Check the return value anyway in case the kernel - barfs on us for some reason. */ - if (__glibc_unlikely (__clock_gettime (CLOCK_PROCESS_CPUTIME_ID, &ts) != 0)) + if (__glibc_unlikely (__clock_gettime64 (CLOCK_PROCESS_CPUTIME_ID, &ts) != 0)) return (clock_t) -1; return (ts.tv_sec * CLOCKS_PER_SEC |