mbox

[0/2] Add __libc_single_threaded

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

Message

Florian Weimer May 20, 2020, 6:12 p.m. UTC
  This is another attempt at providing the __libc_single_threaded
variable.  With __libc_early_init, this becomes quite easy to implement.
I removed to optimization for fork because it did not seem very
important.

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

Florian Weimer (2):
  Add the __libc_single_threaded variable
  manual: Document __libc_single_threaded

 NEWS                                          |   6 +
 elf/Makefile                                  |  33 +++-
 elf/libc_early_init.c                         |   4 +
 elf/tst-single_threaded-mod1.c                |  25 +++
 elf/tst-single_threaded-mod2.c                |  25 +++
 elf/tst-single_threaded-mod3.c                |  25 +++
 elf/tst-single_threaded-mod4.c                |  25 +++
 elf/tst-single_threaded-pthread-static.c      |  86 +++++++++
 elf/tst-single_threaded-pthread.c             | 174 ++++++++++++++++++
 elf/tst-single_threaded-static-dlopen.c       |  56 ++++++
 elf/tst-single_threaded-static.c              |  29 +++
 elf/tst-single_threaded.c                     |  70 +++++++
 htl/pt-create.c                               |   5 +
 include/sys/single_threaded.h                 |   1 +
 manual/threads.texi                           |  89 +++++++++
 misc/Makefile                                 |   5 +-
 misc/Versions                                 |   3 +
 misc/single_threaded.c                        |  27 +++
 misc/sys/single_threaded.h                    |  33 ++++
 nptl/pthread_create.c                         |   5 +
 sysdeps/generic/ldsodefs.h                    |   5 +
 sysdeps/generic/libc.abilist                  |   1 +
 sysdeps/mach/hurd/i386/libc.abilist           |   1 +
 sysdeps/unix/sysv/linux/aarch64/libc.abilist  |   1 +
 sysdeps/unix/sysv/linux/alpha/libc.abilist    |   1 +
 sysdeps/unix/sysv/linux/arm/be/libc.abilist   |   1 +
 sysdeps/unix/sysv/linux/arm/le/libc.abilist   |   1 +
 sysdeps/unix/sysv/linux/csky/libc.abilist     |   1 +
 sysdeps/unix/sysv/linux/hppa/libc.abilist     |   1 +
 sysdeps/unix/sysv/linux/i386/libc.abilist     |   1 +
 sysdeps/unix/sysv/linux/ia64/libc.abilist     |   1 +
 .../sysv/linux/m68k/coldfire/libc.abilist     |   1 +
 .../unix/sysv/linux/m68k/m680x0/libc.abilist  |   1 +
 .../sysv/linux/microblaze/be/libc.abilist     |   1 +
 .../sysv/linux/microblaze/le/libc.abilist     |   1 +
 .../sysv/linux/mips/mips32/fpu/libc.abilist   |   1 +
 .../sysv/linux/mips/mips32/nofpu/libc.abilist |   1 +
 .../sysv/linux/mips/mips64/n32/libc.abilist   |   1 +
 .../sysv/linux/mips/mips64/n64/libc.abilist   |   1 +
 sysdeps/unix/sysv/linux/nios2/libc.abilist    |   1 +
 .../linux/powerpc/powerpc32/fpu/libc.abilist  |   1 +
 .../powerpc/powerpc32/nofpu/libc.abilist      |   1 +
 .../linux/powerpc/powerpc64/be/libc.abilist   |   1 +
 .../linux/powerpc/powerpc64/le/libc.abilist   |   1 +
 .../unix/sysv/linux/riscv/rv64/libc.abilist   |   1 +
 .../unix/sysv/linux/s390/s390-32/libc.abilist |   1 +
 .../unix/sysv/linux/s390/s390-64/libc.abilist |   1 +
 sysdeps/unix/sysv/linux/sh/be/libc.abilist    |   1 +
 sysdeps/unix/sysv/linux/sh/le/libc.abilist    |   1 +
 .../sysv/linux/sparc/sparc32/libc.abilist     |   1 +
 .../sysv/linux/sparc/sparc64/libc.abilist     |   1 +
 .../unix/sysv/linux/x86_64/64/libc.abilist    |   1 +
 .../unix/sysv/linux/x86_64/x32/libc.abilist   |   1 +
 53 files changed, 755 insertions(+), 8 deletions(-)
 create mode 100644 elf/tst-single_threaded-mod1.c
 create mode 100644 elf/tst-single_threaded-mod2.c
 create mode 100644 elf/tst-single_threaded-mod3.c
 create mode 100644 elf/tst-single_threaded-mod4.c
 create mode 100644 elf/tst-single_threaded-pthread-static.c
 create mode 100644 elf/tst-single_threaded-pthread.c
 create mode 100644 elf/tst-single_threaded-static-dlopen.c
 create mode 100644 elf/tst-single_threaded-static.c
 create mode 100644 elf/tst-single_threaded.c
 create mode 100644 include/sys/single_threaded.h
 create mode 100644 misc/single_threaded.c
 create mode 100644 misc/sys/single_threaded.h