public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Carlos O'Donell <carlos@redhat.com>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>,
	libc-alpha@sourceware.org
Subject: Re: [PATCH v2 14/25] y2038: Use a common definition for msqid_ds
Date: Fri, 4 Jun 2021 15:38:06 -0400	[thread overview]
Message-ID: <c8ff63aa-8a47-05a8-0228-66596d31dff9@redhat.com> (raw)
In-Reply-To: <20210518205613.1487824-15-adhemerval.zanella@linaro.org>

On 5/18/21 4:56 PM, Adhemerval Zanella wrote:
> From: Lukasz Majewski <lukma@denx.de>
> 
> Instead of replicate the same definitions from struct_msqid64_ds.h
> on the multiple struct_msqid_ds.h, use a common header which is included
> when required (struct_msqid64_ds_helper.h).
> 
> The __USE_TIME_BITS64 is not defined internally yet, although the
> internal header is used when building the 64-bit stat implementations.

Requesting a v3 please.

Please add the __glibc_reserved* members to the structures to preserve
maximum compatibility with the kernel structure.

What I would like to see is that __glibc_reserved4 and __glibc_reserved5
are *preserved* for both ABIs in the dual-time case. The kernel for msqid
still has the following:

 26 struct msqid64_ds {
 27         struct ipc64_perm msg_perm;
 28 #if __BITS_PER_LONG == 64
 29         long             msg_stime;     /* last msgsnd time */
 30         long             msg_rtime;     /* last msgrcv time */
 31         long             msg_ctime;     /* last change time */
 32 #else
 33         unsigned long   msg_stime;      /* last msgsnd time */
 34         unsigned long   msg_stime_high;
 35         unsigned long   msg_rtime;      /* last msgrcv time */
 36         unsigned long   msg_rtime_high;
 37         unsigned long   msg_ctime;      /* last change time */
 38         unsigned long   msg_ctime_high;
 39 #endif
 40         unsigned long   msg_cbytes;     /* current number of bytes on queue */
 41         unsigned long   msg_qnum;       /* number of messages in queue */
 42         unsigned long    msg_qbytes;    /* max number of bytes on queue */
 43         __kernel_pid_t msg_lspid;       /* pid of last msgsnd */
 44         __kernel_pid_t msg_lrpid;       /* last receive pid */
 45         unsigned long    __unused4;
 46         unsigned long    __unused5;
 47 };

For maximum compatibility with future kernel changes we should keep
the unused fields in the glibc equivalent structure. If the values are
ever used then they would already be allocated as part of the size of
the structure without the need for an ABI change. Given that these are
somewhat legacy APIs we should be aiming for preserving existing behaviour
rather than aiming for the smallest possible size structure.

On i686 the new 64-bit time_t struct is only 80 bytes, while the original
struct size is 88 bytes. Adding the reserved entries brings this back to
88 bytes in the new ABI. We can add static asserts if we think we need to
check exactly for alignment of 64-bit time_t, but since we copy from a
kernel structure I'm largely worried about the ABI being too small to cary
the information that we might need to copy from the matching kernel struct.

See my suggestions below for changes.

> ---
>  sysdeps/unix/sysv/linux/Makefile              |  3 +-
>  .../linux/bits/struct_stat_time64_helper.h    |  2 +-
>  .../sysv/linux/bits/types/struct_msqid64_ds.h | 10 +------
>  .../bits/types/struct_msqid64_ds_helper.h     | 28 +++++++++++++++++++
>  .../sysv/linux/bits/types/struct_msqid_ds.h   | 12 ++++++--
>  .../linux/hppa/bits/types/struct_msqid_ds.h   | 12 ++++++--
>  .../linux/mips/bits/types/struct_msqid_ds.h   | 18 ++++++++----
>  .../powerpc/bits/types/struct_msqid_ds.h      | 12 ++++++--
>  .../linux/sparc/bits/types/struct_msqid_ds.h  | 12 ++++++--
>  9 files changed, 80 insertions(+), 29 deletions(-)
>  create mode 100644 sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
> 
> diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile
> index f83f147ed1..193b7c46b9 100644
> --- a/sysdeps/unix/sysv/linux/Makefile
> +++ b/sysdeps/unix/sysv/linux/Makefile
> @@ -101,7 +101,8 @@ sysdep_headers += sys/mount.h sys/acct.h \
>  		  bits/types/struct_shmid_ds.h \
>  		  bits/ipc-perm.h \
>  		  bits/struct_stat.h \
> -		  bits/struct_stat_time64_helper.h
> +		  bits/struct_stat_time64_helper.h \
> +		  bits/types/struct_msqid64_ds_helper.h

