Hi Arnd, Joseph, > On Thu, Feb 20, 2020 at 1:46 AM Joseph Myers > wrote: > > > > On Thu, 20 Feb 2020, Vineet Gupta wrote: > > > > > The first 4 will need more work as sym aliasing like > > > strong_alias (__xstat64, __xstat) > > > > > > will be needed in those ARM files (which in turn use i386). > > > > The situation for Arm is fundamentally different from that for ARC. > > > > For ARC, you only need a single public stat structure (using 64-bit > > times and offsets). > > > > For Arm, a third public stat structure will need to be added > > alongside the existing two, initially used internally in > > 64-bit-time stat functions that aren't exported from glibc, > > eventually to be used with _TIME_BITS=64 with the 64-bit-time stat > > interfaces exported once all the _TIME_BITS=64 interfaces are > > ready. > > But surely that structure layout would be the same on ARM and ARC > as well as all other 32-bit architectures with _TIME_BITS=64, right? > For ARM32 stat case (current): ./io/stat.c -> __xstat -> ./sysdeps/unix/sysv/linux/xstat64.c and then struct stat64 buf is filled by the kernel. The generic idea (which requires converting ./sysdeps/unix/sysv/linux/xstat64.c) would be to use statx always in glibc instead of stat* syscalls (as it is done in sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c) To do that we do need in-glibc internal new type - namely struct stat64_time64 which would have always: __time64_t st_atime; (and st_mtime, st_ctime). instead of __time_t st_atime; and also introduce __cp_stat64_time64_statx along with __cp_stat64_statx as struct statx inherently support 64 bit time via struct statx_timestamp even on 32 bit archs. IMHO using statx as widely as possible in glibc is the easiest way to convert stat* and friends functions to support Y2038. > What's wrong with having a single implementation for the most > recent set of stat syscalls, with the older variants being only > compiled for architectures that need them to support _TIME_BITS=32 > and/or _FILE_OFFSET_BITS=32? > > Arnd Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de