unofficial mirror of libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Lukasz Majewski <lukma@denx.de>
To: Adhemerval Zanella <adhemerval.zanella@linaro.org>
Cc: Alistair Francis <alistair.francis@wdc.com>, libc-alpha@sourceware.org
Subject: Re: [PATCH 3/5] login: Add 64-bit time support
Date: Thu, 22 Oct 2020 11:16:22 +0200	[thread overview]
Message-ID: <20201022111622.4f4a8d73@jawa> (raw)
In-Reply-To: <20200729205117.2925113-3-adhemerval.zanella@linaro.org>

[-- Attachment #1: Type: text/plain, Size: 90506 bytes --]

Hi Adhemerval,

> It uses the s390-32 version and consolidates all the implementations.
> The result 'struct utmp' and 'struct utmpx' the same size of the
> old 32-bit time version (the __glibc_reserved in used adjusted).
> 
> New symbols for getutent, getutent_r, getutid, getutid_r, getutline,
> getutline_r, getutmp, getutmpx, getutxent, getutxid. getutxline,
> pututline, pututxline, updwtmp, updwtmpx, and login are added to
> all architecture but s390-32 (which already added 64-bit time support
> on 32-bit ABI on glibc 2.9).
> 
> Checked on i686-linux-gnu and x86_64-linux-gnu.  I also did a make
> check on all affected ABIs.
> ---
>  bits/struct_utmp.h                            | 12 +++---
>  bits/struct_utmpx.h                           | 11 +++---
>  include/utmp.h                                |  3 ++
>  login/Makefile                                |  4 +-
>  login/Versions                                |  3 ++
>  login/getutent.c                              |  7 +++-
>  login/getutent_r.c                            | 11 +++++-
>  login/getutid.c                               |  7 +++-
>  login/getutid_r.c                             |  7 +++-
>  login/getutline.c                             |  7 +++-
>  login/getutline_r.c                           |  7 +++-
>  login/getutmp.c                               | 10 ++++-
>  login/getutxent.c                             |  9 ++++-
>  login/getutxid.c                              |  9 ++++-
>  login/getutxline.c                            |  9 ++++-
>  login/login.c                                 | 10 ++++-
>  .../linux/s390/s390-32 => login}/login32.c    | 14 ++++---
>  login/pututxline.c                            |  9 ++++-
>  login/updwtmp.c                               |  7 +++-
>  login/updwtmpx.c                              |  9 ++++-
>  .../s390/s390-32 => login}/utmp-convert.h     |  0
>  .../linux/s390/s390-32 => login}/utmp32.c     | 32 +++++++++-------
>  .../linux/s390/s390-32 => login}/utmp32.h     |  0
>  .../s390/s390-32 => login}/utmpx-convert.h    |  0
>  .../linux/s390/s390-32 => login}/utmpx32.c    | 29 +++++++++-----
>  .../linux/s390/s390-32 => login}/utmpx32.h    |  0
>  sysdeps/generic/utmp-compat.h                 |  3 ++
>  sysdeps/mach/hurd/i386/libc.abilist           | 15 ++++++++
>  sysdeps/mach/hurd/i386/libutil.abilist        |  1 +
>  sysdeps/unix/sysv/linux/aarch64/libc.abilist  | 15 ++++++++
>  .../unix/sysv/linux/aarch64/libutil.abilist   |  1 +
>  sysdeps/unix/sysv/linux/alpha/libc.abilist    | 15 ++++++++
>  sysdeps/unix/sysv/linux/alpha/libutil.abilist |  1 +
>  sysdeps/unix/sysv/linux/arc/libc.abilist      | 15 ++++++++
>  sysdeps/unix/sysv/linux/arc/libutil.abilist   |  1 +
>  sysdeps/unix/sysv/linux/arm/le/libc.abilist   | 15 ++++++++
>  .../unix/sysv/linux/arm/le/libutil.abilist    |  1 +
>  sysdeps/unix/sysv/linux/csky/libc.abilist     | 15 ++++++++
>  sysdeps/unix/sysv/linux/csky/libutil.abilist  |  1 +
>  sysdeps/unix/sysv/linux/hppa/libc.abilist     | 15 ++++++++
>  sysdeps/unix/sysv/linux/hppa/libutil.abilist  |  1 +
>  sysdeps/unix/sysv/linux/i386/libc.abilist     | 15 ++++++++
>  sysdeps/unix/sysv/linux/i386/libutil.abilist  |  1 +
>  sysdeps/unix/sysv/linux/ia64/libc.abilist     | 15 ++++++++
>  sysdeps/unix/sysv/linux/ia64/libutil.abilist  |  1 +
>  .../unix/sysv/linux/m68k/m680x0/libc.abilist  | 15 ++++++++
>  .../sysv/linux/m68k/m680x0/libutil.abilist    |  1 +
>  .../sysv/linux/microblaze/be/libc.abilist     | 15 ++++++++
>  .../sysv/linux/microblaze/be/libutil.abilist  |  1 +
>  .../sysv/linux/mips/mips32/fpu/libc.abilist   | 15 ++++++++
>  .../sysv/linux/mips/mips32/libutil.abilist    |  1 +
>  .../sysv/linux/mips/mips64/libutil.abilist    |  1 +
>  .../sysv/linux/mips/mips64/n32/libc.abilist   | 15 ++++++++
>  .../sysv/linux/mips/mips64/n64/libc.abilist   | 15 ++++++++
>  sysdeps/unix/sysv/linux/nios2/libc.abilist    | 15 ++++++++
>  sysdeps/unix/sysv/linux/nios2/libutil.abilist |  1 +
>  .../linux/powerpc/powerpc32/fpu/libc.abilist  | 15 ++++++++
>  .../linux/powerpc/powerpc32/libutil.abilist   |  1 +
>  .../linux/powerpc/powerpc64/be/libc.abilist   | 15 ++++++++
>  .../powerpc/powerpc64/be/libutil.abilist      |  1 +
>  .../linux/powerpc/powerpc64/le/libc.abilist   | 15 ++++++++
>  .../powerpc/powerpc64/le/libutil.abilist      |  1 +
>  .../unix/sysv/linux/riscv/rv64/libc.abilist   | 15 ++++++++
>  .../sysv/linux/riscv/rv64/libutil.abilist     |  1 +
>  .../unix/sysv/linux/s390/s390-32/getutent.c   | 32 ----------------
>  .../unix/sysv/linux/s390/s390-32/getutent_r.c | 38
> ------------------- .../unix/sysv/linux/s390/s390-32/getutid.c    |
> 32 ---------------- .../unix/sysv/linux/s390/s390-32/getutid_r.c  |
> 35 ----------------- .../unix/sysv/linux/s390/s390-32/getutline.c  |
> 32 ---------------- .../sysv/linux/s390/s390-32/getutline_r.c     |
> 34 ----------------- .../unix/sysv/linux/s390/s390-32/getutmp.c    |
> 30 --------------- .../unix/sysv/linux/s390/s390-32/getutxent.c  | 30
> --------------- .../unix/sysv/linux/s390/s390-32/getutxid.c   | 30
> --------------- .../unix/sysv/linux/s390/s390-32/getutxline.c | 30
> --------------- sysdeps/unix/sysv/linux/s390/s390-32/login.c  | 35
> ----------------- .../unix/sysv/linux/s390/s390-32/pututxline.c | 30
> --------------- .../unix/sysv/linux/s390/s390-32/updwtmp.c    | 32
> ---------------- .../unix/sysv/linux/s390/s390-32/updwtmpx.c   | 30
> --------------- .../sysv/linux/s390/s390-32/utmp-compat.h     |  2 +-
>  .../unix/sysv/linux/s390/s390-64/libc.abilist | 15 ++++++++
>  .../sysv/linux/s390/s390-64/libutil.abilist   |  1 +
>  sysdeps/unix/sysv/linux/sh/le/libc.abilist    | 15 ++++++++
>  sysdeps/unix/sysv/linux/sh/le/libutil.abilist |  1 +
>  .../sysv/linux/sparc/sparc32/libc.abilist     | 15 ++++++++
>  .../sysv/linux/sparc/sparc32/libutil.abilist  |  1 +
>  .../sysv/linux/sparc/sparc64/libc.abilist     | 15 ++++++++
>  .../sysv/linux/sparc/sparc64/libutil.abilist  |  1 +
>  .../unix/sysv/linux/x86_64/64/libc.abilist    | 15 ++++++++
>  .../unix/sysv/linux/x86_64/64/libutil.abilist |  1 +
>  .../unix/sysv/linux/x86_64/x32/libc.abilist   | 15 ++++++++
>  .../sysv/linux/x86_64/x32/libutil.abilist     |  1 +
>  91 files changed, 572 insertions(+), 508 deletions(-)
>  rename {sysdeps/unix/sysv/linux/s390/s390-32 => login}/login32.c
> (75%) rename {sysdeps/unix/sysv/linux/s390/s390-32 =>
> login}/utmp-convert.h (100%) rename
> {sysdeps/unix/sysv/linux/s390/s390-32 => login}/utmp32.c (83%) rename
> {sysdeps/unix/sysv/linux/s390/s390-32 => login}/utmp32.h (100%)
> rename {sysdeps/unix/sysv/linux/s390/s390-32 =>
> login}/utmpx-convert.h (100%) rename
> {sysdeps/unix/sysv/linux/s390/s390-32 => login}/utmpx32.c (81%)
> rename {sysdeps/unix/sysv/linux/s390/s390-32 => login}/utmpx32.h
> (100%) create mode 100644 sysdeps/generic/utmp-compat.h delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutent.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutid.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutline.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/login.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c delete mode
> 100644 sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
> 
> diff --git a/bits/struct_utmp.h b/bits/struct_utmp.h
> index 4b05c91515..84d4df2590 100644
> --- a/bits/struct_utmp.h
> +++ b/bits/struct_utmp.h
> @@ -38,18 +38,16 @@ struct utmp
>  /* The ut_session and ut_tv fields must be the same size when
> compiled 32- and 64-bit.  This allows data files and shared memory to
> be shared between 32- and 64-bit applications.  */
> -#if __WORDSIZE_TIME64_COMPAT32
> -  int32_t ut_session;		/* Session ID, used for
> windowing.  */
> +  int64_t ut_session;		/* Session ID, used for
> windowing.  */ +#if __TIMESIZE == 64

