Re: [PATCH 01/12] Ext4: Fix extended timestamp encoding and decoding
From: Arnd Bergmann <hidden>
Date: 2015-11-30 14:37:43
Also in:
linux-cifs, linux-fsdevel, linux-nfs, lkml
On Monday 30 November 2015 09:16:05 Theodore Ts'o wrote:
On Sun, Nov 29, 2015 at 10:30:39PM +0100, Arnd Bergmann wrote:quoted
The other large missing piece is the system call implementation. I have posted a series earlier this year before my parental leave, and it's currently lacking review from libc folks, and blocked on me to update the series and post it again.I assume that this also means there hasn't been much thought about userspace support above libc? i.e., how to take a 64-bit time64_t (or changing the size of time_t) and translating that to a string using some kind of version of ctime() and asctime(), and how to parse a post-2038 date string and turning it into a 64-bit time_t on a 32-bit platform? The reason why I'm asking is because I'm thinking about how to add the appropriate regression test support to e2fsprogs for 32-bit platforms. I'm probably going to just skip the tests on architectures where sizeof(time_t) == 4 for now, since with a 32-bit time_t adding support for post-2038 in a e2fsprogs-specific way is (a) something I don't have time for, and (b) probably a waste of time since presumably we will either need to have a more general solution, or simply decide to give up on 32-bit platforms by 2038....
We are definitely going to be using 32-bit embedded platforms in 2038, but we won't be using a 32-bit time_t then, so basing the check on sizeof(time_t) sounds reasonable. I assume most generic distros will stay with 32-bit time_t for compatibility reasons and just not give long term support for 32-bit architectures, while the embedded distros will move over to 64-bit time_t, but on those you recompile all user space for each product anyway. The glibc functions should all work with a 64-bit time_t as they do today on 64-bit architectures. There is an open discussion on how you move to 64-bit time_t. With the current glibc plan at https://sourceware.org/glibc/wiki/Y2038ProofnessDesign, you will have to set -D_TIME_BITS=64 to enable it explicitly, but I'd also like to see a way to build a glibc that defaults to that and does not allow backwards compatibility, which is important for folks that want to ship a system that has they can guarantee to survive 2038. Arnd -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html