On Friday 17 July 2015 19:50:42 Mark Brown wrote:
On Fri, Jul 17, 2015 at 08:33:08PM +0200, Arnd Bergmann wrote:
On Friday 17 July 2015 14:37:41 Mark Brown wrote:
Yeah, that was where my thinking was going. You should then be able to make the else case expose a 32 bit version under a different name so applications that really wanted to be able to do fallback on old kernels could do so but the default would DTRT.
I'm unsure if that would actually help anybody: The new version would only be seen for applications that are built with a 64-bit time_t, and that requires a new kernel for a number of reasons. It might help bridge the window between kernels that have support for basic syscalls but not a particular ioctl like this one, but approach so far was that I'd just treat that case as a bug and tell people to not expect 64-bit time_t in user space to work in all cases until we have a kernel that has all drivers converted.
Yeah, it's definitely a bit niche. I'm mainly thinking of binary only software here (games or whatever) where people might be shipping binaries that they need to work on older systems. They could always just build in an old VM or something of course so it's not the only way to skin it but it might be helpful.
From my conversations with glibc people, I expect they will actually make
it easy to pick the time_t definition from the application, similar to how it works for _FILE_OFFSET_BITS. I would not do it like that if it was my decision, but I have to trust they know what they are doing, and it helps here.
Arnd