OK. Create new helper.

>  
>  tests += tst-clone tst-clone2 tst-clone3 tst-fanotify tst-personality \
>  	 tst-quota tst-sync_file_range tst-sysconf-iov_max tst-ttyname \
> diff --git a/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h b/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
> index 77385e9073..b37056f5c4 100644
> --- a/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
> +++ b/sysdeps/unix/sysv/linux/bits/struct_stat_time64_helper.h
> @@ -1,4 +1,4 @@
> -/* Definition for helper to define struct stat with 64 bit time.
> +/* Common defitions for struct stat with 64 bit time.

This is a spurious cleanup from the last patch IMO. If possible please move it
into the previous commit.

s/defitions/definitions/g

>     Copyright (C) 2021 Free Software Foundation, Inc.
>     This file is part of the GNU C Library.
>  
> diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
> index 43e8cd7cfc..992734914a 100644
> --- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
> +++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds.h
> @@ -25,14 +25,6 @@
>  #else
>  struct __msqid64_ds
>  {
> -  struct ipc_perm msg_perm;	/* structure describing operation permission */
> -  __time64_t msg_stime;		/* time of last msgsnd command */
> -  __time64_t msg_rtime;		/* time of last msgsnd command */
> -  __time64_t msg_ctime;		/* time of last change */
> -  __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
> -  msgqnum_t msg_qnum;		/* number of messages currently on queue */
> -  msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
> -  __pid_t msg_lspid;		/* pid of last msgsnd() */
> -  __pid_t msg_lrpid;		/* pid of last msgrcv() */
> +# include <bits/types/struct_msqid64_ds_helper.h>

OK. Used unconditionally since this is 64-bit time_t.

>  };
>  #endif
> diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
> new file mode 100644
> index 0000000000..02dfddaa2b
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid64_ds_helper.h
> @@ -0,0 +1,28 @@
> +/* Common defintions for struct msqid_ds with 64 bit time.

s/defintions/definitions/g

> +   Copyright (C) 2021 Free Software Foundation, Inc.
> +   This file is part of the GNU C Library.
> +
> +   The GNU C Library is free software; you can redistribute it and/or
> +   modify it under the terms of the GNU Lesser General Public
> +   License as published by the Free Software Foundation; either
> +   version 2.1 of the License, or (at your option) any later version.
> +
> +   The GNU C Library is distributed in the hope that it will be useful,
> +   but WITHOUT ANY WARRANTY; without even the implied warranty of
> +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> +   Lesser General Public License for more details.
> +
> +   You should have received a copy of the GNU Lesser General Public
> +   License along with the GNU C Library.  If not, see
> +   <https://www.gnu.org/licenses/>.  */
> +

Reviewing...

> +  /* Content of internal __msqid64_ds.  */
> +  struct ipc_perm msg_perm;	/* structure describing operation permission */

OK.

> +  __time64_t msg_stime;		/* time of last msgsnd command */
> +  __time64_t msg_rtime;		/* time of last msgsnd command */
> +  __time64_t msg_ctime;		/* time of last change */

OK. Usually a tuple of * and *_high (endian swapping for order applied).

> +  __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */

OK.

> +  msgqnum_t msg_qnum;		/* number of messages currently on queue */

