Message ID | 20200129125914.11221-1-lukma@denx.de |
---|---|
State | New |
Headers | show |
Series | [v3,1/7] y2038: Define __suseconds64_t type to be used with struct __timeval64 | expand |
On Wed, Jan 29, 2020 at 4:59 AM Lukasz Majewski <lukma@denx.de> wrote: > > 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> Alistair > > --- > Changes for v3: > - Fix indentation (from spaces to tab) for > #define __SUSECONDS64_T_TYPE __SQUAD_TYPE > > Changes for v2: > - New patch > --- > bits/typesizes.h | 1 + > posix/bits/types.h | 1 + > sysdeps/mach/hurd/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/alpha/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/generic/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/s390/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/sparc/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/x86/bits/typesizes.h | 1 + > 8 files changed, 8 insertions(+) > > diff --git a/bits/typesizes.h b/bits/typesizes.h > index 014c9aab21..599408973e 100644 > --- a/bits/typesizes.h > +++ b/bits/typesizes.h > @@ -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 > diff --git a/posix/bits/types.h b/posix/bits/types.h > index adba926b45..a26cd383e4 100644 > --- a/posix/bits/types.h > +++ b/posix/bits/types.h > @@ -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. */ > diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h > index b429379d7d..10f3ac231a 100644 > --- a/sysdeps/mach/hurd/bits/typesizes.h > +++ b/sysdeps/mach/hurd/bits/typesizes.h > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h > index 30356ba6d6..489e5d12e2 100644 > --- a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h > @@ -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 __SQUAD_TYPE > #define __DADDR_T_TYPE __S32_TYPE > #define __KEY_T_TYPE __S32_TYPE > #define __CLOCKID_T_TYPE __S32_TYPE > diff --git a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h > index a916dea047..7c963e523e 100644 > --- a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h > index 45f70184ea..e775e460bb 100644 > --- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h > index 1f3bbc8002..ac48c23e37 100644 > --- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h > @@ -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 > diff --git a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h > index d084145597..87c50a4f32 100644 > --- a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h > @@ -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 > -- > 2.20.1 >
On 29/01/2020 09:59, Lukasz Majewski wrote: > 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 > > --- > Changes for v3: > - Fix indentation (from spaces to tab) for > #define __SUSECONDS64_T_TYPE __SQUAD_TYPE > > Changes for v2: > - New patch LGTM, with a small nit below. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org> > --- > bits/typesizes.h | 1 + > posix/bits/types.h | 1 + > sysdeps/mach/hurd/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/alpha/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/generic/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/s390/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/sparc/bits/typesizes.h | 1 + > sysdeps/unix/sysv/linux/x86/bits/typesizes.h | 1 + > 8 files changed, 8 insertions(+) > > diff --git a/bits/typesizes.h b/bits/typesizes.h > index 014c9aab21..599408973e 100644 > --- a/bits/typesizes.h > +++ b/bits/typesizes.h > @@ -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 Ok. > diff --git a/posix/bits/types.h b/posix/bits/types.h > index adba926b45..a26cd383e4 100644 > --- a/posix/bits/types.h > +++ b/posix/bits/types.h > @@ -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. */ Ok. > diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h > index b429379d7d..10f3ac231a 100644 > --- a/sysdeps/mach/hurd/bits/typesizes.h > +++ b/sysdeps/mach/hurd/bits/typesizes.h > @@ -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 Ok. > diff --git a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h > index 30356ba6d6..489e5d12e2 100644 > --- a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h > @@ -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 __SQUAD_TYPE > #define __DADDR_T_TYPE __S32_TYPE > #define __KEY_T_TYPE __S32_TYPE > #define __CLOCKID_T_TYPE __S32_TYPE I think it should use __S64_TYPE to follow current file convention. > diff --git a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h > index a916dea047..7c963e523e 100644 > --- a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h > @@ -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 Ok. > diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h > index 45f70184ea..e775e460bb 100644 > --- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h > @@ -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 Ok. > diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h > index 1f3bbc8002..ac48c23e37 100644 > --- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h > @@ -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 Ok. > diff --git a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h > index d084145597..87c50a4f32 100644 > --- a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h > +++ b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h > @@ -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 > Ok.
diff --git a/bits/typesizes.h b/bits/typesizes.h index 014c9aab21..599408973e 100644 --- a/bits/typesizes.h +++ b/bits/typesizes.h @@ -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 diff --git a/posix/bits/types.h b/posix/bits/types.h index adba926b45..a26cd383e4 100644 --- a/posix/bits/types.h +++ b/posix/bits/types.h @@ -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. */ diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h index b429379d7d..10f3ac231a 100644 --- a/sysdeps/mach/hurd/bits/typesizes.h +++ b/sysdeps/mach/hurd/bits/typesizes.h @@ -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 diff --git a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h index 30356ba6d6..489e5d12e2 100644 --- a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h +++ b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h @@ -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 __SQUAD_TYPE #define __DADDR_T_TYPE __S32_TYPE #define __KEY_T_TYPE __S32_TYPE #define __CLOCKID_T_TYPE __S32_TYPE diff --git a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h index a916dea047..7c963e523e 100644 --- a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h +++ b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h @@ -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 diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h index 45f70184ea..e775e460bb 100644 --- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h +++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h @@ -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 diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h index 1f3bbc8002..ac48c23e37 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h @@ -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 diff --git a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h index d084145597..87c50a4f32 100644 --- a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h +++ b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h @@ -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