mbox

[00/13] Linux: Move most stack management out of libpthread

Message ID cover.1620323953.git.fweimer@redhat.com
Headers

Message

Florian Weimer May 6, 2021, 6:08 p.m. UTC
  This incorporates the previous “nptl: Remove delayed rtld lock
initialization” series.

Tested on i686-linux-gnu and x86_64-linux-gnu.  Built with
build-many-glibcs.py.

Thanks,
Florian

Florian Weimer (13):
  scripts/versions.awk: Add strings and hashes to <first-versions.h>
  elf, nptl: Resolve recursive lock implementation early
  nptl: Export __libc_multiple_threads from libc as an internal symbol
  Linux: Explicitly disable cancellation checking in the dynamic loader
  Linux: Simplify and fix the definition of SINGLE_THREAD_P
  nptl: Eliminate __pthread_multiple_threads
  elf: Introduce __tls_pre_init_tp
  nptl: Move more stack management variables into _rtld_global
  nptl: Simplify the change_stack_perm calling convention
  nptl: Move changing of stack permissions into ld.so
  nptl: Simplify resetting the in-flight stack in __reclaim_stacks
  nptl: Move __default_pthread_attr, __default_pthread_attr_lock into
    libc
  Linux: Move __reclaim_stacks into the fork implementation in libc

 csu/libc-tls.c                          |   2 +
 elf/Makefile                            |   3 +-
 elf/dl-load.c                           |   4 +
 elf/dl-mutex.c                          |  19 ++
 elf/dl-support.c                        |  13 +-
 elf/dl-tls_init_tp.c                    |  29 +++
 elf/rtld.c                              |  34 +---
 nptl/Makefile                           |   2 +-
 nptl/Versions                           |   4 +-
 nptl/allocatestack.c                    | 227 ++----------------------
 nptl/libc_multiple_threads.c            |   3 +-
 nptl/libc_pthread_init.c                |  11 --
 nptl/nptl-init.c                        |  24 ---
 nptl/pthreadP.h                         |  33 ++--
 nptl/pthread_cancel.c                   |   2 +-
 nptl/vars.c                             |  15 +-
 scripts/versions.awk                    |  36 ++++
 sysdeps/generic/ldsodefs.h              |  51 +++++-
 sysdeps/nptl/dl-mutex.c                 |  53 ++++++
 sysdeps/nptl/dl-tls_init_tp.c           |  26 ++-
 sysdeps/nptl/fork.c                     | 110 ++++++++++++
 sysdeps/nptl/libc-lockP.h               |  17 +-
 sysdeps/unix/sysdep.h                   |  11 +-
 sysdeps/unix/sysv/linux/Versions        |   6 +
 sysdeps/unix/sysv/linux/dl-execstack.c  |  76 +++++++-
 sysdeps/unix/sysv/linux/single-thread.h |  42 ++---
 26 files changed, 481 insertions(+), 372 deletions(-)
 create mode 100644 elf/dl-mutex.c
 create mode 100644 sysdeps/nptl/dl-mutex.c