OK.

> +  msglen_t msg_qbytes;		/* max number of bytes allowed on queue */

OK.

> +  __pid_t msg_lspid;		/* pid of last msgsnd() */
> +  __pid_t msg_lrpid;		/* pid of last msgrcv() */

OK.

Add __glibc_reserved4/5 entries here.

> diff --git a/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
> index 1ed041ae30..ae10a48452 100644
> --- a/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
> +++ b/sysdeps/unix/sysv/linux/bits/types/struct_msqid_ds.h
> @@ -20,23 +20,28 @@
>  # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
>  #endif
>  
> +#include <bits/types/time_t.h>
> +
>  /* Structure of record for one message inside the kernel.
>     The type `struct msg' is opaque.  */
>  struct msqid_ds
>  {
> +#ifdef __USE_TIME_BITS64
> +# include <bits/types/struct_msqid64_ds_helper.h>

OK. Use helper.

> +#else
>    struct ipc_perm msg_perm;	/* structure describing operation permission */
> -#if __TIMESIZE == 32
> +# if __TIMESIZE == 32
>    __time_t msg_stime;		/* time of last msgsnd command */
>    unsigned long int __msg_stime_high;
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    unsigned long int __msg_rtime_high;
>    __time_t msg_ctime;		/* time of last change */
>    unsigned long int __msg_ctime_high;
> -#else
> +# else
>    __time_t msg_stime;		/* time of last msgsnd command */
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    __time_t msg_ctime;		/* time of last change */
> -#endif
> +# endif
>    __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
>    msgqnum_t msg_qnum;		/* number of messages currently on queue */
>    msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
> @@ -44,4 +49,5 @@ struct msqid_ds
>    __pid_t msg_lrpid;		/* pid of last msgrcv() */
>    __syscall_ulong_t __glibc_reserved4;
>    __syscall_ulong_t __glibc_reserved5;
> +#endif
>  };
> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
> index d943edeb78..5b82dd7f5e 100644
> --- a/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
> +++ b/sysdeps/unix/sysv/linux/hppa/bits/types/struct_msqid_ds.h
> @@ -20,23 +20,28 @@
>  # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
>  #endif
>  
> +#include <bits/types/time_t.h>
> +
>  /* Structure of record for one message inside the kernel.
>     The type `struct msg' is opaque.  */
>  struct msqid_ds
>  {
> +#ifdef __USE_TIME_BITS64
> +# include <bits/types/struct_msqid64_ds_helper.h>

OK. Use helper.

> +#else
>    struct ipc_perm msg_perm;	/* structure describing operation permission */
> -#if __TIMESIZE == 32
> +# if __TIMESIZE == 32
>    unsigned long int __msg_stime_high;
>    __time_t msg_stime;		/* time of last msgsnd command */
>    unsigned long int __msg_rtime_high;
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    unsigned long int __msg_ctime_high;
>    __time_t msg_ctime;		/* time of last change */
> -#else
> +# else
>    __time_t msg_stime;		/* time of last msgsnd command */
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    __time_t msg_ctime;		/* time of last change */
> -#endif
> +# endif
>    __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
>    msgqnum_t msg_qnum;		/* number of messages currently on queue */
>    msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
> @@ -44,4 +49,5 @@ struct msqid_ds
>    __pid_t msg_lrpid;		/* pid of last msgrcv() */
>    __syscall_ulong_t __glibc_reserved4;
>    __syscall_ulong_t __glibc_reserved5;
> +#endif
>  };
> diff --git a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
> index bdca5e5fe2..00c1804245 100644
> --- a/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
> +++ b/sysdeps/unix/sysv/linux/mips/bits/types/struct_msqid_ds.h
> @@ -20,32 +20,37 @@
>  # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
>  #endif
>  
> +#include <bits/types/time_t.h>
> +
>  /* Structure of record for one message inside the kernel.
>     The type `struct msg' is opaque.  */
>  struct msqid_ds
>  {
> +#ifdef __USE_TIME_BITS64
> +# include <bits/types/struct_msqid64_ds_helper.h>

OK. Use helper.

> +#else
>    struct ipc_perm msg_perm;	/* structure describing operation permission */
> -#if __TIMESIZE == 32
> -# ifdef __MIPSEL__
> +# if __TIMESIZE == 32
> +#  ifdef __MIPSEL__
>    __time_t msg_stime;		/* time of last msgsnd command */
>    unsigned long int __msg_stime_high;
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    unsigned long int __msg_rtime_high;
>    __time_t msg_ctime;		/* time of last change */
>    unsigned long int __msg_ctime_high;
> -# else
> +#  else
>    unsigned long int __msg_stime_high;
>    __time_t msg_stime;		/* time of last msgsnd command */
>    unsigned long int __msg_rtime_high;
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    unsigned long int __msg_ctime_high;
>    __time_t msg_ctime;		/* time of last change */
> -# endif
> -#else
> +#  endif
> +# else
>    __time_t msg_stime;		/* time of last msgsnd command */
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    __time_t msg_ctime;		/* time of last change */
> -#endif
> +# endif
>    __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
>    msgqnum_t msg_qnum;		/* number of messages currently on queue */
>    msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
> @@ -53,4 +58,5 @@ struct msqid_ds
>    __pid_t msg_lrpid;		/* pid of last msgrcv() */
>    __syscall_ulong_t __glibc_reserved4;
>    __syscall_ulong_t __glibc_reserved5;
> +#endif
>  };
> diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
> index 72842ed747..8c296d2342 100644
> --- a/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
> +++ b/sysdeps/unix/sysv/linux/powerpc/bits/types/struct_msqid_ds.h
> @@ -20,23 +20,28 @@
>  # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
>  #endif
>  
> +#include <bits/types/time_t.h>
> +
>  /* Structure of record for one message inside the kernel.
>     The type `struct msg' is opaque.  */
>  struct msqid_ds
>  {
> +#ifdef __USE_TIME_BITS64
> +# include <bits/types/struct_msqid64_ds_helper.h>

OK.

> +#else
>    struct ipc_perm msg_perm;	/* structure describing operation permission */
> -#if __TIMESIZE == 32
> +# if __TIMESIZE == 32
>    unsigned long int __msg_stime_high;
>    __time_t msg_stime;		/* time of last msgsnd command */
>    unsigned long int __msg_rtime_high;
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    unsigned long int __msg_ctime_high;
>    __time_t msg_ctime;		/* time of last change */
> -#else
> +# else
>    __time_t msg_stime;		/* time of last msgsnd command */
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    __time_t msg_ctime;		/* time of last change */
> -#endif
> +# endif
>    __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
>    msgqnum_t msg_qnum;		/* number of messages currently on queue */
>    msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
> @@ -44,4 +49,5 @@ struct msqid_ds
>    __pid_t msg_lrpid;		/* pid of last msgrcv() */
>    __syscall_ulong_t __glibc_reserved4;
>    __syscall_ulong_t __glibc_reserved5;
> +#endif
>  };
> diff --git a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
> index 22e1839de1..3c1b68ccc0 100644
> --- a/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
> +++ b/sysdeps/unix/sysv/linux/sparc/bits/types/struct_msqid_ds.h
> @@ -20,23 +20,28 @@
>  # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
>  #endif
>  
> +#include <bits/types/time_t.h>
> +
>  /* Structure of record for one message inside the kernel.
>     The type `struct msg' is opaque.  */
>  struct msqid_ds
>  {
> +#ifdef __USE_TIME_BITS64
> +# include <bits/types/struct_msqid64_ds_helper.h>

OK. Use helper.

> +#else
>    struct ipc_perm msg_perm;	/* structure describing operation permission */
> -#if __TIMESIZE == 32
> +# if __TIMESIZE == 32
>    unsigned long int __msg_stime_high;
>    __time_t msg_stime;		/* time of last msgsnd command */
>    unsigned long int __msg_rtime_high;
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    unsigned long int __msg_ctime_high;
>    __time_t msg_ctime;		/* time of last change */
> -#else
> +# else
>    __time_t msg_stime;		/* time of last msgsnd command */
>    __time_t msg_rtime;		/* time of last msgsnd command */
>    __time_t msg_ctime;		/* time of last change */
> -#endif
> +# endif
>    __syscall_ulong_t __msg_cbytes; /* current number of bytes on queue */
>    msgqnum_t msg_qnum;		/* number of messages currently on queue */
>    msglen_t msg_qbytes;		/* max number of bytes allowed on queue */
> @@ -44,4 +49,5 @@ struct msqid_ds
>    __pid_t msg_lrpid;		/* pid of last msgrcv() */
>    __syscall_ulong_t __glibc_reserved4;
>    __syscall_ulong_t __glibc_reserved5;
> +#endif
>  };
> 


