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

Message ID 20210319202914.2475530-1-adhemerval.zanella@linaro.org
Headers
Series libpthread removal: pthread-compat-wrappers and other libc symbols |

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
  

Comments

Florian Weimer March 25, 2021, 5:59 p.m. UTC | #1
I think nothing blocks this series from going in.  Are you aware of
any blockers?

There's the issue of the Hurd abilist glitch, but that is easily
corrected.
  
Adhemerval Zanella Netto March 25, 2021, 6:13 p.m. UTC | #2
On Thu, Mar 25, 2021 at 2:59 PM Florian Weimer <fw@deneb.enyo.de> wrote:
>
> I think nothing blocks this series from going in.  Are you aware of
> any blockers?
>
> There's the issue of the Hurd abilist glitch, but that is easily
> corrected.

I don't think so, I will rebase, fix the Hurd issue and commit.
Meanwhile I will finish your set, I think
I am missing only 6 ou 7 patches.