On Thu, 9 Mar 2017, Florian Weimer wrote:
On 03/08/2017 09:10 PM, Joseph Myers wrote:
On Wed, 8 Mar 2017, Albert ARIBAUD wrote:
IIUC, on the kernel side there is a will to move away from Posix (1) here and just make tv_nsec 64-bits with no padding when time_t is 64-bit.
In that case, that simply means it's glibc's responsibility to avoid the x32 mistake, and copy timespec values passed to the kernel to clear padding while staying compatible with POSIX. (Which would probably also provide the infrastructure required to fix the x32 bug in glibc along the lines used in musl.)
That's not going to work because struct timespec can be hidden in ioctl arguments, ancillary data (cmsg), and Netlink messages. It's an uphill battle to lie to userspace about the kernel ABI, so we really shouldn't do that.
Then the kernel should follow POSIX in the processing of timespec structures from userspace if they don't want their 64-bit timespec interfaces ignored.