Ok. 

>    struct
>    {
> -    int32_t tv_sec;		/* Seconds.  */
> -    int32_t tv_usec;		/* Microseconds.  */
> +    int64_t tv_sec;		/* Seconds.  */
> +    int64_t tv_usec;		/* Microseconds.  */
>    } ut_tv;			/* Time entry was made.  */
>  #else
> -  long int ut_session;		/* Session ID, used for
> windowing.  */ struct timeval ut_tv;		/* Time entry was
> made.  */ #endif
> -
>    int32_t ut_addr_v6[4];	/* Internet address of remote host.
> */
> -  char __glibc_reserved[20];		/* Reserved for future
> use.  */
> +  char __glibc_reserved[8];		/* Reserved for future
> use.  */ };
> diff --git a/bits/struct_utmpx.h b/bits/struct_utmpx.h
> index 8bfc786cd8..b5bf539a57 100644
> --- a/bits/struct_utmpx.h
> +++ b/bits/struct_utmpx.h
> @@ -39,17 +39,16 @@ struct utmpx
>  /* The fields ut_session and ut_tv must be the same size when
> compiled 32- and 64-bit.  This allows files and shared memory to be
> shared between 32- and 64-bit applications.  */
> -#if __WORDSIZE_TIME64_COMPAT32
> -  __int32_t ut_session;		/* Session ID, used for
> windowing.  */
> +  __int64_t ut_session;		/* Session ID, used for
> windowing.  */ +#if __TIMESIZE == 64
>    struct
>    {
> -    __int32_t tv_sec;		/* Seconds.  */
> -    __int32_t tv_usec;		/* Microseconds.  */
> +    __int64_t tv_sec;		/* Seconds.  */
> +    __int64_t tv_usec;		/* Microseconds.  */
>    } ut_tv;			/* Time entry was made.  */
>  #else
> -  long int ut_session;		/* Session ID, used for
> windowing.  */ struct timeval ut_tv;		/* Time entry was
> made.  */ #endif
>    __int32_t ut_addr_v6[4];	/* Internet address of remote
> host.  */
> -  char __glibc_reserved[20];		/* Reserved for future
> use.  */
> +  char __glibc_reserved[8];		/* Reserved for future
> use.  */ };
> diff --git a/include/utmp.h b/include/utmp.h
> index 374184e9b2..350b9aab81 100644
> --- a/include/utmp.h
> +++ b/include/utmp.h
> @@ -26,6 +26,9 @@ extern int __getutline_r (const struct utmp *__line,
>  			  struct utmp *__buffer, struct utmp
> **__result); libc_hidden_proto (__getutline_r)
>  
> +extern void __login (const struct utmp *ut);
> +hidden_proto (__login)
> +
>  libutil_hidden_proto (login_tty)
>  
>  # endif /* !_ISOMAC */
> diff --git a/login/Makefile b/login/Makefile
> index 58d5d4d64a..9f37a18101 100644
> --- a/login/Makefile
> +++ b/login/Makefile
> @@ -29,7 +29,7 @@ headers	:= utmp.h bits/utmp.h lastlog.h
> pty.h bits/struct_lastlog.h \ routines := getlogin getlogin_r
> setlogin getlogin_r_chk \ getutent getutent_r getutid getutline
> getutid_r getutline_r \ utmp_file utmpname updwtmp getpt grantpt
> unlockpt ptsname \
> -	    ptsname_r_chk
> +	    ptsname_r_chk utmp32 utmpx32
>  
>  CFLAGS-grantpt.c += -DLIBEXECDIR='"$(libexecdir)"'
>  
> @@ -51,7 +51,7 @@ tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname
> tst-getlogin tst-updwtmpx \ extra-libs      := libutil
>  extra-libs-others := $(extra-libs)
>  
> -libutil-routines:= login login_tty logout logwtmp openpty forkpty
> +libutil-routines:= login login_tty logout logwtmp openpty forkpty
> login32 
>  include ../Rules
>  
> diff --git a/login/Versions b/login/Versions
> index 475fcf063f..86b56bb92e 100644
> --- a/login/Versions
> +++ b/login/Versions
> @@ -51,4 +51,7 @@ libutil {
>    GLIBC_2.0 {
>      forkpty; login; login_tty; logout; logwtmp; openpty;
>    }
> +  GLIBC_2.33 {
> +    login;

Here I'm a bit puzzled - the login is also exported in the above line
for GLIBC_2.0. Why do we need to redo it for GLIBC_2.33 ?

> +  }
>  }
> diff --git a/login/getutent.c b/login/getutent.c
> index 3a8b78c9be..16ca2622d1 100644
> --- a/login/getutent.c
> +++ b/login/getutent.c
> @@ -18,7 +18,8 @@
>  
>  #include <stdlib.h>
>  #include <utmp.h>
> -
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  /* Local buffer to store the result.  */
>  libc_freeres_ptr (static struct utmp *buffer);
> @@ -42,4 +43,8 @@ __getutent (void)
>    return result;
>  }
>  libc_hidden_def (__getutent)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutent, getutent, UTMP_COMPAT_BASE);
> +#else
>  weak_alias (__getutent, getutent)
> +#endif

