[PATCH v5] y2038: Introduce __ASSUME_TIME64_SYSCALLS define
Joseph Myers
joseph@codesourcery.com
Thu May 23 21:18:00 GMT 2019
On Thu, 23 May 2019, Stepan Golosunov wrote:
> This seems too complicated and potentially buggy. Why not just
> define __ASSUME_TIME64_SYSCALLS for this case too and then use
There are multiple reasonable choices that could be made for the semantics
of __ASSUME_TIME64_SYSCALLS.
One is the choice in this patch series at present, that it relates to the
new syscalls *with their given names*. Another possible choice would be
the one you suggest, that it relates to *any syscalls whose semantics
match those of the new syscalls, possibly under different names*.
If we use the latter choice, I think it would be best also to have
#defines of the new to the old names (such as #define __NR_clock_settime64
__NR_clock_settime) so the various places that use
__ASSUME_TIME64_SYSCALLS don't all need their own conditionals.
Also, if we use the latter choice, we need to be very careful about
ensuring the old syscalls really do have the right semantics, and really
do exist on all kernels with at least the configured minimum version. For
example, we must not claim that semtimedop_time64 is available simply
because a platform's syscall interface always had 64-bit time, if there
wasn't an equivalent older syscall, or the equivalent older syscall had
different semantics or was introduced more recently than the minimum
kernel version for that glibc build. This might well mean defining the
macro to relate to a smaller set of syscalls for which this property can
be more readily verified.
--
Joseph S. Myers
joseph@codesourcery.com
More information about the Libc-alpha
mailing list