mbox series

[v2,0/2] Remove libcrypt support

Message ID 20231002121149.2325402-1-adhemerval.zanella@linaro.org
Headers show
Series Remove libcrypt support | expand

Message

Adhemerval Zanella Oct. 2, 2023, 12:11 p.m. UTC
The libcrypt is no longer built by default since 2.38, it lacks
support for newer password hashing schmes, and the code has some
code issues (like extensive use of alloca, where not all
architectures have stack haderning support).

libxcrypt [1] provides full support along with ABI compatbility,
meaning it is a drop-in replacement without the need to either
code changes or rebuilding.  It is also provided with a similar
licensing (LGPL 2.1).

[1] https://github.com/besser82/libxcrypt

Adhemerval Zanella (2):
  sparc: Remove optimize md5, sha256, and sha512
  crypt: Remove libcrypt support

 CONTRIBUTED-BY                                |  15 -
 INSTALL                                       |  13 -
 Makeconfig                                    |   5 -
 NEWS                                          |  16 +-
 SHARED-FILES                                  |   2 -
 config.make.in                                |   4 -
 configure                                     | 126 ---
 configure.ac                                  |  65 --
 conform/Makefile                              |   5 -
 crypt/Makefile                                |  69 --
 crypt/README.ufc-crypt                        | 135 ---
 crypt/Versions                                |   5 -
 crypt/badsalttest.c                           |  54 -
 crypt/cert.c                                  | 135 ---
 crypt/cert.input                              | 171 ----
 crypt/crypt-entry.c                           | 183 ----
 crypt/crypt-private.h                         |  76 --
 crypt/crypt.c                                 | 115 ---
 crypt/crypt.h                                 |  70 --
 crypt/crypt_util.c                            | 946 ------------------
 crypt/md5-crypt.c                             | 331 ------
 crypt/md5c-test.c                             |  18 -
 crypt/md5test-giant.c                         | 137 ---
 crypt/md5test.c                               |  53 -
 crypt/sha256-block.c                          |  98 --
 crypt/sha256-crypt.c                          | 423 --------
 crypt/sha256.c                                | 193 ----
 crypt/sha256.h                                |  69 --
 crypt/sha256c-test.c                          |  61 --
 crypt/sha256test.c                            | 102 --
 crypt/sha512-block.c                          | 105 --
 crypt/sha512-crypt.c                          | 445 --------
 crypt/sha512.c                                | 221 ----
 crypt/sha512.h                                |  72 --
 crypt/sha512c-test.c                          |  63 --
 crypt/sha512test.c                            | 113 ---
 crypt/speeds.c                                | 153 ---
 crypt/ufc-crypt.h                             |  28 -
 crypt/ufc.c                                   |  54 -
 elf/Makefile                                  |  38 -
 elf/tst-linkall-static.c                      |   6 -
 include/crypt.h                               |   3 -
 locale/Makefile                               |   4 +-
 locale/programs/locarchive.c                  |   2 +-
 locale/programs/locfile.c                     |   2 +-
 {crypt => locale/programs}/md5-block.c        |   0
 {crypt => locale/programs}/md5.c              | 104 +-
 {crypt => locale/programs}/md5.h              |  46 +-
 manual/contrib.texi                           |   2 +-
 manual/crypt.texi                             | 234 +----
 manual/examples/genpass.c                     |  59 --
 manual/examples/testpass.c                    |  67 --
 manual/users.texi                             |   4 +-
 posix/unistd.h                                |  10 -
 scripts/build-many-glibcs.py                  |   9 +-
 scripts/documented.sh                         |   2 +-
 shlib-versions                                |   3 -
 stdio-common/Versions                         |   2 -
 sysdeps/generic/fips-private.h                |  36 -
 sysdeps/generic/libcrypt.abilist              |   0
 sysdeps/mach/Makefile                         |   4 +-
 sysdeps/mach/hurd/i386/libcrypt.abilist       |   7 -
 sysdeps/mach/hurd/x86_64/libcrypt.abilist     |   2 -
 .../sparc/sparc32/sparcv9/multiarch/Makefile  |   8 -
 .../sparc32/sparcv9/multiarch/md5-block.c     |   1 -
 .../sparc32/sparcv9/multiarch/md5-crop.S      |   1 -
 .../sparc32/sparcv9/multiarch/sha256-block.c  |   1 -
 .../sparc32/sparcv9/multiarch/sha256-crop.S   |   1 -
 .../sparc32/sparcv9/multiarch/sha512-block.c  |   1 -
 .../sparc32/sparcv9/multiarch/sha512-crop.S   |   1 -
 sysdeps/sparc/sparc64/multiarch/Makefile      |   8 -
 sysdeps/sparc/sparc64/multiarch/md5-block.c   |  29 -
 sysdeps/sparc/sparc64/multiarch/md5-crop.S    | 109 --
 .../sparc/sparc64/multiarch/sha256-block.c    |  32 -
 sysdeps/sparc/sparc64/multiarch/sha256-crop.S | 100 --
 .../sparc/sparc64/multiarch/sha512-block.c    |  32 -
 sysdeps/sparc/sparc64/multiarch/sha512-crop.S | 130 ---
 .../unix/sysv/linux/aarch64/libcrypt.abilist  |   7 -
 .../unix/sysv/linux/alpha/libcrypt.abilist    |   7 -
 sysdeps/unix/sysv/linux/alpha/shlib-versions  |   1 -
 sysdeps/unix/sysv/linux/arc/libcrypt.abilist  |   2 -
 sysdeps/unix/sysv/linux/arm/Makefile          |   4 -
 .../unix/sysv/linux/arm/be/libcrypt.abilist   |   7 -
 .../unix/sysv/linux/arm/le/libcrypt.abilist   |   7 -
 sysdeps/unix/sysv/linux/csky/libcrypt.abilist |   2 -
 sysdeps/unix/sysv/linux/fips-private.h        |  74 --
 sysdeps/unix/sysv/linux/hppa/libcrypt.abilist |   7 -
 sysdeps/unix/sysv/linux/i386/libcrypt.abilist |   7 -
 sysdeps/unix/sysv/linux/ia64/libcrypt.abilist |   7 -
 .../linux/loongarch/lp64/libcrypt.abilist     |   2 -
 .../sysv/linux/m68k/coldfire/libcrypt.abilist |   7 -
 .../sysv/linux/m68k/m680x0/libcrypt.abilist   |   7 -
 .../sysv/linux/microblaze/be/libcrypt.abilist |   7 -
 .../sysv/linux/microblaze/le/libcrypt.abilist |   7 -
 .../sysv/linux/mips/mips32/libcrypt.abilist   |   7 -
 .../sysv/linux/mips/mips64/libcrypt.abilist   |   7 -
 .../unix/sysv/linux/nios2/libcrypt.abilist    |   7 -
 sysdeps/unix/sysv/linux/or1k/libcrypt.abilist |   2 -
 .../linux/powerpc/powerpc32/libcrypt.abilist  |   7 -
 .../powerpc/powerpc64/be/libcrypt.abilist     |   7 -
 .../powerpc/powerpc64/le/libcrypt.abilist     |   7 -
 .../sysv/linux/riscv/rv32/libcrypt.abilist    |   2 -
 .../sysv/linux/riscv/rv64/libcrypt.abilist    |   7 -
 .../sysv/linux/s390/s390-32/libcrypt.abilist  |   7 -
 .../sysv/linux/s390/s390-64/libcrypt.abilist  |   7 -
 .../unix/sysv/linux/sh/be/libcrypt.abilist    |   7 -
 .../unix/sysv/linux/sh/le/libcrypt.abilist    |   7 -
 .../sysv/linux/sparc/sparc32/libcrypt.abilist |   7 -
 .../sysv/linux/sparc/sparc64/libcrypt.abilist |   7 -
 .../sysv/linux/x86_64/64/libcrypt.abilist     |   7 -
 .../sysv/linux/x86_64/x32/libcrypt.abilist    |   7 -
 111 files changed, 61 insertions(+), 6259 deletions(-)
 delete mode 100644 crypt/Makefile
 delete mode 100644 crypt/README.ufc-crypt
 delete mode 100644 crypt/Versions
 delete mode 100644 crypt/badsalttest.c
 delete mode 100644 crypt/cert.c
 delete mode 100644 crypt/cert.input
 delete mode 100644 crypt/crypt-entry.c
 delete mode 100644 crypt/crypt-private.h
 delete mode 100644 crypt/crypt.c
 delete mode 100644 crypt/crypt.h
 delete mode 100644 crypt/crypt_util.c
 delete mode 100644 crypt/md5-crypt.c
 delete mode 100644 crypt/md5c-test.c
 delete mode 100644 crypt/md5test-giant.c
 delete mode 100644 crypt/md5test.c
 delete mode 100644 crypt/sha256-block.c
 delete mode 100644 crypt/sha256-crypt.c
 delete mode 100644 crypt/sha256.c
 delete mode 100644 crypt/sha256.h
 delete mode 100644 crypt/sha256c-test.c
 delete mode 100644 crypt/sha256test.c
 delete mode 100644 crypt/sha512-block.c
 delete mode 100644 crypt/sha512-crypt.c
 delete mode 100644 crypt/sha512.c
 delete mode 100644 crypt/sha512.h
 delete mode 100644 crypt/sha512c-test.c
 delete mode 100644 crypt/sha512test.c
 delete mode 100644 crypt/speeds.c
 delete mode 100644 crypt/ufc-crypt.h
 delete mode 100644 crypt/ufc.c
 delete mode 100644 include/crypt.h
 rename {crypt => locale/programs}/md5-block.c (100%)
 rename {crypt => locale/programs}/md5.c (65%)
 rename {crypt => locale/programs}/md5.h (74%)
 delete mode 100644 manual/examples/genpass.c
 delete mode 100644 manual/examples/testpass.c
 delete mode 100644 sysdeps/generic/fips-private.h
 delete mode 100644 sysdeps/generic/libcrypt.abilist
 delete mode 100644 sysdeps/mach/hurd/i386/libcrypt.abilist
 delete mode 100644 sysdeps/mach/hurd/x86_64/libcrypt.abilist
 delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/md5-block.c
 delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/md5-crop.S
 delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-block.c
 delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-crop.S
 delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-block.c
 delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-crop.S
 delete mode 100644 sysdeps/sparc/sparc64/multiarch/md5-block.c
 delete mode 100644 sysdeps/sparc/sparc64/multiarch/md5-crop.S
 delete mode 100644 sysdeps/sparc/sparc64/multiarch/sha256-block.c
 delete mode 100644 sysdeps/sparc/sparc64/multiarch/sha256-crop.S
 delete mode 100644 sysdeps/sparc/sparc64/multiarch/sha512-block.c
 delete mode 100644 sysdeps/sparc/sparc64/multiarch/sha512-crop.S
 delete mode 100644 sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/arc/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/arm/be/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/arm/le/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/csky/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/fips-private.h
 delete mode 100644 sysdeps/unix/sysv/linux/hppa/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/i386/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/ia64/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/loongarch/lp64/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/microblaze/be/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/microblaze/le/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/nios2/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/or1k/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/sh/be/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/sh/le/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist
 delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist

