about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-06-07 02:03:45 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-06-07 13:35:54 +0200
commitd6d74ec16c77126c59db264ebfa04d08d5b4c5c0 (patch)
tree95fded09b6a9d8ce35273d43c3f8e3d960bd0554
parentbe22a151f3e2c2e4b9127d4fa30b269f30a7ea2e (diff)
downloadglibc-d6d74ec16c77126c59db264ebfa04d08d5b4c5c0.tar.gz
glibc-d6d74ec16c77126c59db264ebfa04d08d5b4c5c0.tar.xz
glibc-d6d74ec16c77126c59db264ebfa04d08d5b4c5c0.zip
htl: Enable more tests
* htl/Makefile: Remove rules adding libpthread.so and libpthread.a to link
lines.
* nptl/Makefile: Move rules adding libpthread.so and libpthread.a to
link lines to...
* sysdeps/pthread/Makefile: ... here.

* nptl/eintr.c, tst-align.c tst-align3.c tst-atfork1.c tst-backtrace1.c
tst-bad-schedattr.c tst-cancel-self-canceltype.c tst-cancel-self-cleanup.c
tst-cancel-self-testcancel.c tst-cancel1.c tst-cancel10.c tst-cancel12.c
tst-cancel14.c tst-cancel15.c tst-cancel18.c tst-cancel19.c tst-cancel2.c
tst-cancel22.c tst-cancel23.c tst-cancel26.c tst-cancel27.c tst-cancel28.c
tst-cancel3.c tst-cancel8.c tst-cancelx1.c tst-cancelx10.c tst-cancelx12.c
tst-cancelx14.c tst-cancelx15.c tst-cancelx18.c tst-cancelx2.c tst-cancelx3.c
tst-cancelx8.c tst-cleanup0.c tst-cleanup0.expect tst-cleanup1.c tst-cleanup2.c
tst-cleanup3.c tst-cleanupx0.c tst-cleanupx0.expect tst-cleanupx1.c
tst-cleanupx2.c tst-cleanupx3.c tst-clock1.c tst-create-detached.c tst-detach1.c
tst-eintr2.c tst-eintr3.c tst-eintr4.c tst-eintr5.c tst-exec1.c tst-exec2.c
tst-exec3.c tst-exit1.c tst-exit2.c tst-exit3.c tst-flock1.c tst-fork1.c
tst-fork2.c tst-fork3.c tst-fork4.c tst-getpid3.c tst-kill1.c tst-kill2.c
tst-kill3.c tst-kill4.c tst-kill5.c tst-kill6.c tst-locale1.c tst-locale2.c
tst-memstream.c tst-popen1.c tst-raise1.c tst-sem5.c tst-setuid3.c tst-signal4.c
tst-signal5.c tst-signal6.c tst-signal8.c tst-stack1.c tst-stdio1.c tst-stdio2.c
tst-sysconf.c tst-tls1.c tst-tls2.c tst-tsd1.c tst-tsd2.c tst-tsd5.c tst-tsd6.c
tst-umask1.c tst-unload.c tst-unwind-thread.c tst-vfork1.c tst-vfork1x.c
tst-vfork2.c tst-vfork2x.c: Move tests to...
* sysdeps/pthread: ... here.
Rename
tst-popen1.c -> tst-pt-popen1.c
tst-align.c -> tst-pt-align.c
tst-align3.c -> tst-pt-align3.c
tst-sysconf.c -> tst-pt-sysconf.c
tst-tls1.c -> tst-pt-tls1.c
tst-tls2.c -> tst-pt-tls2.c
tst-vfork1.c -> tst-pt-vfork1.c
tst-vfork2.c -> tst-pt-vfork2.c
to avoid conflicting with libio/tst-popen1.c, elf/tst-align.c,
posix/tst-sysconf.c, elf/tst-tls1.c, elf/tst-tls2.c, posix/tst-vfork1.c,
posix/tst-vfork2.c.

* nptl/Makefile: Move corresponding tests references and special rules to...
* sysdeps/pthread/Makefile: ... here.

* sysdeps/pthread/tst-stack1.c (do_test): Do not clamp stack size to
PTHREAD_STACK_MIN if not defined.

