timer_settime: add support for time64 syscall, decouple 32-bit time_t
authorRich Felker <dalias@aerifal.cx>
Sun, 28 Jul 2019 22:38:28 +0000 (18:38 -0400)
committerRich Felker <dalias@aerifal.cx>
Mon, 29 Jul 2019 04:16:56 +0000 (00:16 -0400)
commite1501091c404a74f3966441dbf8f6b85bae905c2
treebbec7513136fed8058e3fb84f050053ca8feeb44
parent22276671d031639f1bd55d7dbf817290c321c7bf
timer_settime: add support for time64 syscall, decouple 32-bit time_t

time64 syscall is used only if it's the only one defined for the arch,
if either component of the itimerspec does not fit in 32 bits, or if
time_t is 64-bit and the caller requested the old value, in which case
there's a possibility that the old value might not fit in 32 bits. on
current 32-bit archs where time_t is a 32-bit type, this makes it
statically unreachable.

on 64-bit archs, there is no change to the code after preprocessing.
on current 32-bit archs, the time is moved through an intermediate
copy to remove the assumption that time_t is a 32-bit type.
src/time/timer_settime.c