So here you mimic the trick from s390 that we will set #define
UTMP_COMPAT_BASE and then depending on glibc version either
getutent_GLIBC_2.9 (as on s390) or getutent_GLIBC_2.33 (newest) will be
exported?

But I'm wondering why we do need to have such distinction and why we
just cannot export getutent_GLIBC_2_0 (the symbol when it was first
exported) [*] ?
(I guess that getutent was _only_ exported by s390 32 bit - but I'm not
sure).


> diff --git a/login/getutent_r.c b/login/getutent_r.c
> index 7bf5fe136a..5c82e85c09 100644
> --- a/login/getutent_r.c
> +++ b/login/getutent_r.c
> @@ -20,7 +20,8 @@
>  #include <libc-lock.h>
>  #include <stdlib.h>
>  #include <utmp.h>
> -
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  #include "utmp-private.h"
>  
>  /* We need to protect the opening of the file.  */
> @@ -53,7 +54,11 @@ __getutent_r (struct utmp *buffer, struct utmp
> **result) return retval;
>  }
>  libc_hidden_def (__getutent_r)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutent_r, getutent_r, UTMP_COMPAT_BASE);
> +#else
>  weak_alias (__getutent_r, getutent_r)
> +#endif
>  
>  
>  struct utmp *
> @@ -70,7 +75,11 @@ __pututline (const struct utmp *data)
>    return buffer;
>  }
>  libc_hidden_def (__pututline)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __pututline, pututline, UTMP_COMPAT_BASE);
> +#else
>  weak_alias (__pututline, pututline)
> +#endif
>  
>  
>  void
> diff --git a/login/getutid.c b/login/getutid.c
> index 0c5c106b59..b96ccb2381 100644
> --- a/login/getutid.c
> +++ b/login/getutid.c
> @@ -18,7 +18,8 @@
>  
>  #include <stdlib.h>
>  #include <utmp.h>
> -
> +#include <shlib-compat.h>
> +#include <utmp-compat.h>
>  
>  /* Local buffer to store the result.  */
>  libc_freeres_ptr (static struct utmp *buffer);
> @@ -40,4 +41,8 @@ __getutid (const struct utmp *id)
>    return result;
>  }
>  libc_hidden_def (__getutid)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutid, getutid, UTMP_COMPAT_BASE);
> +#else
>  weak_alias (__getutid, getutid)
> +#endif
> diff --git a/login/getutid_r.c b/login/getutid_r.c
> index c655c4f56b..06907a4c92 100644
> --- a/login/getutid_r.c
> +++ b/login/getutid_r.c
> @@ -21,7 +21,8 @@
>  #include <errno.h>
>  #include <stdlib.h>
>  #include <utmp.h>
> -
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  #include "utmp-private.h"
>  
>  
> @@ -55,4 +56,8 @@ __getutid_r (const struct utmp *id, struct utmp
> *buffer, struct utmp **result) return retval;
>  }
>  libc_hidden_def (__getutid_r)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutid_r, getutid_r, UTMP_COMPAT_BASE);
> +#else
>  weak_alias (__getutid_r, getutid_r)
> +#endif
> diff --git a/login/getutline.c b/login/getutline.c
> index 34ea8611e2..dea5edffd8 100644
> --- a/login/getutline.c
> +++ b/login/getutline.c
> @@ -18,7 +18,8 @@
>  
>  #include <stdlib.h>
>  #include <utmp.h>
> -
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  /* Local buffer to store the result.  */
>  libc_freeres_ptr (static struct utmp *buffer);
> @@ -41,4 +42,8 @@ __getutline (const struct utmp *line)
>    return result;
>  }
>  libc_hidden_def (__getutline)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutline, getutline, UTMP_COMPAT_BASE);
> +#else
>  weak_alias (__getutline, getutline)
> +#endif
> diff --git a/login/getutline_r.c b/login/getutline_r.c
> index 41ad9ff12b..5caab54620 100644
> --- a/login/getutline_r.c
> +++ b/login/getutline_r.c
> @@ -20,7 +20,8 @@
>  #include <errno.h>
>  #include <libc-lock.h>
>  #include <utmp.h>
> -
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  #include "utmp-private.h"
>  
>  
> @@ -43,4 +44,8 @@ __getutline_r (const struct utmp *line, struct utmp
> *buffer, return retval;
>  }
>  libc_hidden_def (__getutline_r)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutline_r, getutline_r,
> UTMP_COMPAT_BASE); +#else
>  weak_alias (__getutline_r, getutline_r)
> +#endif
> diff --git a/login/getutmp.c b/login/getutmp.c
> index 3058a93d1b..d521e5e51e 100644
> --- a/login/getutmp.c
> +++ b/login/getutmp.c
> @@ -21,6 +21,8 @@
>  #define getutmpx __redirect_getutmpx
>  #include <utmpx.h>
>  #undef getutmpx
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  #define CHECK_SIZE_AND_OFFSET(field) \
>    _Static_assert (sizeof ((struct utmp){0}.field)		\
> @@ -59,5 +61,11 @@ __getutmp (const struct utmpx *utmpx, struct utmp
> *utmp) utmp->ut_tv.tv_usec = utmpx->ut_tv.tv_usec;
>  }
>  
> -weak_alias (__getutmp, getutmp)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutmp, getutmp, UTMP_COMPAT_BASE);
> +strong_alias (__getutmp, __getutmpx)
> +versioned_symbol (libc, __getutmpx, getutmpx, UTMP_COMPAT_BASE);
> +#else
> +strong_alias (__getutmp, getutmp)
>  strong_alias (__getutmp, getutmpx)
> +#endif
> diff --git a/login/getutxent.c b/login/getutxent.c
> index ca90a13d4b..505b2b6441 100644
> --- a/login/getutxent.c
> +++ b/login/getutxent.c
> @@ -18,9 +18,16 @@
>  
>  #include <utmp.h>
>  #include <utmpx.h>
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  struct utmpx *
> -getutxent (void)
> +__getutxent (void)
>  {
>    return (struct utmpx *) __getutent ();
>  }
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutxent, getutxent, UTMP_COMPAT_BASE);
> +#else
> +weak_alias (__getutxent, getutxent)
> +#endif
> diff --git a/login/getutxid.c b/login/getutxid.c
> index d53993f5e9..871aef11d8 100644
> --- a/login/getutxid.c
> +++ b/login/getutxid.c
> @@ -18,9 +18,16 @@
>  
>  #include <utmp.h>
>  #include <utmpx.h>
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  struct utmpx *
> -getutxid (const struct utmpx *id)
> +__getutxid (const struct utmpx *id)
>  {
>    return (struct utmpx *) __getutid ((const struct utmp *) id);
>  }
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutxid, getutxid, UTMP_COMPAT_BASE);
> +#else
> +weak_alias (__getutxid, getutxid)
> +#endif
> diff --git a/login/getutxline.c b/login/getutxline.c
> index f1d28211b0..d212217285 100644
> --- a/login/getutxline.c
> +++ b/login/getutxline.c
> @@ -18,9 +18,16 @@
>  
>  #include <utmp.h>
>  #include <utmpx.h>
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  struct utmpx *
> -getutxline (const struct utmpx *line)
> +__getutxline (const struct utmpx *line)
>  {
>    return (struct utmpx *) __getutline ((const struct utmp *) line);
>  }
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __getutxline, getutxline, UTMP_COMPAT_BASE);
> +#else
> +weak_alias (__getutxline, getutxline)
> +#endif
> diff --git a/login/login.c b/login/login.c
> index cc26d2982b..ca2a99210f 100644
> --- a/login/login.c
> +++ b/login/login.c
> @@ -23,6 +23,8 @@
>  #include <unistd.h>
>  #include <stdlib.h>
>  #include <utmp.h>
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  
>  /* Return the result of ttyname in the buffer pointed to by TTY,
> which should @@ -78,7 +80,7 @@ tty_name (int fd, char **tty, size_t
> buf_len) }
>  \f
>  void
> -login (const struct utmp *ut)
> +__login (const struct utmp *ut)
>  {
>  #ifdef PATH_MAX
>    char _tty[PATH_MAX + UT_LINESIZE];
> @@ -137,3 +139,9 @@ login (const struct utmp *ut)
>    /* Update the WTMP file.  Here we have to add a new entry.  */
>    updwtmp (_PATH_WTMP, &copy);
>  }
> +hidden_def (__login)
> +#if SHLIB_COMPAT(libutil, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libutil, __login, login, UTMP_COMPAT_BASE);
> +#else
> +weak_alias (__login, login)
> +#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
> b/login/login32.c similarity index 75%
> rename from sysdeps/unix/sysv/linux/s390/s390-32/login32.c
> rename to login/login32.c
> index 22f908df88..6e451eb745 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/login32.c
> +++ b/login/login32.c
> @@ -1,5 +1,5 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> +/* Write utmp and wtmp entries, 32-bit time compat version.
> +   Copyright (C) 2008-2020 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
> @@ -16,13 +16,14 @@
>     License along with the GNU C Library; if not, see
>     <https://www.gnu.org/licenses/>.  */
>  
> -#include <sys/types.h>
>  #include <utmp.h>
> -#include <libc-symbols.h>
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  #include "utmp32.h"
>  #include "utmp-convert.h"
>  
> +#if SHLIB_COMPAT(libutil, GLIBC_2_0, UTMP_COMPAT_BASE)
>  /* Write the given entry into utmp and wtmp.  */
>  void
>  login32 (const struct utmp32 *entry)
> @@ -30,7 +31,8 @@ login32 (const struct utmp32 *entry)
>    struct utmp in64;
>  
>    utmp_convert32to64 (entry, &in64);
> -  login (&in64);
> +  __login (&in64);
>  }
>  
> -symbol_version (login32, login, GLIBC_2.0);
> +compat_symbol (libutil, login32, login, GLIBC_2_0);
> +#endif
> diff --git a/login/pututxline.c b/login/pututxline.c
> index eec8851d45..ddd6330811 100644
> --- a/login/pututxline.c
> +++ b/login/pututxline.c
> @@ -18,9 +18,16 @@
>  
>  #include <utmp.h>
>  #include <utmpx.h>
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  struct utmpx *
> -pututxline (const struct utmpx *utmpx)
> +__pututxline (const struct utmpx *utmpx)
>  {
>    return (struct utmpx *) __pututline ((const struct utmp *) utmpx);
>  }
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __pututxline, pututxline, UTMP_COMPAT_BASE);
> +#else
> +weak_alias (__pututxline, pututxline)
> +#endif
> diff --git a/login/updwtmp.c b/login/updwtmp.c
> index 489c28b553..715ef747d7 100644
> --- a/login/updwtmp.c
> +++ b/login/updwtmp.c
> @@ -19,7 +19,8 @@
>  #include <utmp.h>
>  #include <string.h>
>  #include <unistd.h>
> -
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  #include "utmp-private.h"
>  
>  #ifndef TRANSFORM_UTMP_FILE_NAME
> @@ -41,4 +42,8 @@ __updwtmp (const char *wtmp_file, const struct utmp
> *utmp) __libc_updwtmp (file_name, utmp);
>  }
>  libc_hidden_def (__updwtmp)
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __updwtmp, updwtmp, UTMP_COMPAT_BASE);
> +#else
>  weak_alias (__updwtmp, updwtmp)
> +#endif
> diff --git a/login/updwtmpx.c b/login/updwtmpx.c
> index f95306b621..3f1dbb363b 100644
> --- a/login/updwtmpx.c
> +++ b/login/updwtmpx.c
> @@ -18,9 +18,16 @@
>  
>  #include <utmp.h>
>  #include <utmpx.h>
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
>  
>  void
> -updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
> +__updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
>  {
>    __updwtmp (wtmpx_file, (const struct utmp *) utmpx);
>  }
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +versioned_symbol (libc, __updwtmpx, updwtmpx, UTMP_COMPAT_BASE);
> +#else
> +weak_alias (__updwtmpx, updwtmpx)
> +#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
> b/login/utmp-convert.h similarity index 100%
> rename from sysdeps/unix/sysv/linux/s390/s390-32/utmp-convert.h
> rename to login/utmp-convert.h
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
> b/login/utmp32.c similarity index 83%
> rename from sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
> rename to login/utmp32.c

