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 05/25] linux: Add fallback for 64-bit time_t SO_{RCV,SND}TIMEO
Date: Fri, 4 Jun 2021 15:30:33 -0400	[thread overview]
Message-ID: <c651333e-132b-de5f-4f07-c208cd5a214f@redhat.com> (raw)
In-Reply-To: <20210518205613.1487824-6-adhemerval.zanella@linaro.org>

On 5/18/21 4:55 PM, Adhemerval Zanella wrote:
> The constant values will be changed for __TIMESIZE=64, so binaries built
> with 64-bit time support might fail to work properly on old kernels.
> Both {get,set}sockopt will retry the syscall with the old constant
> values and the timeout value adjusted when kernel returns ENOTPROTOPT.
> 
> It also adds an internal only SO_{RCV,SND}TIMEO where
> COMPAT_SO_{RCV,SND}TIMEO_OLD indicates pre 32 bit time support and
> COMPAT_SO_{RCV,SND}TIMEO_NEW indicates time64 support.  It allows to
> refer to constant independently of the time_t ABI and kernel version
> used.
> 
> Checked on x86_64-linux-gnu and i686-linux-gnu (on 5.4 and on 4.15
> kernel).

Requesting a v3 please.

This needs fixing to match POSIX requirements for silent truncation.

I agree with Florian, if POSIX requires it, and the Kernel truncates,
then we should keep doing the same. There don't seem to be much better
alternatives that don't themselves have corner cases that break existing
code that expects these behaviours.

> ---
>  sysdeps/unix/sysv/linux/getsockopt.c          | 67 +++++++++++++++--
>  .../sysv/linux/hppa/socket-constants-time64.h | 30 ++++++++
>  .../sysv/linux/mips/socket-constants-time64.h | 30 ++++++++
>  .../linux/powerpc/socket-constants-time64.h   | 30 ++++++++
>  sysdeps/unix/sysv/linux/setsockopt.c          | 71 ++++++++++++++++---
>  .../unix/sysv/linux/socket-constants-time64.h | 30 ++++++++
>  .../linux/sparc/socket-constants-time64.h     | 30 ++++++++
>  7 files changed, 273 insertions(+), 15 deletions(-)
>  create mode 100644 sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
>  create mode 100644 sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
>  create mode 100644 sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
>  create mode 100644 sysdeps/unix/sysv/linux/socket-constants-time64.h
>  create mode 100644 sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
> 
> diff --git a/sysdeps/unix/sysv/linux/getsockopt.c b/sysdeps/unix/sysv/linux/getsockopt.c
> index 76ee8a94d6..c8e502d976 100644
> --- a/sysdeps/unix/sysv/linux/getsockopt.c
> +++ b/sysdeps/unix/sysv/linux/getsockopt.c
> @@ -15,16 +15,15 @@
>     License along with the GNU C Library; if not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> -#include <errno.h>
> -#include <signal.h>
>  #include <sys/socket.h>
> -
> +#include <time.h>
> +#include <sysdep.h>
>  #include <socketcall.h>
> -#include <kernel-features.h>
> -#include <sys/syscall.h>
> +#include <socket-constants-time64.h>
>  
> -int
> -__getsockopt (int fd, int level, int optname, void *optval, socklen_t *len)
> +static int
> +getsockopt_syscall (int fd, int level, int optname, void *optval,
> +		    socklen_t *len)
>  {
>  #ifdef __ASSUME_GETSOCKOPT_SYSCALL
>    return INLINE_SYSCALL (getsockopt, 5, fd, level, optname, optval, len);
> @@ -32,4 +31,58 @@ __getsockopt (int fd, int level, int optname, void *optval, socklen_t *len)
>    return SOCKETCALL (getsockopt, fd, level, optname, optval, len);
>  #endif
>  }
> +
> +#ifndef __ASSUME_TIME64_SYSCALLS
> +static int
> +getsockopt32 (int fd, int level, int optname, void *optval,
> +	      socklen_t *len)
> +{
> +  int r = -1;
> +
> +  if (level != SOL_SOCKET)
> +    return r;
> +
> +  switch (optname)
> +    {
> +    case COMPAT_SO_RCVTIMEO_NEW:
> +    case COMPAT_SO_SNDTIMEO_NEW:
> +      {
> +        if (*len < sizeof (struct __timeval64))
> +	  {
> +	    __set_errno (EINVAL);
> +	    break;


https://pubs.opengroup.org/onlinepubs/9699919799/functions/getsockopt.html
~~~
If the size of the option value is greater than option_len,
the value stored in the object pointed to by the option_value
argument shall be silently truncated.
~~~

> +	  }
> +
> +	if (optname == COMPAT_SO_RCVTIMEO_NEW)
> +	  optname = COMPAT_SO_RCVTIMEO_OLD;
> +	if (optname == COMPAT_SO_SNDTIMEO_NEW)
> +	  optname = COMPAT_SO_SNDTIMEO_OLD;
> +
> +	struct __timeval32 tv32;
> +	r = getsockopt_syscall (fd, level, optname, &tv32,
> +				(socklen_t[]) { sizeof tv32 });
> +	if (r < 0)
> +	  break;
> +	struct __timeval64 *tv64 = (struct __timeval64 *) optval;
> +	*tv64 = valid_timeval32_to_timeval64 (tv32);
> +	*len = sizeof (*tv64);
> +      }
> +    }
> +
> +  return r;
> +}
> +#endif
> +
> +int
> +__getsockopt (int fd, int level, int optname, void *optval, socklen_t *len)
> +{
> +  int r = getsockopt_syscall (fd, level, optname, optval, len);
> +
> +#ifndef __ASSUME_TIME64_SYSCALLS
> +  if (r == -1 && errno == ENOPROTOOPT)
> +    r = getsockopt32 (fd, level, optname, optval, len);
> +#endif
> +
> + return r;
> +}
>  weak_alias (__getsockopt, getsockopt)
> diff --git a/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h b/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
> new file mode 100644
> index 0000000000..ea721e0fc2
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/hppa/socket-constants-time64.h
> @@ -0,0 +1,30 @@
> +/* Compat socket constants used in 64 bit compat code.
> +   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/>.  */
> +
> +#ifndef _SOCKET_CONSTANTS_TIME64_H
> +#define _SOCKET_CONSTANTS_TIME64_H
> +
> +/* The compat code requires the SO_* constants used for both 32 and 64 bit
> +   time_t, however they were only added on v5.1 kernel.  */
> +
> +#define COMPAT_SO_RCVTIMEO_OLD 4102
> +#define COMPAT_SO_SNDTIMEO_OLD 4101
> +#define COMPAT_SO_RCVTIMEO_NEW 16448
> +#define COMPAT_SO_SNDTIMEO_NEW 16449
> +
> +#endif

