y2038: Define __suseconds64_t type to be used with struct __timeval64
authorLukasz Majewski <lukma@denx.de>
Sat, 25 Jan 2020 21:33:41 +0000 (22:33 +0100)
committerLukasz Majewski <lukma@denx.de>
Fri, 7 Feb 2020 16:55:07 +0000 (17:55 +0100)
The __suseconds64_t type is supposed to be the 64 bit type across all
architectures.

It would be mostly used internally in the glibc - however, when passed to
Linux kernel (very unlikely), if necessary, it shall be converted to 32
bit type (i.e. __suseconds_t)

Build tests:
./src/scripts/build-many-glibcs.py glibcs

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
bits/typesizes.h
posix/bits/types.h
sysdeps/mach/hurd/bits/typesizes.h
sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
sysdeps/unix/sysv/linux/generic/bits/typesizes.h
sysdeps/unix/sysv/linux/s390/bits/typesizes.h
sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
sysdeps/unix/sysv/linux/x86/bits/typesizes.h

index 014c9aa..5994089 100644 (file)
@@ -50,6 +50,7 @@
 #define __TIME_T_TYPE          __SLONGWORD_TYPE
 #define __USECONDS_T_TYPE      __U32_TYPE
 #define __SUSECONDS_T_TYPE     __SLONGWORD_TYPE
+#define __SUSECONDS64_T_TYPE   __SQUAD_TYPE
 #define __DADDR_T_TYPE         __S32_TYPE
 #define __KEY_T_TYPE           __S32_TYPE
 #define __CLOCKID_T_TYPE       __S32_TYPE
index adba926..a26cd38 100644 (file)
@@ -160,6 +160,7 @@ __STD_TYPE __ID_T_TYPE __id_t;              /* General type for IDs.  */
 __STD_TYPE __TIME_T_TYPE __time_t;     /* Seconds since the Epoch.  */
 __STD_TYPE __USECONDS_T_TYPE __useconds_t; /* Count of microseconds.  */
 __STD_TYPE __SUSECONDS_T_TYPE __suseconds_t; /* Signed count of microseconds.  */
+__STD_TYPE __SUSECONDS64_T_TYPE __suseconds64_t;
 
 __STD_TYPE __DADDR_T_TYPE __daddr_t;   /* The type of a disk address.  */
 __STD_TYPE __KEY_T_TYPE __key_t;       /* Type of an IPC key.  */
index b429379..10f3ac2 100644 (file)
@@ -50,6 +50,7 @@
 #define __TIME_T_TYPE          __SLONGWORD_TYPE
 #define __USECONDS_T_TYPE      __U32_TYPE
 #define __SUSECONDS_T_TYPE     __SLONGWORD_TYPE
+#define __SUSECONDS64_T_TYPE   __SQUAD_TYPE
 #define __DADDR_T_TYPE         __S32_TYPE
 #define __KEY_T_TYPE           __S32_TYPE
 #define __CLOCKID_T_TYPE       __S32_TYPE
index 30356ba..28ee3e5 100644 (file)
@@ -49,6 +49,7 @@
 #define __TIME_T_TYPE          __SLONGWORD_TYPE
 #define __USECONDS_T_TYPE      __U32_TYPE
 #define __SUSECONDS_T_TYPE     __S64_TYPE
+#define __SUSECONDS64_T_TYPE   __S64_TYPE
 #define __DADDR_T_TYPE         __S32_TYPE
 #define __KEY_T_TYPE           __S32_TYPE
 #define __CLOCKID_T_TYPE       __S32_TYPE
index a916dea..7c963e5 100644 (file)
@@ -51,6 +51,7 @@
 #define __TIME_T_TYPE          __SLONGWORD_TYPE
 #define __USECONDS_T_TYPE      __U32_TYPE
 #define __SUSECONDS_T_TYPE     __SLONGWORD_TYPE
+#define __SUSECONDS64_T_TYPE   __SQUAD_TYPE
 #define __DADDR_T_TYPE         __S32_TYPE
 #define __KEY_T_TYPE           __S32_TYPE
 #define __CLOCKID_T_TYPE       __S32_TYPE
index 45f7018..e775e46 100644 (file)
@@ -50,6 +50,7 @@
 #define __TIME_T_TYPE          __SLONGWORD_TYPE
 #define __USECONDS_T_TYPE      __U32_TYPE
 #define __SUSECONDS_T_TYPE     __SLONGWORD_TYPE
+#define __SUSECONDS64_T_TYPE   __SQUAD_TYPE
 #define __DADDR_T_TYPE         __S32_TYPE
 #define __KEY_T_TYPE           __S32_TYPE
 #define __CLOCKID_T_TYPE       __S32_TYPE
index 1f3bbc8..ac48c23 100644 (file)
@@ -50,6 +50,7 @@
 #define __TIME_T_TYPE          __SLONGWORD_TYPE
 #define __USECONDS_T_TYPE      __U32_TYPE
 #define __SUSECONDS_T_TYPE     __S32_TYPE
+#define __SUSECONDS64_T_TYPE   __SQUAD_TYPE
 #define __DADDR_T_TYPE         __S32_TYPE
 #define __KEY_T_TYPE           __S32_TYPE
 #define __CLOCKID_T_TYPE       __S32_TYPE
index d084145..87c50a4 100644 (file)
@@ -64,6 +64,7 @@
 #define __TIME_T_TYPE          __SYSCALL_SLONG_TYPE
 #define __USECONDS_T_TYPE      __U32_TYPE
 #define __SUSECONDS_T_TYPE     __SYSCALL_SLONG_TYPE
+#define __SUSECONDS64_T_TYPE   __SQUAD_TYPE
 #define __DADDR_T_TYPE         __S32_TYPE
 #define __KEY_T_TYPE           __S32_TYPE
 #define __CLOCKID_T_TYPE       __S32_TYPE