Ok, so relevant implementation files are moved to generic login
directory.

> index e4b82512f6..7fecb3bdca 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.c
> +++ b/login/utmp32.c
> @@ -1,5 +1,5 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> +/* Compability symbols for utmp with 32-bit entry times.
> +   Copyright (C) 2008-2020 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
> @@ -24,6 +24,11 @@
>  #include "utmp32.h"
>  #include "utmp-convert.h"
>  
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
> +
> +#if SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)
> +
>  /* Allocate a static buffer to be returned to the caller.  As well as
>     with the existing version of these functions the caller has to be
>     aware that the contents of this buffer will change with subsequent
> @@ -63,7 +68,7 @@ getutid32 (const struct utmp32 *id)
>  {
>    ACCESS_UTMP_ENTRY (__getutid, id)
>  }
> -symbol_version (getutid32, getutid, GLIBC_2.0);
> +compat_symbol (libc, getutid32, getutid, GLIBC_2_0);
>  
>  /* Search forward from the current point in the utmp file until the
>     next entry with a ut_line matching LINE->ut_line.  */
> @@ -72,7 +77,7 @@ getutline32 (const struct utmp32 *line)
>  {
>    ACCESS_UTMP_ENTRY (__getutline, line)
>  }
> -symbol_version (getutline32, getutline, GLIBC_2.0);
> +compat_symbol (libc, getutline32, getutline, GLIBC_2_0);
>  
>  /* Write out entry pointed to by UTMP_PTR into the utmp file.  */
>  struct utmp32 *
> @@ -80,7 +85,7 @@ pututline32 (const struct utmp32 *utmp_ptr)
>  {
>    ACCESS_UTMP_ENTRY (__pututline, utmp_ptr)
>  }
> -symbol_version (pututline32, pututline, GLIBC_2.0);
> +compat_symbol (libc, pututline32, pututline, GLIBC_2_0);
>  
>  /* Read next entry from a utmp-like file.  */
>  struct utmp32 *
> @@ -96,10 +101,9 @@ getutent32 (void)
>    utmp_convert64to32 (out64, out32);
>    return out32;
>  }
> -symbol_version (getutent32, getutent, GLIBC_2.0);
> +compat_symbol (libc, getutent32, getutent, GLIBC_2_0);
>  
>  /* Reentrant versions of the file for handling utmp files.  */
> -
>  int
>  getutent32_r (struct utmp32 *buffer, struct utmp32 **result)
>  {
> @@ -119,11 +123,11 @@ getutent32_r (struct utmp32 *buffer, struct
> utmp32 **result) 
>    return 0;
>  }
> -symbol_version (getutent32_r, getutent_r, GLIBC_2.0);
> +compat_symbol (libc, getutent32_r, getutent_r, GLIBC_2_0);
>  
>  int
>  getutid32_r (const struct utmp32 *id, struct utmp32 *buffer,
> -	       struct utmp32 **result)
> +	     struct utmp32 **result)
>  {
>    struct utmp in64;
>    struct utmp out64;
> @@ -144,11 +148,11 @@ getutid32_r (const struct utmp32 *id, struct
> utmp32 *buffer, 
>    return 0;
>  }
> -symbol_version (getutid32_r, getutid_r, GLIBC_2.0);
> +compat_symbol (libc, getutid32_r, getutid_r, GLIBC_2_0);
>  
>  int
>  getutline32_r (const struct utmp32 *line,
> -		 struct utmp32 *buffer, struct utmp32 **result)
> +	       struct utmp32 *buffer, struct utmp32 **result)
>  {
>    struct utmp in64;
>    struct utmp out64;
> @@ -170,7 +174,7 @@ getutline32_r (const struct utmp32 *line,
>    return 0;
>  
>  }
> -symbol_version (getutline32_r, getutline_r, GLIBC_2.0);
> +compat_symbol (libc, getutline32_r, getutline_r, GLIBC_2_0);
>  
>  /* Append entry UTMP to the wtmp-like file WTMP_FILE.  */
>  void
> @@ -181,4 +185,6 @@ updwtmp32 (const char *wtmp_file, const struct
> utmp32 *utmp) utmp_convert32to64 (utmp, &in32);
>    __updwtmp (wtmp_file, &in32);
>  }
> -symbol_version (updwtmp32, updwtmp, GLIBC_2.0);
> +compat_symbol (libc, updwtmp32, updwtmp, GLIBC_2_0);
> +
> +#endif /* SHLIB_COMPAT(libc, GLIBC_2_0, UTMP_COMPAT_BASE)   */
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
> b/login/utmp32.h similarity index 100%
> rename from sysdeps/unix/sysv/linux/s390/s390-32/utmp32.h
> rename to login/utmp32.h
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
> b/login/utmpx-convert.h similarity index 100%
> rename from sysdeps/unix/sysv/linux/s390/s390-32/utmpx-convert.h
> rename to login/utmpx-convert.h
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
> b/login/utmpx32.c similarity index 81%
> rename from sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
> rename to login/utmpx32.c
> index 3f78fa62db..3ecd5b65f5 100644
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.c
> +++ b/login/utmpx32.c
> @@ -1,5 +1,5 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> +/* Compability symbols for utmpx with 32-bit entry times.
> +   Copyright (C) 2008-2020 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
> @@ -27,6 +27,11 @@
>  #include "utmpx32.h"
>  #include "utmpx-convert.h"
>  
> +#include <utmp-compat.h>
> +#include <shlib-compat.h>
> +
> +#if SHLIB_COMPAT(libc, GLIBC_2_1, UTMP_COMPAT_BASE)
> +
>  /* Allocate a static buffer to be returned to the caller.  As well as
>     with the existing version of these functions the caller has to be
>     aware that the contents of this buffer will change with subsequent
> @@ -75,7 +80,7 @@ getutxent32 (void)
>    return out32;
>  
>  }
> -symbol_version (getutxent32, getutxent, GLIBC_2.1);
> +compat_symbol (libc, getutxent32, getutxent, GLIBC_2_1);
>  
>  /* Get the user accounting database entry corresponding to ID.  */
>  struct utmpx32 *
> @@ -83,7 +88,7 @@ getutxid32 (const struct utmpx32 *id)
>  {
>    ACCESS_UTMPX_ENTRY (__getutxid, id);
>  }
> -symbol_version (getutxid32, getutxid, GLIBC_2.1);
> +compat_symbol (libc, getutxid32, getutxid, GLIBC_2_1);
>  
>  /* Get the user accounting database entry corresponding to LINE.  */
>  struct utmpx32 *
> @@ -91,7 +96,7 @@ getutxline32 (const struct utmpx32 *line)
>  {
>    ACCESS_UTMPX_ENTRY (__getutxline, line);
>  }
> -symbol_version (getutxline32, getutxline, GLIBC_2.1);
> +compat_symbol (libc, getutxline32, getutxline, GLIBC_2_1);
>  
>  /* Write the entry UTMPX into the user accounting database.  */
>  struct utmpx32 *
> @@ -99,7 +104,7 @@ pututxline32 (const struct utmpx32 *utmpx)
>  {
>    ACCESS_UTMPX_ENTRY (__pututxline, utmpx);
>  }
> -symbol_version (pututxline32, pututxline, GLIBC_2.1);
> +compat_symbol (libc, pututxline32, pututxline, GLIBC_2_1);
>  
>  /* Append entry UTMP to the wtmpx-like file WTMPX_FILE.  */
>  void
> @@ -110,7 +115,11 @@ updwtmpx32 (const char *wtmpx_file, const struct
> utmpx32 *utmpx) utmpx_convert32to64 (utmpx, &in64);
>    __updwtmpx (wtmpx_file, &in64);
>  }
> -symbol_version (updwtmpx32, updwtmpx, GLIBC_2.1);
> +compat_symbol (libc, updwtmpx32, updwtmpx, GLIBC_2_1);
> +
> +#endif /* SHLIB_COMPAT(libc, GLIBC_2_1_1, UTMP_COMPAT_BASE)   */
> +
> +#if SHLIB_COMPAT(libc, GLIBC_2_1_1, UTMP_COMPAT_BASE)
>  
>  /* Copy the information in UTMPX to UTMP.  */
>  void
> @@ -123,7 +132,7 @@ getutmp32 (const struct utmpx32 *utmpx, struct
> utmp32 *utmp) __getutmp (&in64, &out64);
>    utmp_convert64to32 (&out64, utmp);
>  }
> -symbol_version (getutmp32, getutmp, GLIBC_2.1.1);
> +compat_symbol (libc, getutmp32, getutmp, GLIBC_2_1_1);
>  
>  /* Copy the information in UTMP to UTMPX.  */
>  void
> @@ -136,4 +145,6 @@ getutmpx32 (const struct utmp32 *utmp, struct
> utmpx32 *utmpx) __getutmpx (&in64, &out64);
>    utmpx_convert64to32 (&out64, utmpx);
>  }
> -symbol_version (getutmpx32, getutmpx, GLIBC_2.1.1);
> +compat_symbol (libc, getutmpx32, getutmpx, GLIBC_2_1_1);
> +
> +#endif /* SHLIB_COMPAT(libc, GLIBC_2_1, UTMP_COMPAT_BASE)   */
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
> b/login/utmpx32.h similarity index 100%
> rename from sysdeps/unix/sysv/linux/s390/s390-32/utmpx32.h
> rename to login/utmpx32.h
> diff --git a/sysdeps/generic/utmp-compat.h
> b/sysdeps/generic/utmp-compat.h new file mode 100644
> index 0000000000..122fd8905d
> --- /dev/null
> +++ b/sysdeps/generic/utmp-compat.h
> @@ -0,0 +1,3 @@
> +/* This macro defines the glibc version tag at which the 64 bit
> struct
> +   utmp functions have been added to the 32 bit glibc.  */
> +#define UTMP_COMPAT_BASE GLIBC_2_33
> diff --git a/sysdeps/mach/hurd/i386/libc.abilist
> b/sysdeps/mach/hurd/i386/libc.abilist index b4e39285d0..a9bbb5028d
> 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist
> +++ b/sysdeps/mach/hurd/i386/libc.abilist
> @@ -2196,12 +2196,27 @@ GLIBC_2.33 fstat F
>  GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F