OK.

> diff --git a/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h b/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
> new file mode 100644
> index 0000000000..ab8bd62853
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/mips/socket-constants-time64.h
> @@ -0,0 +1,30 @@
> +/* Compat socket constants used in 64 bit compat code.
> +   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/>.  */
> +
> +#ifndef _SOCKET_CONSTANTS_TIME64_H
> +#define _SOCKET_CONSTANTS_TIME64_H
> +
> +/* The compat code requires the SO_* constants used for both 32 and 64 bit
> +   time_t, however they were only added on v5.1 kernel.  */
> +
> +#define COMPAT_SO_RCVTIMEO_OLD 4102
> +#define COMPAT_SO_SNDTIMEO_OLD 4101
> +#define COMPAT_SO_RCVTIMEO_NEW 66
> +#define COMPAT_SO_SNDTIMEO_NEW 67
> +
> +#endif

OK.

> diff --git a/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h b/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
> new file mode 100644
> index 0000000000..1e48dcca8d
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/powerpc/socket-constants-time64.h
> @@ -0,0 +1,30 @@
> +/* Compat socket constants used in 64 bit compat code.
> +   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/>.  */
> +
> +#ifndef _SOCKET_CONSTANTS_TIME64_H
> +#define _SOCKET_CONSTANTS_TIME64_H
> +
> +/* The compat code requires the SO_* constants used for both 32 and 64 bit
> +   time_t, however they were only added on v5.1 kernel.  */
> +
> +#define COMPAT_SO_RCVTIMEO_OLD 18
> +#define COMPAT_SO_SNDTIMEO_OLD 19
> +#define COMPAT_SO_RCVTIMEO_NEW 66
> +#define COMPAT_SO_SNDTIMEO_NEW 67

OK.