-- 
Cheers,
Carlos.


  reply	other threads:[~2021-06-04 19:38 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-18 20:55 [PATCH v2 00/25] Add 64 bit time support on legacy ABIs Adhemerval Zanella
2021-05-18 20:55 ` [PATCH v2 01/25] linux: mips: Split libpthread.abilist in n32 and n64 Adhemerval Zanella
2021-05-19  8:24   ` Lukasz Majewski
2021-05-20  6:38   ` Florian Weimer
2021-05-20 10:43     ` Adhemerval Zanella
2021-06-04 19:29   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 02/25] linux: mips: Split librt.abilist " Adhemerval Zanella
2021-05-19  8:25   ` Lukasz Majewski
2021-06-04 19:29   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 03/25] linux: mips: Split libanl.abilist " Adhemerval Zanella
2021-05-19  8:25   ` Lukasz Majewski
2021-06-04 19:30   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 04/25] linux: s390: Add libanl.abilist in s390 and s390x Adhemerval Zanella
2021-05-19  8:26   ` Lukasz Majewski
2021-06-04 19:30   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 05/25] linux: Add fallback for 64-bit time_t SO_{RCV, SND}TIMEO Adhemerval Zanella
2021-05-19  8:36   ` [PATCH v2 05/25] linux: Add fallback for 64-bit time_t SO_{RCV,SND}TIMEO Lukasz Majewski
2021-05-20  6:44   ` [PATCH v2 05/25] linux: Add fallback for 64-bit time_t SO_{RCV, SND}TIMEO Florian Weimer
2021-05-20 18:01     ` Adhemerval Zanella
2021-05-21 18:37       ` Florian Weimer
2021-05-21 19:17         ` Adhemerval Zanella
2021-06-04 19:30   ` [PATCH v2 05/25] linux: Add fallback for 64-bit time_t SO_{RCV,SND}TIMEO Carlos O'Donell
2021-06-07 17:52     ` Adhemerval Zanella
2021-05-18 20:55 ` [PATCH v2 06/25] linux: Add fallback for 64-bit time_t SO_TIMESTAMP{NS} Adhemerval Zanella
2021-05-19  8:50   ` Lukasz Majewski
2021-05-20  6:50   ` Florian Weimer
2021-05-20 18:46     ` Adhemerval Zanella
2021-05-21 18:38       ` Florian Weimer
2021-05-21 19:02         ` Adhemerval Zanella
2021-06-04 19:30   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 07/25] linux: Add recvvmsg " Adhemerval Zanella
2021-05-19  9:02   ` Lukasz Majewski
2021-06-04 19:30   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 08/25] y2038: Add __USE_TIME_BITS64 support for time_t Adhemerval Zanella
2021-05-19  9:02   ` Lukasz Majewski
2021-06-04 19:30   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 09/25] y2038: Add __USE_TIME_BITS64 support for struct timeval Adhemerval Zanella
2021-05-19  9:03   ` Lukasz Majewski
2021-06-04 19:31   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 10/25] y2038: Add __USE_TIME_BITS64 support for struct timespec Adhemerval Zanella
2021-05-19  9:03   ` Lukasz Majewski
2021-06-04 19:31   ` Carlos O'Donell
2021-05-18 20:55 ` [PATCH v2 11/25] y2038: Add __USE_TIME_BITS64 support for struct utimbuf Adhemerval Zanella
2021-05-19  9:04   ` Lukasz Majewski
2021-06-04 19:31   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 12/25] y2038: linux: Add __USE_TIME_BITS64 support for struct timex Adhemerval Zanella
2021-05-19  9:04   ` Lukasz Majewski
2021-06-04 19:31   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 13/25] y2038: Use a common definition for stat Adhemerval Zanella
2021-06-04 19:37   ` Carlos O'Donell
2021-06-07 18:07     ` Adhemerval Zanella
2021-05-18 20:56 ` [PATCH v2 14/25] y2038: Use a common definition for msqid_ds Adhemerval Zanella
2021-06-04 19:38   ` Carlos O'Donell [this message]
2021-06-07 18:29     ` Adhemerval Zanella
2021-05-18 20:56 ` [PATCH v2 15/25] y2038: Use a common definition for semid_ds Adhemerval Zanella
2021-05-19  9:09   ` Lukasz Majewski
2021-06-04 19:38   ` Carlos O'Donell
2021-06-07 18:46     ` Adhemerval Zanella
2021-05-18 20:56 ` [PATCH v2 16/25] y2038: Use a common definition for shmid_ds Adhemerval Zanella
2021-05-19  9:09   ` Lukasz Majewski
2021-06-04 19:38   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 17/25] y2038: Add __USE_TIME_BITS64 support for socket-constants.h Adhemerval Zanella
2021-05-19  9:13   ` Lukasz Majewski
2021-06-04 19:38   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 18/25] time: Add 64 bit time support for getdate Adhemerval Zanella
2021-05-19  9:15   ` Lukasz Majewski
2021-06-04 19:38   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 19/25] y2038: Add support for 64 bit time on legacy ABIs Adhemerval Zanella
2021-05-19  9:18   ` Lukasz Majewski
2021-05-20  6:58   ` Florian Weimer
2021-05-20 10:37     ` Adhemerval Zanella
2021-06-04 19:38   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 20/25] posix: Add glob64 with 64 bit time_t support Adhemerval Zanella
2021-05-19 10:44   ` Lukasz Majewski
2021-06-04 19:39   ` Carlos O'Donell
2021-06-07 18:52     ` Adhemerval Zanella
2021-05-18 20:56 ` [PATCH v2 21/25] io: Add fts64 " Adhemerval Zanella
2021-05-19 10:50   ` Lukasz Majewski
2021-06-04 19:39   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 22/25] io: Add ftw64 " Adhemerval Zanella
2021-05-19 10:57   ` Lukasz Majewski
2021-06-04 19:39   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 23/25] libsupport: Add 64 bit time_t support for time functions Adhemerval Zanella
2021-05-19 11:00   ` Lukasz Majewski
2021-06-04 19:39   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 24/25] libsupport: Add 64 bit time_t support for stat functions Adhemerval Zanella
2021-05-19 11:04   ` Lukasz Majewski
2021-06-04 19:39   ` Carlos O'Donell
2021-05-18 20:56 ` [PATCH v2 25/25] y2038: Add test coverage Adhemerval Zanella
2021-05-19 11:08   ` Lukasz Majewski
2021-06-04 19:39   ` Carlos O'Donell
2021-06-04 19:29 ` [PATCH v2 00/25] Add 64 bit time support on legacy ABIs Carlos O'Donell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c8ff63aa-8a47-05a8-0228-66596d31dff9@redhat.com \
    --to=carlos@redhat.com \
    --cc=adhemerval.zanella@linaro.org \
    --cc=libc-alpha@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).