Comments

Carlos O'Donell Oct. 30, 2023, 12:52 p.m. UTC | #1
On 10/2/23 08:11, Adhemerval Zanella wrote:
> The libcrypt is no longer built by default since 2.38, it lacks
> support for newer password hashing schmes, and the code has some
> code issues (like extensive use of alloca, where not all
> architectures have stack haderning support).
> 
> libxcrypt [1] provides full support along with ABI compatbility,
> meaning it is a drop-in replacement without the need to either
> code changes or rebuilding.  It is also provided with a similar
> licensing (LGPL 2.1).

Downstream Fedora has been using libxcrypt since Fedora 28:
https://fedoraproject.org/wiki/Changes/Replace_glibc_libcrypt_with_libxcrypt

Since 2018 (glibc 2.27) Fedora has been using libxcrypt. Over the last 5 years
we haven't had any problems with libcrypt.

The direction this series takes is the right direction, which is to remove all
of the extra interfaces from glibc which are not a part of the core C library
and which can and should evolve at a different speed, and possibly with their
own security policy.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>


> [1] https://github.com/besser82/libxcrypt
> 
> Adhemerval Zanella (2):
>   sparc: Remove optimize md5, sha256, and sha512
>   crypt: Remove libcrypt support
> 
>  CONTRIBUTED-BY                                |  15 -
>  INSTALL                                       |  13 -
>  Makeconfig                                    |   5 -
>  NEWS                                          |  16 +-
>  SHARED-FILES                                  |   2 -
>  config.make.in                                |   4 -
>  configure                                     | 126 ---
>  configure.ac                                  |  65 --
>  conform/Makefile                              |   5 -
>  crypt/Makefile                                |  69 --
>  crypt/README.ufc-crypt                        | 135 ---
>  crypt/Versions                                |   5 -
>  crypt/badsalttest.c                           |  54 -
>  crypt/cert.c                                  | 135 ---
>  crypt/cert.input                              | 171 ----
>  crypt/crypt-entry.c                           | 183 ----
>  crypt/crypt-private.h                         |  76 --
>  crypt/crypt.c                                 | 115 ---
>  crypt/crypt.h                                 |  70 --
>  crypt/crypt_util.c                            | 946 ------------------
>  crypt/md5-crypt.c                             | 331 ------
>  crypt/md5c-test.c                             |  18 -
>  crypt/md5test-giant.c                         | 137 ---
>  crypt/md5test.c                               |  53 -
>  crypt/sha256-block.c                          |  98 --
>  crypt/sha256-crypt.c                          | 423 --------
>  crypt/sha256.c                                | 193 ----
>  crypt/sha256.h                                |  69 --
>  crypt/sha256c-test.c                          |  61 --
>  crypt/sha256test.c                            | 102 --
>  crypt/sha512-block.c                          | 105 --
>  crypt/sha512-crypt.c                          | 445 --------
>  crypt/sha512.c                                | 221 ----
>  crypt/sha512.h                                |  72 --
>  crypt/sha512c-test.c                          |  63 --
>  crypt/sha512test.c                            | 113 ---
>  crypt/speeds.c                                | 153 ---
>  crypt/ufc-crypt.h                             |  28 -
>  crypt/ufc.c                                   |  54 -
>  elf/Makefile                                  |  38 -
>  elf/tst-linkall-static.c                      |   6 -
>  include/crypt.h                               |   3 -
>  locale/Makefile                               |   4 +-
>  locale/programs/locarchive.c                  |   2 +-
>  locale/programs/locfile.c                     |   2 +-
>  {crypt => locale/programs}/md5-block.c        |   0
>  {crypt => locale/programs}/md5.c              | 104 +-
>  {crypt => locale/programs}/md5.h              |  46 +-
>  manual/contrib.texi                           |   2 +-
>  manual/crypt.texi                             | 234 +----
>  manual/examples/genpass.c                     |  59 --
>  manual/examples/testpass.c                    |  67 --
>  manual/users.texi                             |   4 +-
>  posix/unistd.h                                |  10 -
>  scripts/build-many-glibcs.py                  |   9 +-
>  scripts/documented.sh                         |   2 +-
>  shlib-versions                                |   3 -
>  stdio-common/Versions                         |   2 -
>  sysdeps/generic/fips-private.h                |  36 -
>  sysdeps/generic/libcrypt.abilist              |   0
>  sysdeps/mach/Makefile                         |   4 +-
>  sysdeps/mach/hurd/i386/libcrypt.abilist       |   7 -
>  sysdeps/mach/hurd/x86_64/libcrypt.abilist     |   2 -
>  .../sparc/sparc32/sparcv9/multiarch/Makefile  |   8 -
>  .../sparc32/sparcv9/multiarch/md5-block.c     |   1 -
>  .../sparc32/sparcv9/multiarch/md5-crop.S      |   1 -
>  .../sparc32/sparcv9/multiarch/sha256-block.c  |   1 -
>  .../sparc32/sparcv9/multiarch/sha256-crop.S   |   1 -
>  .../sparc32/sparcv9/multiarch/sha512-block.c  |   1 -
>  .../sparc32/sparcv9/multiarch/sha512-crop.S   |   1 -
>  sysdeps/sparc/sparc64/multiarch/Makefile      |   8 -
>  sysdeps/sparc/sparc64/multiarch/md5-block.c   |  29 -
>  sysdeps/sparc/sparc64/multiarch/md5-crop.S    | 109 --
>  .../sparc/sparc64/multiarch/sha256-block.c    |  32 -
>  sysdeps/sparc/sparc64/multiarch/sha256-crop.S | 100 --
>  .../sparc/sparc64/multiarch/sha512-block.c    |  32 -
>  sysdeps/sparc/sparc64/multiarch/sha512-crop.S | 130 ---
>  .../unix/sysv/linux/aarch64/libcrypt.abilist  |   7 -
>  .../unix/sysv/linux/alpha/libcrypt.abilist    |   7 -
>  sysdeps/unix/sysv/linux/alpha/shlib-versions  |   1 -
>  sysdeps/unix/sysv/linux/arc/libcrypt.abilist  |   2 -
>  sysdeps/unix/sysv/linux/arm/Makefile          |   4 -
>  .../unix/sysv/linux/arm/be/libcrypt.abilist   |   7 -
>  .../unix/sysv/linux/arm/le/libcrypt.abilist   |   7 -
>  sysdeps/unix/sysv/linux/csky/libcrypt.abilist |   2 -
>  sysdeps/unix/sysv/linux/fips-private.h        |  74 --
>  sysdeps/unix/sysv/linux/hppa/libcrypt.abilist |   7 -
>  sysdeps/unix/sysv/linux/i386/libcrypt.abilist |   7 -
>  sysdeps/unix/sysv/linux/ia64/libcrypt.abilist |   7 -
>  .../linux/loongarch/lp64/libcrypt.abilist     |   2 -
>  .../sysv/linux/m68k/coldfire/libcrypt.abilist |   7 -
>  .../sysv/linux/m68k/m680x0/libcrypt.abilist   |   7 -
>  .../sysv/linux/microblaze/be/libcrypt.abilist |   7 -
>  .../sysv/linux/microblaze/le/libcrypt.abilist |   7 -
>  .../sysv/linux/mips/mips32/libcrypt.abilist   |   7 -
>  .../sysv/linux/mips/mips64/libcrypt.abilist   |   7 -
>  .../unix/sysv/linux/nios2/libcrypt.abilist    |   7 -
>  sysdeps/unix/sysv/linux/or1k/libcrypt.abilist |   2 -
>  .../linux/powerpc/powerpc32/libcrypt.abilist  |   7 -
>  .../powerpc/powerpc64/be/libcrypt.abilist     |   7 -
>  .../powerpc/powerpc64/le/libcrypt.abilist     |   7 -
>  .../sysv/linux/riscv/rv32/libcrypt.abilist    |   2 -
>  .../sysv/linux/riscv/rv64/libcrypt.abilist    |   7 -
>  .../sysv/linux/s390/s390-32/libcrypt.abilist  |   7 -
>  .../sysv/linux/s390/s390-64/libcrypt.abilist  |   7 -
>  .../unix/sysv/linux/sh/be/libcrypt.abilist    |   7 -
>  .../unix/sysv/linux/sh/le/libcrypt.abilist    |   7 -
>  .../sysv/linux/sparc/sparc32/libcrypt.abilist |   7 -
>  .../sysv/linux/sparc/sparc64/libcrypt.abilist |   7 -
>  .../sysv/linux/x86_64/64/libcrypt.abilist     |   7 -
>  .../sysv/linux/x86_64/x32/libcrypt.abilist    |   7 -
>  111 files changed, 61 insertions(+), 6259 deletions(-)
>  delete mode 100644 crypt/Makefile
>  delete mode 100644 crypt/README.ufc-crypt
>  delete mode 100644 crypt/Versions
>  delete mode 100644 crypt/badsalttest.c
>  delete mode 100644 crypt/cert.c
>  delete mode 100644 crypt/cert.input
>  delete mode 100644 crypt/crypt-entry.c
>  delete mode 100644 crypt/crypt-private.h
>  delete mode 100644 crypt/crypt.c
>  delete mode 100644 crypt/crypt.h
>  delete mode 100644 crypt/crypt_util.c
>  delete mode 100644 crypt/md5-crypt.c
>  delete mode 100644 crypt/md5c-test.c
>  delete mode 100644 crypt/md5test-giant.c
>  delete mode 100644 crypt/md5test.c
>  delete mode 100644 crypt/sha256-block.c
>  delete mode 100644 crypt/sha256-crypt.c
>  delete mode 100644 crypt/sha256.c
>  delete mode 100644 crypt/sha256.h
>  delete mode 100644 crypt/sha256c-test.c
>  delete mode 100644 crypt/sha256test.c
>  delete mode 100644 crypt/sha512-block.c
>  delete mode 100644 crypt/sha512-crypt.c
>  delete mode 100644 crypt/sha512.c
>  delete mode 100644 crypt/sha512.h
>  delete mode 100644 crypt/sha512c-test.c
>  delete mode 100644 crypt/sha512test.c
>  delete mode 100644 crypt/speeds.c
>  delete mode 100644 crypt/ufc-crypt.h
>  delete mode 100644 crypt/ufc.c
>  delete mode 100644 include/crypt.h
>  rename {crypt => locale/programs}/md5-block.c (100%)
>  rename {crypt => locale/programs}/md5.c (65%)
>  rename {crypt => locale/programs}/md5.h (74%)
>  delete mode 100644 manual/examples/genpass.c
>  delete mode 100644 manual/examples/testpass.c
>  delete mode 100644 sysdeps/generic/fips-private.h
>  delete mode 100644 sysdeps/generic/libcrypt.abilist
>  delete mode 100644 sysdeps/mach/hurd/i386/libcrypt.abilist
>  delete mode 100644 sysdeps/mach/hurd/x86_64/libcrypt.abilist
>  delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/md5-block.c
>  delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/md5-crop.S
>  delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-block.c
>  delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/sha256-crop.S
>  delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-block.c
>  delete mode 100644 sysdeps/sparc/sparc32/sparcv9/multiarch/sha512-crop.S
>  delete mode 100644 sysdeps/sparc/sparc64/multiarch/md5-block.c
>  delete mode 100644 sysdeps/sparc/sparc64/multiarch/md5-crop.S
>  delete mode 100644 sysdeps/sparc/sparc64/multiarch/sha256-block.c
>  delete mode 100644 sysdeps/sparc/sparc64/multiarch/sha256-crop.S
>  delete mode 100644 sysdeps/sparc/sparc64/multiarch/sha512-block.c
>  delete mode 100644 sysdeps/sparc/sparc64/multiarch/sha512-crop.S
>  delete mode 100644 sysdeps/unix/sysv/linux/aarch64/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/alpha/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/arc/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/arm/be/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/arm/le/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/csky/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/fips-private.h
>  delete mode 100644 sysdeps/unix/sysv/linux/hppa/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/i386/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/ia64/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/loongarch/lp64/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/m68k/coldfire/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/m68k/m680x0/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/microblaze/be/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/microblaze/le/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/mips/mips32/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/mips/mips64/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/nios2/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/or1k/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc32/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/riscv/rv32/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/riscv/rv64/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-32/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/s390/s390-64/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/sh/be/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/sh/le/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc32/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/sparc/sparc64/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/x86_64/64/libcrypt.abilist
>  delete mode 100644 sysdeps/unix/sysv/linux/x86_64/x32/libcrypt.abilist
>