> +
> +#endif
> diff --git a/sysdeps/unix/sysv/linux/setsockopt.c b/sysdeps/unix/sysv/linux/setsockopt.c
> index 12fd7bdcde..6505202265 100644
> --- a/sysdeps/unix/sysv/linux/setsockopt.c
> +++ b/sysdeps/unix/sysv/linux/setsockopt.c
> @@ -15,21 +15,76 @@
>     License along with the GNU C Library; if not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> -#include <errno.h>
> -#include <signal.h>
>  #include <sys/socket.h>
> -
> +#include <time.h>
> +#include <sysdep.h>
>  #include <socketcall.h>
> -#include <kernel-features.h>
> -#include <sys/syscall.h>
> +#include <socket-constants-time64.h>
>  
> -int
> -setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
> +static int
> +setsockopt_syscall (int fd, int level, int optname, const void *optval,
> +		    socklen_t len)
>  {
>  #ifdef __ASSUME_SETSOCKOPT_SYSCALL
> -  return INLINE_SYSCALL (setsockopt, 5, fd, level, optname, optval, len);
> +  return INLINE_SYSCALL_CALL (setsockopt, fd, level, optname, optval, len);
>  #else
>    return SOCKETCALL (setsockopt, fd, level, optname, optval, len);
>  #endif
>  }
> +
> +#ifndef __ASSUME_TIME64_SYSCALLS
> +static int
> +setsockopt32 (int fd, int level, int optname, const void *optval,
> +	      socklen_t len)
> +{
> +  int r = -1;
> +
> +  if (level != SOL_SOCKET)
> +    return r;
> +
> +  switch (optname)
> +    {
> +    case COMPAT_SO_RCVTIMEO_NEW:
> +    case COMPAT_SO_SNDTIMEO_NEW:
> +      {
> +        if (len < sizeof (struct __timeval64))
> +	  {
> +	    __set_errno (EINVAL);
> +	    break;

Same issue as above with size. Silent truncation required.


> +	  }
> +
> +	struct __timeval64 *tv64 = (struct __timeval64 *) optval;
> +	if (! in_time_t_range (tv64->tv_sec))
> +	  {
> +	    __set_errno (EOVERFLOW);
> +	    break;
> +	  }
> +
> +	if (optname == COMPAT_SO_RCVTIMEO_NEW)
> +	  optname = COMPAT_SO_RCVTIMEO_OLD;
> +	if (optname == COMPAT_SO_SNDTIMEO_NEW)
> +	  optname = COMPAT_SO_SNDTIMEO_OLD;
> +
> +	struct __timeval32 tv32 = valid_timeval64_to_timeval32 (*tv64);
> +
> +	r = setsockopt_syscall (fd, level, optname, &tv32, sizeof (tv32));
> +      }
> +    }
> +
> +  return r;
> +}
> +#endif
> +
> +int
> +setsockopt (int fd, int level, int optname, const void *optval, socklen_t len)
> +{
> +  int r = setsockopt_syscall (fd, level, optname, optval, len);
> +
> +#ifndef __ASSUME_TIME64_SYSCALLS
> +  if (r == -1 && errno == ENOPROTOOPT)
> +    r = setsockopt32 (fd, level, optname, optval, len);
> +#endif
> +
> +  return r;

OK.

> +}
>  weak_alias (setsockopt, __setsockopt)
> diff --git a/sysdeps/unix/sysv/linux/socket-constants-time64.h b/sysdeps/unix/sysv/linux/socket-constants-time64.h
> new file mode 100644
> index 0000000000..e5a3777f28
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/socket-constants-time64.h
> @@ -0,0 +1,30 @@
> +/* Compat socket constants used in 64 bit compat code.
> +   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/>.  */
> +
> +#ifndef _SOCKET_CONSTANTS_TIME64_H
> +#define _SOCKET_CONSTANTS_TIME64_H
> +
> +/* The compat code requires the SO_* constants used for both 32 and 64 bit
> +   time_t, however they were only added on v5.1 kernel.  */
> +
> +#define COMPAT_SO_RCVTIMEO_OLD 20
> +#define COMPAT_SO_SNDTIMEO_OLD 21

OK. Verified 20, 21.

> +#define COMPAT_SO_RCVTIMEO_NEW 66
> +#define COMPAT_SO_SNDTIMEO_NEW 67

OK. Verified 66, 67.

> +
> +#endif

OK.

> diff --git a/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h b/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
> new file mode 100644
> index 0000000000..b137abdeea
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/sparc/socket-constants-time64.h
> @@ -0,0 +1,30 @@
> +/* Compat socket constants used in 64 bit compat code.
> +   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/>.  */
> +
> +#ifndef _SOCKET_CONSTANTS_TIME64_H
> +#define _SOCKET_CONSTANTS_TIME64_H
> +
> +/* The compat code requires the SO_* constants used for both 32 and 64 bit
> +   time_t, however they were only added on v5.1 kernel.  */
> +
> +#define COMPAT_SO_RCVTIMEO_OLD 8192
> +#define COMPAT_SO_SNDTIMEO_OLD 16384

OK. Verified 0x2000, 0x4000.

> +#define COMPAT_SO_RCVTIMEO_NEW 68
> +#define COMPAT_SO_SNDTIMEO_NEW 69

OK. Verified 0x44, 0x45.

> +
> +#endif

OK.

> 


-- 
Cheers,
Carlos.


  parent reply	other threads:[~2021-06-04 19:30 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   ` Carlos O'Donell [this message]
2021-06-07 17:52     ` [PATCH v2 05/25] linux: Add fallback for 64-bit time_t SO_{RCV,SND}TIMEO 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
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=c651333e-132b-de5f-4f07-c208cd5a214f@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).