This is the mail archive of the
mailing list for the glibc project.
Re: [PATCH v2 2/7] y2038: Introduce __ASSUME_64BIT_TIME define
30.04.2019 в 11:05:05 +0200 Lukasz Majewski написал:
> #if __TIMESIZE != 64
> # if __LINUX_KERNEL_VERSION >= 0x050100
> # define __ASSUME_64BIT_TIME 1
> # endif
I think __WORDSIZE would be more appropriate here than __TIMESIZE.
> IMHO, the abstraction would be:
> 1. The __ASSUME_64BIT_TIME is _never_ defined for 64 bit native systems
> 2. It is defined by default in:
> sysdeps/unix/sysv/linux/kernel-features.h for 32 bit systems (and the
> actual presence of the syscall is decided upon definitions of __NR_xxx*
> (i.e. # ifdef __NR_clock_settime64).
I think that __NR_clock_settime64 should be used unconditionally when
__ASSUME_64BIT_TIME is defined.
(__ASSUME_TIME64_SYSCALLS would probably be better name.)
> As those syscalls are provided on almost every 32 bit system now
> git grep -n "clock_settime64"
> gives support for: arm, arm64 (compat mode), m68k, microblaze, mips,
> parisc, powerpc, s390, sh, sparc, x86, xtensa
> So it would be reasonable to just add this __ASSUME definition code to
> sysdeps/unix/sysv/linux/kernel-features.h and #undef it for
> architectures not supporting it (i.e. c-sky and riscv).
I believe that the only 32-bit architecture without
__NR_clock_settime64 is x32. While newer 32-bit architectures like
riscv do not have __NR_clock_settime: