glibc/sysdeps/unix/sysv/linux
Mathieu Desnoyers 0c76fc3c2b Linux: Perform rseq registration at C startup and thread creation
Register rseq TLS for each thread (including main), and unregister for
each thread (excluding main).  "rseq" stands for Restartable Sequences.

See the rseq(2) man page proposed here:
  https://lkml.org/lkml/2018/9/19/647

Those are based on glibc master branch commit 3ee1e0ec5c.
The rseq system call was merged into Linux 4.18.

The TLS_STATIC_SURPLUS define is increased to leave additional room for
dlopen'd initial-exec TLS, which keeps elf/tst-auditmany working.

The increase (76 bytes) is larger than 32 bytes because it has not been
increased in quite a while.  The cost in terms of additional TLS storage
is quite significant, but it will also obscure some initial-exec-related
dlopen failures.
2020-07-06 10:21:16 +02:00
..
aarch64 Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
alpha Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
arm Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
bits Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
csky Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
generic generic/typesizes.h: Add support for 32-bit arches with 64-bit types 2020-04-29 08:30:03 -07:00
hppa Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
i386 Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
ia64 Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
include y2038: linux: Provide __ntp_gettimex64 implementation 2020-05-20 01:09:16 +02:00
m68k Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
microblaze Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
mips Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
net
netash
netatalk
netax25
neteconet
netinet
netipx
netiucv
netpacket
netrom
netrose
nfs
nios2 Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
powerpc Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
riscv Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
s390 Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
scsi
sh Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
sparc Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
sys Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
wordsize-64
x86 Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
x86_64 Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
Implies
Makefile Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
Versions Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
_G_config.h
_exit.c Linux: exit_group syscall number is always available 2020-03-03 12:17:24 +01:00
a.out.h
accept.c
accept4.c
access.c
adjtime.c y2038: linux: Provide __adjtime64 implementation 2020-05-20 01:03:26 +02:00
adjtimex.c y2038: linux: Provide ___adjtimex64 implementation 2020-05-20 01:03:26 +02:00
aio_misc.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
aio_sigqueue.c Linux: rt_sigqueueinfo syscall number is always available 2020-03-03 12:16:15 +01:00
alphasort64.c
arch-fd_to_filename.h <fd_to_filename.h>: Add type safety and port to Hurd 2020-02-18 13:42:29 +01:00
arch-fork.h
bind.c
check_native.c
check_pf.c
clock.c y2038: Replace __clock_gettime with __clock_gettime64 2020-05-20 16:45:16 +02:00
clock_adjtime.c y2038: linux: Provide __clock_adjtime64 implementation 2020-05-20 01:03:26 +02:00
clock_getcpuclockid.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
clock_getres.c y2038: fix: Add missing libc_hidden_def attribute for some syscall wrappers 2020-03-23 21:21:28 +01:00
clock_gettime.c y2038: fix: Add missing libc_hidden_def attribute for some syscall wrappers 2020-03-23 21:21:28 +01:00
clock_nanosleep.c y2038: fix: Add missing libc_hidden_def attribute for some syscall wrappers 2020-03-23 21:21:28 +01:00
clock_settime.c y2038: fix: Add missing libc_hidden_def attribute for some syscall wrappers 2020-03-23 21:21:28 +01:00
close.c
close_nocancel.c
cmsg_nxthdr.c
configure
configure.ac
connect.c
copy_file_range.c Linux: copy_file_range syscall number is always available 2020-03-03 12:11:01 +01:00
creat.c
creat64.c
createthread.c nptl: Make pthread_attr_t dynamically extensible 2020-06-02 11:54:58 +02:00
default-sched.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
device-nrs.h
dl-brk.c
dl-execstack.c
dl-fxstatat64.c
dl-getcwd.c
dl-librecon.h
dl-openat64.c
dl-opendir.c
dl-origin.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
dl-osinfo.h
dl-sbrk.c
dl-sysdep.c
dl-sysdep.h
dl-vdso-setup.c
dl-vdso-setup.h
dl-vdso.h
dl-writev.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
epoll_pwait.c Linux: epoll_pwait syscall number is always available 2020-03-03 12:51:14 +01:00
epoll_wait.c
errqueue.h
eventfd_read.c
eventfd_write.c
exit-thread.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
faccessat.c
fallocate.c
fallocate64.c
fatal-prepare.h
fchmodat.c Linux: Use __fstatat64 in fchmodat implementation 2020-03-05 16:10:26 +01:00
fcntl.c
fcntl64.c
fcntl_nocancel.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
fdatasync.c
fexecve.c
filter-nr-syscalls.awk
fips-private.h
fixup-asm-unistd.h
fpathconf.c
fstatfs64.c
fstatvfs.c
fstatvfs64.c
fsync.c
ftruncate.c
ftruncate64.c
futimens.c y2038: fix: Add missing libc_hidden_def for __futimens64 2020-03-07 12:45:27 +01:00
futimes.c y2038: linux: Provide __futimes64 implementation 2020-03-09 10:26:46 +01:00
futimesat.c y2038: linux: Provide __futimesat64 implementation 2020-03-09 10:26:46 +01:00
fxstat.c
fxstat64.c
fxstatat.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
fxstatat64.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
gai_sigqueue.c Linux: rt_sigqueueinfo syscall number is always available 2020-03-03 12:16:15 +01:00
gen-syscall-h.awk
gentempfd.c
getclktck.c
getcpu.c
getcwd.c
getdents.c
getdents64.c
getdirentries.c
getdirentries64.c
getdtsz.c
getentropy.c Linux: getrandom syscall number is always available 2020-03-03 12:15:38 +01:00
gethostid.c
getipv4sourcefilter.c
getitimer.c linux: Use long time_t __getitimer/__setitimer 2020-04-02 09:21:06 -07:00
getloadavg.c
getlogin.c
getlogin_r.c
getpagesize.c
getpeername.c
getpriority.c
getpt.c
getrandom.c Linux: getrandom syscall number is always available 2020-03-03 12:15:38 +01:00
getrlimit.c
getrlimit64.c
getrusage.c linux: Use long time_t for wait4/getrusage 2020-04-02 09:21:06 -07:00
getsockname.c
getsockopt.c
getsourcefilter.c
getsourcefilter.h
getsysstats.c
gettimeofday.c y2038: linux: Provide __gettimeofday64 implementation 2020-02-18 23:55:47 +01:00
glibcsyscalls.py Linux: Enhance glibcsyscalls.py to support listing system calls 2020-05-11 22:23:34 +02:00
glob-lstat-compat.c
glob.c
glob64-lstat-compat.c
glob64.c
globfree.c
globfree64.c
grantpt.c
if_index.c
ifaddrs.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
ifreq.c
internal-signals.h Block all signals on timer_create thread (BZ#10815) 2020-02-19 13:46:31 -03:00
internal_statvfs.c
internal_statvfs.h
internal_statvfs64.c
ipc_ops.h
ipc_priv.h
kernel-features.h
kernel-posix-cpu-timers.h
kernel-posix-timers.h
kernel_sigaction.h
kernel_stat.h
kernel_termios.h
ldd-rewrite.sed
lddlibc4.c
ldsodefs.h
libc-vdso.h
libc_fatal.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
linux_fsinfo.h
listen.c
local-setxid.h
lseek.c
lseek64.c
lutimes.c y2038: linux: Provide __lutimes64 implementation 2020-03-09 10:26:46 +01:00
lxstat.c
lxstat64.c
malloc-sysdep.h
mlock2.c Linux: mlock2 syscall number is always available 2020-03-03 12:11:26 +01:00
mmap.c
mmap64.c
mmap_internal.h
mq_close.c Linux: mq_* syscall numbers are always available 2020-03-03 12:11:49 +01:00
mq_getattr.c Linux: mq_* syscall numbers are always available 2020-03-03 12:11:49 +01:00
mq_notify.c Linux: mq_* syscall numbers are always available 2020-03-03 12:11:49 +01:00
mq_open.c Linux: mq_* syscall numbers are always available 2020-03-03 12:11:49 +01:00
mq_receive.c Linux: mq_* syscall numbers are always available 2020-03-03 12:11:49 +01:00
mq_send.c Linux: mq_* syscall numbers are always available 2020-03-03 12:11:49 +01:00
mq_timedreceive.c y2038: linux: Provide __mq_timedreceive_time64 implementation 2020-04-06 23:05:11 +02:00
mq_timedsend.c y2038: linux: Provide __mq_timedsend_time64 implementation 2020-04-06 23:05:11 +02:00
mq_unlink.c Linux: mq_* syscall numbers are always available 2020-03-03 12:11:49 +01:00
msgctl.c linux/sysipc: Include linux/posix_types.h for __kernel_mode_t 2020-03-06 09:53:23 -03:00
msgget.c
msgrcv.c
msgsnd.c
msync.c
netlink_assert_response.c
netlinkaccess.h
nice.c
not-cancel.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
not-errno.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
nscd_setup_thread.c Linux: set_tid_address syscall number is always available 2020-03-03 12:16:55 +01:00
ntp_gettime.c Linux: Add missing handling of tai field to __ntp_gettime64 2020-05-20 17:58:56 +02:00
ntp_gettimex.c y2038: linux: Provide __ntp_gettimex64 implementation 2020-05-20 01:09:16 +02:00
olddirent.h
oldglob.c
open.c
open64.c
open64_nocancel.c
open_by_handle_at.c Linux: open_by_handle_at syscall number is always available 2020-03-03 12:50:07 +01:00
open_nocancel.c
openat.c
openat64.c
openat64_nocancel.c
openat_nocancel.c
opensock.c
pathconf.c
pathconf.h
paths.h
pause.c
personality.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
pkey_get.c
pkey_mprotect.c Linux: pkey_mprotect syscall number is always available 2020-03-03 12:16:35 +01:00
pkey_set.c
poll.c
posix_fadvise.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
posix_fadvise64.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
posix_fallocate.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
posix_fallocate64.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
posix_madvise.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
ppoll.c y2038: fix: Add missing libc_hidden_def attribute for some syscall wrappers 2020-03-23 21:21:28 +01:00
prctl.c Add a C wrapper for prctl [BZ #25896] 2020-04-30 10:42:43 -07:00
pread.c Linux: Clean up pread64/pwrite64 system call names 2020-03-03 12:14:40 +01:00
pread64.c Linux: Clean up pread64/pwrite64 system call names 2020-03-03 12:14:40 +01:00
pread64_nocancel.c Linux: Clean up pread64/pwrite64 system call names 2020-03-03 12:14:40 +01:00
preadv.c Linux: Clean up preadv, pwritev system call names 2020-03-03 12:15:06 +01:00
preadv2.c Linux: Clean up preadv2, pwritev2 system call names 2020-03-03 12:18:22 +01:00
preadv64.c Linux: Clean up preadv, pwritev system call names 2020-03-03 12:15:06 +01:00
preadv64v2.c Linux: Clean up preadv2, pwritev2 system call names 2020-03-03 12:18:22 +01:00
prlimit.c
process_vm_readv.c Add C wrappers for process_vm_readv/process_vm_writev [BZ #25810] 2020-04-29 13:20:27 -07:00
process_vm_writev.c Add C wrappers for process_vm_readv/process_vm_writev [BZ #25810] 2020-04-29 13:20:27 -07:00
prof-freq.c
profil-counter.h
profil.c
pselect.c
pt-raise.c
pthread-pids.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
pthread_getcpuclockid.c
pthread_kill.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
pthread_sigqueue.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
ptrace.c
ptsname.c
pwrite.c Linux: Clean up pread64/pwrite64 system call names 2020-03-03 12:14:40 +01:00
pwrite64.c Linux: Clean up pread64/pwrite64 system call names 2020-03-03 12:14:40 +01:00
pwritev.c Linux: Clean up preadv, pwritev system call names 2020-03-03 12:15:06 +01:00
pwritev2.c Linux: Clean up preadv2, pwritev2 system call names 2020-03-03 12:18:22 +01:00
pwritev64.c Linux: Clean up preadv, pwritev system call names 2020-03-03 12:15:06 +01:00
pwritev64v2.c Linux: Clean up preadv2, pwritev2 system call names 2020-03-03 12:18:22 +01:00
raise.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
read.c
read_nocancel.c
readahead.c
readdir.c
readdir64.c
readdir64_r.c
readdir_r.c
readonly-area.c
readv.c
reboot.c
recv.c
recvfrom.c
recvmmsg.c
recvmsg.c
remove.c
rename.c
renameat.c
renameat2.c Linux: renameat2 syscall number is always available 2020-03-03 12:06:39 +01:00
rseq-internal.h Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
rseq-sym.c Linux: Perform rseq registration at C startup and thread creation 2020-07-06 10:21:16 +02:00
sa_len.c
safe-fatal.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
scandir64.c
sched_getaffinity.c Linux: sched_getaffinity syscall number is always available 2020-03-03 12:13:07 +01:00
sched_getcpu.c
sched_rr_gi.c
sched_setaffinity.c Linux: Remove remnants of the getcpu cache 2020-05-16 15:47:51 +02:00
segfault.c
select.c
semctl.c linux/sysipc: Include linux/posix_types.h for __kernel_mode_t 2020-03-06 09:53:23 -03:00
semget.c
semop.c
semtimedop.c
send.c
sendmmsg.c
sendmsg.c
sendto.c
setegid.c
seteuid.c
setgid.c
setgroups.c
sethostid.c
setipv4sourcefilter.c
setitimer.c linux: Use long time_t __getitimer/__setitimer 2020-04-02 09:21:06 -07:00
setregid.c
setresgid.c
setresuid.c
setreuid.c
setrlimit.c
setrlimit64.c
setsockopt.c
setsourcefilter.c
settimeofday.c Linux: Fix UTC offset setting in settimeofday for __TIMESIZE != 64 2020-06-30 21:20:20 +02:00
settimezone.c
setuid.c
shlib-versions
shm-directory.c
shmat.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
shmctl.c linux/sysipc: Include linux/posix_types.h for __kernel_mode_t 2020-03-06 09:53:23 -03:00
shmdt.c
shmget.c
shutdown.c
sigaction.c
siglist.h
signal.c
signalfd.c
sigpending.c signal: Only handle on NSIG signals on signal functions (BZ #25657) 2020-04-21 15:10:10 -03:00
sigprocmask.c linux: Use pthread_sigmask on sigprocmask 2020-04-21 15:10:07 -03:00
sigqueue.c
sigreturn.c
sigset-cvt-mask.h
sigsetops.h signal: Only handle on NSIG signals on signal functions (BZ #25657) 2020-04-21 15:10:10 -03:00
sigstack.c Linux: sigaltstack syscall number is always available 2020-03-03 12:13:29 +01:00
sigsuspend.c
sigtimedwait.c
sigwait.c
sigwaitinfo.c
single-thread.h
sizes.h
socket.c
socketcall.h
socketpair.c
spawni.c
speed.c
splice.c
statfs64.c
statvfs.c
statvfs64.c
statx.c Linux: statx syscall number is always available 2020-03-03 12:12:11 +01:00
statx_cp.c
statx_cp.h
sync_file_range.c
syscall-names.list Update syscall-names.list for Linux 5.7. 2020-06-15 22:58:22 +00:00
syscalls.list y2038: linux: Provide __clock_adjtime64 implementation 2020-05-20 01:03:26 +02:00
sysconf.c
sysctl.c Linux: Remove <sys/sysctl.h> and the sysctl function 2020-04-15 17:17:32 +02:00
sysdep-cancel.h
sysdep-vdso.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
sysdep.h linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
syslog.c
tcdrain.c
tcflow.c
tcflush.c
tcgetattr.c
tcgetpgrp.c
tcsendbrk.c
tcsetattr.c
tcsetpgrp.c
tee.c
termio.h
test-errno-linux.c linux: Use pthread_sigmask on sigprocmask 2020-04-21 15:10:07 -03:00
time-clockid.h
time.c
timer_create.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
timer_delete.c
timer_getoverr.c
timer_gettime.c
timer_routines.c Linux: Use __pthread_attr_setsigmask_internal for timer helper thread 2020-06-02 11:59:26 +02:00
timer_settime.c
timerfd_gettime.c
timerfd_settime.c
times.c linux: Remove INTERNAL_SYSCALL_DECL 2020-02-14 21:12:45 -03:00
timespec_get.c
truncate.c
truncate64.c
tst-affinity-pid.c
tst-affinity-static.c
tst-affinity.c
tst-align-clone.c
tst-clone.c
tst-clone2.c
tst-clone3.c tst-clone3: Use __NR_futex_time64 if we don't have __NR_futex 2020-02-14 14:40:34 -08:00
tst-fallocate-common.c
tst-fallocate.c
tst-fallocate64.c
tst-fanotify.c
tst-getdents64.c
tst-getpid1.c
tst-gettid-kill.c
tst-gettid.c
tst-glibcsyscalls.py
tst-memfd_create.c
tst-mlock2.c
tst-mman-consts.py Update kernel version to 5.7 in tst-mman-consts.py. 2020-06-29 14:06:32 +00:00
tst-o_path-locks.c
tst-ofdlocks-compat.c
tst-ofdlocks.c
tst-personality.c
tst-pkey.c Fix tst-pkey expectations on pkey_get [BZ #23202] 2020-02-19 10:54:02 -03:00
tst-quota.c
tst-readdir64-compat.c
tst-rlimit-infinity.c
tst-sigcontext-get_pc.c
tst-signal-numbers.py
tst-skeleton-affinity.c
tst-skeleton-thread-affinity.c
tst-socket-consts.py
tst-sync_file_range.c
tst-syscall-list.sh
tst-sysconf-iov_max-uapi.c
tst-sysconf-iov_max.c
tst-tgkill.c
tst-ttyname.c
ttyname.c
ttyname.h
ttyname_r.c
tv32-compat.h sysv/alpha: Use generic __timeval32 and helpers 2020-04-02 09:21:06 -07:00
ualarm.c
umount.c linux: Remove assembly umount2 implementation 2020-05-08 17:19:13 -03:00
umount2.c linux: Remove assembly umount2 implementation 2020-05-08 17:19:13 -03:00
unlockpt.c
update-syscall-lists.py
updwtmp.c
ustat.c
utime.c Linux: Use AT_FDCWD in utime, utimes when calling utimensat 2020-03-05 16:09:52 +01:00
utimensat.c Add missing libc_hidden_def for __utimensat64 2020-03-02 17:04:32 +01:00
utimes.c Linux: Use AT_FDCWD in utime, utimes when calling utimensat 2020-03-05 16:09:52 +01:00
utmp_file.c
versionsort64.c
vfork.c
vmsplice.c
wait4.c linux: wait4: Fix incorrect return value comparison 2020-04-14 09:16:54 -07:00
waitid.c
write.c
write_nocancel.c
writev.c
xmknod.c
xmknodat.c
xstat.c
xstat64.c
xstatconv.c
xstatconv.h