From: Lukasz Majewski Date: Thu, 16 Jan 2020 22:14:27 +0000 (+0100) Subject: y2038: linux: Provide __settimeofday64 implementation X-Git-Tag: glibc-2.32~742 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d2e3b697da2433c08702f95c76458c51545c3df1;p=thirdparty%2Fglibc.git y2038: linux: Provide __settimeofday64 implementation This patch provides new __settimeofday64 explicit 64 bit function for setting 64 bit time in the kernel (by internally calling __clock_settime64). Moreover, a 32 bit version - __settimeofday has been refactored to internally use __settimeofday64. The __settimeofday is now supposed to be used on systems still supporting 32 bit time (__TIMESIZE != 64) - hence the necessary conversion of struct timeval to 64 bit struct __timespec64. Internally the settimeofday uses __settimeofday64. This patch is necessary for having architectures with __WORDSIZE == 32 Y2038 safe. Build tests: ./src/scripts/build-many-glibcs.py glibcs Run-time tests: - Run specific tests on ARM/x86 32bit systems (qemu): https://github.com/lmajewski/meta-y2038 and run tests: https://github.com/lmajewski/y2038-tests/commits/master Above tests were performed with Y2038 redirection applied as well as without to test proper usage of both __settimeofday64 and __settimeofday. Reviewed-by: Adhemerval Zanella --- diff --git a/include/time.h b/include/time.h index a80953d5dda..73f66277acf 100644 --- a/include/time.h +++ b/include/time.h @@ -8,6 +8,7 @@ # include