On Wed, 28 Sep 2016, Albert ARIBAUD wrote:
- make Y2038-safe kernel provide a new syscall which tells at run time what features the kernel supports, e.g. does it support 64-bit time, 32-bit time, both? [the need could be more generic than just time support, so I tought such a syscall already existed, but I have not found any in the current syscalls list -- I might have missed it though]
There will be lots of syscalls added with the 64-bit time support. If they are all added in the same kernel version, glibc can have a single internal variable for whether 64-bit time support is available in the kernel (set the first time it tries using such a syscall, used to tell whether to try such syscalls in future).
A Y2038-safe GLIBC would thus detect when it runs on a non-Y2038-safe kernel (syscall absent or returning a value which amounts to 'no 64-bit time support built in kernel') and could bail out with an explicit message.
But it shouldn't bail out; it should just use the existing syscalls and translate as needed when the user called the 64-bit time interfaces.