Here I'm also confused - this is related to [*] as well.

Wasn't those symbols exported prior GLIBC_2.33? Or were they only
exported by s390?

If they were only exported for s390, why other ports didn't need them
exported?

>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/mach/hurd/i386/libutil.abilist
> b/sysdeps/mach/hurd/i386/libutil.abilist index 1dd59e0afb..6d97d3cd5e
> 100644 --- a/sysdeps/mach/hurd/i386/libutil.abilist
> +++ b/sysdeps/mach/hurd/i386/libutil.abilist
> @@ -4,3 +4,4 @@ GLIBC_2.2.6 login_tty F
>  GLIBC_2.2.6 logout F
>  GLIBC_2.2.6 logwtmp F
>  GLIBC_2.2.6 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist
> b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index
> 54b707b9cc..9172a3347e 100644 ---
> a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2164,9 +2164,24 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
> diff --git a/sysdeps/unix/sysv/linux/aarch64/libutil.abilist
> b/sysdeps/unix/sysv/linux/aarch64/libutil.abilist index
> 99889de22e..3c2d9a1c14 100644 ---
> a/sysdeps/unix/sysv/linux/aarch64/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/aarch64/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.17 login_tty F GLIBC_2.17 logout F
>  GLIBC_2.17 logwtmp F
>  GLIBC_2.17 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist
> b/sysdeps/unix/sysv/linux/alpha/libc.abilist index
> 9b429fd28f..bd217cb2c2 100644 ---
> a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++
> b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2246,12 +2246,27 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/alpha/libutil.abilist
> b/sysdeps/unix/sysv/linux/alpha/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/alpha/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/alpha/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/arc/libc.abilist
> b/sysdeps/unix/sysv/linux/arc/libc.abilist index
> 7ed5340364..898fd755ea 100644 ---
> a/sysdeps/unix/sysv/linux/arc/libc.abilist +++
> b/sysdeps/unix/sysv/linux/arc/libc.abilist @@ -1924,9 +1924,24 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
> diff --git a/sysdeps/unix/sysv/linux/arc/libutil.abilist
> b/sysdeps/unix/sysv/linux/arc/libutil.abilist index
> 61f73bc34e..ea3c23b433 100644 ---
> a/sysdeps/unix/sysv/linux/arc/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/arc/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.32 login_tty F GLIBC_2.32 logout F
>  GLIBC_2.32 logwtmp F
>  GLIBC_2.32 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist
> b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index
> 3ec1cbdfbc..dd52296951 100644 ---
> a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -145,12 +145,27 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 _Exit F
>  GLIBC_2.4 _IO_2_1_stderr_ D 0xa0
>  GLIBC_2.4 _IO_2_1_stdin_ D 0xa0
> diff --git a/sysdeps/unix/sysv/linux/arm/le/libutil.abilist
> b/sysdeps/unix/sysv/linux/arm/le/libutil.abilist index
> cc1420e68c..ea54d58739 100644 ---
> a/sysdeps/unix/sysv/linux/arm/le/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/arm/le/libutil.abilist @@ -1,3 +1,4 @@
> +GLIBC_2.33 login F
>  GLIBC_2.4 forkpty F
>  GLIBC_2.4 login F
>  GLIBC_2.4 login_tty F
> diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist
> b/sysdeps/unix/sysv/linux/csky/libc.abilist index
> 301fd728d7..02636a8fa2 100644 ---
> a/sysdeps/unix/sysv/linux/csky/libc.abilist +++
> b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2108,9 +2108,24 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
> diff --git a/sysdeps/unix/sysv/linux/csky/libutil.abilist
> b/sysdeps/unix/sysv/linux/csky/libutil.abilist index
> cbd11999a4..165b86bcf8 100644 ---
> a/sysdeps/unix/sysv/linux/csky/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/csky/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.29 login_tty F GLIBC_2.29 logout F
>  GLIBC_2.29 logwtmp F
>  GLIBC_2.29 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist
> b/sysdeps/unix/sysv/linux/hppa/libc.abilist index
> 84834052e1..21912899a1 100644 ---
> a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++
> b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2067,12 +2067,27 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/hppa/libutil.abilist
> b/sysdeps/unix/sysv/linux/hppa/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/hppa/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/hppa/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist
> b/sysdeps/unix/sysv/linux/i386/libc.abilist index
> b82debaba4..77b0d47f2a 100644 ---
> a/sysdeps/unix/sysv/linux/i386/libc.abilist +++
> b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2233,12 +2233,27 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/i386/libutil.abilist
> b/sysdeps/unix/sysv/linux/i386/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/i386/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/i386/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist
> b/sysdeps/unix/sysv/linux/ia64/libc.abilist index
> 475b7af1a5..7c84d98fcb 100644 ---
> a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -2099,12 +2099,27 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/ia64/libutil.abilist
> b/sysdeps/unix/sysv/linux/ia64/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/ia64/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/ia64/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index
> 29127e1341..421a82107f 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2179,12
> +2179,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/m68k/m680x0/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist
> b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index
> e5b4cecacd..6ae7a8f5ba 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2159,9
> +2159,24 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
> diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libutil.abilist
> b/sysdeps/unix/sysv/linux/microblaze/be/libutil.abilist index
> 0da0a40c22..2f16f5498a 100644 ---
> a/sysdeps/unix/sysv/linux/microblaze/be/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/microblaze/be/libutil.abilist @@ -4,3 +4,4
> @@ GLIBC_2.18 login_tty F GLIBC_2.18 logout F
>  GLIBC_2.18 logwtmp F
>  GLIBC_2.18 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index
> b9f56007a2..817b22b428 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2150,12
> +2150,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist
> b/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips32/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index
> c161ef11b5..22772a572a 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2156,12
> +2156,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
> b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index
> d4b1528e7a..310db16538 100644 ---
> a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -2150,12
> +2150,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist
> b/sysdeps/unix/sysv/linux/nios2/libc.abilist index
> 68fca4e650..ba11176736 100644 ---
> a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++
> b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2197,9 +2197,24 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
> diff --git a/sysdeps/unix/sysv/linux/nios2/libutil.abilist
> b/sysdeps/unix/sysv/linux/nios2/libutil.abilist index
> 19608bd74d..348b707eee 100644 ---
> a/sysdeps/unix/sysv/linux/nios2/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/nios2/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.21 login_tty F GLIBC_2.21 logout F
>  GLIBC_2.21 logwtmp F
>  GLIBC_2.21 openpty F
> +GLIBC_2.33 login F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index
> bec34b2128..c599b985d1 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@
> -2206,12 +2206,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc32/libutil.abilist @@ -4,3
> +4,4 @@ GLIBC_2.0 login_tty F GLIBC_2.0 logout F GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index
> 35bd161c79..3362f3f6bb 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@
> -2069,12 +2069,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libutil.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libutil.abilist index
> 9cf1da7aa4..41e5bf4a1f 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libutil.abilist @@
> -4,3 +4,4 @@ GLIBC_2.3 login_tty F GLIBC_2.3 logout F GLIBC_2.3
> logwtmp F GLIBC_2.3 openpty F
> +GLIBC_2.33 login F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index
> f1c8ad9cc5..aca57d0f38 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@
> -2359,9 +2359,24 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
> GLIBC_2.33 fstatat F GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
> diff --git
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libutil.abilist
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libutil.abilist index
> 99889de22e..3c2d9a1c14 100644 ---
> a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libutil.abilist @@
> -4,3 +4,4 @@ GLIBC_2.17 login_tty F GLIBC_2.17 logout F GLIBC_2.17
> logwtmp F GLIBC_2.17 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist
> b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index
> fdfc373871..d4e6f75078 100644 ---
> a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2126,9 +2126,24
> @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
> diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist
> b/sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist index
> cbfec8d46e..d9752a1da2 100644 ---
> a/sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/riscv/rv64/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.27 login_tty F GLIBC_2.27 logout F
>  GLIBC_2.27 logwtmp F
>  GLIBC_2.27 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c deleted file mode
> 100644 index 615312ed39..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent.c
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <stdlib.h>
> -#include <utmp.h>
> -
> -#include "utmp-compat.h"
> -
> -#if defined SHARED
> -# undef weak_alias
> -# define weak_alias(n,a)
> -#endif
> -#include "login/getutent.c"
> -
> -#if defined SHARED
> -default_symbol_version (__getutent, getutent, UTMP_COMPAT_BASE);
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c deleted file mode
> 100644 index 29d8c6a6f9..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <libc-lock.h>
> -#include <stdlib.h>
> -#include <utmp.h>
> -
> -#include "utmp-compat.h"
> -#include "utmp-private.h"
> -
> -#if defined SHARED
> -weak_alias (__setutent, setutent)
> -weak_alias (__endutent, endutent)
> -
> -# undef weak_alias
> -# define weak_alias(n,a)
> -#endif
> -#include "login/getutent_r.c"
> -
> -#if defined SHARED
> -default_symbol_version (__getutent_r, getutent_r, UTMP_COMPAT_BASE);
> -default_symbol_version (__pututline, pututline, UTMP_COMPAT_BASE);
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c deleted file mode
> 100644 index d3c63664df..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid.c
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <stdlib.h>
> -#include <utmp.h>
> -
> -#include "utmp-compat.h"
> -
> -#if defined SHARED
> -# undef weak_alias
> -# define weak_alias(n,a)
> -#endif
> -#include "login/getutid.c"
> -
> -#if defined SHARED
> -default_symbol_version (__getutid, getutid, UTMP_COMPAT_BASE);
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c deleted file mode
> 100644 index e5511d406a..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <libc-lock.h>
> -#include <errno.h>
> -#include <stdlib.h>
> -#include <utmp.h>
> -
> -#include "utmp-compat.h"
> -#include "utmp-private.h"
> -
> -#if defined SHARED
> -# undef weak_alias
> -# define weak_alias(n,a)
> -#endif
> -#include "login/getutid_r.c"
> -
> -#if defined SHARED
> -default_symbol_version (__getutid_r, getutid_r, UTMP_COMPAT_BASE);
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c deleted file mode
> 100644 index 1c98cc5bba..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline.c
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <stdlib.h>
> -#include <utmp.h>
> -
> -#include "utmp-compat.h"
> -
> -#if defined SHARED
> -# undef weak_alias
> -# define weak_alias(n,a)
> -#endif
> -#include "login/getutline.c"
> -
> -#if defined SHARED
> -default_symbol_version (__getutline, getutline, UTMP_COMPAT_BASE);
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c deleted file
> mode 100644 index f8b63342b4..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c
> +++ /dev/null
> @@ -1,34 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <errno.h>
> -#include <libc-lock.h>
> -#include <utmp.h>
> -
> -#include "utmp-compat.h"
> -#include "utmp-private.h"
> -
> -#if defined SHARED
> -# undef weak_alias
> -# define weak_alias(n,a)
> -#endif
> -#include "login/getutline_r.c"
> -
> -#if defined SHARED
> -default_symbol_version (__getutline_r, getutline_r,
> UTMP_COMPAT_BASE);; -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c deleted file mode
> 100644 index 50ce8c4f5c..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutmp.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#undef weak_alias
> -#define weak_alias(a, b)
> -#undef strong_alias
> -#define strong_alias(a, b)
> -
> -#include <login/getutmp.c>
> -
> -#include "utmp-compat.h"
> -
> -default_symbol_version (__getutmp, getutmp, UTMP_COMPAT_BASE);
> -_strong_alias (__getutmp, __getutmpx)
> -default_symbol_version (__getutmpx, getutmpx, UTMP_COMPAT_BASE);
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c deleted file mode
> 100644 index be887a672b..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxent.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <utmp.h>
> -#include <utmpx.h>
> -
> -#include "utmp-compat.h"
> -
> -#undef weak_alias
> -#define weak_alias(n,a)
> -#define getutxent __getutxent
> -#include "login/getutxent.c"
> -#undef getutxent
> -
> -default_symbol_version (__getutxent, getutxent, UTMP_COMPAT_BASE);
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c deleted file mode
> 100644 index 85febe277b..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxid.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <utmp.h>
> -#include <utmpx.h>
> -
> -#include "utmp-compat.h"
> -
> -#undef weak_alias
> -#define weak_alias(n,a)
> -#define getutxid __getutxid
> -#include "login/getutxid.c"
> -#undef getutxid
> -
> -default_symbol_version (__getutxid, getutxid, UTMP_COMPAT_BASE);
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c deleted file mode
> 100644 index a69740a712..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/getutxline.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <utmp.h>
> -#include <utmpx.h>
> -
> -#include "utmp-compat.h"
> -
> -#undef weak_alias
> -#define weak_alias(n,a)
> -#define getutxline __getutxline
> -#include "login/getutxline.c"
> -#undef getutxline
> -
> -default_symbol_version (__getutxline, getutxline, UTMP_COMPAT_BASE);
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/login.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/login.c deleted file mode
> 100644 index 25ee4a8b16..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/login.c
> +++ /dev/null
> @@ -1,35 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <assert.h>
> -#include <errno.h>
> -#include <limits.h>
> -#include <string.h>
> -#include <unistd.h>
> -#include <stdlib.h>
> -#include <utmp.h>
> -
> -#include "utmp-compat.h"
> -
> -#undef weak_alias
> -#define weak_alias(n,a)
> -#define login __login
> -#include "login/login.c"
> -#undef login
> -
> -default_symbol_version (__login, login, UTMP_COMPAT_BASE);
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c deleted file mode
> 100644 index c8f773d9dc..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/pututxline.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <utmp.h>
> -#include <utmpx.h>
> -
> -#include "utmp-compat.h"
> -
> -#undef weak_alias
> -#define weak_alias(n,a)
> -#define pututxline __pututxline
> -#include "login/pututxline.c"
> -#undef pututxline
> -
> -default_symbol_version (__pututxline, pututxline, UTMP_COMPAT_BASE);
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c deleted file mode
> 100644 index 2079571cc1..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmp.c
> +++ /dev/null
> @@ -1,32 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <utmp.h>
> -
> -#include "utmp-compat.h"
> -#include "utmp-private.h"
> -
> -#if defined SHARED
> -# undef weak_alias
> -# define weak_alias(n,a)
> -#endif
> -#include <login/updwtmp.c>
> -
> -#if defined SHARED
> -default_symbol_version (__updwtmp, updwtmp, UTMP_COMPAT_BASE);
> -#endif
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
> b/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c deleted file mode
> 100644 index ce94139c3c..0000000000
> --- a/sysdeps/unix/sysv/linux/s390/s390-32/updwtmpx.c
> +++ /dev/null
> @@ -1,30 +0,0 @@
> -/* Copyright (C) 2008-2020 Free Software Foundation, Inc.
> -   Contributed by Andreas Krebbel <Andreas.Krebbel@de.ibm.com>.
> -   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/>.  */
> -
> -#include <utmp.h>
> -#include <utmpx.h>
> -
> -#include "utmp-compat.h"
> -
> -#undef weak_alias
> -#define weak_alias(n,a)
> -#define updwtmpx __updwtmpx
> -#include "login/updwtmpx.c"
> -#undef updwtmpx
> -
> -default_symbol_version (__updwtmpx, updwtmpx, UTMP_COMPAT_BASE);
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h
> b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h index
> 4e5972b65d..ef8115370c 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h +++
> b/sysdeps/unix/sysv/linux/s390/s390-32/utmp-compat.h @@ -18,4 +18,4 @@
>  
>  /* This macro defines the glibc version tag at which the 64 bit
> struct utmp functions have been added to the 32 bit glibc.  */
> -#define UTMP_COMPAT_BASE GLIBC_2.9
> +#define UTMP_COMPAT_BASE GLIBC_2_9
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist
> b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index
> bd96aeaff7..0df18459dc 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2105,12
> +2105,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist
> b/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist index
> 14bd135ea8..3f66f39bac 100644 ---
> a/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/s390/s390-64/libutil.abilist @@ -4,3 +4,4
> @@ GLIBC_2.2 login_tty F GLIBC_2.2 logout F
>  GLIBC_2.2 logwtmp F
>  GLIBC_2.2 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist
> b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index
> b4cebb11dd..ea78226332 100644 ---
> a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2071,12 +2071,27 @@
> GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/sh/le/libutil.abilist
> b/sysdeps/unix/sysv/linux/sh/le/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/sh/le/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/sh/le/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index
> f208405859..6f3a2df230 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2195,12
> +2195,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 _IO_fprintf F
>  GLIBC_2.4 _IO_printf F
>  GLIBC_2.4 _IO_sprintf F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc32/libutil.abilist @@ -4,3 +4,4
> @@ GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index
> 44e68aded2..b4e75bb47e 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -2122,12
> +2122,27 @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist
> b/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist index
> aa2d35b323..1bd22adb45 100644 ---
> a/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/sparc/sparc64/libutil.abilist @@ -4,3 +4,4
> @@ GLIBC_2.0 login_tty F GLIBC_2.0 logout F
>  GLIBC_2.0 logwtmp F
>  GLIBC_2.0 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist
> b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index
> 51e76861f6..74c0c26ba5 100644 ---
> a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++
> b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -2080,12 +2080,27
> @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
>  GLIBC_2.4 __confstr_chk F
>  GLIBC_2.4 __fgets_chk F
>  GLIBC_2.4 __fgets_unlocked_chk F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist
> b/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist index
> 1356ed4115..7df76778a4 100644 ---
> a/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/x86_64/64/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.2.5 login_tty F GLIBC_2.2.5 logout F
>  GLIBC_2.2.5 logwtmp F
>  GLIBC_2.2.5 openpty F
> +GLIBC_2.33 login F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist
> b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index
> f83473c11f..3597a3ff88 100644 ---
> a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++
> b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2177,9 +2177,24
> @@ GLIBC_2.33 fstat F GLIBC_2.33 fstat64 F
>  GLIBC_2.33 fstatat F
>  GLIBC_2.33 fstatat64 F
> +GLIBC_2.33 getutent F
> +GLIBC_2.33 getutent_r F
> +GLIBC_2.33 getutid F
> +GLIBC_2.33 getutid_r F
> +GLIBC_2.33 getutline F
> +GLIBC_2.33 getutline_r F
> +GLIBC_2.33 getutmp F
> +GLIBC_2.33 getutmpx F
> +GLIBC_2.33 getutxent F
> +GLIBC_2.33 getutxid F
> +GLIBC_2.33 getutxline F
>  GLIBC_2.33 lstat F
>  GLIBC_2.33 lstat64 F
>  GLIBC_2.33 mknod F
>  GLIBC_2.33 mknodat F
> +GLIBC_2.33 pututline F
> +GLIBC_2.33 pututxline F
>  GLIBC_2.33 stat F
>  GLIBC_2.33 stat64 F
> +GLIBC_2.33 updwtmp F
> +GLIBC_2.33 updwtmpx F
> diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist
> b/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist index
> cff23106f5..9431f297d8 100644 ---
> a/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist +++
> b/sysdeps/unix/sysv/linux/x86_64/x32/libutil.abilist @@ -4,3 +4,4 @@
> GLIBC_2.16 login_tty F GLIBC_2.16 logout F
>  GLIBC_2.16 logwtmp F
>  GLIBC_2.16 openpty F
> +GLIBC_2.33 login F