Tested on linux-x86_64 and hurd-i386
-rw-r--r--htl/Makefile9
-rw-r--r--nptl/Makefile118
-rw-r--r--nptl/tst-cond22.c (renamed from sysdeps/pthread/tst-cond22.c)0
-rw-r--r--nptl/tst-cond26.c (renamed from sysdeps/pthread/tst-cond26.c)0
-rw-r--r--sysdeps/pthread/Makefile120
-rw-r--r--sysdeps/pthread/eintr.c (renamed from nptl/eintr.c)0
-rw-r--r--sysdeps/pthread/tst-atfork1.c (renamed from nptl/tst-atfork1.c)0
-rw-r--r--sysdeps/pthread/tst-backtrace1.c (renamed from nptl/tst-backtrace1.c)0
-rw-r--r--sysdeps/pthread/tst-bad-schedattr.c (renamed from nptl/tst-bad-schedattr.c)0
-rw-r--r--sysdeps/pthread/tst-cancel-self-canceltype.c (renamed from nptl/tst-cancel-self-canceltype.c)0
-rw-r--r--sysdeps/pthread/tst-cancel-self-cleanup.c (renamed from nptl/tst-cancel-self-cleanup.c)0
-rw-r--r--sysdeps/pthread/tst-cancel-self-testcancel.c (renamed from nptl/tst-cancel-self-testcancel.c)0
-rw-r--r--sysdeps/pthread/tst-cancel1.c (renamed from nptl/tst-cancel1.c)0
-rw-r--r--sysdeps/pthread/tst-cancel10.c (renamed from nptl/tst-cancel10.c)0
-rw-r--r--sysdeps/pthread/tst-cancel12.c (renamed from nptl/tst-cancel12.c)0
-rw-r--r--sysdeps/pthread/tst-cancel14.c (renamed from nptl/tst-cancel14.c)0
-rw-r--r--sysdeps/pthread/tst-cancel15.c (renamed from nptl/tst-cancel15.c)0
-rw-r--r--sysdeps/pthread/tst-cancel18.c (renamed from nptl/tst-cancel18.c)0
-rw-r--r--sysdeps/pthread/tst-cancel19.c (renamed from nptl/tst-cancel19.c)0
-rw-r--r--sysdeps/pthread/tst-cancel2.c (renamed from nptl/tst-cancel2.c)0
-rw-r--r--sysdeps/pthread/tst-cancel22.c (renamed from nptl/tst-cancel22.c)0
-rw-r--r--sysdeps/pthread/tst-cancel23.c (renamed from nptl/tst-cancel23.c)0
-rw-r--r--sysdeps/pthread/tst-cancel26.c (renamed from nptl/tst-cancel26.c)0
-rw-r--r--sysdeps/pthread/tst-cancel27.c (renamed from nptl/tst-cancel27.c)0
-rw-r--r--sysdeps/pthread/tst-cancel28.c (renamed from nptl/tst-cancel28.c)0
-rw-r--r--sysdeps/pthread/tst-cancel3.c (renamed from nptl/tst-cancel3.c)0
-rw-r--r--sysdeps/pthread/tst-cancel8.c (renamed from nptl/tst-cancel8.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx1.c (renamed from nptl/tst-cancelx1.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx10.c (renamed from nptl/tst-cancelx10.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx12.c (renamed from nptl/tst-cancelx12.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx14.c (renamed from nptl/tst-cancelx14.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx15.c (renamed from nptl/tst-cancelx15.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx18.c (renamed from nptl/tst-cancelx18.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx2.c (renamed from nptl/tst-cancelx2.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx3.c (renamed from nptl/tst-cancelx3.c)0
-rw-r--r--sysdeps/pthread/tst-cancelx8.c (renamed from nptl/tst-cancelx8.c)0
-rw-r--r--sysdeps/pthread/tst-cleanup0.c (renamed from nptl/tst-cleanup0.c)0
-rw-r--r--sysdeps/pthread/tst-cleanup0.expect (renamed from nptl/tst-cleanup0.expect)0
-rw-r--r--sysdeps/pthread/tst-cleanup1.c (renamed from nptl/tst-cleanup1.c)0
-rw-r--r--sysdeps/pthread/tst-cleanup2.c (renamed from nptl/tst-cleanup2.c)0
-rw-r--r--sysdeps/pthread/tst-cleanup3.c (renamed from nptl/tst-cleanup3.c)0
-rw-r--r--sysdeps/pthread/tst-cleanupx0.c (renamed from nptl/tst-cleanupx0.c)0
-rw-r--r--sysdeps/pthread/tst-cleanupx0.expect (renamed from nptl/tst-cleanupx0.expect)0
-rw-r--r--sysdeps/pthread/tst-cleanupx1.c (renamed from nptl/tst-cleanupx1.c)0
-rw-r--r--sysdeps/pthread/tst-cleanupx2.c (renamed from nptl/tst-cleanupx2.c)0
-rw-r--r--sysdeps/pthread/tst-cleanupx3.c (renamed from nptl/tst-cleanupx3.c)0
-rw-r--r--sysdeps/pthread/tst-clock1.c (renamed from nptl/tst-clock1.c)0
-rw-r--r--sysdeps/pthread/tst-create-detached.c (renamed from nptl/tst-create-detached.c)0
-rw-r--r--sysdeps/pthread/tst-detach1.c (renamed from nptl/tst-detach1.c)0
-rw-r--r--sysdeps/pthread/tst-eintr2.c (renamed from nptl/tst-eintr2.c)0
-rw-r--r--sysdeps/pthread/tst-eintr3.c (renamed from nptl/tst-eintr3.c)0
-rw-r--r--sysdeps/pthread/tst-eintr4.c (renamed from nptl/tst-eintr4.c)0
-rw-r--r--sysdeps/pthread/tst-eintr5.c (renamed from nptl/tst-eintr5.c)0
-rw-r--r--sysdeps/pthread/tst-exec1.c (renamed from nptl/tst-exec1.c)0
-rw-r--r--sysdeps/pthread/tst-exec2.c (renamed from nptl/tst-exec2.c)0
-rw-r--r--sysdeps/pthread/tst-exec3.c (renamed from nptl/tst-exec3.c)0
-rw-r--r--sysdeps/pthread/tst-exit1.c (renamed from nptl/tst-exit1.c)0
-rw-r--r--sysdeps/pthread/tst-exit2.c (renamed from nptl/tst-exit2.c)0
-rw-r--r--sysdeps/pthread/tst-exit3.c (renamed from nptl/tst-exit3.c)0
-rw-r--r--sysdeps/pthread/tst-flock1.c (renamed from nptl/tst-flock1.c)0
-rw-r--r--sysdeps/pthread/tst-fork1.c (renamed from nptl/tst-fork1.c)0
-rw-r--r--sysdeps/pthread/tst-fork2.c (renamed from nptl/tst-fork2.c)0
-rw-r--r--sysdeps/pthread/tst-fork3.c (renamed from nptl/tst-fork3.c)0
-rw-r--r--sysdeps/pthread/tst-fork4.c (renamed from nptl/tst-fork4.c)0
-rw-r--r--sysdeps/pthread/tst-getpid3.c (renamed from nptl/tst-getpid3.c)0
-rw-r--r--sysdeps/pthread/tst-kill1.c (renamed from nptl/tst-kill1.c)0
-rw-r--r--sysdeps/pthread/tst-kill2.c (renamed from nptl/tst-kill2.c)0
-rw-r--r--sysdeps/pthread/tst-kill3.c (renamed from nptl/tst-kill3.c)0
-rw-r--r--sysdeps/pthread/tst-kill4.c (renamed from nptl/tst-kill4.c)0
-rw-r--r--sysdeps/pthread/tst-kill5.c (renamed from nptl/tst-kill5.c)0
-rw-r--r--sysdeps/pthread/tst-kill6.c (renamed from nptl/tst-kill6.c)0
-rw-r--r--sysdeps/pthread/tst-locale1.c (renamed from nptl/tst-locale1.c)0
-rw-r--r--sysdeps/pthread/tst-locale2.c (renamed from nptl/tst-locale2.c)0
-rw-r--r--sysdeps/pthread/tst-memstream.c (renamed from nptl/tst-memstream.c)0
-rw-r--r--sysdeps/pthread/tst-pt-align.c (renamed from nptl/tst-align.c)0
-rw-r--r--sysdeps/pthread/tst-pt-align3.c (renamed from nptl/tst-align3.c)0
-rw-r--r--sysdeps/pthread/tst-pt-popen1.c (renamed from nptl/tst-popen1.c)0
-rw-r--r--sysdeps/pthread/tst-pt-sysconf.c (renamed from nptl/tst-sysconf.c)0
-rw-r--r--sysdeps/pthread/tst-pt-tls1.c (renamed from nptl/tst-tls1.c)0
-rw-r--r--sysdeps/pthread/tst-pt-tls2.c (renamed from nptl/tst-tls2.c)0
-rw-r--r--sysdeps/pthread/tst-pt-vfork1.c (renamed from nptl/tst-vfork1.c)0
-rw-r--r--sysdeps/pthread/tst-pt-vfork2.c (renamed from nptl/tst-vfork2.c)0
-rw-r--r--sysdeps/pthread/tst-raise1.c (renamed from nptl/tst-raise1.c)0
-rw-r--r--sysdeps/pthread/tst-setuid3.c (renamed from nptl/tst-setuid3.c)0
-rw-r--r--sysdeps/pthread/tst-signal4.c (renamed from nptl/tst-signal4.c)0
-rw-r--r--sysdeps/pthread/tst-signal5.c (renamed from nptl/tst-signal5.c)0
-rw-r--r--sysdeps/pthread/tst-signal6.c (renamed from nptl/tst-signal6.c)0
-rw-r--r--sysdeps/pthread/tst-signal8.c (renamed from nptl/tst-signal8.c)0
-rw-r--r--sysdeps/pthread/tst-stack1.c (renamed from nptl/tst-stack1.c)5
-rw-r--r--sysdeps/pthread/tst-stdio1.c (renamed from nptl/tst-stdio1.c)0
-rw-r--r--sysdeps/pthread/tst-stdio2.c (renamed from nptl/tst-stdio2.c)0
-rw-r--r--sysdeps/pthread/tst-tsd1.c (renamed from nptl/tst-tsd1.c)0
-rw-r--r--sysdeps/pthread/tst-tsd2.c (renamed from nptl/tst-tsd2.c)0
-rw-r--r--sysdeps/pthread/tst-tsd5.c (renamed from nptl/tst-tsd5.c)0
-rw-r--r--sysdeps/pthread/tst-tsd6.c (renamed from nptl/tst-tsd6.c)0
-rw-r--r--sysdeps/pthread/tst-umask1.c (renamed from nptl/tst-umask1.c)0
-rw-r--r--sysdeps/pthread/tst-unload.c (renamed from nptl/tst-unload.c)0
-rw-r--r--sysdeps/pthread/tst-unwind-thread.c (renamed from nptl/tst-unwind-thread.c)0
-rw-r--r--sysdeps/pthread/tst-vfork1x.c (renamed from nptl/tst-vfork1x.c)0
-rw-r--r--sysdeps/pthread/tst-vfork2x.c (renamed from nptl/tst-vfork2x.c)0
100 files changed, 141 insertions, 111 deletions
diff --git a/htl/Makefile b/htl/Makefile
index 11cf87adc0..f647e4a0ca 100644
--- a/htl/Makefile
+++ b/htl/Makefile
@@ -203,12 +203,3 @@ libc-link.so = $(common-objpfx)libc.so
 extra-B-pthread.so = -B$(common-objpfx)htl/
 
 include ../Rules
-
-ifeq (yes,$(build-shared))
-$(addprefix $(objpfx), \
-  $(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \
-    $(tests-nolibpthread), \
-    $(tests) $(tests-internal) $(xtests) $(test-srcs))): $(objpfx)libpthread.so
-endif
-
-$(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a
diff --git a/nptl/Makefile b/nptl/Makefile
index 0e835ae83f..b1e60d303f 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -276,55 +276,27 @@ tests = tst-attr2 tst-attr3 tst-default-attr \
 	tst-rwlock15 tst-rwlock17 tst-rwlock18 \
 	tst-once5 \
 	tst-sem17 \
-	tst-align tst-align3 \
-	tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \
-	tst-raise1 \
-	tst-detach1 \
-	tst-eintr2 tst-eintr3 tst-eintr4 tst-eintr5 \
-	tst-tsd1 tst-tsd2 tst-tsd3 tst-tsd4 tst-tsd5 tst-tsd6 \
-	tst-tls1 tst-tls2 \
-	tst-fork1 tst-fork2 tst-fork3 tst-fork4 \
-	tst-atfork1 \
-	tst-cancel1 tst-cancel2 tst-cancel3 tst-cancel4 tst-cancel4_1 \
-	tst-cancel4_2 tst-cancel5 \
-	tst-cancel6 tst-cancel7 tst-cancel8 tst-cancel9 tst-cancel10 \
-	tst-cancel11 tst-cancel12 tst-cancel13 tst-cancel14 tst-cancel15 \
-	tst-cancel16 tst-cancel17 tst-cancel18 tst-cancel19 tst-cancel20 \
-	tst-cancel21 tst-cancel22 tst-cancel23 tst-cancel24 \
-	tst-cancel26 tst-cancel27 tst-cancel28 \
+	tst-tsd3 tst-tsd4 \
+	tst-cancel4 tst-cancel4_1 tst-cancel4_2 tst-cancel5 \
+	tst-cancel6 tst-cancel7 tst-cancel9 tst-cancel11 tst-cancel13 \
+	tst-cancel16 tst-cancel17 tst-cancel20 tst-cancel21 tst-cancel24 \
 	tst-cancel-self tst-cancel-self-cancelstate \
-	tst-cancel-self-canceltype tst-cancel-self-testcancel \
-	tst-cleanup0 tst-cleanup1 tst-cleanup2 tst-cleanup3 tst-cleanup4 \
-	tst-flock1 tst-flock2 \
-	tst-signal1 tst-signal2 tst-signal3 tst-signal4 tst-signal5 \
-	tst-signal6 tst-signal8 \
-	tst-exec1 tst-exec2 tst-exec3 tst-exec4 tst-exec5 \
-	tst-exit1 tst-exit2 tst-exit3 \
-	tst-stdio1 tst-stdio2 \
-	tst-stack1 tst-stack2 tst-stack3 tst-stack4 \
+	tst-cleanup4 \
+	tst-flock2 \
+	tst-signal1 tst-signal2 tst-signal3 \
+	tst-exec4 tst-exec5 \
+	tst-stack2 tst-stack3 tst-stack4 \
 	tst-pthread-attr-affinity \
-	tst-unload \
 	tst-dlsym1 \
-	tst-sysconf \
-	tst-locale1 tst-locale2 \
-	tst-umask1 \
-	tst-popen1 \
-	tst-clock1 \
 	tst-context1 \
 	tst-sched1 \
-	tst-backtrace1 \
-	tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
-	tst-getpid3 \
-	tst-setuid3 \
 	tst-initializers1 $(addprefix tst-initializers1-,\
 			    c89 gnu89 c99 gnu99 c11 gnu11) \
-	tst-bad-schedattr \
 	tst-thread_local1 \
-	tst-robust-fork tst-create-detached tst-memstream \
+	tst-robust-fork \
 	tst-thread-exit-clobber tst-minstack-cancel tst-minstack-exit \
 	tst-minstack-throw \
 	tst-rwlock-pwn \
-	tst-unwind-thread \
 	tst-thread-affinity-pthread \
 	tst-thread-affinity-pthread2 \
 	tst-thread-affinity-sched \
@@ -353,9 +325,6 @@ test-srcs = tst-oddstacklimit
 # 18435 - pthread_once hangs when init routine throws an exception.
 test-xfail-tst-once5 = yes
 
-# Files which must not be linked with libpthread.
-tests-nolibpthread = tst-unload
-
 gen-as-const-headers = unwindbuf.sym \
 		       pthread-pi-defines.sym
 
@@ -390,15 +359,11 @@ endif
 
 LDFLAGS-pthread.so = -Wl,--enable-new-dtags,-z,nodelete,-z,initfirst
 
-# GCC-4.9 compiles 'sprintf(NULL, ...)' into UD2 on x86_64 without -fno-builtin
-CFLAGS-tst-cleanup2.c += -fno-builtin
-CFLAGS-tst-cleanupx2.c += -fno-builtin
+tests += tst-cancelx4 tst-cancelx5 tst-cancelx6 tst-cancelx7 tst-cancelx9 \
+	 tst-cancelx11 tst-cancelx13 \
+	 tst-cancelx16 tst-cancelx17 tst-cancelx20 tst-cancelx21 \
+	 tst-cleanupx4
 
-tests += tst-cancelx2 tst-cancelx3 tst-cancelx4 tst-cancelx5 \
-	 tst-cancelx6 tst-cancelx7 tst-cancelx8 tst-cancelx9 tst-cancelx10 \
-	 tst-cancelx11 tst-cancelx12 tst-cancelx13 tst-cancelx14 tst-cancelx15 \
-	 tst-cancelx16 tst-cancelx17 tst-cancelx18 tst-cancelx20 tst-cancelx21 \
-	 tst-cleanupx0 tst-cleanupx1 tst-cleanupx2 tst-cleanupx3 tst-cleanupx4
 ifeq ($(build-shared),yes)
 tests += tst-atfork2 tst-tls4 tst-_res1 tst-fini1 tst-compat-forwarder \
 	 tst-audit-threads
@@ -466,23 +431,23 @@ CFLAGS-funlockfile.c += $(libio-mtsafe)
 link-libc-static := $(common-objpfx)libc.a $(static-gnulib) \
 		    $(common-objpfx)libc.a
 
-tests-static += tst-locale1 tst-locale2 tst-stackguard1-static \
+tests-static += tst-stackguard1-static \
 		tst-cancel21-static tst-cancel24-static \
 		tst-mutex8-static tst-mutexpi8-static tst-sem11-static \
 		tst-sem12-static tst-cond11-static
 
-tests += tst-cancel21-static tst-cancel24-static \
-	 tst-cond11-static
+tests += tst-cancel21-static tst-cancel24-static
+
 tests-internal += tst-sem11-static tst-sem12-static tst-stackguard1-static
 xtests-static += tst-setuid1-static
 
 # These tests are linked with libc before libpthread
-tests-reverse += tst-cancel5 tst-cancel23 tst-vfork1x tst-vfork2x
+tests-reverse += tst-cancel5
 
 ifeq ($(run-built-tests),yes)
 tests-special += $(objpfx)tst-stack3-mem.out $(objpfx)tst-oddstacklimit.out
 ifeq ($(build-shared),yes)
-tests-special += $(objpfx)tst-tls6.out $(objpfx)tst-cleanup0-cmp.out
+tests-special += $(objpfx)tst-tls6.out
 endif
 endif
 
@@ -520,33 +485,19 @@ CFLAGS-tst-cancelx5.c += -Wno-error
 
 # Run the cancellation and cleanup tests also for the modern, exception-based
 # implementation.  For this we have to pass the -fexceptions parameter.
-CFLAGS-tst-cancelx2.c += -fexceptions
-CFLAGS-tst-cancelx3.c += -fexceptions
 CFLAGS-tst-cancelx4.c += -fexceptions
 CFLAGS-tst-cancelx5.c += -fexceptions
 CFLAGS-tst-cancelx6.c += -fexceptions
 CFLAGS-tst-cancelx7.c += -fexceptions
-CFLAGS-tst-cancelx8.c += -fexceptions
 CFLAGS-tst-cancelx9.c += -fexceptions
-CFLAGS-tst-cancelx10.c += -fexceptions
 CFLAGS-tst-cancelx11.c += -fexceptions
-CFLAGS-tst-cancelx12.c += -fexceptions
 CFLAGS-tst-cancelx13.c += -fexceptions
-CFLAGS-tst-cancelx14.c += -fexceptions
-CFLAGS-tst-cancelx15.c += -fexceptions
 CFLAGS-tst-cancelx16.c += -fexceptions
 CFLAGS-tst-cancelx17.c += -fexceptions
-CFLAGS-tst-cancelx18.c += -fexceptions
 CFLAGS-tst-cancelx20.c += -fexceptions -fasynchronous-unwind-tables
 CFLAGS-tst-cancelx21.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-tst-cleanupx0.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-tst-cleanupx1.c += -fexceptions -fasynchronous-unwind-tables
-CFLAGS-tst-cleanupx2.c += -fexceptions
-CFLAGS-tst-cleanupx3.c += -fexceptions
 CFLAGS-tst-cleanupx4.c += -fexceptions
 CFLAGS-tst-cleanupx4aux.c += -fexceptions
-CFLAGS-tst-align.c += $(stack-align-test-flags)
-CFLAGS-tst-align3.c += $(stack-align-test-flags)
 CFLAGS-tst-initializers1.c += -W -Wall -Werror
 CFLAGS-tst-initializers1-< = $(CFLAGS-tst-initializers1.c) \
 			     $(patsubst tst-initializers1-%.c,-std=%,$<)
@@ -559,7 +510,6 @@ CFLAGS-tst-initializers1-gnu11.c += $(CFLAGS-tst-initializers1-<)
 
 tst-cancel7-ARGS = --command "exec $(host-test-program-cmd)"
 tst-cancelx7-ARGS = $(tst-cancel7-ARGS)
-tst-umask1-ARGS = $(objpfx)tst-umask1.temp
 
 $(objpfx)tst-atfork2: $(libdl) $(shared-thread-library)
 LDFLAGS-tst-atfork2 = -rdynamic
@@ -612,9 +562,6 @@ $(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
 	$(BASH) $< $(common-objpfx) '$(test-via-rtld-prefix)' \
 	  '$(test-wrapper-env)' '$(run-program-env)' > $@; \
 	$(evaluate-test)
-$(objpfx)tst-cancel28: $(common-objpfx)rt/librt.so
-else
-$(objpfx)tst-cancel28: $(common-objpfx)rt/librt.a
 endif
 
 $(objpfx)tst-dlsym1: $(libdl) $(shared-thread-library)
@@ -647,36 +594,11 @@ $(objpfx)libpthread.so: $(addprefix $(objpfx),$(crti-objs) $(crtn-objs))
 $(objpfx)libpthread.so: +preinit += $(addprefix $(objpfx),$(crti-objs))
 $(objpfx)libpthread.so: +postinit += $(addprefix $(objpfx),$(crtn-objs))
 
-# Make sure we link with the thread library.
 ifeq ($(build-shared),yes)
-$(addprefix $(objpfx), \
-  $(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \
-    $(tests-nolibpthread), \
-    $(tests) $(tests-internal) $(xtests) $(test-srcs) $(tests-container))): \
-	$(objpfx)libpthread.so
-$(objpfx)tst-unload: $(libdl)
-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
-# since otherwise libpthread.so comes before libc.so when linking.
-$(addprefix $(objpfx), $(tests-reverse)): \
-  $(objpfx)../libc.so $(objpfx)libpthread.so
-$(objpfx)../libc.so: $(common-objpfx)libc.so ;
-$(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a
-
 $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so
-else
-$(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
 endif
 
 ifeq ($(build-shared),yes)
-
-$(objpfx)tst-cleanup0.out: /dev/null $(objpfx)tst-cleanup0
-	$(make-test-out) > $@ 2>&1; \
-	$(evaluate-test)
-
-$(objpfx)tst-cleanup0-cmp.out: tst-cleanup0.expect $(objpfx)tst-cleanup0.out
-	cmp $^ > $@; \
-	$(evaluate-test)
-
 $(objpfx)crti.o: $(objpfx)pt-crti.o
 	ln -f $< $@
 
@@ -729,8 +651,6 @@ $(objpfx)tst-audit-threads: $(objpfx)tst-audit-threads-mod2.so
 $(objpfx)tst-audit-threads.out: $(objpfx)tst-audit-threads-mod1.so
 tst-audit-threads-ENV = LD_AUDIT=$(objpfx)tst-audit-threads-mod1.so
 
-CFLAGS-tst-unwind-thread.c += -funwind-tables
-
 # The test uses dlopen indirectly and would otherwise load system
 # objects.
 tst-setuid1-static-ENV = \
diff --git a/sysdeps/pthread/tst-cond22.c b/nptl/tst-cond22.c
index 64f19ea0a5..64f19ea0a5 100644
--- a/sysdeps/pthread/tst-cond22.c
+++ b/nptl/tst-cond22.c
diff --git a/sysdeps/pthread/tst-cond26.c b/nptl/tst-cond26.c
index e647da00c2..e647da00c2 100644
--- a/sysdeps/pthread/tst-cond26.c
+++ b/nptl/tst-cond26.c
diff --git a/sysdeps/pthread/Makefile b/sysdeps/pthread/Makefile
index 1d1ddeb099..fb78e55e27 100644
--- a/sysdeps/pthread/Makefile
+++ b/sysdeps/pthread/Makefile
@@ -42,23 +42,48 @@ libpthread-routines += thrd_create thrd_detach thrd_exit thrd_join \
 tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \
 	 tst-cnd-timedwait tst-thrd-detach tst-mtx-basic tst-thrd-sleep \
 	 tst-mtx-recursive tst-tss-basic tst-call-once tst-mtx-timedlock \
+	 \
+	 tst-abstime \
+	 tst-pt-align tst-pt-align3 \
 	 tst-attr1 \
+	 tst-backtrace1 \
+	 tst-bad-schedattr \
 	 tst-barrier1 tst-barrier2 tst-barrier3 tst-barrier4 \
 	 tst-basic1 tst-basic2 tst-basic3 tst-basic4 tst-basic5 tst-basic6 \
 	 tst-basic7 \
+	 tst-cancel-self-canceltype tst-cancel-self-testcancel \
+	 tst-cancel1 tst-cancel2 tst-cancel3 tst-cancel8 tst-cancel10 \
+	 tst-cancel12 tst-cancel14 tst-cancel15 tst-cancel18 tst-cancel19 \
+	 tst-cancel22 tst-cancel23 tst-cancel26 tst-cancel27 tst-cancel28 \
+	 tst-cleanup0 tst-cleanup1 tst-cleanup2 tst-cleanup3 \
+	 tst-clock1 \
+	 tst-cond-except \
 	 tst-cond1 tst-cond2 tst-cond3 tst-cond4 tst-cond5 tst-cond6 tst-cond7 \
 	 tst-cond8 tst-cond9 tst-cond10 tst-cond11 tst-cond12 tst-cond13 \
 	 tst-cond14 tst-cond15 tst-cond16 tst-cond17 tst-cond18 tst-cond19 \
 	 tst-cond20 tst-cond21 tst-cond23 tst-cond24 tst-cond25 tst-cond27 \
-	 tst-cond-except \
+	 tst-create-detached \
+	 tst-detach1 \
+	 tst-eintr2 tst-eintr3 tst-eintr4 tst-eintr5 \
+	 tst-exec1 tst-exec2 tst-exec3 \
+	 tst-exit1 tst-exit2 tst-exit3 \
+	 tst-flock1 \
+	 tst-fork1 tst-fork2 tst-fork3 tst-fork4 \
+	 tst-atfork1 \
+	 tst-getpid3 \
 	 tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-join6 tst-join7 \
 	 tst-join8 tst-join9 tst-join10 tst-join11 tst-join12 tst-join13 \
 	 tst-join14 \
 	 tst-key1 tst-key2 tst-key3 tst-key4 \
+	 tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \
+	 tst-locale1 tst-locale2 \
+	 tst-memstream \
 	 tst-mutex-errorcheck tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 \
 	 tst-mutex5 tst-mutex6 tst-mutex7 tst-mutex7robust tst-mutex9 \
 	 tst-mutex10 tst-mutex11 tst-pthread-mutexattr \
 	 tst-once1 tst-once2 tst-once3 tst-once4 \
+	 tst-pt-popen1 \
+	 tst-raise1 \
 	 tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \
 	 tst-robust6 tst-robust7 tst-robust9 tst-robust10 \
 	 tst-rwlock1 tst-rwlock4 tst-rwlock5 tst-rwlock12 \
@@ -66,8 +91,79 @@ tests += tst-cnd-basic tst-mtx-trylock tst-cnd-broadcast \
 	 tst-rwlock-tryrdlock-stall tst-rwlock-trywrlock-stall \
 	 tst-sem1 tst-sem2 tst-sem3 tst-sem4 tst-sem5 tst-sem6 tst-sem7 \
 	 tst-sem8 tst-sem9 tst-sem10 tst-sem14 tst-sem15 tst-sem16 \
+	 tst-setuid3 \
+	 tst-signal4 tst-signal5 tst-signal6 tst-signal8 \
 	 tst-spin1 tst-spin2 tst-spin3 tst-spin4 \
-	 tst-abstime
+	 tst-stack1 \
+	 tst-stdio1 tst-stdio2 \
+	 tst-pt-sysconf \
+	 tst-pt-tls1 tst-pt-tls2 \
+	 tst-tsd1 tst-tsd2 tst-tsd5 tst-tsd6 \
+	 tst-umask1 \
+	 tst-unload \
+	 tst-unwind-thread \
+	 tst-pt-vfork1 tst-pt-vfork2 tst-vfork1x tst-vfork2x \
+
+
+# Files which must not be linked with libpthread.
+tests-nolibpthread = tst-unload
+
+# GCC-4.9 compiles 'sprintf(NULL, ...)' into UD2 on x86_64 without -fno-builtin
+CFLAGS-tst-cleanup2.c += -fno-builtin
+CFLAGS-tst-cleanupx2.c += -fno-builtin
+
+tests += tst-cancelx2 tst-cancelx3 tst-cancelx8 tst-cancelx10 \
+	 tst-cancelx12 tst-cancelx14 tst-cancelx15 tst-cancelx18 \
+	 tst-cleanupx0 tst-cleanupx1 tst-cleanupx2 tst-cleanupx3
+
+tests-static += tst-locale1 tst-locale2
+
+tests += tst-cond11-static
+
+
+# These tests are linked with libc before libpthread
+tests-reverse += tst-cancel23 tst-vfork1x tst-vfork2x
+
+ifeq ($(run-built-tests),yes)
+ifeq ($(build-shared),yes)
+tests-special += $(objpfx)tst-cleanup0-cmp.out
+endif
+endif
+
+# Run the cancellation and cleanup tests also for the modern, exception-based
+# implementation.  For this we have to pass the -fexceptions parameter.
+CFLAGS-tst-cancelx2.c += -fexceptions
+CFLAGS-tst-cancelx3.c += -fexceptions
+CFLAGS-tst-cancelx8.c += -fexceptions
+CFLAGS-tst-cancelx10.c += -fexceptions
+CFLAGS-tst-cancelx12.c += -fexceptions
+CFLAGS-tst-cancelx14.c += -fexceptions
+CFLAGS-tst-cancelx15.c += -fexceptions
+CFLAGS-tst-cancelx18.c += -fexceptions
+CFLAGS-tst-cleanupx0.c += -fexceptions -fasynchronous-unwind-tables
+CFLAGS-tst-cleanupx1.c += -fexceptions -fasynchronous-unwind-tables
+CFLAGS-tst-cleanupx2.c += -fexceptions
+CFLAGS-tst-cleanupx3.c += -fexceptions
+CFLAGS-tst-pt-align.c += $(stack-align-test-flags)
+CFLAGS-tst-pt-align3.c += $(stack-align-test-flags)
+
+tst-umask1-ARGS = $(objpfx)tst-umask1.temp
+
+ifeq ($(build-shared),yes)
+$(objpfx)tst-cleanup0.out: /dev/null $(objpfx)tst-cleanup0
+	$(make-test-out) > $@ 2>&1; \
+	$(evaluate-test)
+
+$(objpfx)tst-cleanup0-cmp.out: $(..)sysdeps/pthread/tst-cleanup0.expect $(objpfx)tst-cleanup0.out
+	cmp $^ > $@; \
+	$(evaluate-test)
+
+$(objpfx)tst-cancel28: $(common-objpfx)rt/librt.so
+else
+$(objpfx)tst-cancel28: $(common-objpfx)rt/librt.a
+endif
+
+
 
 tests-internal += tst-robust8
 
@@ -88,4 +184,24 @@ $(objpfx)tst-join7.out: $(objpfx)tst-join7mod.so
 $(objpfx)tst-join7mod.so: $(shared-thread-library)
 LDFLAGS-tst-join7mod.so = -Wl,-soname,tst-join7mod.so
 
+CFLAGS-tst-unwind-thread.c += -funwind-tables
+
+# Make sure we link with the thread library.
+ifeq ($(build-shared),yes)
+$(addprefix $(objpfx), \
+  $(filter-out $(tests-static) $(xtests-static) $(tests-reverse) \
+    $(tests-nolibpthread), \
+    $(tests) $(tests-internal) $(xtests) $(test-srcs) $(tests-container))): \
+	$(objpfx)libpthread.so
+$(objpfx)tst-unload: $(libdl)
+# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
+# since otherwise libpthread.so comes before libc.so when linking.
+$(addprefix $(objpfx), $(tests-reverse)): \
+  $(objpfx)../libc.so $(objpfx)libpthread.so
+$(objpfx)../libc.so: $(common-objpfx)libc.so ;
+$(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a
+else
+$(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
+endif
+
 endif
diff --git a/nptl/eintr.c b/sysdeps/pthread/eintr.c
index 99a03e0957..99a03e0957 100644
--- a/nptl/eintr.c
+++ b/sysdeps/pthread/eintr.c
diff --git a/nptl/tst-atfork1.c b/sysdeps/pthread/tst-atfork1.c
index b7d2c023df..b7d2c023df 100644
--- a/nptl/tst-atfork1.c
+++ b/sysdeps/pthread/tst-atfork1.c
diff --git a/nptl/tst-backtrace1.c b/sysdeps/pthread/tst-backtrace1.c
index 9c7efd306a..9c7efd306a 100644
--- a/nptl/tst-backtrace1.c
+++ b/sysdeps/pthread/tst-backtrace1.c
diff --git a/nptl/tst-bad-schedattr.c b/sysdeps/pthread/tst-bad-schedattr.c
index f837dbdc76..f837dbdc76 100644
--- a/nptl/tst-bad-schedattr.c
+++ b/sysdeps/pthread/tst-bad-schedattr.c
diff --git a/nptl/tst-cancel-self-canceltype.c b/sysdeps/pthread/tst-cancel-self-canceltype.c
index 4f4ae08682..4f4ae08682 100644
--- a/nptl/tst-cancel-self-canceltype.c
+++ b/sysdeps/pthread/tst-cancel-self-canceltype.c
diff --git a/nptl/tst-cancel-self-cleanup.c b/sysdeps/pthread/tst-cancel-self-cleanup.c
index 5373397f69..5373397f69 100644
--- a/nptl/tst-cancel-self-cleanup.c
+++ b/sysdeps/pthread/tst-cancel-self-cleanup.c
diff --git a/nptl/tst-cancel-self-testcancel.c b/sysdeps/pthread/tst-cancel-self-testcancel.c
index f9e4b82137..f9e4b82137 100644
--- a/nptl/tst-cancel-self-testcancel.c
+++ b/sysdeps/pthread/tst-cancel-self-testcancel.c
diff --git a/nptl/tst-cancel1.c b/sysdeps/pthread/tst-cancel1.c
index 19a12a0b96..19a12a0b96 100644
--- a/nptl/tst-cancel1.c
+++ b/sysdeps/pthread/tst-cancel1.c
diff --git a/nptl/tst-cancel10.c b/sysdeps/pthread/tst-cancel10.c
index 79caefb31f..79caefb31f 100644
--- a/nptl/tst-cancel10.c
+++ b/sysdeps/pthread/tst-cancel10.c
diff --git a/nptl/tst-cancel12.c b/sysdeps/pthread/tst-cancel12.c
index 55045f55d2..55045f55d2 100644
--- a/nptl/tst-cancel12.c
+++ b/sysdeps/pthread/tst-cancel12.c
diff --git a/nptl/tst-cancel14.c b/sysdeps/pthread/tst-cancel14.c
index 32e03eb173..32e03eb173 100644
--- a/nptl/tst-cancel14.c
+++ b/sysdeps/pthread/tst-cancel14.c
diff --git a/nptl/tst-cancel15.c b/sysdeps/pthread/tst-cancel15.c
index c16d9d17eb..c16d9d17eb 100644
--- a/nptl/tst-cancel15.c
+++ b/sysdeps/pthread/tst-cancel15.c
diff --git a/nptl/tst-cancel18.c b/sysdeps/pthread/tst-cancel18.c
index 7dce66c91c..7dce66c91c 100644
--- a/nptl/tst-cancel18.c
+++ b/sysdeps/pthread/tst-cancel18.c
diff --git a/nptl/tst-cancel19.c b/sysdeps/pthread/tst-cancel19.c
index b6752d8252..b6752d8252 100644
--- a/nptl/tst-cancel19.c
+++ b/sysdeps/pthread/tst-cancel19.c
diff --git a/nptl/tst-cancel2.c b/sysdeps/pthread/tst-cancel2.c
index 1e86711596..1e86711596 100644
--- a/nptl/tst-cancel2.c
+++ b/sysdeps/pthread/tst-cancel2.c
diff --git a/nptl/tst-cancel22.c b/sysdeps/pthread/tst-cancel22.c
index 82a5454132..82a5454132 100644
--- a/nptl/tst-cancel22.c
+++ b/sysdeps/pthread/tst-cancel22.c
diff --git a/nptl/tst-cancel23.c b/sysdeps/pthread/tst-cancel23.c
index 211168748e..211168748e 100644
--- a/nptl/tst-cancel23.c
+++ b/sysdeps/pthread/tst-cancel23.c
diff --git a/nptl/tst-cancel26.c b/sysdeps/pthread/tst-cancel26.c
index 91948ae909..91948ae909 100644
--- a/nptl/tst-cancel26.c
+++ b/sysdeps/pthread/tst-cancel26.c
diff --git a/nptl/tst-cancel27.c b/sysdeps/pthread/tst-cancel27.c
index d3d582e22c..d3d582e22c 100644
--- a/nptl/tst-cancel27.c
+++ b/sysdeps/pthread/tst-cancel27.c
diff --git a/nptl/tst-cancel28.c b/sysdeps/pthread/tst-cancel28.c
index 11beb0168c..11beb0168c 100644
--- a/nptl/tst-cancel28.c
+++ b/sysdeps/pthread/tst-cancel28.c
diff --git a/nptl/tst-cancel3.c b/sysdeps/pthread/tst-cancel3.c
index 0a531dbcdb..0a531dbcdb 100644
--- a/nptl/tst-cancel3.c
+++ b/sysdeps/pthread/tst-cancel3.c
diff --git a/nptl/tst-cancel8.c b/sysdeps/pthread/tst-cancel8.c
index 0ee1e85db3..0ee1e85db3 100644
--- a/nptl/tst-cancel8.c
+++ b/sysdeps/pthread/tst-cancel8.c
diff --git a/nptl/tst-cancelx1.c b/sysdeps/pthread/tst-cancelx1.c
index 594f095592..594f095592 100644
--- a/nptl/tst-cancelx1.c
+++ b/sysdeps/pthread/tst-cancelx1.c
diff --git a/nptl/tst-cancelx10.c b/sysdeps/pthread/tst-cancelx10.c
index e5bbb34e62..e5bbb34e62 100644
--- a/nptl/tst-cancelx10.c
+++ b/sysdeps/pthread/tst-cancelx10.c
diff --git a/nptl/tst-cancelx12.c b/sysdeps/pthread/tst-cancelx12.c
index f90ae61bac..f90ae61bac 100644
--- a/nptl/tst-cancelx12.c
+++ b/sysdeps/pthread/tst-cancelx12.c
diff --git a/nptl/tst-cancelx14.c b/sysdeps/pthread/tst-cancelx14.c
index ba4e77584e..ba4e77584e 100644
--- a/nptl/tst-cancelx14.c
+++ b/sysdeps/pthread/tst-cancelx14.c
diff --git a/nptl/tst-cancelx15.c b/sysdeps/pthread/tst-cancelx15.c
index 005c1f6e3f..005c1f6e3f 100644
--- a/nptl/tst-cancelx15.c
+++ b/sysdeps/pthread/tst-cancelx15.c
diff --git a/nptl/tst-cancelx18.c b/sysdeps/pthread/tst-cancelx18.c
index 56da18f382..56da18f382 100644
--- a/nptl/tst-cancelx18.c
+++ b/sysdeps/pthread/tst-cancelx18.c
diff --git a/nptl/tst-cancelx2.c b/sysdeps/pthread/tst-cancelx2.c
index 95dc8a8575..95dc8a8575 100644
--- a/nptl/tst-cancelx2.c
+++ b/sysdeps/pthread/tst-cancelx2.c
diff --git a/nptl/tst-cancelx3.c b/sysdeps/pthread/tst-cancelx3.c
index 3937f10b9c..3937f10b9c 100644
--- a/nptl/tst-cancelx3.c
+++ b/sysdeps/pthread/tst-cancelx3.c
diff --git a/nptl/tst-cancelx8.c b/sysdeps/pthread/tst-cancelx8.c
index 0555c7ceb0..0555c7ceb0 100644
--- a/nptl/tst-cancelx8.c
+++ b/sysdeps/pthread/tst-cancelx8.c
diff --git a/nptl/tst-cleanup0.c b/sysdeps/pthread/tst-cleanup0.c
index fd196abb96..fd196abb96 100644
--- a/nptl/tst-cleanup0.c
+++ b/sysdeps/pthread/tst-cleanup0.c
diff --git a/nptl/tst-cleanup0.expect b/sysdeps/pthread/tst-cleanup0.expect
index 4e3c581802..4e3c581802 100644
--- a/nptl/tst-cleanup0.expect
+++ b/sysdeps/pthread/tst-cleanup0.expect
diff --git a/nptl/tst-cleanup1.c b/sysdeps/pthread/tst-cleanup1.c
index 7805479857..7805479857 100644
--- a/nptl/tst-cleanup1.c
+++ b/sysdeps/pthread/tst-cleanup1.c
diff --git a/nptl/tst-cleanup2.c b/sysdeps/pthread/tst-cleanup2.c
index 5936c242fc..5936c242fc 100644
--- a/nptl/tst-cleanup2.c
+++ b/sysdeps/pthread/tst-cleanup2.c
diff --git a/nptl/tst-cleanup3.c b/sysdeps/pthread/tst-cleanup3.c
index 150d56162f..150d56162f 100644
--- a/nptl/tst-cleanup3.c
+++ b/sysdeps/pthread/tst-cleanup3.c
diff --git a/nptl/tst-cleanupx0.c b/sysdeps/pthread/tst-cleanupx0.c
index 0012ab1b25..0012ab1b25 100644
--- a/nptl/tst-cleanupx0.c
+++ b/sysdeps/pthread/tst-cleanupx0.c
diff --git a/nptl/tst-cleanupx0.expect b/sysdeps/pthread/tst-cleanupx0.expect
index 4e3c581802..4e3c581802 100644
--- a/nptl/tst-cleanupx0.expect
+++ b/sysdeps/pthread/tst-cleanupx0.expect
diff --git a/nptl/tst-cleanupx1.c b/sysdeps/pthread/tst-cleanupx1.c
index 21e9e58bd6..21e9e58bd6 100644
--- a/nptl/tst-cleanupx1.c
+++ b/sysdeps/pthread/tst-cleanupx1.c
diff --git a/nptl/tst-cleanupx2.c b/sysdeps/pthread/tst-cleanupx2.c
index 8b9e350935..8b9e350935 100644
--- a/nptl/tst-cleanupx2.c
+++ b/sysdeps/pthread/tst-cleanupx2.c
diff --git a/nptl/tst-cleanupx3.c b/sysdeps/pthread/tst-cleanupx3.c
index 90baf904f9..90baf904f9 100644
--- a/nptl/tst-cleanupx3.c
+++ b/sysdeps/pthread/tst-cleanupx3.c
diff --git a/nptl/tst-clock1.c b/sysdeps/pthread/tst-clock1.c
index 26ef56852d..26ef56852d 100644
--- a/nptl/tst-clock1.c
+++ b/sysdeps/pthread/tst-clock1.c
diff --git a/nptl/tst-create-detached.c b/sysdeps/pthread/tst-create-detached.c
index cd79c68908..cd79c68908 100644
--- a/nptl/tst-create-detached.c
+++ b/sysdeps/pthread/tst-create-detached.c
diff --git a/nptl/tst-detach1.c b/sysdeps/pthread/tst-detach1.c
index b45732d3c1..b45732d3c1 100644
--- a/nptl/tst-detach1.c
+++ b/sysdeps/pthread/tst-detach1.c
diff --git a/nptl/tst-eintr2.c b/sysdeps/pthread/tst-eintr2.c
index 4f26ccad04..4f26ccad04 100644
--- a/nptl/tst-eintr2.c
+++ b/sysdeps/pthread/tst-eintr2.c
diff --git a/nptl/tst-eintr3.c b/sysdeps/pthread/tst-eintr3.c
index 528ead1fc4..528ead1fc4 100644
--- a/nptl/tst-eintr3.c
+++ b/sysdeps/pthread/tst-eintr3.c
diff --git a/nptl/tst-eintr4.c b/sysdeps/pthread/tst-eintr4.c
index 14f3675519..14f3675519 100644
--- a/nptl/tst-eintr4.c
+++ b/sysdeps/pthread/tst-eintr4.c
diff --git a/nptl/tst-eintr5.c b/sysdeps/pthread/tst-eintr5.c
index bc6c0fef53..bc6c0fef53 100644
--- a/nptl/tst-eintr5.c
+++ b/sysdeps/pthread/tst-eintr5.c
diff --git a/nptl/tst-exec1.c b/sysdeps/pthread/tst-exec1.c
index 892107d4c7..892107d4c7 100644
--- a/nptl/tst-exec1.c
+++ b/sysdeps/pthread/tst-exec1.c
diff --git a/nptl/tst-exec2.c b/sysdeps/pthread/tst-exec2.c
index f57903da1e..f57903da1e 100644
--- a/nptl/tst-exec2.c
+++ b/sysdeps/pthread/tst-exec2.c
diff --git a/nptl/tst-exec3.c b/sysdeps/pthread/tst-exec3.c
index b849d3aef7..b849d3aef7 100644
--- a/nptl/tst-exec3.c
+++ b/sysdeps/pthread/tst-exec3.c
diff --git a/nptl/tst-exit1.c b/sysdeps/pthread/tst-exit1.c
index 4ecc3d4ac5..4ecc3d4ac5 100644
--- a/nptl/tst-exit1.c
+++ b/sysdeps/pthread/tst-exit1.c
diff --git a/nptl/tst-exit2.c b/sysdeps/pthread/tst-exit2.c
index 0b7a2caf6a..0b7a2caf6a 100644
--- a/nptl/tst-exit2.c
+++ b/sysdeps/pthread/tst-exit2.c
diff --git a/nptl/tst-exit3.c b/sysdeps/pthread/tst-exit3.c
index 9481ed9b42..9481ed9b42 100644
--- a/nptl/tst-exit3.c
+++ b/sysdeps/pthread/tst-exit3.c
diff --git a/nptl/tst-flock1.c b/sysdeps/pthread/tst-flock1.c
index 65faf46150..65faf46150 100644
--- a/nptl/tst-flock1.c
+++ b/sysdeps/pthread/tst-flock1.c
diff --git a/nptl/tst-fork1.c b/sysdeps/pthread/tst-fork1.c
index fe5e015a2a..fe5e015a2a 100644
--- a/nptl/tst-fork1.c
+++ b/sysdeps/pthread/tst-fork1.c
diff --git a/nptl/tst-fork2.c b/sysdeps/pthread/tst-fork2.c
index bfebab3c92..bfebab3c92 100644
--- a/nptl/tst-fork2.c
+++ b/sysdeps/pthread/tst-fork2.c
diff --git a/nptl/tst-fork3.c b/sysdeps/pthread/tst-fork3.c
index 2da4c39698..2da4c39698 100644
--- a/nptl/tst-fork3.c
+++ b/sysdeps/pthread/tst-fork3.c
diff --git a/nptl/tst-fork4.c b/sysdeps/pthread/tst-fork4.c
index 3efbb724f8..3efbb724f8 100644
--- a/nptl/tst-fork4.c
+++ b/sysdeps/pthread/tst-fork4.c
diff --git a/nptl/tst-getpid3.c b/sysdeps/pthread/tst-getpid3.c
index f1e77f6b10..f1e77f6b10 100644
--- a/nptl/tst-getpid3.c
+++ b/sysdeps/pthread/tst-getpid3.c
diff --git a/nptl/tst-kill1.c b/sysdeps/pthread/tst-kill1.c
index f49598cc83..f49598cc83 100644
--- a/nptl/tst-kill1.c
+++ b/sysdeps/pthread/tst-kill1.c
diff --git a/nptl/tst-kill2.c b/sysdeps/pthread/tst-kill2.c
index a91cf33b44..a91cf33b44 100644
--- a/nptl/tst-kill2.c
+++ b/sysdeps/pthread/tst-kill2.c
diff --git a/nptl/tst-kill3.c b/sysdeps/pthread/tst-kill3.c
index f2dec0a305..f2dec0a305 100644
--- a/nptl/tst-kill3.c
+++ b/sysdeps/pthread/tst-kill3.c
diff --git a/nptl/tst-kill4.c b/sysdeps/pthread/tst-kill4.c
index 916ea14820..916ea14820 100644
--- a/nptl/tst-kill4.c
+++ b/sysdeps/pthread/tst-kill4.c
diff --git a/nptl/tst-kill5.c b/sysdeps/pthread/tst-kill5.c
index aefe3d6604..aefe3d6604 100644
--- a/nptl/tst-kill5.c
+++ b/sysdeps/pthread/tst-kill5.c
diff --git a/nptl/tst-kill6.c b/sysdeps/pthread/tst-kill6.c
index eaec47ccdb..eaec47ccdb 100644
--- a/nptl/tst-kill6.c
+++ b/sysdeps/pthread/tst-kill6.c
diff --git a/nptl/tst-locale1.c b/sysdeps/pthread/tst-locale1.c
index 887b9a6dd7..887b9a6dd7 100644
--- a/nptl/tst-locale1.c
+++ b/sysdeps/pthread/tst-locale1.c
diff --git a/nptl/tst-locale2.c b/sysdeps/pthread/tst-locale2.c
index a238209f87..a238209f87 100644
--- a/nptl/tst-locale2.c
+++ b/sysdeps/pthread/tst-locale2.c
diff --git a/nptl/tst-memstream.c b/sysdeps/pthread/tst-memstream.c
index 4e8d86cb8b..4e8d86cb8b 100644
--- a/nptl/tst-memstream.c
+++ b/sysdeps/pthread/tst-memstream.c
diff --git a/nptl/tst-align.c b/sysdeps/pthread/tst-pt-align.c
index 6bb030fc13..6bb030fc13 100644
--- a/nptl/tst-align.c
+++ b/sysdeps/pthread/tst-pt-align.c
diff --git a/nptl/tst-align3.c b/sysdeps/pthread/tst-pt-align3.c
index b9a35f9586..b9a35f9586 100644
--- a/nptl/tst-align3.c
+++ b/sysdeps/pthread/tst-pt-align3.c
diff --git a/nptl/tst-popen1.c b/sysdeps/pthread/tst-pt-popen1.c
index 0726447be1..0726447be1 100644
--- a/nptl/tst-popen1.c
+++ b/sysdeps/pthread/tst-pt-popen1.c
diff --git a/nptl/tst-sysconf.c b/sysdeps/pthread/tst-pt-sysconf.c
index 6c5305b420..6c5305b420 100644
--- a/nptl/tst-sysconf.c
+++ b/sysdeps/pthread/tst-pt-sysconf.c
diff --git a/nptl/tst-tls1.c b/sysdeps/pthread/tst-pt-tls1.c
index 727610bc0a..727610bc0a 100644
--- a/nptl/tst-tls1.c
+++ b/sysdeps/pthread/tst-pt-tls1.c
diff --git a/nptl/tst-tls2.c b/sysdeps/pthread/tst-pt-tls2.c
index f319707f86..f319707f86 100644
--- a/nptl/tst-tls2.c
+++ b/sysdeps/pthread/tst-pt-tls2.c
diff --git a/nptl/tst-vfork1.c b/sysdeps/pthread/tst-pt-vfork1.c
index f409ec49b3..f409ec49b3 100644
--- a/nptl/tst-vfork1.c
+++ b/sysdeps/pthread/tst-pt-vfork1.c
diff --git a/nptl/tst-vfork2.c b/sysdeps/pthread/tst-pt-vfork2.c
index 5356e83115..5356e83115 100644
--- a/nptl/tst-vfork2.c
+++ b/sysdeps/pthread/tst-pt-vfork2.c
diff --git a/nptl/tst-raise1.c b/sysdeps/pthread/tst-raise1.c
index f015cf3ff6..f015cf3ff6 100644
--- a/nptl/tst-raise1.c
+++ b/sysdeps/pthread/tst-raise1.c
diff --git a/nptl/tst-setuid3.c b/sysdeps/pthread/tst-setuid3.c
index 261c265664..261c265664 100644
--- a/nptl/tst-setuid3.c
+++ b/sysdeps/pthread/tst-setuid3.c
diff --git a/nptl/tst-signal4.c b/sysdeps/pthread/tst-signal4.c
index e6e837a912..e6e837a912 100644
--- a/nptl/tst-signal4.c
+++ b/sysdeps/pthread/tst-signal4.c
diff --git a/nptl/tst-signal5.c b/sysdeps/pthread/tst-signal5.c
index 114bf060bc..114bf060bc 100644
--- a/nptl/tst-signal5.c
+++ b/sysdeps/pthread/tst-signal5.c
diff --git a/nptl/tst-signal6.c b/sysdeps/pthread/tst-signal6.c
index fcf703127b..fcf703127b 100644
--- a/nptl/tst-signal6.c
+++ b/sysdeps/pthread/tst-signal6.c
diff --git a/nptl/tst-signal8.c b/sysdeps/pthread/tst-signal8.c
index 9da7e5ef07..9da7e5ef07 100644
--- a/nptl/tst-signal8.c
+++ b/sysdeps/pthread/tst-signal8.c
diff --git a/nptl/tst-stack1.c b/sysdeps/pthread/tst-stack1.c
index e9d795c71f..7285a9cbc9 100644
--- a/nptl/tst-stack1.c
+++ b/sysdeps/pthread/tst-stack1.c
@@ -75,7 +75,10 @@ do_test (void)
 {
   int result = 0;
 
-  size = MAX (4 * getpagesize (), PTHREAD_STACK_MIN);
+  size = 4 * getpagesize ();
+#ifdef PTHREAD_STACK_MIN
+  size = MAX (size, PTHREAD_STACK_MIN);
+#endif
   if (posix_memalign (&stack, getpagesize (), size) != 0)
     {
       puts ("out of memory while allocating the stack memory");
diff --git a/nptl/tst-stdio1.c b/sysdeps/pthread/tst-stdio1.c
index 66696a92ee..66696a92ee 100644
--- a/nptl/tst-stdio1.c
+++ b/sysdeps/pthread/tst-stdio1.c
diff --git a/nptl/tst-stdio2.c b/sysdeps/pthread/tst-stdio2.c
index 343b34ce83..343b34ce83 100644
--- a/nptl/tst-stdio2.c
+++ b/sysdeps/pthread/tst-stdio2.c
diff --git a/nptl/tst-tsd1.c b/sysdeps/pthread/tst-tsd1.c
index 3e97dea078..3e97dea078 100644
--- a/nptl/tst-tsd1.c
+++ b/sysdeps/pthread/tst-tsd1.c
diff --git a/nptl/tst-tsd2.c b/sysdeps/pthread/tst-tsd2.c
index f72da40c84..f72da40c84 100644
--- a/nptl/tst-tsd2.c
+++ b/sysdeps/pthread/tst-tsd2.c
diff --git a/nptl/tst-tsd5.c b/sysdeps/pthread/tst-tsd5.c
index e439588329..e439588329 100644
--- a/nptl/tst-tsd5.c
+++ b/sysdeps/pthread/tst-tsd5.c
diff --git a/nptl/tst-tsd6.c b/sysdeps/pthread/tst-tsd6.c
index debb1dd367..debb1dd367 100644
--- a/nptl/tst-tsd6.c
+++ b/sysdeps/pthread/tst-tsd6.c
diff --git a/nptl/tst-umask1.c b/sysdeps/pthread/tst-umask1.c
index 46ff89b9fd..46ff89b9fd 100644
--- a/nptl/tst-umask1.c
+++ b/sysdeps/pthread/tst-umask1.c
diff --git a/nptl/tst-unload.c b/sysdeps/pthread/tst-unload.c
index b29745c9c1..b29745c9c1 100644
--- a/nptl/tst-unload.c
+++ b/sysdeps/pthread/tst-unload.c
diff --git a/nptl/tst-unwind-thread.c b/sysdeps/pthread/tst-unwind-thread.c
index d5c38e3709..d5c38e3709 100644
--- a/nptl/tst-unwind-thread.c
+++ b/sysdeps/pthread/tst-unwind-thread.c
diff --git a/nptl/tst-vfork1x.c b/sysdeps/pthread/tst-vfork1x.c
index f409ec49b3..f409ec49b3 100644
--- a/nptl/tst-vfork1x.c
+++ b/sysdeps/pthread/tst-vfork1x.c
diff --git a/nptl/tst-vfork2x.c b/sysdeps/pthread/tst-vfork2x.c
index 5356e83115..5356e83115 100644
--- a/nptl/tst-vfork2x.c
+++ b/sysdeps/pthread/tst-vfork2x.c