timer_gettime: add time64 syscall support, decouple 32-bit time_t
authorRich Felker <dalias@aerifal.cx>
Mon, 29 Jul 2019 02:46:19 +0000 (22:46 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 29 Jul 2019 04:19:21 +0000 (00:19 -0400)
commita02bd52864a21b46206eaf67e1e7fb53834b594a
tree73f8ce83ee8f5fc7dbe079f656ae0fb9b22aef34
parent4c307bed03d97da4cfd9224c5b7669bb22cd9faf
timer_gettime: add time64 syscall support, decouple 32-bit time_t

the time64 syscall has to be used if time_t is 64-bit, since there's
no way of knowing before making a syscall whether the result will fit
in 32 bits, and the 32-bit syscalls do not report overflow as an
error.

on 64-bit archs, there is no change to the code after preprocessing.
on current 32-bit archs, the result is now read from the kernel
through long[4] array, then copied into the timespec, to remove the
assumption that time_t is the same as long.
src/time/timer_gettime.c