glibc/sysdeps/unix/sysv/linux
Maciej W. Rozycki 9fb237a1c8 nptl: Fix extraneous testing run by tst-rseq-nptl in the test driver
Fix an issue with commit 8f4632deb3 ("Linux: rseq registration tests")
and prevent testing from being run in the process of the test driver
itself rather than just the test child where one has been forked.  The
problem here is the unguarded use of a destructor to call a part of the
testing.  The destructor function, 'do_rseq_destructor_test' is called
implicitly at program completion, however because it is associated with
the executable itself rather than an individual process, it is called
both in the test child *and* in the test driver itself.

Prevent this from happening by providing a guard variable that only
enables test invocation from 'do_rseq_destructor_test' in the process
that has first run 'do_test'.  Consequently extra testing is invoked
from 'do_rseq_destructor_test' only once and in the correct process,
regardless of the use or the lack of of the '--direct' option.  Where
called in the controlling test driver process that has neved called
'do_test' the destructor function silently returns right away without
taking any further actions, letting the test driver fail gracefully
where applicable.

This arrangement prevents 'tst-rseq-nptl' from ever causing testing to
hang forever and never complete, such as currently happening with the
'mips-linux-gnu' (o32 ABI) target.

Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
2024-08-16 14:38:33 +01:00
..
aarch64 Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
alpha Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
arc Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
arm Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
bits Add F_DUPFD_QUERY from Linux 6.10 to bits/fcntl-linux.h 2024-07-30 08:52:52 -03:00
csky Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
hppa Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
i386 Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
include
loongarch Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
m68k Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
microblaze Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
mips Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
net socket: Use may_alias on sockaddr structs (bug 19622) 2024-05-18 09:33:19 +02:00
netash socket: Use may_alias on sockaddr structs (bug 19622) 2024-05-18 09:33:19 +02:00
netatalk
netax25
neteconet socket: Use may_alias on sockaddr structs (bug 19622) 2024-05-18 09:33:19 +02:00
netinet
netipx
netiucv socket: Use may_alias on sockaddr structs (bug 19622) 2024-05-18 09:33:19 +02:00
netpacket
netrom
netrose
nfs
nios2 Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
or1k Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
powerpc Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
riscv Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
s390 Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
scsi
sh Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
sparc Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
sys Linux: Add epoll ioctls 2024-06-04 12:09:15 -05:00
wordsize-64
x86
x86_64 Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
Implies
Makefile Add mremap tests 2024-08-01 05:06:12 -07:00
Versions
_G_config.h
____longjmp_chk.c Fix usage of _STACK_GROWS_DOWN and _STACK_GROWS_UP defines [BZ 31989] 2024-07-19 10:10:17 -04:00
_exit.c
a.out.h
accept.c
accept4.c
access.c
adjtime.c
adjtimex.c
aio_misc.h
aio_sigqueue.c
alphasort64.c
arch-fd_to_filename.h
arch-fork.h
bind.c
brk.c
brk_call.h
check_native.c
check_pf.c
chmod.c
chown.c
clock.c
clock_adjtime.c
clock_getcpuclockid.c
clock_getres.c
clock_gettime.c
clock_nanosleep.c
clock_settime.c
clone-internal.c
clone-pidfd-support.c
clone3.c
clone3.h
close.c
close_nocancel.c
closedir.c
closefrom_fallback.c
cmsg_nxthdr.c
cnd_timedwait.c
configure Convert to autoconf 2.72 (vanilla release, no distribution patches) 2024-06-17 21:15:28 +02:00
configure.ac
connect.c
convert_scm_timestamps.c
copy_file_range.c
creat.c
creat64.c
default-sched.h
device-nrs.h
dirfd.c
dirstream.h
dl-affinity.h
dl-diagnostics-kernel.c
dl-early_allocate.c
dl-execstack.c linux: Remove __stack_prot 2024-06-12 15:25:54 -03:00
dl-execve.h
dl-fxstatat64.c
dl-getcwd.c
dl-openat64.c
dl-opendir.c
dl-origin.c
dl-osinfo.h
dl-parse_auxv.h
dl-rseq-symbols.S elf: Make dl-rseq-symbols Linux only 2024-07-04 10:09:07 -03:00
dl-sbrk.c
dl-sysdep.c Linux: Include <dl-symbol-redir-ifunc.h> in dl-sysdep.c 2024-06-18 10:56:34 +02:00
dl-sysdep.h
dl-vdso-setup.c
dl-vdso-setup.h
dl-vdso.h
dl-write.c
dl-writev.h
dup2.c
epoll_create.c
epoll_pwait.c
epoll_pwait2.c
epoll_wait.c
errlist-compat-data.h
errlist-compat.h
errqueue.h
eventfd_read.c
eventfd_write.c
execveat.c
faccessat.c
fallocate.c
fallocate64.c
fanotify_mark.c
fatal-prepare.h
fchmodat.c
fcntl.c
fcntl64.c
fcntl_nocancel.c
fdatasync.c
fdopendir.c
features-time64.h
fexecve.c
filter-nr-syscalls.awk
fixup-asm-unistd.h
fpathconf.c
fstat.c
fstat64.c
fstatat.c
fstatat64.c
fstatfs.c
fstatfs64.c
fstatvfs.c
fstatvfs64.c
fsync.c
ftime.c
ftruncate.c
ftruncate64.c
futimens.c
futimes.c
futimesat.c
fxstat.c
fxstat64.c
fxstatat.c
fxstatat64.c
gai_sigqueue.c
gen-syscall-h.awk
gentempfd.c
getclktck.c
getcpu.c
getcwd.c
getdents.c
getdents64.c
getdirentries.c
getdirentries64.c
getdtsz.c
getentropy.c
gethostid.c
getipv4sourcefilter.c
getitimer.c
getloadavg.c
getlogin.c
getlogin_r.c
getpagesize.c
getpeername.c
getpriority.c
getpt.c
getrandom.c
getrlimit.c
getrlimit64.c
getrusage.c
getsockname.c
getsockopt.c
getsourcefilter.c
getsourcefilter.h
getsysstats.c
gettimeofday.c
glibcsyscalls.py
glob-lstat-compat.c
glob.c
glob64-lstat-compat.c
glob64-time64.c
glob64.c
globfree.c
globfree64-time64.c
globfree64.c
grantpt.c
if_index.c
ifaddrs.c
ifreq.c
inotify_init.c
internal-ioctl.h
internal-signals.h
internal-sigset.h
internal-stat.h
internal_statvfs.c
internal_statvfs.h
ioctl.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
kstat_cp.h
lchown.c
ldsodefs.h
libc-vdso.h
libc_fatal.c
libc_sigaction.c
librt-compat.c
link.c
linux_fsinfo.h
listen.c
local-setxid.h
lseek.c
lseek64.c
lstat.c
lstat64.c
lutimes.c
lxstat.c
lxstat64.c
machine-sp.h
malloc-hugepages.c
malloc-sysdep.h
mkdir.c
mknodat.c
mlock2.c
mmap.c
mmap64.c
mmap_call.h
mmap_internal.h
mq_close.c
mq_getattr.c
mq_notify.c
mq_open.c
mq_receive.c
mq_send.c
mq_setattr.c
mq_timedreceive.c
mq_timedsend.c
mq_unlink.c
mremap-failure.h Add mremap tests 2024-08-01 05:06:12 -07:00
mremap.c linux: Update the mremap C implementation [BZ #31968] 2024-08-01 05:06:12 -07:00
msgctl.c
msgget.c
msgrcv.c
msgsnd.c
msync.c
mtx_timedlock.c
nanosleep.c
netlink_assert_response.c
netlinkaccess.h
not-cancel.h
not-errno.h
nscd_setup_thread.c
ntp_gettime.c
ntp_gettimex.c
olddirent.h
oldglob.c
open.c
open64.c
open64_nocancel.c
open_by_handle_at.c
open_nocancel.c
openat.c
openat64.c
openat64_nocancel.c
openat_nocancel.c
opendir.c
pathconf.c
pathconf.h
paths.h
pause.c
personality.c
pidfd_getpid.c parse_fdinfo: Don't advance pointer twice [BZ #31798] 2024-05-27 06:52:45 -07:00
pidfd_spawn.c
pidfd_spawnp.c
pipe.c
pkey_get.c
pkey_mprotect.c
pkey_set.c
poll.c
posix_fadvise.c
posix_fadvise64.c
posix_fallocate.c
posix_fallocate64.c
posix_madvise.c
ppoll.c
ppoll_chk.c
pread.c
pread64.c
pread64_nocancel.c
preadv.c
preadv2.c
preadv64.c
preadv64v2.c
prlimit.c
prlimit64.c
process_vm_readv.c
process_vm_writev.c
procutils.c Rename procutils_read_file to __libc_procutils_read_file [BZ #31755] 2024-05-20 05:22:43 -07:00
procutils.h Rename procutils_read_file to __libc_procutils_read_file [BZ #31755] 2024-05-20 05:22:43 -07:00
prof-freq.c
profil-counter.h
profil.c
pselect.c
pselect32.c
ptrace.c
ptsname.c
pwrite.c
pwrite64.c
pwritev.c
pwritev2.c
pwritev64.c
pwritev64v2.c
read.c
read_nocancel.c
readahead.c
readdir.c
readdir64.c
readdir64_r.c
readdir_r.c
readlink.c
readonly-area.c
readv.c
reboot.c
recv.c
recvfrom.c
recvmmsg.c
recvmsg.c
remove.c
rename.c
renameat.c
renameat2.c
rewinddir.c
rmdir.c
rseq-internal.h Linux: Make __rseq_size useful for feature detection (bug 31965) 2024-07-09 19:33:37 +02:00
sa_len.c
safe-fatal.h
scandir64.c
sched_getaffinity.c
sched_getcpu.c
sched_rr_gi.c
sched_setaffinity.c
seekdir.c
select.c
semctl.c
semget.c
semop.c
semtimedop.c
send.c
sendfile.c
sendfile64.c
sendmmsg.c
sendmsg.c
sendto.c
set-freeres-os.h
setegid.c
seteuid.c
setgid.c
setgroups.c
sethostid.c
setipv4sourcefilter.c
setitimer.c
setregid.c
setresgid.c
setresuid.c
setreuid.c
setrlimit.c
setrlimit64.c
setsockopt.c
setsourcefilter.c
settimeofday.c
settimezone.c
setuid.c
setvmaname.c
setvmaname.h
shlib-versions
shmat.c
shmctl.c
shmdt.c
shmget.c
shutdown.c
siglist-compat.h
signalfd.c
sigpending.c
sigprocmask.c
sigqueue.c
sigreturn.c
sigset-cvt-mask.h
sigsetops.h
sigstack.c
sigsuspend.c
sigtimedwait.c
sigwait.c
sigwaitinfo.c
single-thread.h
sizes.h
socket-constants-time64.h
socket.c
socketcall.h
socketpair.c
spawn_int_def.h
spawnattr_getcgroup_np.c
spawnattr_setcgroup_np.c
spawni.c posix: Fix pidfd_spawn/pidfd_spawnp leak if execve fails (BZ 31695) 2024-06-25 12:11:48 -03:00
speed.c
splice.c
startup.h
stat.c
stat64.c
stat_t64_cp.c
stat_t64_cp.h
statfs.c
statfs64.c
statvfs.c
statvfs64.c
statx.c
statx_cp.c
statx_cp.h
struct_kernel_msqid64_ds.h
struct_kernel_semid64_ds.h
struct_kernel_shmid64_ds.h
struct_stat_time64.h
symlink.c
sync_file_range.c
syscall-names.list Update syscall lists for Linux 6.10 2024-07-30 08:48:51 -03:00
syscall.c
syscalls.list
sysconf-pthread_stack_min.h
sysconf-sigstksz.h
sysconf.c
sysctl.c
sysdep-cancel.h
sysdep-vdso.h
sysdep.h
tcdrain.c
tcflow.c
tcflush.c
tcgetattr.c
tcgetpgrp.c
tcsendbrk.c
tcsetattr.c
tcsetpgrp.c
tee.c
telldir.c
termio.h
test-errno-linux.c
thrd_priv.h
thrd_sleep.c
time-clockid.h
time.c
timer_create.c
timer_delete.c
timer_getoverr.c
timer_gettime.c
timer_routines.c
timer_settime.c
timer_t_was_int_compat.h
timerfd_gettime.c
timerfd_settime.c
times.c
timespec_get.c
timespec_getres.c
tls-internal.c
tls-internal.h
truncate.c
truncate64.c
tst-adjtimex-time64.c
tst-adjtimex.c
tst-affinity-pid.c
tst-affinity-static.c
tst-affinity.c
tst-align-clone-internal.c
tst-align-clone.c
tst-clock_adjtime-time64.c
tst-clock_adjtime.c
tst-clock_gettime-clobber.c
tst-clone.c
tst-clone2-internal.c
tst-clone2.c
tst-clone3-internal.c
tst-clone3.c
tst-epoll-ioctls.c Linux: Add epoll ioctls 2024-06-04 12:09:15 -05:00
tst-epoll-time64.c
tst-epoll.c
tst-fallocate-common.c
tst-fallocate.c
tst-fallocate64.c
tst-fanotify.c
tst-fdopendir-o_path.c
tst-getauxval.c
tst-getcwd-smallbuff.c
tst-getdents64.c
tst-getpid1-internal.c
tst-getpid1.c
tst-gettid-kill.c
tst-gettid.c
tst-gettimeofday-clobber.c
tst-glibcsyscalls.py
tst-linux-mremap1.c Add mremap tests 2024-08-01 05:06:12 -07:00
tst-memfd_create.c
tst-misalign-clone.c
tst-mlock2.c
tst-mman-consts.py Update kernel version to 6.10 in header constant tests 2024-07-30 08:48:51 -03:00
tst-mount-compile.py
tst-mount-consts.py Update kernel version to 6.10 in header constant tests 2024-07-30 08:48:51 -03:00
tst-mount.c
tst-ntp_adjtime-time64.c
tst-ntp_adjtime.c
tst-ntp_gettime-time64.c
tst-ntp_gettime.c
tst-ntp_gettimex-time64.c
tst-ntp_gettimex.c
tst-o_path-locks.c
tst-ofdlocks-compat.c
tst-ofdlocks.c
tst-personality.c
tst-pidfd-consts.py Update kernel version to 6.10 in header constant tests 2024-07-30 08:48:51 -03:00
tst-pidfd.c
tst-pidfd_getpid.c
tst-pkey.c linux: Trivial test output fix in tst-pkey 2024-07-19 22:57:23 +02:00
tst-posix_spawn-setsid-pidfd.c
tst-ppoll-time64.c
tst-ppoll.c
tst-prctl-time64.c
tst-prctl.c
tst-process_madvise.c
tst-process_mrelease.c
tst-quota.c
tst-readdir64-compat.c
tst-rlimit-infinity.c
tst-rseq-disable.c
tst-rseq-nptl.c nptl: Fix extraneous testing run by tst-rseq-nptl in the test driver 2024-08-16 14:38:33 +01:00
tst-rseq.c Linux: Make __rseq_size useful for feature detection (bug 31965) 2024-07-09 19:33:37 +02:00
tst-rseq.h
tst-scm_rights-time64.c
tst-scm_rights.c
tst-sigcontext-get_pc.c
tst-signal-numbers.py
tst-sigtimedwait-time64.c
tst-sigtimedwait.c
tst-skeleton-affinity.c Report error if setaffinity wrapper fails (Bug 32040) 2024-08-15 15:28:48 -04:00
tst-skeleton-thread-affinity.c
tst-socket-consts.py
tst-socket-timestamp-compat-time64.c
tst-socket-timestamp-compat.c
tst-socket-timestamp-time64.c
tst-socket-timestamp.c
tst-spawn-cgroup.c
tst-spawn-chdir-pidfd.c
tst-spawn-pidfd.c
tst-spawn-pidfd.h
tst-spawn2-pidfd.c
tst-spawn3-pidfd.c
tst-spawn4-pidfd.c
tst-spawn5-pidfd.c
tst-spawn6-pidfd.c
tst-spawn7-pidfd.c
tst-sync_file_range.c
tst-syscall-list.sh
tst-sysconf-iov_max-uapi.c
tst-sysconf-iov_max.c
tst-sysvmsg-linux.c
tst-sysvsem-linux.c
tst-sysvshm-linux.c
tst-tgkill.c
tst-time-clobber.c
tst-timerfd-time64.c
tst-timerfd.c
tst-ttyname-common.c
tst-ttyname-direct.c
tst-ttyname-namespace.c
ttyname.c
ttyname.h
ttyname_r.c
tv32-compat.h
ualarm.c
umount.c
umount2.c
unlink.c
unlockpt.c
update-syscall-lists.py
updwtmp.c
ustat.c
utime.c
utimensat.c
utimes.c
utmp_file.c
versionsort64.c
vfork.c
vmsplice.c
wait3.c
wait4.c
waitid.c
write.c
write_nocancel.c
writev.c
xmknod.c
xmknodat.c
xstat.c
xstat64.c
xstatconv.c
xstatconv.h
xstatover.h
xstatver.h