glibc/sysdeps
Lukasz Majewski f1c314d275 y2038: linux: Provide __timespec_get64 implementation
This patch provides new instance of Linux specific timespec_get.c file placed
in ./sysdeps/unix/sysv/linux/.

When compared to this file version from ./time directory, it provides
__timespec_get64 explicit 64 bit function for getting 64 bit time in the
struct __timespec64 (for compilation using C11 standard).
Moreover, a 32 bit version - __timespec_get internally uses
__timespec_get64.

The __timespec_get is now supposed to be used on systems still supporting 32
bit time (__TIMESIZE != 64) - hence the necessary conversion to 32 bit struct
timespec.

Internally the timespec_get uses __clock_gettime64. 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 __timespec_get64 and __timespec_get.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2020-02-05 00:10:16 +01:00
..
aarch64 Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
alpha Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
arm Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
csky Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
generic powerpc: Move cache line size to rtld_global_ro 2020-01-17 09:05:03 -03:00
gnu Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
hppa Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
htl htl: Add internal version of __pthread_mutex_timedlock 2020-01-13 20:41:07 +01:00
hurd Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
i386 i386: Use ENTRY/END in assembly codes 2020-02-01 05:44:55 -08:00
ia64 Linux: Use system call tables during build 2020-01-02 10:18:23 +01:00
ieee754 Fix maybe-uninitialized error on powerpc 2020-01-17 21:02:13 -03:00
init_array Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
m68k Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
mach htl: Add internal version of __pthread_mutex_timedlock 2020-01-13 20:41:07 +01:00
microblaze Linux: Use system call tables during build 2020-01-02 10:18:23 +01:00
mips MIPS: Fix circular definition of __LDBL_MANT_DIG__ in ieee754.h 2020-01-08 14:28:23 -05:00
nios2 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
nptl nptl: Avoid using PTHREAD_MUTEX_DEFAULT in macro definition [BZ #25271] 2020-01-30 15:54:49 +01:00
posix getaddrinfo: Fix resource leak after strdup failure in gethosts [BZ #25425] 2020-01-20 18:37:13 +01:00
powerpc Fix array overflow in backtrace on PowerPC (bug 25423) 2020-01-21 15:26:57 +01:00
pthread Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
riscv Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
s390 Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
sh Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sparc Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00
unix y2038: linux: Provide __timespec_get64 implementation 2020-02-05 00:10:16 +01:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
wordsize-64 Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
x86 x86: Don't make 2 calls to dlerror () in a row 2020-02-01 05:43:34 -08:00
x86_64 Add libm_alias_finite for _finite symbols 2020-01-03 10:02:04 -03:00