mbox

[v2,00/14] libpthread removal: pthread-compat-wrappers and other libc symbols

Message ID 20210319202914.2475530-1-adhemerval.zanella@linaro.org
Headers

Message

Adhemerval Zanella Netto March 19, 2021, 8:29 p.m. UTC
  This patchse moves all missing the pthread-compat-wrappers symbols 
from libpthread plus some others that are already presented on libc
(the pthread_kill was done to enable the raise removal).

I based this version on top of Florian's 'Transparent multi-version
symbol support' [1] so it can use compat_symbol without the 
strong_alias requirement.

It has been tested on i686-linux-gnu and x86_64-linux-gnu, and
built by build-many-glibcs.py for all ABIs that required abilist
changes.

Changes from v1 [2]:
* Make libc version the default one for lseek, open, pread, and pwrite.
* Make aarch64 and nios2 libpthread __send compat symbol.
* Removed alpha specific implementation for pread and pwrite.
* Renamed the commit message for msgrcv, msgsnd, and sigsupend.
* Fixed the split pthread_kill abi addition.
* Fixed the localplt.data for raise on arm.

[1] https://patchwork.sourceware.org/project/glibc/list/?series=1881
[2] https://patchwork.sourceware.org/project/glibc/list/?series=1862

Adhemerval Zanella (14):
  Add OTHER_SHLIB_COMPAT
  nptl: Remove send from libpthread
  nptl: Remove lseek from libpthread
  nptl: Remove open from libpthread
  nptl: Remove pread from libpthread
  nptl: Remove pwrite from libpthread
  nptl: Remove msgsnd from pthread-compat-wrappers
  nptl: Remove msgrcv from pthread-compat-wrappers
  nptl: Remove sigsuspend from pthread-compat-wrappers
  nptl: Move pthread_kill to libc
  nptl: Remove pthread raise implementation
  nptl: Move sigaction to libc
  nptl: Remove __libc_allocate_rtsig, __libc_current_sigrtmax, and
    __libc_current_sigrtmin
  nptl: Remove unused rules

 include/shlib-compat.h                        |  9 ++++
 include/unistd.h                              |  7 ++-
 nptl/Makefile                                 | 32 +-----------
 nptl/Versions                                 | 29 ++---------
 nptl/pt-allocrtsig.c                          | 50 -------------------
 nptl/pt-raise.c                               | 29 -----------
 nptl/pthread_kill.c                           |  7 ++-
 nptl/sigaction.c                              | 33 ------------
 signal/Versions                               |  3 ++
 signal/allocrtsig.c                           |  9 +---
 socket/Makefile                               |  1 +
 sysdeps/generic/internal-signals.h            |  4 ++
 sysdeps/mach/hurd/i386/ld.abilist             |  2 -
 sysdeps/nptl/allocrtsig.c                     | 31 ------------
 sysdeps/pthread/sem_open.c                    |  6 +--
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  3 ++
 .../sysv/linux/aarch64/libpthread.abilist     | 22 --------
 sysdeps/unix/sysv/linux/aarch64/send.c        |  9 ++++
 sysdeps/unix/sysv/linux/aarch64/sysdep.h      |  4 --
 sysdeps/unix/sysv/linux/alpha/libc.abilist    | 10 ++++
 .../unix/sysv/linux/alpha/libpthread.abilist  | 22 --------
 sysdeps/unix/sysv/linux/arc/libc.abilist      |  2 +
 .../unix/sysv/linux/arc/libpthread.abilist    | 22 --------
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  2 +
 .../unix/sysv/linux/arm/be/libpthread.abilist | 22 --------
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  2 +
 .../unix/sysv/linux/arm/le/libpthread.abilist | 22 --------
 sysdeps/unix/sysv/linux/arm/localplt.data     |  1 -
 sysdeps/unix/sysv/linux/csky/libc.abilist     |  2 +
 .../unix/sysv/linux/csky/libpthread.abilist   | 22 --------
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |  2 +
 .../unix/sysv/linux/hppa/libpthread.abilist   | 22 --------
 sysdeps/unix/sysv/linux/i386/libc.abilist     | 10 ++++
 .../unix/sysv/linux/i386/libpthread.abilist   | 22 --------
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |  2 +
 .../unix/sysv/linux/ia64/libpthread.abilist   | 22 --------
 sysdeps/unix/sysv/linux/internal-signals.h    |  5 ++
 sysdeps/unix/sysv/linux/lseek64.c             |  7 ++-
 .../sysv/linux/m68k/coldfire/libc.abilist     |  2 +
 .../linux/m68k/coldfire/libpthread.abilist    | 22 --------
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  | 10 ++++
 .../sysv/linux/m68k/m680x0/libpthread.abilist | 22 --------
 .../sysv/linux/microblaze/be/libc.abilist     |  2 +
 .../linux/microblaze/be/libpthread.abilist    | 22 --------
 .../sysv/linux/microblaze/le/libc.abilist     |  2 +
 .../linux/microblaze/le/libpthread.abilist    | 22 --------
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |  2 +
 .../sysv/linux/mips/mips32/libpthread.abilist | 22 --------
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |  2 +
 .../sysv/linux/mips/mips64/libpthread.abilist | 22 --------
 .../sysv/linux/mips/mips64/n32/libc.abilist   |  2 +
 .../sysv/linux/mips/mips64/n64/libc.abilist   |  2 +
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |  3 ++
 .../unix/sysv/linux/nios2/libpthread.abilist  | 22 --------
 sysdeps/unix/sysv/linux/nios2/send.c          |  9 ++++
 sysdeps/unix/sysv/linux/nios2/sysdep.h        |  4 --
 sysdeps/unix/sysv/linux/open64.c              |  6 ++-
 .../linux/powerpc/powerpc32/fpu/libc.abilist  | 10 ++++
 .../powerpc/powerpc32/libpthread.abilist      | 22 --------
 .../powerpc/powerpc32/nofpu/libc.abilist      | 10 ++++
 .../linux/powerpc/powerpc64/be/libc.abilist   |  2 +
 .../powerpc/powerpc64/be/libpthread.abilist   | 22 --------
 .../linux/powerpc/powerpc64/le/libc.abilist   |  2 +
 .../powerpc/powerpc64/le/libpthread.abilist   | 22 --------
 sysdeps/unix/sysv/linux/pread.c               |  6 +++
 sysdeps/unix/sysv/linux/pread64.c             | 10 ++++
 sysdeps/unix/sysv/linux/pt-raise.c            | 20 --------
 sysdeps/unix/sysv/linux/pwrite.c              |  6 +++
 sysdeps/unix/sysv/linux/pwrite64.c            | 10 ++++
 .../unix/sysv/linux/riscv/rv32/libc.abilist   |  2 +
 .../sysv/linux/riscv/rv32/libpthread.abilist  | 22 --------
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |  2 +
 .../sysv/linux/riscv/rv64/libpthread.abilist  | 22 --------
 .../unix/sysv/linux/s390/s390-32/libc.abilist | 10 ++++
 .../linux/s390/s390-32/libpthread.abilist     | 22 --------
 .../unix/sysv/linux/s390/s390-64/libc.abilist |  2 +
 .../linux/s390/s390-64/libpthread.abilist     | 22 --------
 sysdeps/unix/sysv/linux/send.c                |  2 -
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  2 +
 .../unix/sysv/linux/sh/be/libpthread.abilist  | 22 --------
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  2 +
 .../unix/sysv/linux/sh/le/libpthread.abilist  | 22 --------
 .../sysv/linux/sparc/sparc32/libc.abilist     | 10 ++++
 .../linux/sparc/sparc32/libpthread.abilist    | 22 --------
 .../sysv/linux/sparc/sparc64/libc.abilist     |  2 +
 .../linux/sparc/sparc64/libpthread.abilist    | 22 --------
 sysdeps/unix/sysv/linux/sysdep.h              |  4 --
 .../unix/sysv/linux/x86_64/64/libc.abilist    |  2 +
 .../sysv/linux/x86_64/64/libpthread.abilist   | 22 --------
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |  2 +
 .../sysv/linux/x86_64/x32/libpthread.abilist  | 22 --------
 91 files changed, 222 insertions(+), 893 deletions(-)
 delete mode 100644 nptl/pt-allocrtsig.c
 delete mode 100644 nptl/pt-raise.c
 delete mode 100644 nptl/sigaction.c
 delete mode 100644 sysdeps/nptl/allocrtsig.c
 create mode 100644 sysdeps/unix/sysv/linux/aarch64/send.c
 create mode 100644 sysdeps/unix/sysv/linux/nios2/send.c
 delete mode 100644 sysdeps/unix/sysv/linux/pt-raise.c