Best regards,

Lukasz Majewski

--

DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-59 Fax: (+49)-8142-66989-80 Email: lukma@denx.de

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  parent reply	other threads:[~2020-10-22  9:17 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-29 20:51 [PATCH 1/5] login: Consolidate utmp and utmpx headers Adhemerval Zanella via Libc-alpha
2020-07-29 20:51 ` [PATCH 2/5] login: Move gnu utmpx to default implementaion Adhemerval Zanella via Libc-alpha
2020-10-22  8:15   ` Lukasz Majewski
2020-10-22  9:16   ` Andreas Schwab
2020-07-29 20:51 ` [PATCH 3/5] login: Add 64-bit time support Adhemerval Zanella via Libc-alpha
2020-07-29 21:17   ` Joseph Myers
2020-07-30 12:34     ` Adhemerval Zanella via Libc-alpha
2020-08-02 19:02       ` Maciej W. Rozycki via Libc-alpha
2020-08-02 22:05         ` Adhemerval Zanella via Libc-alpha
2020-10-22  9:16   ` Lukasz Majewski [this message]
2020-07-29 20:51 ` [PATCH 4/5] login: User 64-bit time on struct lastlog Adhemerval Zanella via Libc-alpha
2020-07-29 21:04   ` Andreas Schwab
2020-07-29 21:14   ` Andreas Schwab
2020-07-30 12:39     ` Adhemerval Zanella via Libc-alpha
2020-07-30 16:19       ` Florian Weimer via Libc-alpha
2020-07-30 18:54         ` Joseph Myers
2020-07-30 21:53           ` Adhemerval Zanella via Libc-alpha
2020-07-31  0:31             ` Joseph Myers
2020-07-30 21:46         ` Adhemerval Zanella via Libc-alpha
2020-10-22  9:25   ` Lukasz Majewski
2020-07-29 20:51 ` [PATCH 5/5] Remove __WORDSIZE_TIME64_COMPAT32 Adhemerval Zanella via Libc-alpha
2020-10-22  9:31   ` Lukasz Majewski
2020-07-29 21:08 ` [PATCH 1/5] login: Consolidate utmp and utmpx headers Joseph Myers
2020-07-30 12:36   ` Adhemerval Zanella via Libc-alpha
2020-10-22  8:06 ` Lukasz Majewski

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

  List information: https://www.gnu.org/software/libc/involved.html

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

  git send-email \
    --in-reply-to=20201022111622.4f4a8d73@jawa \
    --to=lukma@denx.de \
    --cc=adhemerval.zanella@linaro.org \
    --cc=alistair.francis@wdc.com \
    --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).