glibc/misc
Florian Weimer 706ad1e7af Add the __libc_single_threaded variable
The variable is placed in libc.so, and it can be true only in
an outer libc, not libcs loaded via dlmopen or static dlopen.
Since thread creation from inner namespaces does not work,
pthread_create can update __libc_single_threaded directly.

Using __libc_early_init and its initial flag, implementation of this
variable is very straightforward.  A future version may reset the flag
during fork (but not in an inner namespace), or after joining all
threads except one.

Reviewed-by: DJ Delorie <dj@redhat.com>
2020-07-06 11:15:58 +02:00
..
bits Prepare redirections for IEEE long double on powerpc64le 2020-02-17 15:28:29 -06:00
sys Add the __libc_single_threaded variable 2020-07-06 11:15:58 +02:00
acct.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
allocate_once.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ar.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
brk.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
bug18240.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
bug-hsearch1.c
chflags.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
chroot.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
daemon.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
dirname.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
efgcvt_r-template.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
efgcvt_r.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
efgcvt-dbl-macros.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
efgcvt-ldbl-macros.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
efgcvt-template.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
efgcvt.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
err.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
err.h Rename __LONG_DOUBLE_USES_FLOAT128 to __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 2020-04-30 08:52:08 -05:00
error.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
error.h Rename __LONG_DOUBLE_USES_FLOAT128 to __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI 2020-04-30 08:52:08 -05:00
fchflags.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fd_to_filename.c <fd_to_filename.h>: Add type safety and port to Hurd 2020-02-18 13:42:29 +01:00
fdatasync.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fgetxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
flistxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fremovexattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fsetxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fstab.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
fstab.h
fsync.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ftruncate64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ftruncate.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
futimes.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
futimesat.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getauxval.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getclktck.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getdomain.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getdtsz.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
gethostid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
gethostname.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getloadavg.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getpass.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getsysstats.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
getttyent.c Fix -Os getc_unlocked linknamespace, localplt issues (bug 15105, bug 19463). 2018-02-21 18:01:11 +00:00
getusershell.c
getxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
gtty.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
hsearch_r.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
hsearch.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ifunc-impl-list.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
init-misc.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
insremque.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ioctl.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
lgetxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
libgen.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
listxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
llistxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
lremovexattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
lsearch.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
lsetxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
lutimes.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
madvise.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
makedev.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Makefile Add the __libc_single_threaded variable 2020-07-06 11:15:58 +02:00
mincore.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkdtemp.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkostemp64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkostemp.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkostemps64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkostemps.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkstemp64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkstemp.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkstemps64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mkstemps.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mktemp.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mlock.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mlockall.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mmap64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mmap.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mntent_r.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mntent.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mntent.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
mprotect.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
msync.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
munlock.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
munlockall.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
munmap.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
preadv2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
preadv64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
preadv64v2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
preadv.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
pselect.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ptrace.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
pwritev2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
pwritev64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
pwritev64v2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
pwritev.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
qefgcvt_r.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
qefgcvt.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
readv.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
reboot.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
regexp.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
regexp.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
remap_file_pages.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
removexattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
revoke.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sbrk.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
search.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
select.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setdomain.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setegid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
seteuid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sethostid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sethostname.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setregid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setreuid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
setxattr.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sgtty.h Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
single_threaded.c Add the __libc_single_threaded variable 2020-07-06 11:15:58 +02:00
sstk.c misc: Remove sstk from the autogenerated system call list 2020-04-28 17:13:25 +02:00
stab.h
stty.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
swapoff.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
swapon.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
sync.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
syncfs.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
syscall.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
syscall.h
sysexits.h
syslog.c Change most internal uses of time to __clock_gettime. 2019-10-30 17:11:10 -03:00
syslog.h
truncate64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
truncate.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tsearch.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-allocate_once.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-atomic-long.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-atomic.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-dbl-efgcvt.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-dirname.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-efgcvt-template.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-empty.c Move all tests out of the csu subdirectory 2016-12-21 11:52:19 +01:00
tst-error1.c Split DIAG_* macros to new header libc-diag.h. 2017-02-25 09:59:46 -05:00
tst-fd_to_filename.c <fd_to_filename.h>: Add type safety and port to Hurd 2020-02-18 13:42:29 +01:00
tst-fdset.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-gethostid.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-hsearch.c
tst-insremque.c
tst-ldbl-efgcvt.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-ldbl-error.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-ldbl-warn.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-makedev.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mntent2.c
tst-mntent-autofs.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mntent-blank-corrupt.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mntent-blank-passno.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-mntent.c
tst-preadvwritev2-common.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-preadvwritev2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-preadvwritev64.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-preadvwritev64v2.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-preadvwritev-common.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-preadvwritev.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-pselect.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-syscalls.c Add a syscall test for [BZ #25810] 2020-04-22 09:48:10 -07:00
tst-tsearch.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
tst-warn-wide.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ttyent.h
ttyslot.c As a minor cleanup remove the (r)index defines from include/string.h as 2017-02-06 18:15:18 +00:00
ualarm.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
usleep.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
ustat.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
utimes.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
Versions Add the __libc_single_threaded variable 2020-07-06 11:15:58 +02:00
vhangup.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00
writev.c Update copyright dates with scripts/update-copyrights. 2020-01-01 00:14:33 +00:00