about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
Diffstat (limited to 'nptl')
-rw-r--r--nptl/Banner1
-rw-r--r--nptl/ChangeLog.old13230
-rw-r--r--nptl/DESIGN-systemtap-probes.txt73
-rw-r--r--nptl/Makefile722
-rw-r--r--nptl/TODO31
-rw-r--r--nptl/TODO-kernel20
-rw-r--r--nptl/TODO-testing20
-rw-r--r--nptl/Versions275
-rw-r--r--nptl/alloca_cutoff.c36
-rw-r--r--nptl/allocatestack.c1238
-rw-r--r--nptl/cancellation.c101
-rw-r--r--nptl/cleanup.c48
-rw-r--r--nptl/cleanup_compat.c50
-rw-r--r--nptl/cleanup_defer.c91
-rw-r--r--nptl/cleanup_defer_compat.c94
-rw-r--r--nptl/cleanup_routine.c27
-rw-r--r--nptl/cond-perf.c103
-rw-r--r--nptl/createthread.c45
-rw-r--r--nptl/default-sched.h35
-rw-r--r--nptl/descr.h406
-rw-r--r--nptl/eintr.c88
-rw-r--r--nptl/elision-conf.h1
-rw-r--r--nptl/errno-loc.c1
-rw-r--r--nptl/events.c33
-rw-r--r--nptl/forward.c210
-rw-r--r--nptl/herrno.c34
-rw-r--r--nptl/libc-cancellation.c24
-rw-r--r--nptl/libc-cleanup.c27
-rw-r--r--nptl/libc-lowlevellock.c20
-rw-r--r--nptl/libc_multiple_threads.c28
-rw-r--r--nptl/libc_pthread_init.c88
-rw-r--r--nptl/lll_timedlock_wait.c59
-rw-r--r--nptl/lll_timedwait_tid.c70
-rw-r--r--nptl/lowlevellock.c48
-rw-r--r--nptl/nptl-init.c480
-rw-r--r--nptl/nptl-printers.py594
-rw-r--r--nptl/nptl_lock_constants.pysym67
-rw-r--r--nptl/old_pthread_atfork.c26
-rw-r--r--nptl/old_pthread_cond_broadcast.c56
-rw-r--r--nptl/old_pthread_cond_destroy.c35
-rw-r--r--nptl/old_pthread_cond_init.c45
-rw-r--r--nptl/old_pthread_cond_signal.c56
-rw-r--r--nptl/old_pthread_cond_timedwait.c57
-rw-r--r--nptl/old_pthread_cond_wait.c56
-rw-r--r--nptl/perf.c759
-rw-r--r--nptl/pt-allocrtsig.c50
-rw-r--r--nptl/pt-cleanup.c62
-rw-r--r--nptl/pt-crti.S43
-rw-r--r--nptl/pt-fork.c49
-rw-r--r--nptl/pt-interp.c1
-rw-r--r--nptl/pt-longjmp.c60
-rw-r--r--nptl/pt-raise.c29
-rw-r--r--nptl/pt-system.c53
-rw-r--r--nptl/pt-vfork.c65
-rw-r--r--nptl/pthread-errnos.sym13
-rw-r--r--nptl/pthread-pi-defines.sym9
-rw-r--r--nptl/pthread-pids.h29
-rw-r--r--nptl/pthreadP.h641
-rw-r--r--nptl/pthread_atfork.c61
-rw-r--r--nptl/pthread_attr_destroy.c44
-rw-r--r--nptl/pthread_attr_getaffinity.c74
-rw-r--r--nptl/pthread_attr_getdetachstate.c36
-rw-r--r--nptl/pthread_attr_getguardsize.c34
-rw-r--r--nptl/pthread_attr_getinheritsched.c37
-rw-r--r--nptl/pthread_attr_getschedparam.c38
-rw-r--r--nptl/pthread_attr_getschedpolicy.c36
-rw-r--r--nptl/pthread_attr_getscope.c37
-rw-r--r--nptl/pthread_attr_getstack.c42
-rw-r--r--nptl/pthread_attr_getstackaddr.c42
-rw-r--r--nptl/pthread_attr_getstacksize.c45
-rw-r--r--nptl/pthread_attr_init.c85
-rw-r--r--nptl/pthread_attr_setaffinity.c73
-rw-r--r--nptl/pthread_attr_setdetachstate.c45
-rw-r--r--nptl/pthread_attr_setguardsize.c37
-rw-r--r--nptl/pthread_attr_setinheritsched.c44
-rw-r--r--nptl/pthread_attr_setschedparam.c45
-rw-r--r--nptl/pthread_attr_setschedpolicy.c45
-rw-r--r--nptl/pthread_attr_setscope.c48
-rw-r--r--nptl/pthread_attr_setstack.c100
-rw-r--r--nptl/pthread_attr_setstackaddr.c44
-rw-r--r--nptl/pthread_attr_setstacksize.c81
-rw-r--r--nptl/pthread_barrier_destroy.c61
-rw-r--r--nptl/pthread_barrier_init.c60
-rw-r--r--nptl/pthread_barrier_wait.c223
-rw-r--r--nptl/pthread_barrierattr_destroy.c28
-rw-r--r--nptl/pthread_barrierattr_getpshared.c29
-rw-r--r--nptl/pthread_barrierattr_init.c28
-rw-r--r--nptl/pthread_barrierattr_setpshared.c34
-rw-r--r--nptl/pthread_cancel.c103
-rw-r--r--nptl/pthread_clock_gettime.c67
-rw-r--r--nptl/pthread_clock_settime.c54
-rw-r--r--nptl/pthread_cond_broadcast.c92
-rw-r--r--nptl/pthread_cond_common.c465
-rw-r--r--nptl/pthread_cond_destroy.c62
-rw-r--r--nptl/pthread_cond_init.c51
-rw-r--r--nptl/pthread_cond_signal.c100
-rw-r--r--nptl/pthread_cond_wait.c673
-rw-r--r--nptl/pthread_condattr_destroy.c28
-rw-r--r--nptl/pthread_condattr_getclock.c28
-rw-r--r--nptl/pthread_condattr_getpshared.c29
-rw-r--r--nptl/pthread_condattr_init.c32
-rw-r--r--nptl/pthread_condattr_setclock.c50
-rw-r--r--nptl/pthread_condattr_setpshared.c35
-rw-r--r--nptl/pthread_create.c933
-rw-r--r--nptl/pthread_detach.c55
-rw-r--r--nptl/pthread_equal.c27
-rw-r--r--nptl/pthread_exit.c34
-rw-r--r--nptl/pthread_getaffinity.c32
-rw-r--r--nptl/pthread_getattr_default_np.c37
-rw-r--r--nptl/pthread_getattr_np.c207
-rw-r--r--nptl/pthread_getconcurrency.c26
-rw-r--r--nptl/pthread_getcpuclockid.c54
-rw-r--r--nptl/pthread_getname.c32
-rw-r--r--nptl/pthread_getschedparam.c73
-rw-r--r--nptl/pthread_getspecific.c67
-rw-r--r--nptl/pthread_join.c117
-rw-r--r--nptl/pthread_key_create.c51
-rw-r--r--nptl/pthread_key_delete.c41
-rw-r--r--nptl/pthread_kill.c38
-rw-r--r--nptl/pthread_kill_other_threads.c36
-rw-r--r--nptl/pthread_mutex_cond_lock.c21
-rw-r--r--nptl/pthread_mutex_consistent.c35
-rw-r--r--nptl/pthread_mutex_destroy.c40
-rw-r--r--nptl/pthread_mutex_getprioceiling.c35
-rw-r--r--nptl/pthread_mutex_init.c148
-rw-r--r--nptl/pthread_mutex_lock.c621
-rw-r--r--nptl/pthread_mutex_setprioceiling.c121
-rw-r--r--nptl/pthread_mutex_timedlock.c636
-rw-r--r--nptl/pthread_mutex_trylock.c408
-rw-r--r--nptl/pthread_mutex_unlock.c350
-rw-r--r--nptl/pthread_mutexattr_destroy.c27
-rw-r--r--nptl/pthread_mutexattr_getprioceiling.c48
-rw-r--r--nptl/pthread_mutexattr_getprotocol.c34
-rw-r--r--nptl/pthread_mutexattr_getpshared.c33
-rw-r--r--nptl/pthread_mutexattr_getrobust.c34
-rw-r--r--nptl/pthread_mutexattr_gettype.c34
-rw-r--r--nptl/pthread_mutexattr_init.c36
-rw-r--r--nptl/pthread_mutexattr_setprioceiling.c49
-rw-r--r--nptl/pthread_mutexattr_setprotocol.c38
-rw-r--r--nptl/pthread_mutexattr_setpshared.c41
-rw-r--r--nptl/pthread_mutexattr_setrobust.c41
-rw-r--r--nptl/pthread_mutexattr_settype.c43
-rw-r--r--nptl/pthread_once.c146
-rw-r--r--nptl/pthread_rwlock_common.c924
-rw-r--r--nptl/pthread_rwlock_destroy.c31
-rw-r--r--nptl/pthread_rwlock_init.c48
-rw-r--r--nptl/pthread_rwlock_rdlock.c33
-rw-r--r--nptl/pthread_rwlock_timedrdlock.c37
-rw-r--r--nptl/pthread_rwlock_timedwrlock.c37
-rw-r--r--nptl/pthread_rwlock_tryrdlock.c112
-rw-r--r--nptl/pthread_rwlock_trywrlock.c61
-rw-r--r--nptl/pthread_rwlock_unlock.c48
-rw-r--r--nptl/pthread_rwlock_wrlock.c33
-rw-r--r--nptl/pthread_rwlockattr_destroy.c28
-rw-r--r--nptl/pthread_rwlockattr_getkind_np.c28
-rw-r--r--nptl/pthread_rwlockattr_getpshared.c28
-rw-r--r--nptl/pthread_rwlockattr_init.c33
-rw-r--r--nptl/pthread_rwlockattr_setkind_np.c38
-rw-r--r--nptl/pthread_rwlockattr_setpshared.c38
-rw-r--r--nptl/pthread_self.c28
-rw-r--r--nptl/pthread_setaffinity.c32
-rw-r--r--nptl/pthread_setattr_default_np.c108
-rw-r--r--nptl/pthread_setcancelstate.c71
-rw-r--r--nptl/pthread_setcanceltype.c76
-rw-r--r--nptl/pthread_setconcurrency.c39
-rw-r--r--nptl/pthread_setegid.c3
-rw-r--r--nptl/pthread_seteuid.c3
-rw-r--r--nptl/pthread_setgid.c3
-rw-r--r--nptl/pthread_setname.c32
-rw-r--r--nptl/pthread_setregid.c3
-rw-r--r--nptl/pthread_setresgid.c3
-rw-r--r--nptl/pthread_setresuid.c3
-rw-r--r--nptl/pthread_setreuid.c3
-rw-r--r--nptl/pthread_setschedparam.c72
-rw-r--r--nptl/pthread_setschedprio.c64
-rw-r--r--nptl/pthread_setspecific.c93
-rw-r--r--nptl/pthread_setuid.c3
-rw-r--r--nptl/pthread_sigmask.c36
-rw-r--r--nptl/pthread_sigqueue.c37
-rw-r--r--nptl/pthread_spin_destroy.c27
-rw-r--r--nptl/pthread_spin_init.c28
-rw-r--r--nptl/pthread_spin_lock.c80
-rw-r--r--nptl/pthread_spin_trylock.c79
-rw-r--r--nptl/pthread_spin_unlock.c31
-rw-r--r--nptl/pthread_testcancel.c29
-rw-r--r--nptl/pthread_timedjoin.c104
-rw-r--r--nptl/pthread_tryjoin.c72
-rw-r--r--nptl/pthread_yield.c29
-rw-r--r--nptl/register-atfork.c144
-rw-r--r--nptl/res.c26
-rw-r--r--nptl/sem_close.c79
-rw-r--r--nptl/sem_destroy.c36
-rw-r--r--nptl/sem_getvalue.c55
-rw-r--r--nptl/sem_init.c90
-rw-r--r--nptl/sem_open.c329
-rw-r--r--nptl/sem_post.c103
-rw-r--r--nptl/sem_timedwait.c40
-rw-r--r--nptl/sem_unlink.c38
-rw-r--r--nptl/sem_wait.c106
-rw-r--r--nptl/sem_waitcommon.c356
-rw-r--r--nptl/semaphoreP.h54
-rw-r--r--nptl/shlib-versions1
-rw-r--r--nptl/sigaction.c43
-rw-r--r--nptl/smp.h27
-rw-r--r--nptl/sockperf.c593
-rw-r--r--nptl/stack-aliasing.h23
-rw-r--r--nptl/test-cond-printers.c57
-rw-r--r--nptl/test-cond-printers.py50
-rw-r--r--nptl/test-condattr-printers.c95
-rw-r--r--nptl/test-condattr-printers.py71
-rw-r--r--nptl/test-mutex-printers.c151
-rw-r--r--nptl/test-mutex-printers.py100
-rw-r--r--nptl/test-mutexattr-printers.c144
-rw-r--r--nptl/test-mutexattr-printers.py101
-rw-r--r--nptl/test-rwlock-printers.c78
-rw-r--r--nptl/test-rwlock-printers.py64
-rw-r--r--nptl/test-rwlockattr-printers.c100
-rw-r--r--nptl/test-rwlockattr-printers.py76
-rw-r--r--nptl/tpp.c195
-rw-r--r--nptl/tst-_res1.c68
-rw-r--r--nptl/tst-_res1mod1.c22
-rw-r--r--nptl/tst-_res1mod2.c1
-rw-r--r--nptl/tst-abstime.c97
-rw-r--r--nptl/tst-align.c70
-rw-r--r--nptl/tst-align3.c56
-rw-r--r--nptl/tst-atfork1.c120
-rw-r--r--nptl/tst-atfork2.c158
-rw-r--r--nptl/tst-atfork2mod.c57
-rw-r--r--nptl/tst-attr1.c305
-rw-r--r--nptl/tst-attr2.c316
-rw-r--r--nptl/tst-attr3.c421
-rw-r--r--nptl/tst-backtrace1.c85
-rw-r--r--nptl/tst-bad-schedattr.c97
-rw-r--r--nptl/tst-barrier1.c71
-rw-r--r--nptl/tst-barrier2.c185
-rw-r--r--nptl/tst-barrier3.c152
-rw-r--r--nptl/tst-barrier4.c121
-rw-r--r--nptl/tst-barrier5.c145
-rw-r--r--nptl/tst-basic1.c82
-rw-r--r--nptl/tst-basic2.c120
-rw-r--r--nptl/tst-basic3.c86
-rw-r--r--nptl/tst-basic4.c100
-rw-r--r--nptl/tst-basic5.c73
-rw-r--r--nptl/tst-basic6.c131
-rw-r--r--nptl/tst-basic7.c75
-rw-r--r--nptl/tst-cancel-self-cancelstate.c65
-rw-r--r--nptl/tst-cancel-self-canceltype.c53
-rw-r--r--nptl/tst-cancel-self-cleanup.c23
-rw-r--r--nptl/tst-cancel-self-testcancel.c48
-rw-r--r--nptl/tst-cancel-self.c48
-rw-r--r--nptl/tst-cancel-wrappers.sh92
-rw-r--r--nptl/tst-cancel1.c162
-rw-r--r--nptl/tst-cancel10.c125
-rw-r--r--nptl/tst-cancel11.c122
-rw-r--r--nptl/tst-cancel12.c123
-rw-r--r--nptl/tst-cancel13.c127
-rw-r--r--nptl/tst-cancel14.c133
-rw-r--r--nptl/tst-cancel15.c138
-rw-r--r--nptl/tst-cancel16.c230
-rw-r--r--nptl/tst-cancel17.c356
-rw-r--r--nptl/tst-cancel18.c173
-rw-r--r--nptl/tst-cancel19.c286
-rw-r--r--nptl/tst-cancel2.c95
-rw-r--r--nptl/tst-cancel20.c268
-rw-r--r--nptl/tst-cancel21-static.c1
-rw-r--r--nptl/tst-cancel21.c298
-rw-r--r--nptl/tst-cancel22.c120
-rw-r--r--nptl/tst-cancel23.c1
-rw-r--r--nptl/tst-cancel24-static.cc1
-rw-r--r--nptl/tst-cancel24.cc113
-rw-r--r--nptl/tst-cancel25.c173
-rw-r--r--nptl/tst-cancel26.c68
-rw-r--r--nptl/tst-cancel27.c23
-rw-r--r--nptl/tst-cancel3.c97
-rw-r--r--nptl/tst-cancel4-common.c262
-rw-r--r--nptl/tst-cancel4-common.h97
-rw-r--r--nptl/tst-cancel4.c1565
-rw-r--r--nptl/tst-cancel4_1.c109
-rw-r--r--nptl/tst-cancel4_2.c107
-rw-r--r--nptl/tst-cancel5.c1
-rw-r--r--nptl/tst-cancel6.c78
-rw-r--r--nptl/tst-cancel7.c209
-rw-r--r--nptl/tst-cancel8.c142
-rw-r--r--nptl/tst-cancel9.c125
-rw-r--r--nptl/tst-cancelx1.c1
-rw-r--r--nptl/tst-cancelx10.c1
-rw-r--r--nptl/tst-cancelx11.c1
-rw-r--r--nptl/tst-cancelx12.c1
-rw-r--r--nptl/tst-cancelx13.c1
-rw-r--r--nptl/tst-cancelx14.c1
-rw-r--r--nptl/tst-cancelx15.c1
-rw-r--r--nptl/tst-cancelx16.c1
-rw-r--r--nptl/tst-cancelx17.c1
-rw-r--r--nptl/tst-cancelx18.c1
-rw-r--r--nptl/tst-cancelx2.c1
-rw-r--r--nptl/tst-cancelx20.c1
-rw-r--r--nptl/tst-cancelx21.c1
-rw-r--r--nptl/tst-cancelx3.c1
-rw-r--r--nptl/tst-cancelx4.c1
-rw-r--r--nptl/tst-cancelx5.c1
-rw-r--r--nptl/tst-cancelx6.c1
-rw-r--r--nptl/tst-cancelx7.c1
-rw-r--r--nptl/tst-cancelx8.c1
-rw-r--r--nptl/tst-cancelx9.c1
-rw-r--r--nptl/tst-cleanup0.c74
-rw-r--r--nptl/tst-cleanup0.expect3
-rw-r--r--nptl/tst-cleanup1.c100
-rw-r--r--nptl/tst-cleanup2.c63
-rw-r--r--nptl/tst-cleanup3.c98
-rw-r--r--nptl/tst-cleanup4.c197
-rw-r--r--nptl/tst-cleanup4aux.c120
-rw-r--r--nptl/tst-cleanupx0.c1
-rw-r--r--nptl/tst-cleanupx0.expect3
-rw-r--r--nptl/tst-cleanupx1.c1
-rw-r--r--nptl/tst-cleanupx2.c1
-rw-r--r--nptl/tst-cleanupx3.c1
-rw-r--r--nptl/tst-cleanupx4.c1
-rw-r--r--nptl/tst-cleanupx4aux.c1
-rw-r--r--nptl/tst-clock1.c50
-rw-r--r--nptl/tst-clock2.c201
-rw-r--r--nptl/tst-cond-except.c110
-rw-r--r--nptl/tst-cond1.c96
-rw-r--r--nptl/tst-cond10.c172
-rw-r--r--nptl/tst-cond11.c204
-rw-r--r--nptl/tst-cond12.c195
-rw-r--r--nptl/tst-cond13.c2
-rw-r--r--nptl/tst-cond14.c117
-rw-r--r--nptl/tst-cond15.c159
-rw-r--r--nptl/tst-cond16.c111
-rw-r--r--nptl/tst-cond17.c2
-rw-r--r--nptl/tst-cond18.c123
-rw-r--r--nptl/tst-cond19.c75
-rw-r--r--nptl/tst-cond2.c162
-rw-r--r--nptl/tst-cond20.c172
-rw-r--r--nptl/tst-cond21.c3
-rw-r--r--nptl/tst-cond22.c162
-rw-r--r--nptl/tst-cond23.c183
-rw-r--r--nptl/tst-cond24.c249
-rw-r--r--nptl/tst-cond25.c289
-rw-r--r--nptl/tst-cond3.c111
-rw-r--r--nptl/tst-cond4.c263
-rw-r--r--nptl/tst-cond5.c105
-rw-r--r--nptl/tst-cond6.c233
-rw-r--r--nptl/tst-cond7.c167
-rw-r--r--nptl/tst-cond8-static.c1
-rw-r--r--nptl/tst-cond8.c276
-rw-r--r--nptl/tst-cond9.c149
-rw-r--r--nptl/tst-context1.c205
-rw-r--r--nptl/tst-create-detached.c137
-rw-r--r--nptl/tst-default-attr.c385
-rw-r--r--nptl/tst-detach1.c55
-rw-r--r--nptl/tst-dlsym1.c66
-rw-r--r--nptl/tst-eintr1.c104
-rw-r--r--nptl/tst-eintr2.c118
-rw-r--r--nptl/tst-eintr3.c69
-rw-r--r--nptl/tst-eintr4.c53
-rw-r--r--nptl/tst-eintr5.c79
-rw-r--r--nptl/tst-exec1.c159
-rw-r--r--nptl/tst-exec2.c154
-rw-r--r--nptl/tst-exec3.c152
-rw-r--r--nptl/tst-exec4.c115
-rw-r--r--nptl/tst-exec5.c176
-rw-r--r--nptl/tst-execstack-mod.c1
-rw-r--r--nptl/tst-execstack.c2
-rw-r--r--nptl/tst-exit1.c78
-rw-r--r--nptl/tst-exit2.c42
-rw-r--r--nptl/tst-exit3.c83
-rw-r--r--nptl/tst-fini1.c34
-rw-r--r--nptl/tst-fini1mod.c71
-rw-r--r--nptl/tst-flock1.c92
-rw-r--r--nptl/tst-flock2.c259
-rw-r--r--nptl/tst-fork1.c121
-rw-r--r--nptl/tst-fork2.c89
-rw-r--r--nptl/tst-fork3.c108
-rw-r--r--nptl/tst-fork4.c64
-rw-r--r--nptl/tst-getpid3.c114
-rw-r--r--nptl/tst-initializers1-c11.c1
-rw-r--r--nptl/tst-initializers1-c89.c1
-rw-r--r--nptl/tst-initializers1-c99.c1
-rw-r--r--nptl/tst-initializers1-gnu11.c1
-rw-r--r--nptl/tst-initializers1-gnu89.c1
-rw-r--r--nptl/tst-initializers1-gnu99.c1
-rw-r--r--nptl/tst-initializers1.c60
-rw-r--r--nptl/tst-join1.c82
-rw-r--r--nptl/tst-join2.c103
-rw-r--r--nptl/tst-join3.c122
-rw-r--r--nptl/tst-join4.c124
-rw-r--r--nptl/tst-join5.c207
-rw-r--r--nptl/tst-join6.c2
-rw-r--r--nptl/tst-join7.c46
-rw-r--r--nptl/tst-join7mod.c63
-rw-r--r--nptl/tst-key1.c89
-rw-r--r--nptl/tst-key2.c115
-rw-r--r--nptl/tst-key3.c156
-rw-r--r--nptl/tst-key4.c136
-rw-r--r--nptl/tst-kill1.c99
-rw-r--r--nptl/tst-kill2.c138
-rw-r--r--nptl/tst-kill3.c159
-rw-r--r--nptl/tst-kill4.c90
-rw-r--r--nptl/tst-kill5.c49
-rw-r--r--nptl/tst-kill6.c162
-rw-r--r--nptl/tst-locale1.c22
-rw-r--r--nptl/tst-locale2.c15
-rw-r--r--nptl/tst-mutex-errorcheck.c61
-rw-r--r--nptl/tst-mutex1.c83
-rw-r--r--nptl/tst-mutex2.c241
-rw-r--r--nptl/tst-mutex3.c241
-rw-r--r--nptl/tst-mutex4.c277
-rw-r--r--nptl/tst-mutex5.c203
-rw-r--r--nptl/tst-mutex5a.c2
-rw-r--r--nptl/tst-mutex6.c76
-rw-r--r--nptl/tst-mutex7.c164
-rw-r--r--nptl/tst-mutex7a.c2
-rw-r--r--nptl/tst-mutex8-static.c1
-rw-r--r--nptl/tst-mutex8.c403
-rw-r--r--nptl/tst-mutex9.c202
-rw-r--r--nptl/tst-mutexpi1.c28
-rw-r--r--nptl/tst-mutexpi2.c2
-rw-r--r--nptl/tst-mutexpi3.c2
-rw-r--r--nptl/tst-mutexpi4.c2
-rw-r--r--nptl/tst-mutexpi5.c2
-rw-r--r--nptl/tst-mutexpi5a.c2
-rw-r--r--nptl/tst-mutexpi6.c29
-rw-r--r--nptl/tst-mutexpi7.c2
-rw-r--r--nptl/tst-mutexpi7a.c2
-rw-r--r--nptl/tst-mutexpi8-static.c1
-rw-r--r--nptl/tst-mutexpi8.c2
-rw-r--r--nptl/tst-mutexpi9.c2
-rw-r--r--nptl/tst-mutexpp1.c46
-rw-r--r--nptl/tst-mutexpp10.c333
-rw-r--r--nptl/tst-mutexpp6.c46
-rw-r--r--nptl/tst-oddstacklimit.c73
-rw-r--r--nptl/tst-once1.c50
-rw-r--r--nptl/tst-once2.c103
-rw-r--r--nptl/tst-once3.c166
-rw-r--r--nptl/tst-once4.c201
-rw-r--r--nptl/tst-once5.cc81
-rw-r--r--nptl/tst-oncex3.c1
-rw-r--r--nptl/tst-oncex4.c1
-rw-r--r--nptl/tst-popen1.c59
-rw-r--r--nptl/tst-pthread-attr-affinity.c63
-rw-r--r--nptl/tst-pthread-getattr.c161
-rw-r--r--nptl/tst-pthread-mutexattr.c60
-rw-r--r--nptl/tst-raise1.c61
-rw-r--r--nptl/tst-robust-fork.c184
-rw-r--r--nptl/tst-robust1.c338
-rw-r--r--nptl/tst-robust10.c110
-rw-r--r--nptl/tst-robust2.c3
-rw-r--r--nptl/tst-robust3.c20
-rw-r--r--nptl/tst-robust4.c2
-rw-r--r--nptl/tst-robust5.c2
-rw-r--r--nptl/tst-robust6.c2
-rw-r--r--nptl/tst-robust7.c212
-rw-r--r--nptl/tst-robust8.c275
-rw-r--r--nptl/tst-robust9.c94
-rw-r--r--nptl/tst-robustpi1.c2
-rw-r--r--nptl/tst-robustpi2.c2
-rw-r--r--nptl/tst-robustpi3.c2
-rw-r--r--nptl/tst-robustpi4.c2
-rw-r--r--nptl/tst-robustpi5.c2
-rw-r--r--nptl/tst-robustpi6.c2
-rw-r--r--nptl/tst-robustpi7.c2
-rw-r--r--nptl/tst-robustpi8.c2
-rw-r--r--nptl/tst-robustpi9.c2
-rw-r--r--nptl/tst-rwlock1.c116
-rw-r--r--nptl/tst-rwlock10.c20
-rw-r--r--nptl/tst-rwlock11.c20
-rw-r--r--nptl/tst-rwlock12.c207
-rw-r--r--nptl/tst-rwlock13.c70
-rw-r--r--nptl/tst-rwlock14.c168
-rw-r--r--nptl/tst-rwlock15.c116
-rw-r--r--nptl/tst-rwlock16.c183
-rw-r--r--nptl/tst-rwlock17.c19
-rw-r--r--nptl/tst-rwlock18.c19
-rw-r--r--nptl/tst-rwlock19.c127
-rw-r--r--nptl/tst-rwlock2.c168
-rw-r--r--nptl/tst-rwlock2a.c2
-rw-r--r--nptl/tst-rwlock2b.c2
-rw-r--r--nptl/tst-rwlock3.c92
-rw-r--r--nptl/tst-rwlock4.c189
-rw-r--r--nptl/tst-rwlock5.c84
-rw-r--r--nptl/tst-rwlock6.c225
-rw-r--r--nptl/tst-rwlock7.c181
-rw-r--r--nptl/tst-rwlock8.c182
-rw-r--r--nptl/tst-rwlock9.c221
-rw-r--r--nptl/tst-sched1.c97
-rw-r--r--nptl/tst-sem1.c88
-rw-r--r--nptl/tst-sem10.c87
-rw-r--r--nptl/tst-sem11-static.c1
-rw-r--r--nptl/tst-sem11.c85
-rw-r--r--nptl/tst-sem12-static.c1
-rw-r--r--nptl/tst-sem12.c14
-rw-r--r--nptl/tst-sem13.c75
-rw-r--r--nptl/tst-sem14.c92
-rw-r--r--nptl/tst-sem15.c99
-rw-r--r--nptl/tst-sem16.c130
-rw-r--r--nptl/tst-sem2.c53
-rw-r--r--nptl/tst-sem3.c144
-rw-r--r--nptl/tst-sem4.c153
-rw-r--r--nptl/tst-sem5.c93
-rw-r--r--nptl/tst-sem6.c80
-rw-r--r--nptl/tst-sem7.c111
-rw-r--r--nptl/tst-sem8.c76
-rw-r--r--nptl/tst-sem9.c83
-rw-r--r--nptl/tst-setuid1-static.c1
-rw-r--r--nptl/tst-setuid1.c1084
-rw-r--r--nptl/tst-setuid2.c145
-rw-r--r--nptl/tst-setuid3.c118
-rw-r--r--nptl/tst-signal1.c188
-rw-r--r--nptl/tst-signal2.c197
-rw-r--r--nptl/tst-signal3.c266
-rw-r--r--nptl/tst-signal4.c59
-rw-r--r--nptl/tst-signal5.c110
-rw-r--r--nptl/tst-signal6.c197
-rw-r--r--nptl/tst-signal7.c62
-rw-r--r--nptl/tst-spin1.c56
-rw-r--r--nptl/tst-spin2.c158
-rw-r--r--nptl/tst-spin3.c53
-rw-r--r--nptl/tst-spin4.c109
-rw-r--r--nptl/tst-stack1.c145
-rw-r--r--nptl/tst-stack2.c79
-rw-r--r--nptl/tst-stack3.c100
-rw-r--r--nptl/tst-stack4.c159
-rw-r--r--nptl/tst-stack4mod.c28
-rw-r--r--nptl/tst-stackguard1-static.c1
-rw-r--r--nptl/tst-stackguard1.c227
-rw-r--r--nptl/tst-stdio1.c56
-rw-r--r--nptl/tst-stdio2.c82
-rw-r--r--nptl/tst-sysconf.c47
-rw-r--r--nptl/tst-thread_local1.cc199
-rw-r--r--nptl/tst-tls1.c111
-rw-r--r--nptl/tst-tls2.c206
-rw-r--r--nptl/tst-tls3-malloc.c31
-rw-r--r--nptl/tst-tls3.c215
-rw-r--r--nptl/tst-tls3mod.c88
-rw-r--r--nptl/tst-tls4.c181
-rw-r--r--nptl/tst-tls4moda.c49
-rw-r--r--nptl/tst-tls4modb.c58
-rw-r--r--nptl/tst-tls5.c119
-rw-r--r--nptl/tst-tls5.h23
-rw-r--r--nptl/tst-tls5mod.c6
-rw-r--r--nptl/tst-tls5moda.c6
-rw-r--r--nptl/tst-tls5modb.c6
-rw-r--r--nptl/tst-tls5modc.c6
-rw-r--r--nptl/tst-tls5modd.c6
-rw-r--r--nptl/tst-tls5mode.c8
-rw-r--r--nptl/tst-tls5modf.c9
-rwxr-xr-xnptl/tst-tls6.sh77
-rw-r--r--nptl/tst-tpp.h93
-rw-r--r--nptl/tst-tsd1.c117
-rw-r--r--nptl/tst-tsd2.c96
-rw-r--r--nptl/tst-tsd3.c128
-rw-r--r--nptl/tst-tsd4.c102
-rw-r--r--nptl/tst-tsd5.c80
-rw-r--r--nptl/tst-tsd6.c89
-rw-r--r--nptl/tst-typesizes.c95
-rw-r--r--nptl/tst-umask1.c136
-rw-r--r--nptl/tst-unload.c47
-rw-r--r--nptl/tst-vfork1.c1
-rw-r--r--nptl/tst-vfork1x.c1
-rw-r--r--nptl/tst-vfork2.c1
-rw-r--r--nptl/tst-vfork2x.c1
-rw-r--r--nptl/unregister-atfork.c121
-rw-r--r--nptl/unwind.c138
-rw-r--r--nptl/unwindbuf.sym7
-rw-r--r--nptl/vars.c43
-rw-r--r--nptl/version.c41
567 files changed, 0 insertions, 70034 deletions
diff --git a/nptl/Banner b/nptl/Banner
deleted file mode 100644
index 7c1487e7b6..0000000000
--- a/nptl/Banner
+++ /dev/null
@@ -1 +0,0 @@
-Native POSIX Threads Library by Ulrich Drepper et al
diff --git a/nptl/ChangeLog.old b/nptl/ChangeLog.old
deleted file mode 100644
index e022a1927a..0000000000
--- a/nptl/ChangeLog.old
+++ /dev/null
@@ -1,13230 +0,0 @@
-This file describes changes to the nptl/ subdirectory prior to 2014-03-03.
-Later nptl/ changes go into the top-level ChangeLog file, not here.
-
-
-
-2014-02-28  Roland McGrath  <roland@hack.frob.com>
-
-	* Makefile (generated-dirs): Use += rather than =.
-
-2014-02-26  Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile: Include Makeconfig immediately after defining subdir.
-
-2014-02-21  Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile ($(objpfx)tst-stack3-mem): Use $(evaluate-test).
-	($(objpfx)tst-tls6.out): Likewise.
-	($(objpfx)tst-cleanup0.out): Likewise.
-	($(objpfx)tst-cleanup0-cmp.out): Likewise.
-	($(objpfx)tst-cancel-wrappers.out): Likewise.
-	($(objpfx)tst-oddstacklimit.out): Likewise.
-
-2014-02-14  Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile ($(objpfx)tst-cleanup0.out): Do not run cmp.
-	[$(run-built-tests) = yes] (tests): Depend on
-	$(objpfx)tst-cleanup0-cmp.out.
-	($(objpfx)tst-cleanup0-cmp.out): New rule.
-
-2014-02-10  Ondřej Bílka  <neleai@seznam.cz>
-
-	* allocatestack.c (queue_stack, allocate_stack,
-	__deallocate_stack, __reclaim_stacks): Use glibc_likely instead
-	__builtin_expect.
-	* cancellation.c (__pthread_enable_asynccancel,
-	__pthread_disable_asynccancel): Likewise.
-	* cleanup_defer.c (__pthread_register_cancel_defer,
-	__pthread_unregister_cancel_restore): Likewise.
-	* cleanup_defer_compat.c (_pthread_cleanup_push_defer,
-	_pthread_cleanup_pop_restore): Likewise.
-	* cond-perf.c (main): Likewise.
-	* nptl-init.c (sigcancel_handler, sighandler_setxid): Likewise.
-	* perf.c (get_clockfreq): Likewise.
-	* pthread_barrier_destroy.c (pthread_barrier_destroy): Likewise.
-	* pthread_barrier_init.c (pthread_barrier_init): Likewise.
-	* pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
-	* pthread_cond_wait.c (__pthread_cond_wait): Likewise.
-	* pthread_create.c (__free_tcb, start_thread, __pthread_create_2_1):
-	Likewise.
-	* pthread_getattr_np.c (pthread_getattr_np): Likewise.
-	* pthread_getspecific.c (__pthread_getspecific): Likewise.
-	* pthread_join.c (pthread_join): Likewise.
-	* pthread_key_delete.c (pthread_key_delete): Likewise.
-	* pthread_mutex_init.c (__pthread_mutex_init): Likewise.
-	* pthread_mutex_lock.c (__pthread_mutex_lock,
-	__pthread_mutex_lock_full): Likewise.
-	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
-	* pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Likewise.
-	* pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock): Likewise.
-	* pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Likewise.
-	* pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
-	* pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
-	* pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
-	* pthread_setschedprio.c (pthread_setschedprio): Likewise.
-	* pthread_setspecific.c (__pthread_setspecific): Likewise.
-	* sem_init.c (__new_sem_init): Likewise.
-	* sem_open.c (__where_is_shmfs): Likewise.
-	* sigaction.c: Likewise.
-	* sockperf.c (get_clockfreq): Likewise.
-	* sysdeps/pthread/createthread.c (do_clone, create_thread): Likewise.
-	* sysdeps/pthread/setxid.h: Likewise.
-	* sysdeps/pthread/timer_create.c (timer_create): Likewise.
-	* sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init,
-	__unwind_freeres, _Unwind_Resume, __gcc_personality_v0,
-	_Unwind_ForcedUnwind): Likewise.
-	* sysdeps/unix/sysv/linux/getpid.c (__getpid): Likewise.
-	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c
-	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): Likewise.
-	* sysdeps/unix/sysv/linux/mq_notify.c (mq_notify): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Likewise.
-	* sysdeps/unix/sysv/linux/pthread_setaffinity.c
-	(__pthread_setaffinity_new): Likewise.
-	* sysdeps/unix/sysv/linux/pthread_sigqueue.c (pthread_sigqueue):
-	Likewise.
-	* sysdeps/unix/sysv/linux/pt-raise.c (raise): Likewise.
-	* sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_robust_trylock,
-	__lll_robust_lock, __lll_cond_lock, __lll_robust_timedlock): Likewise.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (__lll_lock,
-	__lll_cond_lock, __lll_timedlock, __lll_robust_timedlock): Likewise.
-	* sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c
-	(pthread_barrier_destroy): Likewise.
-	* sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c
-	(pthread_barrier_init): Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sem_init.c (__new_sem_init): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/timer_create.c (__timer_create_old):
-	Likewise.
-	* unwind.c (unwind_stop): Likewise.
-
-2014-02-08  Mike Frysinger  <vapier@gentoo.org>
-
-	* sem_open.c (__where_is_shmfs): Compare f.f_type to RAMFS_MAGIC too.
-
-2014-02-05  Carlos O'Donell  <carlos@redhat.com>
-
-	* sysdeps/unix/sysv/linux/tst-setgetname.c (do_test): Skip the
-	test if !__ASSUME_PROC_PID_TASK_COMM and get_self_comm returns
-	ENOENT.
-
-2014-01-23  Stefan Liebler  <stli@linux.vnet.ibm.com>
-
-	* tst-tls7.c: Adjust testcase timeout
-
-2014-01-18  H.J. Lu  <hongjiu.lu@intel.com>
-
-	[BZ #14782]
-	* tst-cancel-wrappers.sh: Remove system.
-
-2014-01-11  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	* tst-tls7.c (action): New function.
-	(do_test): Call it.
-	* tst-tls7mod.c (action): Move sem_post to caller.
-
-2011-12-12  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
-
-	* sysdeps/powerpc/tls.h (struct tcbhead_t): Add DSO and TAR fields.
-	* nptl/sysdeps/powerpc/tcb-offsets.sym: Likewise.
-
-2013-12-09  Carlos O'Donell  <carlos@redhat.com>
-
-	* sysdeps/unix/sysv/linux/tst-setgetname.c: New file.
-	* sysdeps/unix/sysv/linux/Makefile (tests): Add tst-setgetname.
-
-2013-12-09  Andreas Schwab  <schwab@suse.de>
-
-	[BZ #15843]
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Remove wrong cfi_adjust_cfa_offset
-	before __condvar_tw_cleanup2 label.
-
-2013-12-04  Ulrich Weigand  <Ulrich.Weigand@de.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
-	(CANCEL_FRAMESIZE, CANCEL_PARM_SAVE): New macros to save parameters
-	into our own stack frame instead of the caller's.
-	(PSEUDO): Use them.  Use symbolic stack frame offsets.
-	(DOCARGS_1, UNDOCARGS_1): Use CANCEL_PARM_SAVE.
-	(DOCARGS_2, UNDOCARGS_2): Likewise.
-	(DOCARGS_3, UNDOCARGS_3): Likewise.
-	(DOCARGS_4, UNDOCARGS_4): Likewise.
-	(DOCARGS_5, UNDOCARGS_5): Likewise.
-	(DOCARGS_6, UNDOCARGS_6): Likewise.
-
-2013-11-26  Ondřej Bílka  <neleai@seznam.cz>
-
-	* sysdeps/i386/tls.h: Use __glibc_reserved instead __unused.
-	* sysdeps/x86_64/tls.h: Likewise.
-
-2013-11-25  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	[BZ #11214]
-	* Makefile (tst-getpid2-ENV): New variable.
-
-2013-11-20  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	* Makefile (tst-cleanup2, tst-cleanupx2): Add -fno-builtin
-
-2013-10-30  Mike Frysinger  <vapier@gentoo.org>
-
-	* sysdeps/pthread/configure.in: Moved to ...
-	* sysdeps/pthread/configure.ac: ... here.
-	* sysdeps/x86_64/configure.in: Moved to ...
-	* sysdeps/x86_64/configure.ac: ... here.
-	* sysdeps/pthread/configure: Regenerated.
-	* sysdeps/x86_64/configure: Likewise.
-
-2013-10-04  Maciej W. Rozycki  <macro@codesourcery.com>
-
-	* tst-mutex8.c (check_type) [ENABLE_PI]: Handle ENOTSUP failure
-	from pthread_mutex_init.
-
-2013-10-01  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #15988]
-	* pthread_cond_broadcast.c (__pthread_cond_broadcast)
-	[lll_futex_cmp_requeue_pi && __ASSUME_REQUEUE_PI]: Use
-	USE_REQUEUE_PI.
-	* pthread_cond_signal.c (__pthread_cond_signal)
-	[lll_futex_cmd_requeue_pi && __ASSUME_REQUEUE_PI]: Likewise.
-
-2013-09-27  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h [_LIBC && (!NOT_IN_libc ||
-	IS_IN_libpthread)] (__libc_lock_fini_recursive): Use the mutex
-	member of the argument.
-	(__libc_lock_trylock_recursive): Likewise.
-	(__libc_lock_unlock_recursive): Likewise.
-
-2013-09-04  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/cancellation.S
-	[SHARED && DO_VERSIONING && !NO_HIDDEN]: Change conditional to
-	[SHARED && !NO_HIDDEN].
-
-2013-09-03  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #15921]
-	* tst-cleanup2.c (do_test): New volatile variable RET to
-	return success.
-
-2013-08-30   Ondřej Bílka  <neleai@seznam.cz>
-
-	* sysdeps/pthread/pthread.h: Fix typos.
-	* sysdeps/unix/sysv/linux/internaltypes.h: Likewise.
-	* tst-cancel4.c: Likewise.
-
-2013-08-21   Ondřej Bílka  <neleai@seznam.cz>
-
-	* pthread_getschedparam.c: Fix typos.
-	* sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
-
-2013-07-23  David S. Miller  <davem@davemloft.net>
-
-	* tst-cancel4.c (WRITE_BUFFER_SIZE): Adjust comment.
-
-2013-07-22  David S. Miller  <davem@davemloft.net>
-
-	* tst-cancel4.c (WRITE_BUFFER_SIZE): Increase to 16384.
-
-2013-07-19  Dominik Vogt  <vogt@de.ibm.com>
-
-	* pthread_mutex_lock.c: Fix whitespace.
-	* pthread_mutex_trylock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86/elision-conf.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/elision-conf.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86/elision-lock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/elision-timed.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/elision-trylock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/force-elision.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86/hle.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86/elision-conf.c:
-	Remove __rwlock_rtm_enabled and __rwlock_rtm_read_retries.
-	(elision_init): Don't set __rwlock_rtm_enabled.
-	* sysdeps/unix/sysv/linux/x86/elision-conf.h:
-	Remove __rwlock_rtm_enabled.
-
-2013-07-03  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86/init-arch.c: New file.
-	* sysdeps/unix/sysv/linux/x86/init-arch.h: Likewise.
-
-2013-07-02  Andi Kleen <ak@linux.intel.com>
-
-	* sysdeps/unix/sysv/linux/x86/elision-conf.c (elision_init):
-	  Check ENABLE_LOCK_ELISION.
-
-2013-07-02  Andi Kleen  <ak@linux.intel.com>
-
-	* pthread_mutexattr_settype.c (__pthread_mutexattr_settype):
-	  Disable elision for PTHREAD_MUTEX_DEFAULT.
-
-2013-07-02  Andi Kleen  <ak@linux.intel.com>
-	    Hongjiu Lu  <hongjiu.lu@intel.com>
-
-	* pthread_mutex_lock.c
-	(__pthread_mutex_lock): Add lock elision support.
-	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
-	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86/Makefile: New file.
-	* sysdeps/unix/sysv/linux/x86/force-elision.h: New file
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_cond_lock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_lock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_timedlock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_trylock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86/pthread_mutex_unlock.c: Likewise.
-
-2013-07-02  Andi Kleen  <ak@linux.intel.com>
-
-	* tst-mutex5.c: Include config.h.
-	  (do_test): Add checks for ENABLE_LOCK_ELISION.
-	* tst-mutex8.c: Include config.h
-	  (tf): Add checks for ENABLE_LOCK_ELISION.
-	  (check_type): Likewise.
-
-2013-07-02  Andi Kleen  <ak@linux.intel.com>
-
-	* pthreadP.h: Add elision types.
-	  (PTHREAD_MUTEX_TYPE_ELISION): Add.
-	* sysdeps/pthread/pthread.h: Add elision initializers.
-	  (PTHREAD_MUTEX_ELISION_NP, PTHREAD_MUTEX_NO_ELISION_NP,
-	   PTHREAD_MUTEX_PSHARED_NP): Add new flags.
-	  (__PTHREAD_SPINS): Add.
-
-2013-07-02  Andi Kleen  <ak@linux.intel.com>
-	    Hongjiu Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_timedwait_tid,
-	  lll_timedlock_elision, __lll_lock_elision, __lll_unlock_elision,
-	  __lll_trylock_elision, lll_lock_elision, lll_unlock_elision,
-	  lll_trylock_elision): Add.
-	* sysdeps/unix/sysv/linux/x86/Makefile: Imply x86.
-	* sysdeps/unix/sysv/linux/x86/elision-conf.c: New file.
-	* sysdeps/unix/sysv/linux/x86/elision-conf.h: New file.
-	* sysdeps/unix/sysv/linux/x86/elision-lock.c: New file.
-	* sysdeps/unix/sysv/linux/x86/elision-timed.c: New file.
-	* sysdeps/unix/sysv/linux/x86/elision-trylock.c: New file.
-	* sysdeps/unix/sysv/linux/x86/elision-unlock.c: New file.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_timedwait_tid,
-	  lll_timedlock_elision, __lll_lock_elision, __lll_unlock_elision,
-	  __lll_trylock_elision, lll_lock_elision, lll_unlock_elision,
-	  lll_trylock_elision): Add.
-	* nptl/sysdeps/unix/sysv/linux/x86/hle.h: New file.
-	* elision-conf.h: New file.
-
-2013-06-24  Vladimir Nikulichev  <v.nikulichev@gmail.com>
-
-	[BZ #12310]
-	* pthread_exit.c: Add reference to pthread_create.
-
-2013-06-22  Joseph Myers  <joseph@codesourcery.com>
-
-	* pthread_getattr_default_np.c: Include <string.h>.
-
-2013-06-15  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* Versions (libpthread): Add GLIBC_2.18.
-	(GLIBC_2.18): Add pthread_setattr_default_np and
-	pthread_getattr_default_np.
-	* allocatestack.c (allocate_stack): Synchronize read from
-	__default_pthread_attr.
-	(__reclaim_stacks): Initialize __default_pthread_attr_lock.
-	* nptl-init.c (__pthread_initialize_minimal_internal):
-	Synchronize write to __default_pthread_attr.
-	* pthreadP.h (__default_pthread_attr_lock): Declare.
-	* pthread_attr_getstacksize (__pthread_attr_getstacksize):
-	Synchronize read from __default_pthread_attr.
-	* pthread_create.c (__pthread_create_2_1): Make a local copy of
-	__default_pthread_attr.  Check value of flags in IATTR even if
-	input ATTR is NULL.
-	* pthread_getattr_default_np.c: New file.
-	* pthread_setattr_default_np.c: New file.
-	* sysdeps/pthread/pthread.h [__USE_GNU]
-	(pthread_getattr_default_np, pthread_setattr_default_np):
-	Declare.
-	* tst-default-attr.c: New test case.
-	* Makefile (libpthread-routines): Add
-	pthread_setattr_default_np and pthread_getattr_default_np.
-	(tests): Add tst-default-attr.
-	* vars.c (__default_pthread_attr_lock): Declare and initialize.
-
-2013-06-13  Siddhesh Poyarekar  <siddhesh@redhat.com>
-	    Carlos O'Donell  <carlos@redhat.com>
-
-	[BZ #15618]
-	* tst-pthread-attr-affinity: New test case.
-	* Makefile (tests): Add it.
-	* sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
-	(__pthread_attr_getaffinity_new): Copy minimum of source and
-	destination sizes to avoid a buffer overrun.
-
-2013-06-10  Carlos O'Donell  <carlos@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h
-	(lll_futex_wake): Return syscall error.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
-	(lll_futex_wake): Return syscall error.
-
-2013-08-06   Ondřej Bílka  <neleai@seznam.cz>
-
-	* sysdeps/pthread/allocalim.h: (__libc_use_alloca): Fix warning.
-
-2013-06-06   Ondřej Bílka  <neleai@seznam.cz>
-
-	* tst-cond22.c: Fix leading whitespaces.
-	* tst-umask1.c: Likewise.
-
-2013-06-06  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Remove
-	trailing whitespace.
-	* sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
-	* tst-mutexpp10.c: Likewise.
-	* tst-stackguard1.c: Likewise.
-
-2013-05-31  Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile ($(objpfx)libpthread.so): Remove dependencies on libc
-	and ld.so.
-
-2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
-
-	* pthread_create.c: Add missing #include <stdint.h> due to uint64_t or
-	uint32_t usage.
-	* sysdeps/pthread/createthread.c: Likewise.
-
-2013-05-14  Andreas Jaeger  <aj@suse.de>
-
-	[BZ #10686]
-	* sysdeps/x86_64/tls.h (struct tcbhead_t): Add __private_ss field.
-	* sysdeps/i386/tls.h (struct tcbhead_t): Likewise.
-
-2013-05-09  Andi Kleen  <ak@linux.intel.com>
-
-	* tst-mutex8.c (do_test): Check for ENABLE_PI.
-
-2013-04-22  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* pthreadP.h (check_sched_policy_attr): New inline function.
-	(check_sched_priority_attr): Likewise.
-	(check_stacksize_attr): Likewise.
-	(__kernel_cpumask_size, __determine_cpumask_size): Declare
-	extern.
-	(check_cpuset_attr): New inline function.
-	* pthread_attr_setschedparam (__pthread_attr_setschedparam):
-	Use check_sched_priority_attr.
-	* pthread_attr_setschedpolicy.c
-	(__pthread_attr_setschedpolicy): Use check_sched_policy_attr.
-	* pthread_attr_setstack.c (__pthread_attr_setstack): Use
-	check_stacksize_attr.
-	* pthread_attr_setstacksize.c (__pthread_attr_setstacksize):
-	Likewise.
-	* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
-	(__pthread_attr_setaffinity_new): Use check_cpuset_attr.
-
-2013-04-11  Andreas Schwab  <schwab@suse.de>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
-	directly use absolute timeout.
-
-2013-04-07  Carlos O'Donell  <carlos@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sem_post.c: Include atomic.h.
-
-2013-04-04  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #15337]
-	* sysdeps/unix/sysv/linux/x86_64/cancellation.S
-	[IS_IN_libpthread]
-	[SHARED && defined DO_VERSIONING && !defined NO_HIDDEN]: Mark
-	__pthread_unwind hidden.
-
-2013-03-28  Roland McGrath  <roland@hack.frob.com>
-
-	* pthread_create.c (start_thread) [!SHARED]:
-	Call __call_tls_dtors only if it's not NULL.
-
-2013-03-19  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* allocatestack.c (allocate_stack): Use __default_pthread_attr
-	instead of __default_stacksize.
-	* nptl-init.c (__pthread_initialize_minimal_internal):
-	Likewise.  Initialize guardsize.
-	* pthreadP.h (__default_pthread_attr): Declare.
-	* pthread_attr_getstacksize.c (__pthread_attr_getstacksize):
-	Use __default_pthread_attr instead of __default_stacksize.
-	* pthread_create.c (default_attr): Remove.
-	(__pthread_create_2_1): Use __default_pthread_attr instead of
-	default_attr.
-	* vars.c (__default_stacksize): Remove.
-	(__default_pthread_attr): New static variable to store
-	default thread attributes.
-
-2013-03-18  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* pthread_barrier_init.c (default_attr): Rename to
-	default_barrierattr.
-	(pthread_barrier_init): Adjust for the rename.
-	* pthread_mutex_init.c (default_attr): Rename to
-	default_mutexattr.
-	(__pthread_mutex_init): Adjust for the rename.
-	* pthread_rwlock_init.c (default_attr): Rebane to
-	default_rwlockattr.
-	(__pthread_rwlock_init): Adjust for the rename.
-
-2013-03-12  Carlos O'Donell  <carlos@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevellock.c: Include <atomic.h>.
-
-2013-03-04  Roland McGrath  <roland@hack.frob.com>
-
-	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h:
-	Change multiple inclusion guard to _LINUX_I686_DL_SYSDEP_H.
-	Use #include_next.
-	(HAVE_DL_DISCOVER_OSVERSION): Remove definition, now redundant.
-	(RTLD_PRIVATE_ERRNO): Likewise.
-	(NEED_DL_SYSINFO, DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION):
-	Move macros and associated declaration to ...
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: ... here.
-	Change multiple include guard to _LINUX_I386_DL_SYSDEP_H.
-	Use #include_next.
-
-2013-03-01  Carlos O'Donell  <carlos@redhat.com>
-
-	* Makefile (tests): Revert last change.
-	(tst-pthread-stack-env-ENV): Likewise.
-	* nptl-init.c (set_default_stacksize): Likewise.
-	(__pthread_initialize_minimal_internal): Likewise.
-	* tst-pthread-stack-env.c: Likewise.
-
-2013-03-01  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* tst-oddstacklimit.c: Include stdlib.h.
-
-	* Makefile (tests): Add tst-pthread-stack-env.
-	(tst-pthread-stack-env-ENV): Set environment for test.
-	* nptl-init.c (set_default_stacksize): New function.
-	(__pthread_initialize_minimal_internal): Accept ARGC, ARGV and
-	ENVP.  Initialize __ENVIRON and set __DEFAULT_STACKSIZE.
-	* tst-pthread-stack-env.c: New test case.
-
-2013-02-21  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h
-	(FUTEX_WAIT_REQUEUE_PI): Define.
-	(FUTEX_CMP_REQUEUE_PI): Likewise.
-	(lll_futex_wait_requeue_pi): Likewise.
-	(lll_futex_timed_wait_requeue_pi): Likewise.
-	(lll_futex_cmp_requeue_pi): Likewise.
-
-2013-02-21  Carlos O'Donell  <carlos@redhat.com>
-
-	* sysdeps/unix/sysv/linux/fork.c: Fix comment typo.
-
-2013-02-18  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* sysdeps/pthread/tst-timer.c: Include stdlib.h for declaration
-	of exit.
-	* tst-barrier4.c: Likewise.
-	* tst-robust7.c: Likewise.
-
-	[BZ #14920]
-	* pthreadP.h (USE_REQUEUE_PI): New macro to check if mutex is
-	PI-aware.
-	* pthread_cond_broadcast.c (__pthread_cond_broadcast): Use
-	PI-aware futex operations if available and mutex is PI-aware.
-	* pthread_cond_signal.c (__pthread_cond_signal): Likewise.
-	* nptl/pthread_cond_timedwait.c (__pthread_cond_timedwait):
-	Likewise.
-	* pthread_cond_wait.c (__condvar_cleanup): Adjust lock if
-	cancellation occurred just after futex returned successfully
-	from a PI operation with the mutex held.
-	(__pthread_cond_wait): Use PI-aware futex operations if
-	available and mutex is PI-aware.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(FUTEX_WAIT_REQUEUE_PI): Define.
-	(FUTEX_CMP_REQUEUE_PI): Likewise.
-	(lll_futex_wait_requeue_pi): Likewise.
-	(lll_futex_timed_wait_requeue_pi): Likewise.
-	(lll_futex_cmp_requeue_pi): Likewise.
-	* nptl/sysdeps/unix/sysv/linux/s390/lowlevellock.h
-	(FUTEX_WAIT_REQUEUE_PI): Define.
-	(FUTEX_CMP_REQUEUE_PI): Likewise.
-	(lll_futex_wait_requeue_pi): Likewise.
-	(lll_futex_timed_wait_requeue_pi): Likewise.
-	(lll_futex_cmp_requeue_pi): Likewise.
-	* sysdeps/unix/sysv/linux/kernel-features.h: Define
-	__ASSUME_REQUEUE_PI for Linux version higher than 2.6.31.
-
-2013-02-04  Andreas Schwab  <schwab@suse.de>
-
-	[BZ #14142]
-	* tst-cancel14.c: Include <sys/time.h>.
-	* tst-cancel15.c: Likewise.
-	* tst-mutex9.c: Include <stdint.h>, <stdlib.h> and <sys/time.h>.
-	* tst-stackguard1.c: Include <tls.h>
-
-2013-01-16  Andreas Schwab  <schwab@suse.de>
-
-	[BZ #14327]
-	* sem_open.c (sem_open): Use __mktemp instead of mktemp.
-
-2013-01-11  Carlos O'Donell  <codonell@redhat.com>
-
-	* allocatestack.c (allocate_stack): Add comment. Remove assert
-	on attr.
-
-2013-01-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* Makefile (tst-cancel7-ARGS: Replace $(host-built-program-cmd)
-	with $(host-test-program-cmd).
-	(tst-exec4-ARGS): Likewise.
-	(tst-stackguard1-ARGS): Likewise.
-	($(objpfx)tst-tls6.out): Don't pass $(elf-objpfx) to tst-tls6.sh.
-	Replace $(rtld-installed-name) with $(test-via-rtld-prefix).
-	* tst-tls6.sh (elf_objpfx): Removed.
-	(rtld_installed_name): Renamed to ...
-	(test_via_rtld_prefix): This.
-	(tst_tls5): Prepend ${test_via_rtld_prefix}.
-
-2013-01-02  Joseph Myers  <joseph@codesourcery.com>
-
-	* All files with FSF copyright notices: Update copyright dates
-	using scripts/update-copyrights.
-
-2013-01-01  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Reformat
-	copyright notice.
-
-2012-12-28  Andi Kleen  <ak@linux.intel.com>
-
-	* pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Convert
-	to prototype.
-	* pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock):
-	Likewise.
-
-2012-12-27  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h
-	(lll_futex_timed_wait_bitset): New macro.
-
-2012-12-27  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (SYS_futex):
-	Remove definition.
-	(lll_futex_timed_wait): Replace assembly code with
-	INTERNAL_SYSCALL.
-	(lll_futex_timed_wait_bitset): Likewise.
-	(lll_futex_wake): Likewise.
-	(lll_futex_requeue): Likewise.
-	(lll_futex_wake_unlock): Likewise.
-
-2012-12-08  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind):
-	Declare LOCAL_VAR as char.
-
-2012-12-04  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/sem_post.c (__old_sem_post):
-	Cast result of atomic_increment_val to (void) instead of storing
-	in otherwise-unused variable.
-
-2012-12-03  Allan McRae  <allan@archlinux.org>
-
-	* Makefile (LDFLAGS-tst-cond24, LDFLAGS-tst-cond25): Remove.
-
-2012-11-26  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* unwind.c (__pthread_unwind): Pass address of unwind_cleanup
-	to THREAD_SETMEM.
-	* sysdeps/i386/tls.h: Include <libc-internal.h>.
-	(THREAD_SETMEM): Use cast_to_integer before casting to uint64_t.
-	(THREAD_SETMEM_NC): Likewise.
-	* sysdeps/x86_64/tls.h: Include <libc-internal.h>.
-	(THREAD_SETMEM): Use cast_to_integer before casting to uint64_t.
-	(THREAD_SETMEM_NC): Likewise.
-
-2012-11-21  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/sem_post.c (__old_sem_post): Cast result
-	of atomic_increment_val to (void) instead of storing in
-	otherwise-unused variable.
-
-	* pthread_cond_timedwait.c (__pthread_cond_timedwait)
-	[__NR_clock_gettime]: Cast result of INTERNAL_VSYSCALL to void
-	instead of storing in otherwise-unused variable.
-
-2012-11-14  Marcus Shawcroft  <marcus.shawcroft@linaro.org>
-
-	* Makefile (CFLAGS-open.c, CFLAGS-open64.c, CFLAGS-pause.c)
-	  (CFLAGS-recv.c, CFLAGS-send.c): Define.
-
-2012-11-06  Chris Metcalf  <cmetcalf@tilera.com>
-
-	* tst-sem14.c (TIMEOUT): Set timeout to 10 seconds.
-	* tst-cond24.c (TIMEOUT): Increase from 10 to 20 seconds.
-
-2012-11-05  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* pthread_cond_timedwait.c (__pthread_cond_timedwait): Time out
-	if absolute timeout is negative.
-	[__ASSUME_FUTEX_CLOCK_REALTIME &&
-	lll_futex_timed_wait_bitset]: Use lll_futex_timed_wait_bitset.
-	* pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
-	Likewise.
-	* pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
-	Likewise.
-	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c
-	(__lll_robust_timedlock_wait): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(lll_futex_timed_wait_bitset): New macro.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h
-	(lll_futex_timed_wait_bitset): Likewise.
-
-2012-11-03  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
-	Add missing spaces.
-	(__cpu_relax): Likewise.
-
-2012-11-02  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/x86_64/tls.h: Don't include <xmmintrin.h>.
-	(__128bits): New struct typedef.
-	(tcbhead_t): Replace __m128 with __128bits.
-
-2012-10-30  Aurelien Jarno  <aurelien@aurel32.net>
-	    Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile (tst-cancel7-ARGS): Use exec in --command argument.
-
-2012-10-28  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (BUSY_WAIT_NOP):
-	Define when we have v9 instructions available.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/cpu_relax.S: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/cpu_relax.S: New
-	file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/Makefile: New
-	file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: Add cpu_relax
-	to libpthread-routines.
-
-2012-10-25  Roland McGrath  <roland@hack.frob.com>
-
-	* tst-cond-except.c (TEST_FUNCTION): New macro.
-
-2012-10-25  Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile ($(objpfx)tst-tls6.out): Use $(BASH) not $(SHELL) to
-	run tst-tls6.sh.
-	* tst-tls6.sh: Use /bin/bash not /bin/sh.
-
-2012-10-25  Roland McGrath  <roland@hack.frob.com>
-
-	* tst-basic2.c (do_test): Return RESULT, not always zero.
-
-	* tst-cond25.c: Include <stdint.h>
-	(waiter): Add casts to uintptr_t between casting integer<->pointer.
-	(timed_waiter): Likewise.
-	(do_test_wait): Likewise.
-	* tst-cond-except.c (thr): Likewise.
-	(do_test): Use prototype definition.
-
-2012-10-24  Joseph Myers  <joseph@codesourcery.com>
-	    Jim Blandy  <jimb@codesourcery.com>
-
-	* Makefile ($(objpfx)tst-tls6.out): Pass $(test-wrapper-env) to
-	tst-tls6.sh.
-	* tst-tls6.sh (test_wrapper_env): New variable.  Use it to run
-	programs with LD_PRELOAD set.
-
-2012-10-24  Roland McGrath  <roland@hack.frob.com>
-
-	* Makefile ($(objpfx)tst-cond11, $(objpfx)tst-cond19): Targets removed.
-	($(objpfx)tst-sem5, $(objpfx)tst-cancel18): Likewise.
-	((objpfx)tst-cancelx18, $(objpfx)tst-clock2): Likewise.
-	($(objpfx)tst-rwlock14): Likewise.
-
-2012-10-24  Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile (tests): Remove tst-oddstacklimit.
-	(test-srcs): New variable.
-	(tst-oddstacklimit-ENV): Remove.
-	[$(run-built-tests) = yes] (tests): Depend on
-	$(objpfx)tst-oddstacklimit.out.
-	[$(run-built-tests) = yes] ($(objpfx)tst-oddstacklimit.out): New
-	target.
-	* tst-oddstacklimit.c: Do not include "tst-basic1.c".  Use
-	setrlimit before executing tst-basic1 test passed to --command.
-
-2012-10-23  Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile [$(cross-compiling) = no]: Change condition to
-	[$(run-built-tests) = yes].
-
-2012-10-23  Jim Blandy  <jimb@codesourcery.com>
-	    Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile (tst-cancel7-ARGS): Use $(host-built-program-cmd).
-	(tst-exec4-ARGS): Likewise.
-	(tst-stackguard1-ARGS): Likewise.
-
-2012-10-21  Jim Blandy  <jimb@codesourcery.com>
-	    Joseph Myers  <joseph@codesourcery.com>
-
-	* Makefile ($(objpfx)tst-cancel-wrappers.out): Pass $(NM) to
-	tst-cancel-wrappers.sh.
-	* tst-cancel-wrappers.sh: Use nm program given as first argument,
-	not hardcoded "nm".
-
-2012-10-17  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* tst-cond25.c (do_test_wait): Don't check for return value from
-	pthread_cancel.
-
-2012-10-16  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #14652]
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__condvar_tw_cleanup):  Adjust the mutex data structure if it
-	was locked by FUTEX_WAIT_REQUEUE_PI.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait
-	(__condvar_w_cleanup): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__condvar_cleanup2): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__condvar_cleanup1): Likewise.
-
-2012-10-10  Carlos O'Donell  <carlos@systemhalted.org>
-
-	* sysdeps/pthread/pthread.h [!(defined __GNUC__ &&
-	defined __EXCEPTIONS) && defined __USE_GNU]
-	(pthread_cleanup_push_defer_np): Fix formatting.
-
-2012-10-10  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #14652]
-	* Makefile (tests): New test case tst-cond25.
-	(LDFLAGS-tst-cond25): Link tst-cond25 against librt.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__condvar_tw_cleanup): Lock mutex only if we don't already
-	own it.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
-	(__condvar_w_cleanup): Likewise.
-	* sysdeps/unix/sysv/linux/pthread-pi-defines.sym: Add TID_MASK.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__condvar_cleanup2): Lock mutex only if we don't already
-	own it.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__condvar_cleanup1): Likewise.
-	* tst-cond25.c: New test case.
-
-2012-10-09  Roland McGrath  <roland@hack.frob.com>
-
-	* sysdeps/pthread/configure: Regenerated.
-	* sysdeps/x86_64/configure: Regenerated.
-
-2012-10-05  David S. Miller  <davem@davemloft.net>
-
-	[BZ #14568]
-	* sysdeps/sparc/tls.h (DB_THREAD_SELF_INCLUDE): Delete.
-	(DB_THREAD_SELF): Use constants for the register offsets.  Correct
-	the case of a 64-bit debugger with a 32-bit inferior.
-
-2012-10-05  H.J. Lu  <hongjiu.lu@intel.com>
-
-	[BZ #14557]
-	* Makefile (tests-static): Add tst-cancel24-static,
-	tst-cond8-static tst-mutex8-static, tst-mutexpi8-static,
-	tst-sem11-static and tst-sem12-static.
-	(tests): Likewise.
-	(LDLIBS-tst-cancel24-static): New macro.
-	* tst-cancel24-static.cc: New file.
-	* tst-cond8-static.c: Likewise.
-	* tst-mutex8-static.c: Likewise.
-	* tst-mutexpi8-static.c: Likewise.
-	* tst-sem11-static.c: Likewise.
-	* tst-sem12-static.c: Likewise.
-
-2012-10-05  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #14417]
-	* Makefile (tests): New test case tst-cond24.
-	(LDFLAGS-tst-cond24): Link tst-cond24 against librt.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Unlock mutex before going back to
-	wait in PI case.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
-	(__pthread_cond_wait): Likewise.  Revert handling of EAGAIN
-	return from futex_wait.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Unlock mutex before going back to
-	wait in PI case.  Set requeue_pi flag only if wait returned 0.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__pthread_cond_wait): Likewise.  Revert handling of EAGAIN
-	return from futex_wait.
-	* tst-cond24.c: New test case.
-
-2012-10-04  Roland McGrath  <roland@hack.frob.com>
-
-	* pthread_create.c (start_thread): Use __madvise, not madvise.
-
-2012-10-02  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/i386/tls.h: Update copyright years.
-
-2012-10-02  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* pthread_create.c (start_thread): Fix clone flag name in
-	comment to CLONE_CHILD_CLEARTID.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-
-2012-10-01  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #14477]
-	* Makefile (tests): Add tst-cond-except.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Mark instructions where %ebx is
-	incremented in PI case.
-	(.gcc_except_table): Add entry to jump to __condvar_tw_cleanup2
-	for the marked PI case instructions.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
-	(__pthread_cond_wait): Mark instructions where %ebx is
-	incremented in PI case.
-	(.gcc_except_table): Add entry to jump to __condvar_w_cleanup2
-	for the marked PI case instructions.
-	* tst-cond-except.c: New test case.
-
-2012-09-24  Dmitry V. Levin  <ldv@altlinux.org>
-
-	* tst-tls6.sh: Add "set -e".
-	* Makefile: Do not specify -e option when running testsuite
-	shell scripts.
-
-	* tst-tls6.sh: Add copyright header.
-
-2012-09-24  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/x86_64/tls.h (THREAD_SETMEM): Add "()" when casting
-	to uint64_t for 64-bit store.
-	(THREAD_SETMEM_NC): Likewise.
-
-2012-09-19  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/i386/tls.h (THREAD_SETMEM): Cast to uint64_t for
-	64-bit store.
-	(THREAD_SETMEM_NC): Likewise.
-
-2012-09-14  Jeff Law  <law@redhat.com>
-
-	[BZ #14583]
-	* sysdeps/pthread/pthread.h: Fix prototype of __sigsetjmp.
-
-2012-09-13  H.J. Lu  <hongjiu.lu@intel.com>
-
-	[BZ #14576]
-	* sysdeps/pthread/bits/libc-lockP.h (__rtld_lock_init_recursive):
-	Removed.
-
-2012-09-07  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* Makefile (LDFLAGS-tst-cancel24): Renamed to ...
-	(LDLIBS-tst-cancel24): This.
-
-2012-09-06  H.J. Lu  <hongjiu.lu@intel.com>
-
-	[BZ #14545]
-	* Makefile (tests-static): Add tst-cancel21-static.
-	(tests): Likewise.
-	* tst-cancel21-static.c: New file.
-
-2012-09-01  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
-	[!__ASSUME_POSIX_CPU_TIMERS]: Remove conditional code.
-	[__NR_clock_getres]: Make code unconditional.
-	(pthread_getcpuclockid): Remove code left unreachable by removal
-	of conditionals.
-
-2012-08-31  Joseph Myers  <joseph@codesourcery.com>
-
-	[BZ #14532]
-	* sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Use
-	atomic_compare_and_exchange_bool_rel.
-	* tst-sem14.c: New file.
-	* Makefile (tests): Add tst-sem14.
-
-2012-08-15  Roland McGrath  <roland@hack.frob.com>
-
-	* Makefile (CFLAGS-flockfile.c): Use $(libio-mtsafe) instead
-	of -D_IO_MTSAFE_IO.
-	(CFLAGS-ftrylockfile.c, CFLAGS-funlockfile.c): Likewise.
-	* sysdeps/unix/sysv/linux/Makefile (CFLAGS-fork.c): Likewise.
-
-2012-08-16  Joseph Myers  <joseph@codesourcery.com>
-
-	* pthread_cond_timedwait.c (__pthread_cond_timedwait)
-	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
-	* pthread_condattr_setclock.c (pthread_condattr_setclock)
-	[!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
-	[!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/timer_create.c [__NR_timer_create]: Make
-	code unconditional.
-	[!__NR-timer_create]: Remove conditional code.
-	(timer_create) [!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/timer_delete.c [__NR_timer_delete]: Make
-	code unconditional.
-	[!__NR_timer_delete]: Remove conditional code.
-	(timer_delete) [!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/timer_getoverr.c
-	[__NR_timer_getoverrun]: Make code unconditional.
-	[!__NR_timer_getoverrun]: Remove conditional code.
-	(timer_getoverrun) [!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/timer_gettime.c [__NR_timer_gettime]:
-	Make code unconditional.
-	[!__NR_timer_gettime]: Remove conditional code.
-	(timer_gettime) [!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/timer_routines.c [__NR_timer_create]:
-	Make code unconditional.
-	[!__ASSUME_POSIX_TIMERS]: Remove conditional code.
-	* sysdeps/unix/sysv/linux/timer_settime.c [__NR_timer_settime]:
-	Make code unconditional.
-	[!__NR_timer_settime]: Remove conditional code.
-	(timer_settime) [!__ASSUME_POSIX_TIMERS]: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait) [!__ASSUME_POSIX_TIMERS]: Remove
-	conditional code.
-
-2012-08-15  Tom de Vries  <vries@codesourcery.com>
-	    Maxim Kuvyrkov  <maxim@codesourcery.com>
-
-	* sysdeps/pthread/bits/libc-lockP.h (__libc_lock_lock)
-	(__libc_lock_trylock): Allow pre-existing definitions.
-
-2012-08-15  Maxim Kuvyrkov  <maxim@codesourcery.com>
-
-	* pthread_spin_lock.c: New file.
-	* pthread_spin_trylock.c: New file.
-
-2012-08-08  Joseph Myers  <joseph@codesourcery.com>
-
-	* allocatestack.c (setxid_signal_thread) [__ASSUME_TGKILL]: Make
-	code unconditional.
-	(setxid_signal_thread) [!__ASSUME_TGKILL]: Remove conditional code.
-	* pthread_cancel.c (pthread_cancel) [__ASSUME_TGKILL]: Make code
-	unconditional.
-	(pthread_cancel) [!__ASSUME_TGKILL]: Remove conditional code.
-	* sysdeps/pthread/createthread.c (do_clone) [__ASSUME_TGKILL]:
-	Make code unconditional.
-	(do_clone) [!__ASSUME_TGKILL]: Remove conditional code.
-	* sysdeps/unix/sysv/linux/pt-raise.c (raise) [__ASSUME_TGKILL ||
-	__NR_tgkill]: Make code unconditional.
-	(raise) [__ASSUME_TGKILL]: Likewise.
-	(raise) [!__ASSUME_TGKILL]: Remove conditional code.
-	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill)
-	[__ASSUME_TGKILL]: Make code unconditional.
-	(__pthread_kill) [!__ASSUME_TGKILL]: Remove conditional code.
-	* sysdeps/unix/sysv/linux/raise.c (raise) [__ASSUME_TGKILL ||
-	__NR_tgkill]: Make code unconditional.
-	(raise) [__ASSUME_TGKILL]: Likewise.
-	(raise) [!__ASSUME_TGKILL]: Remove conditional code.
-
-2012-08-07  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/pthread/createthread.c (create_thread)
-	[!__ASSUME_NO_CLONE_DETACHED]: Remove conditional code.
-
-2012-08-03  Joseph Myers  <joseph@codesourcery.com>
-
-	* nptl-init.c (sigcancel_handler) [__ASSUME_CORRECT_SI_PID]: Make
-	code unconditional.
-	(sighandler_setxid) [__ASSUME_CORRECT_SI_PID]: Likewise.
-
-2012-07-28  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* tst-pthread-getattr.c (MAX_STACK_SIZE): New macro.
-	(pagesize): New static variable.
-	(allocate_and_test): Return MEM.  Rename parameter to TARGET.
-	(check_stack_top): New local variables MEM and PAGEMASK.  Cap
-	stack size to MAX_STACK_SIZE.  Call allocate_and_test for
-	halfway up the stack top page.  Verify that the top page was
-	written into.
-	(do_test): Get pagesize using sysconf.
-
-2012-07-25  Andreas Schwab  <schwab@linux-m68k.org>
-
-	* sysdeps/unix/sysv/linux/i386/pt-vfork.S: Remove pseudo_end
-	label.
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO):
-	Likewise.
-
-2012-07-25  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* tst-pthread-getattr.c: Revert last change.
-
-2012-07-20  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* tst-pthread-getattr.c (MAX_STACK_SIZE): New max cap for stack
-	size.
-	(_MIN): New macro.
-	(allocate_and_test): Return STACKADDR.  Access STACKADDR instead
-	of MEM to test.
-	(check_stack_top): Read valued written into STACKADDR in
-	allocate_and_test.  Cap stack size to MAX_STACK_SIZE.
-
-2012-07-19  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* nptl-init.c (sighandler_setxid): Fix the comment that
-	describes it.
-
-2012-06-23  Thomas Schwinge  <thomas@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
-	(__lll_robust_timedlock_wait): Simplify CFI directives.
-
-2012-06-20  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #12416]
-	* Makefile (tests): Add test case.
-	* pthread_getattr_np.c (pthread_getattr_np): Deduct pages below
-	the __libc_stack_end page from stacksize.  Truncate stacksize to
-	make it page aligned when it is computed from RLIMIT_STACK.
-	* tst-pthread-getattr.c: New test case. Verify that stackaddr is
-	accessible.
-
-2012-06-07  Carlos Sánchez de La Lama  <csanchezdll@gmail.com>
-
-	[BZ #14205]
-	* sysdeps/sparc/sparc32/pthread_spin_lock.S: Do not use v9
-	branches.
-
-2012-06-04  Siddhesh Poyarekar  <siddhesh@redhat.com>
-	    Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #14188]
-	* sysdeps/pthread/pthread.h
-	[!(defined __GNUC__ && defined __EXCEPTIONS)]
-	(pthread_cleanup_push, pthread_cleanup_push_defer_np): Use
-	__libc_unlikely instead of __builtin_expect.
-
-2012-05-30  H.J. Lu  <hongjiu.lu@intel.com>
-
-	[BZ #14117]
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Removed.
-	* sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/Implies: New file.
-	* sysdeps/unix/sysv/linux/x86_64/Implies: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Renamed
-	to ...
-	* sysdeps/unix/sysv/linux/x86/bits/pthreadtypes.h: This.
-	* sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Renamed
-	to ...
-	* sysdeps/unix/sysv/linux/x86/bits/semaphore.h: This.
-
-2012-05-30  Andreas Schwab  <schwab@linux-m68k.org>
-
-	[BZ #14132]
-	* nptl-init.c (pthread_functions): Remove use of INTUSE and
-	_internal aliases.
-	(__pthread_initialize_minimal_internal): Likewise.
-	* sem_open.c: Likewise.
-	* sem_unlink.c: Likewise.
-	* pthreadP.h: Replace _internal aliases by hidden_proto
-	declarations.
-	* pthread_getspecific.c: Replace _internal alias by hidden_def.
-	* pthread_key_create.c: Likewise.
-	* pthread_mutex_destroy.c: Likewise.
-	* pthread_mutex_init.c: Likewise.
-	* pthread_mutex_lock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	* pthread_once.c: Likewise.
-	* pthread_rwlock_rdlock.c: Likewise.
-	* pthread_rwlock_unlock.c: Likewise.
-	* pthread_rwlock_wrlock.c: Likewise.
-	* pthread_setspecific.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/pthread_once.c: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
-	Likewise.
-
-2012-05-27  Chung-Lin Tang  <cltang@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO, LOAD_ARGS_1)
-	(LOAD_ARGS_2 ,LOAD_ARGS_3 ,LOAD_ARGS_4): Add CFI restores.
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_lock_wait_private)
-	(__lll_lock_wait, __lll_timedlock_wait, __lll_timedwait_tid): Add CFI
-	directives.
-	* sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
-	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
-	(pthread_barrier_wait): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
-	(__pthread_cond_signal): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S (__pthread_cond_wait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
-	(__pthread_rwlock_rdlock): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
-	(pthread_rwlock_timedrdlock): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
-	(pthread_rwlock_timedwrlock): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
-	(__pthread_rwlock_unlock): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
-	(__pthread_rwlock_wrlock): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
-
-2012-05-26  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	[BZ #12416]
-	* nptl/pthread_getattr_np.c (pthread_getattr_np): Use
-	__libc_stack_end rounded to the end of containing page as the
-	real stack end.
-
-2012-05-25  Rayson Ho  <rho@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Low-level SystemTap
-	probes for i386.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-
-2012-05-25  Rayson Ho  <rho@redhat.com>
-	    Roland McGrath  <roland@hack.frob.com>
-
-	* DESIGN-systemtap-probes.txt: New file.
-	* pthread_cond_broadcast.c: SystemTap probes.
-	* pthread_cond_init.c: Likewise.
-	* pthread_cond_signal.c: Likewise.
-	* pthread_cond_wait.c: Likewise.
-	* pthread_cond_destroy.c: Likewise.
-	* pthread_create.c: Likewise.
-	* pthread_join.c: Likewise.
-	* pthread_mutex_destroy.c: Likewise.
-	* pthread_mutex_init.c: Likewise.
-	* pthread_mutex_lock.c: Likewise.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	* pthread_rwlock_destroy.c: Likewise.
-	* pthread_rwlock_rdlock.c: Likewise.
-	* pthread_rwlock_unlock.c: Likewise.
-	* pthread_rwlock_wrlock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-
-2012-05-24  Roland McGrath  <roland@hack.frob.com>
-
-	* pthread_create.c (start_thread): Define pthread_start LIBC_PROBE.
-
-2012-05-17  Andreas Jaeger  <aj@suse.de>
-
-	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
-	(HAVE_DL_DISCOVER_OSVERSION): Don't declare _dl_discover_osversion
-	only for older kernels.
-
-2012-05-15  Joseph Myers  <joseph@codesourcery.com>
-
-	* pthreadP.h [!__NR_set_robust_list] (__NR_set_robust_list): Do
-	not define.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_lock): Load
-	futex pointer into RDI_LP.  Use RSP_LP to operate on stack.
-	(lll_robust_lock): Likewise.
-	(lll_cond_lock): Likewise.
-	(lll_robust_cond_lock): Likewise.
-	(lll_timedlock): Likewise.
-	(lll_robust_timedlock): Likewise.
-	(lll_unlock): Likewise.
-	(lll_robust_unlock): Likewise.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use
-	LP_OP(cmp) and RCX_LP on dep_mutex pointer.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Use LP_OP(op)
-	on NWAITERS.
-	(__gcc_personality_v0): Replace 8-byte data alignment with
-	LP_SIZE alignment and .quad with ASM_ADDR.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Use LP_OP(op)
-	on NWAITERS.
-	(__gcc_personality_v0): Replace 8-byte data alignment with
-	LP_SIZE alignment and .quad with ASM_ADDR.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Use LP_OP(cmp) on
-	NWAITERS, which is unsigned long int.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S
-	(__gcc_personality_v0): Replace 8-byte data alignment with
-	LP_SIZE alignment and .quad with ASM_ADDR.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Use
-	LP_OP(cmp), RSI_LP and R8_LP on dep_mutex pointer.  Load
-	__vdso_clock_gettime pointer into RAX_LP.
-	(__gcc_personality_v0): Replace 8-byte data alignment with
-	LP_SIZE alignment and .quad with ASM_ADDR.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Use
-	LP_OP(cmp), RSI_LP and R8_LP on dep_mutex pointer.  Load
-	__vdso_clock_gettime pointer into RAX_LP.
-	(__gcc_personality_v0): Replace 8-byte data alignment with
-	LP_SIZE alignment and .quad with ASM_ADDR.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Use
-	LP_OP(cmp) and R8_LP on dep_mutex pointer.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Use LP_OP(mov)
-	to update pointer in memory.  Load pointer into RDI_LP.
-
-2012-05-15  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
-	(LLL_STUB_UNWIND_INFO_START): Align label to LP_SIZE instead
-	of 8.
-	(LLL_STUB_UNWIND_INFO_END): Likewise.
-	(lll_timedlock): Load timeout pointer into RDX_LP.
-	(lll_robust_timedlock): Likewise.
-
-2012-05-15  Siddhesh Poyarekar  <siddhesh@redhat.com>
-	    Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #13613]
-	* Makefile (tests): Add test cases.
-	* descr.h (struct pthread): Add a comment describing multiple_threads.
-	* pthreadP.h (__pthread_multiple_threads): Expand comment to include
-	single-process case.
-	* pthread_cancel.c (pthread_cancel): Enable multiple_threads
-	before setting cancelstate of the thread.
-	* sysdeps/unix/sysv/linux/libc_multiple_threads.c
-	(__libc_multiple_threads): Add explanatory comment.
-	* tst-cancel-self-cancelstate.c: New test case.
-	* tst-cancel-self-canceltype.c: Likewise.
-	* tst-cancel-self-cleanup.c: Supporting file for test cases.
-	* tst-cancel-self-testcancel.c: New test case.
-	* tst-cancel-self.c: Likewise.
-	* vars.c: Expand comment to include single-process case.
-
-2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/x86_64/tls.h: Don't include <bits/wordsize.h>.
-	(tcbhead_t): Remove __x86_64__ check.  Align rtld_savespace_sse
-	to 32 bytes.
-
-2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/pthread/pthread.h (__PTHREAD_RWLOCK_INT_FLAGS_SHARED):
-	New.
-	(PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Check
-	__PTHREAD_RWLOCK_INT_FLAGS_SHARED instead of __WORDSIZE.
-
-2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* shlib-versions: Move x86_64-.*-linux.* entry to ...
-	* sysdeps/x86_64/64/shlib-versions: Here.  New file.
-	* sysdeps/x86_64/x32/shlib-versions: New file.
-
-2012-05-14  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Define x32
-	__SIZEOF_PTHREAD_XXX_T.
-	(__pthread_internal_list): Check __x86_64__ instead of __WORDSIZE.
-	(pthread_mutex_t): Likewise.
-	(pthread_rwlock_t): Likewise.
-	(__PTHREAD_RWLOCK_INT_FLAGS_SHARED): New.  Defined if __x86_64__
-	is defined.
-
-2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/x86_64/x32/tls.h: New file.
-
-2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/x86_64/tls.h (THREAD_SETMEM): Use uint64_t on 64-bit
-	integer.
-	(THREAD_SETMEM_NC): Likewise.
-
-2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/x86_64/tls.h (THREAD_SELF): Replace movq/%q0 with
-	mov/%0.
-
-2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
-	(__cleanup_fct_attribute): Check __x86_64__ instead of
-	__WORDSIZE.
-
-2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER): Check
-	__PTHREAD_MUTEX_HAVE_PREV instead of __WORDSIZE.
-	(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Likewise.
-	(PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
-	(PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
-
-2012-05-11  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* pthread_create.c (start_thread): Check __PTHREAD_MUTEX_HAVE_PREV
-	instead of __WORDSIZE.
-
-2012-05-10  Thomas Schwinge  <thomas@schwinge.name>
-
-	[BZ #3748]
-	* sysdeps/pthread/bits/libc-lockP.h (__libc_once_get): New macro.
-
-2012-05-09  Chung-Lin Tang  <cltang@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Use CFI directives.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
-	(__pthread_cond_wait): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
-
-2012-05-03  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/sparc/sparc64/pthread_spin_unlock.S: Fix thinko, we
-	always have to return 0, especially for the pthread_spin_init
-	alias.
-	* sysdeps/sparc/sparc32/pthread_spin_lock.S: Add missing trailing
-	newline.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S: Likewise.
-	* sysdeps/sparc/sparc64/pthread_spin_lock.S: Likewise.
-
-2012-05-02  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/sparc/sparc64/pthread_spin_lock.S: New.
-	* sysdeps/sparc/sparc64/pthread_spin_lock.c: Delete.
-	* sysdeps/sparc/sparc64/pthread_spin_unlock.S: New.
-	* sysdeps/sparc/sparc64/pthread_spin_unlock.c: Delete.
-	* sysdeps/sparc/sparc64/pthread_spin_trylock.S: New.
-	* sysdeps/sparc/sparc64/pthread_spin_trylock.c: Delete.
-	* sysdeps/sparc/sparc64/pthread_spin_init.c: New.
-	* sysdeps/sparc/sparc32/pthread_spin_lock.S: New.
-	* sysdeps/sparc/sparc32/pthread_spin_lock.c: Delete.
-	* sysdeps/sparc/sparc32/pthread_spin_trylock.S: New.
-	* sysdeps/sparc/sparc32/pthread_spin_trylock.c: Delete.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.S: New.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: Delete.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.S: New.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: Delete.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.S: New.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: Delete.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_init.c: New.
-
-2012-05-02  Allan McRae  <allan@archlinux.org>
-
-	* Makefile: (LDFLAGS-tst-tls5): Use $(no-as-needed).
-	(LDFLAGS-tst-cancel24): Likewise.
-
-2012-05-02  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	* sysdeps/i386/pthread_spin_lock.S: New.
-	* sysdeps/i386/pthread_spin_lock.c: Delete.
-	* sysdeps/x86_64/pthread_spin_lock.S: New.
-	* sysdeps/x86_64/pthread_spin_lock.c: Delete.
-
-2012-04-28  Andreas Schwab  <schwab@linux-m68k.org>
-
-	* Makefile ($(objpfx)tst-stack3-mem, $(objpfx)tst-tls6.out): Don't
-	run when cross-compiling.
-
-2012-04-26  Siddhesh Poyarekar  <siddhesh@redhat.com>
-
-	* sysdeps/pthread/unwind-forcedunwind.c: Include gnu/lib-names.h
-	instead of libgcc_s.h.
-
-2012-04-20  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	* sysdeps/x86_64/tls.h (TLS_GET_FS, TLS_SET_FS): Delete.
-
-2012-03-27  David S. Miller  <davem@davemloft.net>
-
-	* tst-cond16.c (do_test): Use a thread stack size which is either
-	PTHREAD_STACK_MIN or the page size, whichever is larger.
-	* tst-cond18.c (do_test): Likewise.
-
-2012-03-19  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Use
-	register char * __asm__("rsp") to get stack frame.
-
-2012-03-19  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (SYS_futex): Use
-	__NR_futex directly.
-
-2012-03-19  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* unwind.c (unwind_stop): Cast _Unwind_GetCFA return to
-	_Unwind_Ptr first.
-
-2012-03-16  David S. Miller  <davem@davemloft.net>
-
-	[BZ #13844]
-	* sysdeps/unix/sysv/linux/libc-lowlevellock.c: Include using <..>
-	instead of "...".
-	* sysdeps/unix/sysv/linux/sparc/sparc32/libc-lowlevellock.c:
-	Delete, not needed.
-
-2012-03-15  David S. Miller  <davem@davemloft.net>
-
-	[BZ #13844]
-	* sysdeps/unix/sysv/linux/sparc/sparc32/libc-lowlevellock.c: New file.
-
-2012-03-09  Paul Eggert  <eggert@cs.ucla.edu>
-
-	[BZ #13673]
-	* pt-crti.S: Replace FSF snail mail address with URL.
-
-2012-03-09  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/pthread/pthread.h (__need_clockid_t, __need_timespec):
-	Do not define before including <time.h>.
-
-2012-03-08  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/sem_post.c: Update copyright year.
-
-2012-03-08  Thomas Schwinge  <thomas@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
-	Check for timestamp before the Epoch.
-
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait): Fix
-	updating nwaiters.
-
-	* tst-sem13.c (do_test): Add another test case.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
-	Fix updating nwaiters.
-
-2012-03-07  Joseph Myers  <joseph@codesourcery.com>
-
-	[BZ #10545]
-	* sysdeps/pthread/configure.in (libc_cv_forced_unwind): Change
-	link test to a compile test.
-	(libc_cv_c_cleanup): Likewise.  Declare puts rather than including
-	<stdio.h>.
-	* sysdeps/pthread/configure: Regenerated.
-
-2012-03-07  Ulrich Drepper  <drepper@gmail.com>
-
-	* Makefile (distribute): Remove variable.
-
-2012-01-23  Thomas Schwinge  <thomas@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Get rid of
-	superfluous assignment.
-	* sysdeps/unix/sysv/linux/sparc/sem_timedwait.c (sem_timedwait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
-	(sem_timedwait): Likewise.
-
-2012-03-06  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/pthread/bits/libc-lock.h: Move information not needed in
-	installed headers to...
-	* sysdeps/pthread/bits/libc-lockP.h: ...here.  New file.
-
-2012-03-06  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/sem_post.c (__new_sem_post): Use
-	atomic_increment and remove unused local variable.
-	(__old_sem_post): Likewise.
-
-2012-02-27  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Don't refer to
-	non-existing __pthread_attr.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-
-2012-02-26  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/pthread/pthread.h: Define __need_clockid_t for __USE_XOPEN2K.
-
-	* sysdeps/pthread/pthread.h: Define __need_timespec before including
-	<time.h>.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Name pthread_attr_t
-	union.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-
-2012-02-21  Joseph Myers  <joseph@codesourcery.com>
-
-	[BZ #13695]
-	* Makefile (generated): Remove crti.S, crtn.S, defs.h and
-	pt-initfini.s.
-	[crti.S not in sysdirs] (omit-deps): Do not append.
-	[crti.S not in sysdirs] (CFLAGS-pt-initfini.s): Remove variable.
-	[crti.S not in sysdirs] (pt-initfini.c): Remove vpath directive.
-	[crti.S not in sysdirs] ($(objpfx)crti.S): Remove rule.
-	[crti.S not in sysdirs] ($(objpfx)crtn.S): Likewise.
-	[crti.S not in sysdirs] ($(objpfx)defs.h): Likewise.
-	[crti.S not in sysdirs] ($(objpfx)crti.o): Likewise.
-	[crti.S not in sysdirs] ($(objpfx)crtn.o): Likewise.
-	[crti.S in sysdirs] (extra-objs): Append unconditionally.
-	[crti.S in sysdirs] ($(objpfx)crti.o): Define rule
-	unconditionally.
-	* sysdeps/pthread/pt-initfini.c: Remove file.
-
-2012-02-16  Richard Henderson  <rth@twiddle.net>
-
-	* sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: Remove file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: Remove file.
-
-2012-02-15  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/pt-initfini.c: Remove file.
-
-2012-02-16  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/sparc/Makefile: Add -fPIC when building pt-crti.S and crtn.S
-
-2012-02-15  Marek Polacek  <polacek@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/Makefile: Remove file.
-
-2012-02-09  Paul Eggert  <eggert@cs.ucla.edu>
-
-	Replace FSF snail mail address with URLs, as per GNU coding standards.
-
-2012-02-08  Andreas Schwab  <schwab@linux-m68k.org>
-
-	* Makefile (extra-objs) [crti.S in sysdirs]: Add pt-crti.o.
-
-2012-02-08  Joseph Myers  <joseph@codesourcery.com>
-
-	Support crti.S and crtn.S provided directly by architectures.
-	* Makefile [crti.S in sysdirs] (omit-deps): Do not append.
-	[crti.S in sysdirs] (CFLAGS-pt-initfini.s): Do not define variable.
-	[crti.S in sysdirs] ($(objpfx)pt-initfini.s): Disable rule.
-	[crti.S in sysdirs] ($(objpfx)crti.S): Likewise.
-	[crti.S in sysdirs] ($(objpfx)crtn.S): Likewise.
-	[crti.S in sysdirs] ($(objpfx)defs.h): Likewise.
-	[crti.S in sysdirs] ($(objpfx)crti.o): Likewise.
-	[crti.S in sysdirs] ($(objpfx)crtn.o): Likewise.
-	[crti.S in sysdirs] (pt-initfini.c): Remove vpath directive.
-	[crti.S in sysdirs] ($(objpfx)crti.o): New rule.
-	* pt-crti.S: New file.
-	* sysdeps/unix/sysv/linux/i386/Makefile: Remove file.
-
-2012-02-03  Joseph Myers  <joseph@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
-	macros for PIC register setup.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
-
-2012-01-11  Marek Polacek  <polacek@redhat.com>
-
-	* forward.c (FORWARD_NORETURN): Define macro.
-	(__pthread_unwind): Use FORWARD_NORETURN macro to avoid warning.
-	(__pthread_exit): Likewise.
-
-2012-01-10  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/pthread/pthread.h: Add const attribute to pthread_equal.
-
-	* pthreadP.h: Add noreturn to __pthread_exit.
-	* sysdeps/pthread/pthread-functions.h: Likewise for ptr___pthread_exit.
-
-2011-12-30  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
-
-	* sysdeps/unix/sysv/linux/aio_misc.h (__aio_create_helper_thread):
-	Call pthread_attr_setstacksize() with result of
-	__pthread_get_minstack() to account for application TLS usage.
-
-2012-01-08  Marek Polacek  <polacek@redhat.com>
-
-	* sysdeps/unix/sysv/linux/mq_notify.c: Include <nptl/pthreadP.h>.
-
-2012-01-07  Ulrich Drepper  <drepper@gmail.com>
-
-	[BZ #13553]
-	* pthreadP.h: Use const instead of __const.
-	* semaphore.h: Likewise.
-	* sysdeps/pthread/bits/libc-lock.h: Likewise.
-	* sysdeps/pthread/bits/sigthread.h: Likewise.
-	* sysdeps/pthread/pthread.h: Likewise.
-
-	* Makefile: Remove elf=yes test, only ELF is supported.
-
-	* shlib-versions: Remove entries for ports architectures.
-
-	In case anyone cares, the IA-64 architecture could move to ports.
-	* sysdeps/ia64/*: Removed.
-	* sysdeps/unix/sysv/linux/ia64/*: Removed.
-
-2011-12-22  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/pthread/gai_misc.h (__gai_create_helper_thread): Use
-	__pthread_get_minstack.
-	* sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Likewise.
-
-	[BZ #13088]
-	* sysdeps/unix/sysv/linux/timer_routines.c: Get minimum stack size
-	through __pthread_get_minstack.
-	* nptl-init.c (__pthread_initialize_minimal_internal): Get page size
-	directly from _rtld_global_ro.
-	(__pthread_get_minstack): New function.
-	* pthreadP.h: Declare __pthread_get_minstack.
-	* Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_get_minstack.
-
-2011-12-21  Ulrich Drepper  <drepper@gmail.com>
-
-	[BZ #13515]
-	* sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
-	Correct reading name from file.
-
-2011-12-14  Carlos O'Donell  <carlos@systemhalted.org>
-
-	* allocatestack.c (allocate_stack): Return errno on failure.
-
-2011-12-14  Jeff Law  <law@redhat.com>
-
-	[BZ #5245]
-	* pthread_create.c (__pthread_create_2_1): Translate ENOMEM to EAGAIN.
-
-2011-11-28  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Handle
-	EAGAIN from FUTEX_WAIT_REQUEUE_PI.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-
-2011-11-15  Ulrich Drepper  <drepper@gmail.com>
-
-	* pthread_getattr_np.c (pthread_getattr_np): Set FD_CLOEXEC for
-	/proc/self/maps.
-
-2011-10-29  Ulrich Drepper  <drepper@gmail.com>
-
-	[BZ #13358]
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Initialize %r15 correctly also for code
-	path for kernels with FUTEX_CLOCK_REALTIME.
-	Debugged by H.J. Lu <hjl.tools@gmail.com>.
-
-2011-10-27  Andreas Schwab  <schwab@redhat.com>
-
-	[BZ #13344]
-	* sysdeps/pthread/pthread.h: Use __THREADNL instead of __THREAD
-	for memory synchronization functions.
-	* semaphore.h: Likewise.
-
-2011-10-24  Ulrich Drepper  <drepper@gmail.com>
-
-	* tst-cancel7.c: Avoid warning.
-	* tst-mutex6.c: Likewise.
-	* tst-mutex9.c: Likewise.
-	* tst-mutexpi6.c: Likewise.
-
-2011-10-23  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/i386/tls.h: Remove #include <list.h>.
-
-2011-10-15  Ulrich Drepper  <drepper@gmail.com>
-
-	* pthread_create.c (start_thread): Call __ctype_init.
-
-2011-09-15  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/pthread/list.h: Define only list_t if __need_list_t is
-	defined.
-	(list_add): Add atomic_write_barrier.
-	* descr.h: Define __need_list_t before including <list.h>.
-	* nptl-init.c: Include <list.h>
-	* allocatestack.c: Likewise.
-
-2011-09-11  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/i386/tls.h: Remove HAVE_TLS_SUPPORT test.
-	* sysdeps/ia64/tls.h: Likewise.
-	* sysdeps/powerpc/tls.h: Likewise.
-	* sysdeps/s390/tls.h: Likewise.
-	* sysdeps/sh/tls.h: Likewise.
-	* sysdeps/sparc/tls.h: Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.
-
-2011-09-10  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/pthread/malloc-machine.h: Define MUTEX_INITIALIZER.
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Don't handle
-	!USE___THREAD.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
-
-	* tst-tls1.c: Support for __thread is now mandatory.
-	* tst-tls2.c: Likewise.
-	* tst-tls3.c: Likewise.
-	* tst-tls3mod.c: Likewise.
-	* tst-tls4.c: Likewise.
-	* tst-tls4moda.c: Likewise.
-	* tst-tls4modb.c: Likewise.
-	* tst-tls5.h: Likewise.
-
-2011-09-08  Ulrich Drepper  <drepper@gmail.com>
-
-	[BZ #12403]
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
-	(pthread_rwlock_timedwrlock): Use correct macro in test.
-	Patch by H.J. Lu <hongjiu.lu@intel.com>.
-
-2011-09-06  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait): Don't
-	use gettimeofday vsyscall, just call gettimeofday.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	Simplify __vdso_clock_gettime use.
-
-2011-09-05  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sem_timedwait.c (do_futex_timed_wait):
-	New function.
-	(sem_timedwait): Call it to force an exception region around
-	the async cancel enable and the futex operation.
-	* sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/sem_wait.c (do_futex_wait): New function.
-	(__new_sem_wait): Call it to force an exception region around
-	the async cancel enable and the futex operation.
-	* sysdeps/unix/sysv/linux/sparc/sem_wait.c: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: Likewise.
-
-2011-08-31  Andreas Schwab  <schwab@redhat.com>
-
-	* allocatestack.c (setxid_mark_thread): Ensure that the exiting
-	thread is woken up.
-
-2011-08-20  David S. Miller  <davem@davemloft.net>
-
-	* Makefile (tst-cleanup0.out): Fix typo in output redirection.
-
-2011-08-14  Roland McGrath  <roland@hack.frob.com>
-
-	* sysdeps/i386/pthreaddef.h (TCB_ALIGNMENT): Set to 64, optimal on Atom.
-	* sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Likewise.
-
-2011-08-08  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Maintain aligned
-	stack.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-
-2011-07-22  Ulrich Drepper  <drepper@gmail.com>
-
-	* sysdeps/pthread/unwind-forcedunwind.c (_Unwind_Resume): Add read
-	barrier.
-	(__gcc_personality_v0): Likewise.
-	(_Unwind_ForcedUnwind): Likewise.
-	(_Unwind_GetCFA): Likewise.
-
-2011-07-14  Roland McGrath  <roland@hack.frob.com>
-
-	* allocatestack.c (__reclaim_stacks): Use uintptr_t cast rather than
-	UINTMAX_C.
-
-2011-06-30  Ulrich Drepper  <drepper@gmail.com>
-
-	* nptl-init.c (__nptl_set_robust): New function.
-	(pthread_functions): Add reference.
-	* npthreadP.h: Declare __nptl_set_robust.
-	* sysdeps/pthread/pthread-functions.h (pthread_functions): Add
-	ptr_set_robust member.
-	* sysdeps/unix/sysv/linux/fork.c: Call set_robust_list syscall in
-	child if threads are used.
-
-2011-06-14  Andreas Jaeger  <aj@suse.de>
-
-	* pthread_rwlock_init.c: Include <string.h> for memset declaration.
-
-2011-05-11  Ulrich Drepper  <drepper@gmail.com>
-
-	[BZ #386]
-	* allocatestack.c (allocate_stack): Convert ENOMEM error to EAGAIN.
-
-2011-04-10  Ulrich Drepper  <drepper@gmail.com>
-
-	[BZ #12650]
-	* allocatestack.c (get_cached_stack): Deallocate DTV entries before
-	clearing memory.
-	Patch partly by Robert Rex <robert.rex@exasol.com>.
-
-2011-01-19  Roland McGrath  <roland@redhat.com>
-
-	* pthread_cond_wait.c (__pthread_cond_wait): Fix comment typo.
-	* pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
-	* pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Likewise.
-	* pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
-	* pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock): Likewise.
-	* pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock): Likewise.
-
-2011-01-16  Andreas Schwab  <schwab@linux-m68k.org>
-
-	* Makefile (test-extras): Add tst-cleanup4aux.
-
-2011-01-14  Ulrich Drepper  <drepper@gmail.com>
-
-	[BZ #10563]
-	* sysdeps/pthread/setxid.h (__SETXID_1): Add cast to assignment.
-	(__SETXID_2): Likewise.
-	(__SETXID_3): Likewise.
-
-2011-01-13  Ulrich Drepper  <drepper@gmail.com>
-
-	[BZ #10484]
-	* Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff.
-	* alloca_cutoff.c: Add libc_hidden_def.
-
-2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
-
-	[BZ #12113]
-	* sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Changed to 32.
-	* sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Defined with alignment
-	of "struct pthread".
-
-2010-09-21  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/pthread/pthread.h (pthread_cleanup_push)
-	[!__EXCEPTIONS]: Mangle local variable not_first_call.
-	(pthread_cleanup_push_defer_np): Likewise.
-
-2010-09-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/allocalim.h (__libc_use_alloca): Expect blocks are
-	small.
-
-2010-08-10  Dinakar Guniguntala  <dino@in.ibm.com>
-	    Stefan Hajnoczi  <stefanha@linux.vnet.ibm.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: If
-	FUTEX_WAKE_OP fails make sure to call FUTEX_WAKE instead.
-
-2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/i386/Makefile: New file.
-
-2010-05-01  Alan Modra  <amodra@gmail.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
-	(PSEUDO): Use correct cr save.  Don't use wrong parm save area
-	to save temps.  Correct cfi for possible later frame manipulation.
-	(DOCARGS_1, UNDOCARGS_1): Use the correct parm save area.
-	(DOCARGS_2, UNDOCARGS_2, DOCARGS_3, UNDOCARGS_3): Likewise.
-	(DOCARGS_4, UNDOCARGS_4, DOCARGS_5, UNDOCARGS_5): Likewise.
-	(DOCARGS_6, UNDOCARGS_6): Likewise.
-	(CENABLE, CDISABLE): Add nops for non-shared calls.
-
-2010-07-06  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np):
-	Fix type mismatch.
-
-2010-07-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-abstime.c (do_test): Some more cleanups
-
-2010-07-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-abstime.c: Correct testing and add test for sem_timedwait.
-
-2010-07-01  Andreas Schwab  <schwab@redhat.com>
-	    Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-abstime.
-	* tst-abstime.c: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(__lll_timedlock_wait): Check for timestamp before the Epoch.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-	(__lll_timedlock_wait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
-	(__lll_robust_timedlock_wait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
-	(pthread_rwlock_timedrdlock): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
-	(pthread_rwlock_timedwrlock): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
-	Likewise.
-
-2010-07-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tst-_res1): Add tst-_res1mod1 to dependency list.
-
-2010-06-01  Takashi Yoshii  <takashi.yoshii.zj@renesas.com>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Fix incorrect
-	location of ifndef __ASSUME_FUTEX_CLOCK_REALTIME.
-
-2010-04-09  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #11390]
-	* sysdeps/unix/sysv/linux/pthread_getname.c: New file.
-	* sysdeps/unix/sysv/linux/pthread_setname.c: New file.
-	* nptl/sysdeps/pthread/pthread.h: Declare pthread_getname and
-	pthread_setname.
-	* Makefile (libpthread-routines): Add pthread_getname and
-	pthread_setname.
-	* Versions: Export pthread_getname and pthread_setname for GLIBC_2.12.
-
-2010-04-05  Thomas Schwinge  <thomas@schwinge.name>
-
-	* sysdeps/pthread/unwind-resume.c: Moved to main tree sysdeps/gnu/.
-	* sysdeps/pthread/rt-unwind-resume.c: Likewise.
-	* sysdeps/pthread/Makefile: Remove csu section and rt section's
-	unwind-resume bits, now in main tree sysdeps/gnu/Makefile instead.
-
-2010-03-23  Luis Machado  <luisgpm@br.ibm.com>
-
-	* pthread_cond_timedwait.c: Add check for
-	HAVE_CLOCK_GETTIME_VSYSCALL to use VDSO whenever possible.
-	(pthread_cond_timedwait): Use INTERNAL_VSYSCALL instead of
-	INTERNAL_SYSCALL.
-
-2010-03-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_create.c (__pthread_create_2_1): If priorities are incorrect
-	and the call fails wake eventually waiting setxid threads.  Don't free
-	stack here if we try starting a thread.
-	* sysdeps/pthread/createthread.c (do_clone): Only wake setxid waiter
-	if the clone call failed.
-
-2010-03-08  Andreas Schwab  <schwab@redhat.com>
-
-	* pthread_create.c (__pthread_create_2_1): Don't set setxid_futex.
-	* allocatestack.c (get_cached_stack): Set setxid_futex.
-	(allocate_stack): Likewise.
-
-2010-03-05  Andreas Schwab  <schwab@redhat.com>
-	    Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (setxid_mark_thread): Delay handling of thread if
-	it is creating a thread or it is just being created.
-	* pthread_create.c (start_thread): Wake setxid thread if it is
-	waiting.
-	(__pthread_create_2_1): Initialize setxid_futex.
-	* sysdeps/pthread/createthread.c (do_clone): Wake setxid thread if it
-	is waiting.
-
-2010-01-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
-	Fix unwind info.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-
-2010-01-15  Michal Schmidt  <mschmidt@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
-	Fix pthread_cond_timedwait with requeue-PI.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
-	Fix pthread_cond_wait with requeue-PI.
-
-2010-01-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* Versions: Add pthread_mutex_consistent, pthread_mutexattr_getrobust,
-	and pthread_mutexattr_setrobust for GLIBC_2.12.
-	* pthread_mutex_consistent.c: Define alias pthread_mutex_consistent.
-	* pthread_mutexattr_getrobust.c: Define alias
-	pthread_mutexattr_getrobust.
-	* pthread_mutexattr_setrobust.c: Define alias
-	pthread_mutexattr_setrobust.
-
-2010-01-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Cleanup.  Fix up for XPG7.
-
-2010-01-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Fix pthread_mutex_consistent declaration.
-
-2009-12-18  Thomas Schwinge  <thomas@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c (_init): Don't
-	call __gmon_start__.
-	* sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c (_init): Likewise.
-
-2009-12-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_rwlock_init.c (__pthread_rwlock_init): Simplify code by
-	using memset.
-
-2009-12-01  Dinakar Guniguntala  <dino@in.ibm.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.h: Define
-	FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: If mutex
-	is a non robust PI mutex, then use FUTEX_CMP_REQUEUE_PI.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: If mutex
-	is a non robust PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-
-2009-12-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
-	Don't update nwaiters after invalid timeout is recognized.
-
-2009-11-27  Thomas Schwinge  <thomas@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/sh/pt-initfini.c (_init): Don't call
-	__gmon_start__.
-
-2009-11-27  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Reload
-	THREAD_SELF->cancelhandling after returning from futex call.
-
-2009-11-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-sem13.c: New file.
-	* Makefile (tests): Add tst-sem13.
-
-2009-11-22  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: # include "i686/dl-sysdep.h"
-	instead of recapitulating its contents.
-
-2009-11-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Minor
-	optimizations and cleanups.
-
-2009-11-18  Dinakar Guniguntala  <dino@in.ibm.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
-	Remove redundant code. Fix cfi offsets.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
-	Fix cfi offsets.
-
-2009-11-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Minimally
-	reduce size of unwind info.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Convert to use
-	cfi directives.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	Based on a patch by Dinakar Guniguntala <dino@in.ibm.com>.
-
-2009-11-03  Andreas Schwab  <schwab@linux-m68k.org>
-
-	[BZ #4457]
-	* sysdeps/pthread/unwind-resume.c: Include <libgcc_s.h> and use
-	LIBGCC_S_SO.
-	* sysdeps/pthread/unwind-forcedunwind.c: Likewise.
-
-2009-10-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-sem11.c (main): Rewrite to avoid aliasing problems.
-
-	[BZ #3270]
-	* allocatestack.c (__nptl_setxid): Perform the operation in multiple
-	steps to avoid races with creation and terminations.
-	* nptl-init.c (sighandler_setxid): Adjust.
-	Patch by Daniel Jacobowitz.
-
-2009-09-07  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h (BP_SYM): Remove space before paren.
-
-2009-09-02  Suzuki K P  <suzuki@in.ibm.com>
-	    Joseph Myers  <joseph@codesourcery.com>
-
-	[BZ #7094]
-	* sysdeps/unix/sysv/linux/timer_create.c (timer_create):
-	Initialize the sigev_notify field for newly created timer to make sure
-	the timer gets deleted from the active timer's list upon timer_delete.
-
-2009-08-27  Andrew Stubbs  <ams@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
-	Correct a logic error.
-
-2009-08-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/tls.h (RTLD_ENABLE_FOREIGN_CALL): Store old value
-	of the field in local variables.
-	(RTLD_FINALIZE_FOREIGN_CALL): Restore rtld_must_xmm_save from local
-	variable and don't unconditionally clear it.
-
-2009-08-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_create.c (start_thread): Hint to the kernel that memory for
-	the stack can be reused.  We do not mark all the memory.  The part
-	still in use and some reserve are kept.
-
-2009-08-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Clean up namespace.
-
-2009-08-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Add CFI
-	directives.
-
-2009-08-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Add CFI
-	directives.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-
-2009-08-10  Andreas Schwab  <schwab@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
-	(__pthread_cond_signal): Don't clobber register used for syscall
-	number.
-
-2009-08-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
-	Optimize code path used when FUTEX_CLOCK_REALTIME is supported.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__pthread_cond_wait): Optimize by avoiding use of callee-safe
-	register.
-
-2009-08-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Little optimizations
-	enabled by the special *_asynccancel functions.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: Include lowlevellock.h.
-
-2009-08-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/cancellation.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Optimize
-	since we can assume the special __*_{en,dis}able_asynccancel
-	functions.
-	(PUSHARGS_*, POPARGS_*, SAVESTK_*, RESTSTK_*): Removed.
-	* sysdeps/x86_64/tcb-offsets.sym: Add cancellation-related bits
-	and PTHREAD_CANCELED.
-
-2009-07-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h: Better definition of *_BITMASK macros for cancellation.
-
-2009-07-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Define explicitly to 32.
-
-	* sysdeps/x86_64/tls.h (tcbhead_t): Add room for SSE registers the
-	dynamic linker might have to save.
-	Define RTLD_CHECK_FOREIGN_CALL, RTLD_ENABLE_FOREIGN_CALL,
-	RTLD_PREPARE_FOREIGN_CALL, and RTLD_FINALIZE_FOREIGN_CALL.  Pretty
-	printing.
-
-	* sysdeps/x86_64/tcb-offsets.sym: Add RTLD_SAVESPACE_SSE.
-
-2009-07-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_mutex_lock.c [NO_INCR] (__pthread_mutex_cond_lock_adjust):
-	New function.
-	* pthreadP.h: Declare __pthread_mutex_cond_lock_adjust.
-	* sysdeps/unix/sysv/linux/pthread-pi-defines.sym: Add ROBUST_BIT.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Don't use
-	requeue_pi for robust mutexes.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	Don't only skip __pthread_mutex_cond_lock.  Call instead
-	__pthread_mutex_cond_lock_adjust.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Minor
-	optimization of PI mutex handling.
-
-2009-07-27  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #10418]
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_full): Use _rel
-	instead of of _acq variants of cmpxchg.
-
-2009-07-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/configure.in: New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix error
-	path when not using absolute timeout futex.
-
-2009-07-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Minor
-	optimizations of last changes.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-
-2009-07-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
-	FUTEX_WAIT_REQUEUE_PI and FUTEX_CMP_REQUEUE_PI.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: If mutex
-	is a PI mutex, then use FUTEX_CMP_REQUEUE_PI.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: If mutex
-	is a PI mutex, then use FUTEX_WAIT_REQUEUE_PI.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Make more robust.
-
-2009-07-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
-	(__lll_robust_timedlock_wait): If possible use FUTEX_WAIT_BITSET to
-	directly use absolute timeout.
-
-	* tst-sem5.c (do_test): Add test for premature timeout.
-	* Makefile: Linu tst-sem5 with librt.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
-	(pthread_rwlock_timedwrlock): If possible use FUTEX_WAIT_BITSET to
-	directly use absolute timeout.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
-	(pthread_rwlock_timedrdlock): Likewise.
-
-	* tst-cond11.c (run_test): Add test to check that the timeout is
-	long enough.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__pthread_cond_timedwait): If possible use FUTEX_WAIT_BITSET to
-	directly use absolute timeout.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__pthread_cond_wait): Convert to using exception handler instead of
-	registered unwind buffer.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-
-2009-07-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
-	If possible use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME to directly
-	use absolute timeout.
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Optimize
-	handling of uncontested semaphore.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__condvar_cleanup): Rewrite to use cfi directives instead of
-	hand-coded unwind tables.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S (__pthread_once):
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
-	Likewise.
-
-2009-06-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (libpthread-routines): Add pthread_sigqueue.
-	* Versions: Add pthread_sigqueue for GLIBC_2.11.
-	* sysdeps/pthread/bits/sigthread.h: Declare pthread_sigqueue.
-	* sysdeps/unix/sysv/linux/pthread_sigqueue.c: New file.
-
-2009-06-11  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #10262]
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(LOAD_FUTEX_WAIT_ABS): Fix futex parameter in case private futexes
-	cannot be assumed.
-	Patch by Bryan Kadzban <bz-glibc@kdzbn.homelinux.net>.
-
-2009-05-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* libc-cancellation.c: Move __libc_cleanup_routine to...
-	* libc-cleanup.c: ...here.  New file.
-	* Makefile (routines): Add libc-cleanup.
-
-	* cancellation.c (__pthread_disable_asynccancel): Remove unnecessary
-	test.
-	* libc-cancellation.c: Use <nptl/cancellation.c: to define the code.
-	* sysdeps/pthread/librt-cancellation.c: Likewise.
-
-	[BZ #9924]
-	* nptl-init.c: Renamed from init.c.
-	* Makefile: Change all occurences of init.c to nptl-init.c.
-
-2009-05-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* cancellation.c (__pthread_disable_asynccancel): Correct the bits
-	to test when deciding on the delay.
-	* libc-cancellation.c (__libc_disable_asynccancel): Likewise.
-	* pthread_cancel.c: Close race between deciding on sending a signal
-	and setting the CANCELING_BIT bit.
-
-	* cancellation.c (__pthread_disable_asynccancel): Don't return if
-	thread is canceled.
-	* libc-cancellation.c (__libc_disable_asynccancel): Likewise.
-
-2009-04-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* cancellation.c (__pthread_disable_asynccancel): Use THREAD_ATOMIC_AND
-	is available.
-	* libc-cancellation.c (__libc_disable_asynccancel): Likewise.
-	* sysdeps/x86_64/tls.h: Define THREAD_ATOMIC_AND.
-	* sysdeps/i386/tls.h: Likewise.
-	(tcbhead_t): Add __private_tm member.
-
-2009-04-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* sem_open.c (sem_open): Rewrite initialization of initsem to
-	avoid warnings.
-
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
-	Avoid warning by using may_alias attribute on ptrhack.
-
-2009-04-22  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #10090]
-	* pthread_attr_setschedparam.c (__pthread_attr_setschedparam):
-	Check policy and priority for validity.
-	Patch mostly by Zhang Xiliang <zhangxiliang@cn.fujitsu.com>.
-
-2009-03-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Change to use cfi directives instead of
-	hand-coded unwind sections.
-
-2009-03-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (nptl_freeres): Compile only for SHARED.
-
-2009-03-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Define
-	FUTEX_WAIT_BITSET, FUTEX_WAKE_BITSET, FUTEX_CLOCK_REALTIME and
-	FUTEX_BITSET_MATCH_ANY.
-
-2009-02-27  Roland McGrath  <roland@redhat.com>
-
-	* init.c (__nptl_initial_report_events): Mark __attribute_used__.
-	* pthread_create.c (__nptl_threads_events, __nptl_last_event): Likewise.
-
-2009-02-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
-	_POSIX_THREAD_ROBUST_PRIO_INHERIT and
-	_POSIX_THREAD_ROBUST_PRIO_PROTECT.  Reset value of macros from
-	200112L to 200809L.
-
-2009-02-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: The robust mutex functions are in
-	POSIX 2008.
-
-2009-02-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_BITS_POSIX_OPT_H):
-	Unify name of include protector macro.
-
-2009-02-14  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
-	LOAD_FUTEX_WAIT_ABS even if (FUTEX_WAIT == 0).
-
-2009-01-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/unwind-forcedunwind.c: Encrypt all function
-	pointer variables.
-
-	* allocatestack.c (__free_stacks): Renamed from free_stacks.
-	(__free_stack_cache): Removed.  Change callers to call __free_stacks.
-	* init.c (nptl_freeres): New function.
-	(pthread_functions): Initialize ptr_freeres to nptl_freeres.
-	* pthreadP.h: Don't declare __free_stack_cache.  Declare __free_stacks.
-	* sysdeps/pthread/unwind-forcedunwind.c (libgcc_s_handle): New
-	variable.
-	(pthread_cancel_init): Depend in libgcc_s_handle for decision to
-	load DSO.  Assign last.
-	(__unwind_freeres): New function.
-
-	* allocatestack.c (__reclaim_stacks): Reset in_flight_stack later
-	for better debugging.  No need to use stack_list_add here.
-
-2009-01-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S
-	(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
-	instead of computing relative timeout.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
-	FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
-
-2009-01-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_mutex_lock.c (__pthread_mutex_lock): Remove unused label out.
-
-2009-01-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/list.h (list_add): Initialize new element first.
-	(list_add_tail): Removed.
-
-2009-01-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* (in_flight_stack): New variable.
-	(stack_list_del): New function.  Use instead of list_del.
-	(stack_list_add): New function.  Use instead of list_add when adding to
-	stack_cache and stack_used lists.
-	(__reclaim_stacks): Complete operations on stack_cache and stack_used lists
-	when the fork call interrupted another thread.
-
-2009-01-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Optimize test
-	FUTEX_CLOCK_REALTIME a bit.
-
-2009-01-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Cheat a bit by
-	only passing five parameters to FUTEX_WAIT_BITSET call.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(__lll_timedlock_wait): Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME
-	instead of computing relative timeout.
-
-2009-01-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Check for
-	FUTEX_CLOCK_REALTIME flag.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
-	Use FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME instead of computing
-	relative timeout.
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
-	FUTEX_CLOCK_REALTIME and FUTEX_BITSET_MATCH_ANY.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-
-2008-12-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h (pthread_cleanup_pop): Use { } as empty
-	loop body instead of ; to avoid gcc warnings.
-	(pthread_cleanup_pop_restore_np): Likewise.
-	Patch by Caolán McNamara <caolanm@redhat.com>.
-
-2008-12-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_mutex_lock.c (__pthread_mutex_lock): Handle only the
-	fast path here, for robust/PI/PP mutexes call
-	__pthread_mutex_lock_full.  Don't use switch, instead use a series
-	of ifs according to their probability.
-	(__pthread_mutex_lock_full): New function.
-	* pthread_mutex_unlock.c: Include assert.h.
-	(__pthread_mutex_unlock_usercnt): Handle only the
-	fast path here, for robust/PI/PP mutexes call
-	__pthread_mutex_unlock_full.  Don't use switch, instead use a series
-	of ifs according to their probability.
-	(__pthread_mutex_unlock_full): New function.
-	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c
-	(__pthread_mutex_lock_full): Define.
-
-2008-12-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/tls.h (tcbhead_t): Add fields reserved for TM
-	implementation.  Add necessary padding and.
-	* descr.h (struct pthread): Increase padding for tcbhead_t to 24
-	words.
-
-2008-12-04  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define FUTEX_WAIT_BITSET
-	and FUTEX_WAKE_BITSET.
-
-2008-12-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_WAIT_BITSET
-	and FUTEX_WAKE_BITSET.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-
-2008-11-25  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/alpha, sysdeps/unix/sysv/linux/alpha:
-	Subdirectories moved to ports repository as
-	sysdeps/.../nptl subdirectories.
-
-2008-11-12  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #7008]
-	* pthread_condattr_setclock.c (pthread_condattr_setclock): Fix masking
-	of old value.
-	* pthread_cond_init.c (__pthread_cond_init): Fix
-	cond->__data.__nwaiters initialization.
-	* Makefile (tests): Add tst-cond23.
-	* tst-cond23.c: New test.
-
-2008-11-07  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/malloc-machine.h (MALLOC): Adjust __libc_tsd_define
-	arguments.
-	(tsd_setspecific, tsd_getspecific): Adjust __libc_tsd_{set,get}
-	arguments.
-
-2008-11-01  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #6955]
-	* pthread_mutex_lock.c: Add support for private PI mutexes.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	Patch mostly by Ben Jackson <ben@ben.com>.
-
-2008-10-31  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #6843]
-	* sysdeps/pthread/gai_misc.h (__gai_create_helper_thread):
-	Increase stack size for helper thread.
-
-2008-10-06  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* sysdeps/s390/tls.h (THREAD_SET_STACK_GUARD): Add empty inline
-	assembly with a clobber list for access registers a0 and a1.
-
-2008-09-11  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Add memory barrier
-	to force runp->refcntr to be read from memory.
-
-2008-09-08  Richard Guenther  <rguenther@suse.de>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
-	lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
-	lll_timedlock, lll_robust_timedlock, lll_unlock,
-	lll_robust_unlock): Promote private to int.
-
-2008-08-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/pthreaddef.h: Remove ARCH_MAP_FLAGS and
-	ARCH_RETRY_MMAP definitions.
-	* allocatestack.c: Remove definition of ARCH_MAP_FLAGS.
-	Define MAP_STACK when not defined.
-	(allocate_stack): Use MAP_STACK instead of ARCH_MAP_FLAGS.  Remove
-	handling of ARCH_RETRY_MMAP.
-
-2008-07-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-align2.c (f): Print message that f is reached.
-
-2008-04-28  Hiroki Kaminaga  <kaminaga@sm.sony.co.jp>
-
-	[BZ #6740]
-	* sysdeps/powerpc/tcb-offsets.sym (PRIVATE_FUTEX_OFFSET): Guard symbol
-	definition with #ifndef __ASSUME_PRIVATE_FUTEX.
-
-2008-07-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/mq_notify.c (init_mq_netlink): Use
-	SOCK_CLOEXEC if possible.
-
-2008-05-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-rwlock2a.
-	* tst-rwlock2.c: Use TYPE macro to decide what rwlock type to use.
-	* tst-rwlock2a.c: New file.
-
-2008-06-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Remove inadvertant checkin.
-
-2008-05-17  Samuel Thibault  <samuel.thibault@ens-lyon.org>
-
-	* sysdeps/pthread/pthread.h: Fix typo in comment.
-
-2008-05-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/createthread.c (do_clone): Pass accurate length
-	of CPU set to the kernel.
-
-2008-05-23  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Add
-	cfi directives.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
-
-2008-05-22  Paul Pluzhnikov  <ppluzhnikov@google.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S: Add
-	cfi directives.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Likewise.
-
-2008-05-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-typesizes.c: Explicitly check __SIZEOF_PTHREAD_* constants.
-
-2008-05-20  Jakub Jelinek  <jakub@redhat.com>
-
-	David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/sparc64/Makefile: New file.
-
-2008-05-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Access
-	__pshared correctly.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
-	Likewise.
-	Reported by Clemens Kolbitsch <clemens.kol@gmx.at>.
-
-2008-04-14  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
-	(__old_sem_wait): Fix argument to lll_futex_wait().
-
-2007-11-26  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* pthread_create.c: Require pthread_mutex_trylock and
-	pthread_key_delete for libgcc.
-
-2008-04-08  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #6020]
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h
-	(lll_futex_wake_unlock): Add private argument to the pre-v9 macro.
-	Patch by Sunil Amitkumar Janki <devel.sjanki@gmail.com>.
-
-2008-03-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine ARG_MAX if
-	<linux/limits.h> has defined it.
-	* sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
-
-2008-03-18  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Use __ASSEMBLER__ instead
-	of ASSEMBLER.
-	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Likewise.
-
-2008-03-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
-	HAVE_DL_DISCOVER_OSVERSION.
-	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: Likewise.
-
-2008-03-07  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #5778]
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Change
-	_POSIX_CHOWN_RESTRICTED value to zero.
-
-2008-01-31  Roland McGrath  <roland@redhat.com>
-
-	* Makefile (omit-deps): Variable removed.
-
-2008-01-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S (sem_post): Avoid
-	unnecessary addr32 prefix.
-
-2008-01-29  Roland McGrath  <roland@redhat.com>
-
-	* Makeconfig (ptw-CPPFLAGS, sysd-rules-patterns): New variables.
-
-2008-01-22  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/sem_post.S: Don't overflow value field.
-
-2008-01-21  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XADD): Use
-	a scratch register.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S
-	(__lll_lock_wait_private): Fix typo.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
-	(pthread_barrier_wait): Likewise.  Adjust XADD use.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
-	Adjust XADD use.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
-	(pthread_rwlock_timedrdlock): Return correct return value.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
-	(pthread_rwlock_timedwrlock): Likewise.
-
-2008-01-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-eintr2.c (do_test): make sure that if mutex_lock in main
-	thread returns the program exits with an error code.
-
-2008-01-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread-errnos.sym: Add EOVERFLOW.
-	* sysdeps/unix/sysv/linux/structsem.sym: Add SEM_VALUE_MAX.
-	* sysdeps/unix/sysv/linux/sem_post.c: Don't overflow value field.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
-
-2007-12-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/pthreaddef.h (ARCH_RETRY_MMAP): Take additional
-	parameter.  Passed it as permission to mmap.
-	* allocatestack.c (allocate_stack): Pass prot as second parameter
-	to ARCH_RETRY_MMAP.
-
-2007-12-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-basic7.c: Allocate memory for the stack.
-
-	[BZ #5465]
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S [!SHARED]
-	(__pthread_cond_timedwait): Don't use VDSO.
-	Patch by Michal Januszewski.
-
-2007-12-07  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #5455]
-	* sysdeps/pthread/pthread.h [!__EXCEPTIONS] (pthread_cleanup_pop):
-	Allow label before pthread_cleanup_pop.
-	(pthread_cleanup_pop_restore_np): Likewise.
-
-2007-12-04  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_timedlock_wait):
-	Store 2 before returning ETIMEDOUT.
-
-2007-11-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S (__lll_timedlock_wait):
-	Store 2 before returning ETIMEDOUT.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise
-	* sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
-	(__lll_lock_wait_private): Optimize.
-	(__lll_lock_wait): Likewise.
-
-2007-11-20  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread.h (pthread_cleanup_push,
-	pthread_cleanup_push_defer_np): Add extra (void *) cast to shut up
-	g++ 4.1 and 4.2 -Wstrict-aliasing warnings.
-
-2007-11-08  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #5240]
-	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
-	If we time out, try one last time to lock the futex to avoid
-	losing a wakeup signal.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
-
-	[BZ #5245]
-	* sysdeps/pthread/createthread.c (do_clone): Translate clone error
-	if necessary.
-
-2007-11-07  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #5245]
-	* allocatestack.c (allocate_stack): Change ENOMEM error in case
-	mmap failed to EAGAIN.
-	* Makefile (tests): Add tst-basic7.
-	* tst-basic7.c: New file.
-
-2007-11-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
-	Use __linkin_atfork.
-
-2007-11-03  Mike Frysinger  <vapier@gentoo.org>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (LOAD_FUTEX_WAIT): Add
-	missing line continuations.
-	* sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S (LOAD_FUTEX_WAIT,
-	LOAD_FUTEX_WAKE): Likewise.  Also add missing 3rd parameter.
-
-2007-10-28  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #5220]
-	* sysdeps/unix/sysv/linux/kernel-posix-timers.h: Declare
-	__active_timer_sigev_thread and __active_timer_sigev_thread_lock.
-	(struct timer): Add next element.
-	* sysdeps/unix/sysv/linux/timer_create.c: For SIGEV_THREAD timers,
-	enqueue timer structure into __active_timer_sigev_thread list.
-	* sysdeps/unix/sysv/linux/timer_delete.c: For SIGEV_THREAD timers,
-	remove timer struct from __active_timer_sigev_thread.
-	* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
-	Before using timer structure make sure it is still on the
-	__active_timer_sigev_thread list.  Keep lock until done.
-	Define __active_timer_sigev_thread and
-	__active_timer_sigev_thread_lock.
-
-2007-10-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/malloc-machine.h: Define ATFORK_MEM.
-	Redefine thread_atfork for use of ATFORK_MEM.
-	* sysdeps/unix/sysv/linux/fork.h: Define __linkin_atfork.
-	* sysdeps/unix/sysv/linux/register-atfork.c (__linkin_atfork): New
-	function.
-	* sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
-	Use atomic operation when removing first element of list.
-
-2007-10-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__old_sem_post): New
-	routine instead of an alias to __new_sem_post.
-
-2007-10-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* init.c (__pthread_initialize_minimal): Initialize word to appease
-	valgrind.
-
-2007-10-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_rwlock_init): Inside of
-	libc.so just clear NAME.
-	(__libc_rwlock_fini): Nop inside of libc.so.
-	* tst-initializers1.c (main): Test if PTHREAD_RWLOCK_INITIALIZER is
-	all zeros.
-
-2007-09-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__pthread_cond_wait): Fix unlocking of internal lock after mutex
-	unlocking failed.
-	Patch by Luca Barbieri <luca.barbieri@gmail.com>.
-
-2007-08-21  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #4938]
-	* allocatestack.c (__reclaim_stacks): Clear the TSD in the
-	reclaimed stack if necessary.
-	* Makefile (tests): Add tst-tsd6.
-	* tst-tsd6.c: New file.
-
-2007-08-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_dead):
-	Add private argument.
-
-2007-08-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Use clock_gettime from VDSO if possible.
-
-2007-08-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h
-	(__lll_robust_timedlock): Pass private as last argument to
-	__lll_robust_timedlock_wait.
-	(__lll_unlock): Fix a pasto.
-
-2007-08-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/internaltypes.h (sparc_new_sem,
-	sparc_old_sem): New structs.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
-	(__sem_wait_cleanup): New function.
-	(__new_sem_wait): Use sparc_new_sem structure.  Bump and afterwards
-	decrease nwaiters.  Register __sem_wait_cleanup as cleanup handler.
-	Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
-	lll_futex_wait.
-	(__old_sem_wait): New function.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: Include
-	nptl/sysdeps/unix/sysv/linux/sparc version.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c:
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
-	(__new_sem_trywait): Use sparc_old_sem structure.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
-	(sem_timedwait): Use sparc_new_sem structure.  Bump and afterwards
-	decrease nwaiters.  Register __sem_wait_cleanup as cleanup handler.
-	Pass isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
-	lll_futex_timed_wait.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c (__new_sem_post):
-	Use sparc_new_sem structure.  Only wake if nwaiters > 0.  Pass
-	isem->private ^ FUTEX_PRIVATE_FLAG as last argument to
-	lll_futex_wake.
-	(__old_sem_post): New function.
-	* sysdeps/unix/sysv/linux/sparc/sem_wait.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sem_init.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sem_timedwait.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sem_post.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: Remove.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: Remove.
-
-2007-08-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
-	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
-	Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
-	* sysdeps/unix/sysv/linux/shpthread_cond_signal.S
-	(__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
-	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
-	Use FUTEX_WAKE_OP.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
-	kernel-features.h and tcb-offsets.h.
-	(__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
-	lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
-	process private.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
-	tcb-offsets.h.
-	(__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE
-	to lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
-	process private.
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Use #ifdef
-	__ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-
-2007-08-14  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevellock.c: Comment fix.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
-	(__lll_timedwait_tid): Pass LLL_SHARED as 4th argument to
-	lll_futex_timed_wait.
-
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (__lll_unlock,
-	__lll_robust_unlock): Rewrite as macros instead of inline functions.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_unlock,
-	__lll_robust_unlock, __lll_wait_tid): Likewise.
-
-2007-08-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
-	Fix a pasto.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
-	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
-	Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
-	(__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
-	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Include
-	kernel-features.h.
-	(__pthread_cond_wait, __condvar_w_cleanup): Pass LLL_PRIVATE to
-	lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
-	process private.  Switch DW_CFA_advance_loc1 and some
-	DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait, __condvar_tw_cleanup): Pass LLL_PRIVATE to
-	lll_* and or FUTEX_PRIVATE_FLAG into SYS_futex op if cv is
-	process private.  Switch DW_CFA_advance_loc{1,2} and some
-	DW_CFA_advance_loc .eh_frame opcodes to DW_CFA_advance_loc4.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use
-	#ifdef __ASSUME_PRIVATE_FUTEX instead of #if __ASSUME_PRIVATE_FUTEX.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Compare %r8 instead of
-	dep_mutex-cond_*(%rdi) with $-1.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
-	(__pthread_cond_signal): Xor FUTEX_WAKE_OP with FUTEX_WAKE instead
-	of oring.
-
-2007-08-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i786/Implies: New file.
-
-2007-08-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* allocatestack.c: Include kernel-features.h.
-	* pthread_create.c: Likewise.
-	* pthread_mutex_init.c: Likewise.
-	* init.c: Likewise.
-	* pthread_cond_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-
-2007-08-12  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
-	[__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
-	byte elements.  One of them is the new __shared element.
-	[__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
-	adjust names of other padding elements.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
-	[__WORDSIZE=32] (pthread_rwlock_t): Split __flags element into four
-	byte elements.  One of them is the new __shared element.
-	[__WORDSIZE=64] (pthread_rwlock_t): Renamed __pad1 element to __shared,
-	adjust names of other padding elements.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_rwlock_t):
-	Renamed __pad1 element to __shared, adjust names of other padding
-	elements.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
-	(pthread_rwlock_t): Likewise.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock): Fix a
-	typo.
-
-2007-08-09  Anton Blanchard  <anton@samba.org>
-
-	* sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c: New file.
-
-2007-08-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Include
-	<kernel-features.h>.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-
-2007-08-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h (PTHREAD_ROBUST_MUTEX_PSHARED): Define.
-	* pthread_mutex_lock.c: Use it instead of PTHREAD_MUTEX_PSHARED when
-	dealing with robust mutexes.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
-
-2007-08-06  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthreadP.h (PTHREAD_MUTEX_PSHARED_BIT): Define.
-	(PTHREAD_MUTEX_TYPE): Mask __kind with 127.
-	(PTHREAD_MUTEX_PSHARED): Define.
-	* pthread_mutex_init.c (__pthread_mutex_init): Set
-	PTHREAD_MUTEX_PSHARED_BIT for pshared or robust
-	mutexes.
-	* pthread_mutex_lock.c (LLL_MUTEX_LOCK): Take mutex as argument
-	instead of its __data.__lock field, pass PTHREAD_MUTEX_PSHARED
-	as second argument to lll_lock.
-	(LLL_MUTEX_TRYLOCK): Take mutex as argument
-	instead of its __data.__lock field.
-	(LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
-	__data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
-	to lll_robust_lock.
-	(__pthread_mutex_lock): Update LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
-	LLL_ROBUST_MUTEX_LOCK users, use PTHREAD_MUTEX_TYPE (mutex)
-	instead of mutex->__data.__kind directly, pass
-	PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock and lll_futex_wait.
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Use
-	PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
-	directly, pass PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock.
-	(pthread_mutex_timedlock): Pass PTHREAD_MUTEX_PSHARED (mutex)
-	to lll_timedlock, lll_robust_timedlock, lll_unlock and
-	lll_futex_timed_wait.  Use PTHREAD_MUTEX_TYPE (mutex) instead
-	of mutex->__data.__kind directly.
-	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Pass
-	PTHREAD_MUTEX_PSHARED (mutex) to lll_timedlock,
-	lll_robust_timedlock, lll_unlock and lll_futex_timed_wait.  Use
-	PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind directly.
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Pass
-	PTHREAD_MUTEX_PSHARED (mutex) to lll_unlock, lll_robust_unlock
-	and lll_futex_wake.
-	* pthread_mutex_setprioceiling.c (pthread_mutex_setprioceiling): Pass
-	PTHREAD_MUTEX_PSHARED (mutex) to lll_futex_wait and lll_futex_wake.
-	Use PTHREAD_MUTEX_TYPE (mutex) instead of mutex->__data.__kind
-	directly.
-	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK):
-	Take mutex as argument instead of its __data.__lock field, pass
-	PTHREAD_MUTEX_PSHARED as second argument to lll_cond_lock.
-	(LLL_MUTEX_TRYLOCK): Take mutex as argument instead of its
-	__data.__lock field.
-	(LLL_ROBUST_MUTEX_LOCK): Take mutex as argument instead of its
-	__data.__lock field, pass PTHREAD_MUTEX_PSHARED as second argument
-	to lll_robust_cond_lock.
-	* pthread_cond_broadcast.c (__pthread_cond_broadcast): Add pshared
-	variable, pass it to lll_lock, lll_unlock, lll_futex_requeue and
-	lll_futex_wake.  Don't use lll_futex_requeue if dependent mutex
-	has PTHREAD_MUTEX_PSHARED_BIT bit set in its __data.__kind.
-	* pthread_cond_destroy.c (__pthread_cond_destroy): Add pshared
-	variable, pass it to lll_lock, lll_unlock, lll_futex_wake and
-	lll_futex_wait.
-	* pthread_cond_signal.c (__pthread_cond_signal): Add pshared
-	variable, pass it to lll_lock, lll_unlock, lll_futex_wake_unlock and
-	lll_futex_wake.
-	* pthread_cond_timedwait.c (__pthread_cond_wait): Add
-	pshared variable, pass it to lll_lock, lll_unlock,
-	lll_futex_timedwait and lll_futex_wake.
-	* pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait): Add
-	pshared variable, pass it to lll_lock, lll_unlock, lll_futex_wait
-	and lll_futex_wake.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_requeue,
-	lll_futex_wake_unlock): Add private argument, use __lll_private_flag
-	macro.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue,
-	lll_futex_wake_unlock): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_requeue):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_futex_requeue,
-	lll_futex_wake_unlock): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_requeue):
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue,
-	lll_futex_wake_unlock): Likewise.
-	(lll_futex_wake): Fix a typo.
-	* sysdeps/unix/sysv/linux/pthread-pi-defines.sym (PS_BIT): Add.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Pass LLL_PRIVATE to lll_* and or
-	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
-	Don't use FUTEX_CMP_REQUEUE if dep_mutex is not process private.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
-	(__pthread_cond_signal): Pass LLL_PRIVATE to lll_* and or
-	FUTEX_PRIVATE_FLAG into SYS_futex op if cv is process private.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
-	(__condvar_cleanup, __pthread_cond_wait): Likewise.
-
-2007-08-05  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
-	Don't use CGOTSETUP and CGOTRESTORE macros.
-	(CGOTSETUP, CGOTRESTORE): Remove.
-	<IS_IN_rtld> (CENABLE, CDISABLE): Don't use JUMPTARGET, branch to
-	@local symbol.
-
-2007-08-01  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Remove
-	definitions for private futexes.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Include
-	kernel-features.h and lowlevellock.h.  Use private futexes if
-	they are available.
-	(__lll_lock_wait_private, __lll_unlock_wake_private): New.
-	(__lll_mutex_lock_wait): Rename to
-	(__lll_lock_wait): ... this.  Don't compile in for libc.so.
-	(__lll_mutex_timedlock_wait): Rename to ...
-	(__lll_timedlock_wait): ... this.  Use __NR_gettimeofday.
-	Don't compile in for libc.so.
-	(__lll_mutex_unlock_wake): Rename to ...
-	(__lll_unlock_wake): ... this.  Don't compile in for libc.so.
-	(__lll_timedwait_tid): Use __NR_gettimeofday.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Allow including
-	the header from assembler.  Renamed all lll_mutex_* resp.
-	lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
-	Renamed all LLL_MUTEX_LOCK_* macros to LLL_LOCK_*.
-	(FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE):
-	Define.
-	(__lll_lock_wait_private): Add prototype.
-	(__lll_lock_wait, __lll_timedlock_wait, __lll_robust_lock_wait,
-	__lll_robust_timedlock_wait, __lll_unlock_wake_private,
-	__lll_unlock_wake): Likewise.
-	(lll_lock): Add private argument.  Call __lll_lock_wait_private
-	if private is constant LLL_PRIVATE.
-	(lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
-	lll_timedlock, lll_robust_timedlock): Add private argument.
-	(lll_unlock): Add private argument.  Call __lll_unlock_wake_private
-	if private is constant LLL_PRIVATE.
-	(lll_robust_unlock, lll_robust_dead): Add private argument.
-	(lll_lock_t): Remove.
-	(__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
-	__lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
-	lll_cond_wake, lll_cond_broadcast): Remove.
-	* sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: Include
-	kernel-features.h and lowlevellock.h.
-	(SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
-	(LOAD_FUTEX_WAIT): Define.
-	(__lll_robust_mutex_lock_wait): Rename to ...
-	(__lll_robust_lock_wait): ... this.  Add private argument.
-	Use LOAD_FUTEX_WAIT macro.
-	(__lll_robust_mutex_timedlock_wait): Rename to ...
-	(__lll_robust_timedlock_wait): ... this.    Add private argument.
-	Use __NR_gettimeofday.  Use LOAD_FUTEX_WAIT macro.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Include
-	lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
-	(pthread_barrier_wait): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Include
-	lowlevellock.h and pthread-errnos.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
-	FUTEX_CMP_REQUEUE, EINVAL): Remove.
-	(__pthread_cond_broadcast): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Include
-	lowlevellock.h and pthread-errnos.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE, EINVAL): Remove.
-	(__pthread_cond_signal): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Include
-	lowlevellock.h.
-	(SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE): Remove.
-	(__pthread_cond_timedwait): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.  Use __NR_gettimeofday.
-	(__condvar_tw_cleanup): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Include
-	lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Remove.
-	(__pthread_cond_wait): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.
-	( __condvar_w_cleanup): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Include
-	lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
-	(__pthread_rwlock_rdlock): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Include
-	lowlevellock.h.
-	(SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
-	FUTEX_PRIVATE_FLAG): Remove.
-	(pthread_rwlock_timedrdlock): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.  Use __NR_gettimeofday.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Include
-	lowlevellock.h.
-	(SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
-	FUTEX_PRIVATE_FLAG): Remove.
-	(pthread_rwlock_timedwrlock): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.  Use __NR_gettimeofday.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Include
-	lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
-	(__pthread_rwlock_unlock): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Include
-	lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
-	(__pthread_rwlock_wrlock): Use __lll_{lock,unlock}_* instead of
-	__lll_mutex_{lock,unlock}_*.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S: Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Remove.
-	(__new_sem_post): Use standard initial exec code sequences.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Include
-	lowlevellock.h.
-	(SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE,
-	FUTEX_PRIVATE_FLAG): Remove.
-	(sem_timedwait): Use __NR_gettimeofday.  Use standard initial
-	exec code sequences.
-	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Include lowlevellock.h.
-	(__new_sem_trywait): Use standard initial exec code sequences.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Include lowlevellock.h.
-	(__new_sem_wait): Use standard initial exec code sequences.
-
-2007-07-31  Anton Blanchard  <anton@samba.org>
-
-	* sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
-	Use __asm __volatile (__lll_acq_instr ::: "memory") instead of
-	atomic_full_barrier.
-
-2007-07-31  Jakub Jelinek  <jakub@redhat.com>
-
-	* allocatestack.c (stack_cache_lock): Change type to int.
-	(get_cached_stack, allocate_stack, __deallocate_stack,
-	__make_stacks_executable, __find_thread_by_id, __nptl_setxid,
-	__pthread_init_static_tls, __wait_lookup_done): Add LLL_PRIVATE
-	as second argument to lll_lock and lll_unlock macros on
-	stack_cache_lock.
-	* pthread_create.c (__find_in_stack_list): Likewise.
-	(start_thread): Similarly with pd->lock.  Use lll_robust_dead
-	macro instead of lll_robust_mutex_dead, pass LLL_SHARED to it
-	as second argument.
-	* descr.h (struct pthread): Change lock and setxid_futex field
-	type to int.
-	* old_pthread_cond_broadcast.c (__pthread_cond_broadcast_2_0): Use
-	LLL_LOCK_INITIALIZER instead of LLL_MUTEX_LOCK_INITIALIZER.
-	* old_pthread_cond_signal.c (__pthread_cond_signal_2_0): Likewise.
-	* old_pthread_cond_timedwait.c (__pthread_cond_timedwait_2_0):
-	Likewise.
-	* old_pthread_cond_wait.c (__pthread_cond_wait_2_0): Likewise.
-	* pthread_cond_init.c (__pthread_cond_init): Likewise.
-	* pthreadP.h (__attr_list_lock): Change type to int.
-	* pthread_attr_init.c (__attr_list_lock): Likewise.
-	* pthread_barrier_destroy.c (pthread_barrier_destroy): Pass
-	ibarrier->private ^ FUTEX_PRIVATE_FLAG as second argument to
-	lll_{,un}lock.
-	* pthread_barrier_wait.c (pthread_barrier_wait): Likewise and
-	also for lll_futex_{wake,wait}.
-	* pthread_barrier_init.c (pthread_barrier_init): Make iattr
-	a pointer to const.
-	* pthread_cond_broadcast.c (__pthread_cond_broadcast): Pass
-	LLL_SHARED as second argument to lll_{,un}lock.
-	* pthread_cond_destroy.c (__pthread_cond_destroy): Likewise.
-	* pthread_cond_signal.c (__pthread_cond_singal): Likewise.
-	* pthread_cond_timedwait.c (__pthread_cond_timedwait): Likewise.
-	* pthread_cond_wait.c (__condvar_cleanup, __pthread_cond_wait):
-	Likewise.
-	* pthread_getattr_np.c (pthread_getattr_np): Add LLL_PRIVATE
-	as second argument to lll_{,un}lock macros on pd->lock.
-	* pthread_getschedparam.c (__pthread_getschedparam): Likewise.
-	* pthread_setschedparam.c (__pthread_setschedparam): Likewise.
-	* pthread_setschedprio.c (pthread_setschedprio): Likewise.
-	* tpp.c (__pthread_tpp_change_priority, __pthread_current_priority):
-	Likewise.
-	* sysdeps/pthread/createthread.c (do_clone, create_thread):
-	Likewise.
-	* pthread_once.c (once_lock): Change type to int.
-	(__pthread_once): Pass LLL_PRIVATE as second argument to
-	lll_{,un}lock macros on once_lock.
-	* pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Use
-	lll_{,un}lock macros instead of lll_mutex_{,un}lock, pass
-	rwlock->__data.__shared as second argument to them and similarly
-	for lll_futex_w*.
-	* pthread_rwlock_timedrdlock.c (pthread_rwlock_timedrdlock):
-	Likewise.
-	* pthread_rwlock_timedwrlock.c (pthread_rwlock_timedwrlock):
-	Likewise.
-	* pthread_rwlock_tryrdlock.c (__pthread_rwlock_tryrdlock): Likewise.
-	* pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Likewise.
-	* pthread_rwlock_unlock.c (__pthread_rwlock_unlock): Likewise.
-	* pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
-	* sem_close.c (sem_close): Pass LLL_PRIVATE as second argument
-	to lll_{,un}lock macros on __sem_mappings_lock.
-	* sem_open.c (check_add_mapping): Likewise.
-	(__sem_mappings_lock): Change type to int.
-	* semaphoreP.h (__sem_mappings_lock): Likewise.
-	* pthread_mutex_lock.c (LLL_MUTEX_LOCK, LLL_MUTEX_TRYLOCK,
-	LLL_ROBUST_MUTEX_LOCK): Use lll_{,try,robust_}lock macros
-	instead of lll_*mutex_*, pass LLL_SHARED as last
-	argument.
-	(__pthread_mutex_lock): Use lll_unlock instead of lll_mutex_unlock,
-	pass LLL_SHARED as last argument.
-	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c (LLL_MUTEX_LOCK,
-	LLL_MUTEX_TRYLOCK, LLL_ROBUST_MUTEX_LOCK): Use
-	lll_{cond_,cond_try,robust_cond}lock macros instead of lll_*mutex_*,
-	pass LLL_SHARED as last argument.
-	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
-	lll_{timed,try,robust_timed,un}lock instead of lll_*mutex*, pass
-	LLL_SHARED as last argument.
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Similarly.
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt):
-	Similarly.
-	* sysdeps/pthread/bits/libc-lock.h (__libc_lock_lock,
-	__libc_lock_lock_recursive, __libc_lock_unlock,
-	__libc_lock_unlock_recursive): Pass LLL_PRIVATE as second
-	argument to lll_{,un}lock.
-	* sysdeps/pthread/bits/stdio-lock.h (_IO_lock_lock,
-	_IO_lock_unlock): Likewise.
-	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Don't use
-	compound literal.
-	* sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
-	Pass LLL_PRIVATE as second argument to lll_{,un}lock macros on
-	__fork_lock.
-	* sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork,
-	free_mem): Likewise.
-	(__fork_lock): Change type to int.
-	* sysdeps/unix/sysv/linux/fork.h (__fork_lock): Likewise.
-	* sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Pass
-	isem->private ^ FUTEX_PRIVATE_FLAG as second argument to
-	lll_futex_wake.
-	* sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Likewise.
-	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait_private):
-	New function.
-	(__lll_lock_wait, __lll_timedlock_wait): Add private argument and
-	pass it through to lll_futex_*wait, only compile in when
-	IS_IN_libpthread.
-	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c
-	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): Add private
-	argument and pass it through to lll_futex_*wait.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Renamed all
-	lll_mutex_* resp. lll_robust_mutex_* macros to lll_* resp.
-	lll_robust_*.  Renamed all __lll_mutex_* resp. __lll_robust_mutex_*
-	inline functions to __lll_* resp. __lll_robust_*.
-	(LLL_MUTEX_LOCK_INITIALIZER): Remove.
-	(lll_mutex_dead): Add private argument.
-	(__lll_lock_wait_private): New prototype.
-	(__lll_lock_wait, __lll_robust_lock_wait, __lll_lock_timedwait,
-	__lll_robust_lock_timedwait): Add private argument to prototypes.
-	(__lll_lock): Add private argument, if it is constant LLL_PRIVATE,
-	call __lll_lock_wait_private, otherwise pass private to
-	__lll_lock_wait.
-	(__lll_robust_lock, __lll_cond_lock, __lll_timedlock,
-	__lll_robust_timedlock): Add private argument, pass it to
-	__lll_*wait functions.
-	(__lll_unlock): Add private argument, if it is constant LLL_PRIVATE,
-	call __lll_unlock_wake_private, otherwise pass private to
-	__lll_unlock_wake.
-	(__lll_robust_unlock): Add private argument, pass it to
-	__lll_robust_unlock_wake.
-	(lll_lock, lll_robust_lock, lll_cond_lock, lll_timedlock,
-	lll_robust_timedlock, lll_unlock, lll_robust_unlock): Add private
-	argument, pass it through to __lll_* inline function.
-	(__lll_mutex_unlock_force, lll_mutex_unlock_force): Remove.
-	(lll_lock_t): Remove.
-	(__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
-	__lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
-	lll_cond_wake, lll_cond_broadcast): Remove.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Allow including
-	the header from assembler.  Renamed all lll_mutex_* resp.
-	lll_robust_mutex_* macros to lll_* resp. lll_robust_*.
-	(LOCK, FUTEX_CMP_REQUEUE, FUTEX_WAKE_OP,
-	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
-	(LLL_MUTEX_LOCK_INITIALIZER, LLL_MUTEX_LOCK_INITIALIZER_LOCKED,
-	LLL_MUTEX_LOCK_INITIALIZER_WAITERS): Remove.
-	(__lll_mutex_lock_wait, __lll_mutex_timedlock_wait,
-	__lll_mutex_unlock_wake, __lll_lock_wait, __lll_unlock_wake):
-	Remove prototype.
-	(__lll_trylock_asm, __lll_lock_asm_start, __lll_unlock_asm): Define.
-	(lll_robust_trylock, lll_cond_trylock): Use LLL_LOCK_INITIALIZER*
-	rather than LLL_MUTEX_LOCK_INITIALIZER* macros.
-	(lll_trylock): Likewise, use __lll_trylock_asm, pass
-	MULTIPLE_THREADS_OFFSET as another asm operand.
-	(lll_lock): Add private argument, use __lll_lock_asm_start, pass
-	MULTIPLE_THREADS_OFFSET as last asm operand, call
-	__lll_lock_wait_private if private is constant LLL_PRIVATE,
-	otherwise pass private as another argument to __lll_lock_wait.
-	(lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
-	lll_timedlock, lll_robust_timedlock): Add private argument, pass
-	private as another argument to __lll_*lock_wait call.
-	(lll_unlock): Add private argument, use __lll_unlock_asm, pass
-	MULTIPLE_THREADS_OFFSET as another asm operand, call
-	__lll_unlock_wake_private if private is constant LLL_PRIVATE,
-	otherwise pass private as another argument to __lll_unlock_wake.
-	(lll_robust_unlock): Add private argument, pass private as another
-	argument to __lll_unlock_wake.
-	(lll_robust_dead): Add private argument, use __lll_private_flag
-	macro.
-	(lll_islocked): Use LLL_LOCK_INITIALIZER instead of
-	LLL_MUTEX_LOCK_INITIALIZER.
-	(lll_lock_t): Remove.
-	(LLL_LOCK_INITIALIZER_WAITERS): Define.
-	(__lll_cond_wait, __lll_cond_timedwait, __lll_cond_wake,
-	__lll_cond_broadcast, lll_cond_wait, lll_cond_timedwait,
-	lll_cond_wake, lll_cond_broadcast): Remove.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Revert
-	2007-05-2{3,9} changes.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Include
-	kernel-features.h and lowlevellock.h.
-	(LOAD_PRIVATE_FUTEX_WAIT): Define.
-	(LOAD_FUTEX_WAIT): Rewritten.
-	(LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
-	define.
-	(__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
-	(__lll_mutex_lock_wait): Rename to ...
-	(__lll_lock_wait): ... this.  Take futex addr from %edx instead of
-	%ecx, %ecx is now private argument.  Don't compile in for libc.so.
-	(__lll_mutex_timedlock_wait): Rename to ...
-	(__lll_timedlock_wait): ... this.  Use __NR_gettimeofday.  %esi
-	contains private argument.  Don't compile in for libc.so.
-	(__lll_mutex_unlock_wake): Rename to ...
-	(__lll_unlock_wake): ... this.  %ecx contains private argument.
-	Don't compile in for libc.so.
-	(__lll_timedwait_tid): Use __NR_gettimeofday.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Include
-	kernel-features.h and lowlevellock.h.
-	(LOAD_FUTEX_WAIT): Define.
-	(LOCK, SYS_gettimeofday, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't
-	define.
-	(__lll_robust_mutex_lock_wait): Rename to ...
-	(__lll_robust_lock_wait): ... this.  Futex addr is now in %edx
-	argument, %ecx argument contains private.  Use LOAD_FUTEX_WAIT
-	macro.
-	(__lll_robust_mutex_timedlock_wait): Rename to ...
-	(__lll_robust_timedlock_wait): ... this.  Use __NR_gettimeofday.
-	%esi argument contains private, use LOAD_FUTEX_WAIT macro.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Include
-	lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
-	(pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
-	PRIVATE(%ebx) ^ LLL_SHARED as private argument in %ecx to
-	__lll_lock_wait and __lll_unlock_wake, pass MUTEX(%ebx) address
-	to __lll_lock_wait in %edx.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
-	Include lowlevellock.h and pthread-errnos.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
-	FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
-	(__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*, pass
-	cond_lock address in %edx rather than %ecx to __lll_lock_wait,
-	pass LLL_SHARED in %ecx to both __lll_lock_wait and
-	__lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S:
-	Include lowlevellock.h and pthread-errnos.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
-	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
-	(__pthread_cond_signal): Rename __lll_mutex_* to __lll_*, pass
-	cond_lock address in %edx rather than %ecx to __lll_lock_wait,
-	pass LLL_SHARED in %ecx to both __lll_lock_wait and
-	__lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
-	Include lowlevellock.h.
-	(SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
-	Don't define.
-	(__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*, pass
-	cond_lock address in %edx rather than %ecx to __lll_lock_wait,
-	pass LLL_SHARED in %ecx to both __lll_lock_wait and
-	__lll_unlock_wake.  Use __NR_gettimeofday.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
-	(__pthread_cond_wait, __condvar_w_cleanup): Rename __lll_mutex_*
-	to __lll_*, pass cond_lock address in %edx rather than %ecx to
-	__lll_lock_wait, pass LLL_SHARED in %ecx to both __lll_lock_wait
-	and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
-	(__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*, pass
-	MUTEX(%ebx) address in %edx rather than %ecx to
-	__lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
-	and __lll_unlock_wake.  Move return value from %ecx to %edx
-	register.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
-	Don't define.
-	(__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
-	MUTEX(%ebp) address in %edx rather than %ecx to
-	__lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
-	and __lll_unlock_wake.  Move return value from %ecx to %edx
-	register.  Use __NR_gettimeofday.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, SYS_gettimeofday, FUTEX_WAIT, FUTEX_WAKE, LOCK):
-	Don't define.
-	(__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
-	MUTEX(%ebp) address in %edx rather than %ecx to
-	__lll_lock_wait, pass PSHARED(%ebp) in %ecx to both __lll_lock_wait
-	and __lll_unlock_wake.  Move return value from %ecx to %edx
-	register.  Use __NR_gettimeofday.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
-	(__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*, pass
-	MUTEX(%edi) address in %edx rather than %ecx to
-	__lll_lock_wait, pass PSHARED(%edi) in %ecx to both __lll_lock_wait
-	and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
-	(__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*, pass
-	MUTEX(%ebx) address in %edx rather than %ecx to
-	__lll_lock_wait, pass PSHARED(%ebx) in %ecx to both __lll_lock_wait
-	and __lll_unlock_wake.  Move return value from %ecx to %edx
-	register.
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Include
-	lowlevellock.h.
-	(LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
-	define.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Include lowlevellock.h.
-	(LOCK, SYS_futex, FUTEX_WAKE): Don't define.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Include
-	lowlevellock.h.
-	(LOCK, SYS_futex, SYS_gettimeofday, FUTEX_WAIT): Don't define.
-	(sem_timedwait): Use __NR_gettimeofday.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Include
-	lowlevellock.h.
-	(LOCK): Don't define.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include
-	lowlevellock.h.
-	(LOCK, SYS_futex, FUTEX_WAIT): Don't define.
-	* sysdeps/unix/sysv/linux/powerpc/sem_post.c: Wake only when there
-	are waiters.
-	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Revert
-	2007-05-2{3,9} changes.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Include
-	kernel-features.h and lowlevellock.h.
-	(LOAD_PRIVATE_FUTEX_WAIT): Define.
-	(LOAD_FUTEX_WAIT): Rewritten.
-	(LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
-	(__lll_lock_wait_private, __lll_unlock_wake_private): New functions.
-	(__lll_mutex_lock_wait): Rename to ...
-	(__lll_lock_wait): ... this.  %esi is now private argument.
-	Don't compile in for libc.so.
-	(__lll_mutex_timedlock_wait): Rename to ...
-	(__lll_timedlock_wait): ... this.  %esi contains private argument.
-	Don't compile in for libc.so.
-	(__lll_mutex_unlock_wake): Rename to ...
-	(__lll_unlock_wake): ... this.  %esi contains private argument.
-	Don't compile in for libc.so.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Include
-	kernel-features.h and lowlevellock.h.
-	(LOAD_FUTEX_WAIT): Define.
-	(LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE): Don't define.
-	(__lll_robust_mutex_lock_wait): Rename to ...
-	(__lll_robust_lock_wait): ... this.  %esi argument contains private.
-	Use LOAD_FUTEX_WAIT macro.
-	(__lll_robust_mutex_timedlock_wait): Rename to ...
-	(__lll_robust_timedlock_wait): ... this. %esi argument contains
-	private, use LOAD_FUTEX_WAIT macro.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Include
-	lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
-	(pthread_barrier_wait): Rename __lll_mutex_* to __lll_*, pass
-	PRIVATE(%rdi) ^ LLL_SHARED as private argument in %esi to
-	__lll_lock_wait and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S:
-	Include lowlevellock.h and pthread-errnos.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_REQUEUE,
-	FUTEX_CMP_REQUEUE, EINVAL, LOCK): Don't define.
-	(__pthread_cond_broadcast): Rename __lll_mutex_* to __lll_*,
-	pass LLL_SHARED in %esi to both __lll_lock_wait and
-	__lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S:
-	Include lowlevellock.h and pthread-errnos.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_WAKE_OP,
-	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE, EINVAL, LOCK): Don't define.
-	(__pthread_cond_signal): Rename __lll_mutex_* to __lll_*,
-	pass LLL_SHARED in %esi to both __lll_lock_wait and
-	__lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
-	(__pthread_cond_timedwait): Rename __lll_mutex_* to __lll_*,
-	pass LLL_SHARED in %esi to both __lll_lock_wait and
-	__lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, LOCK): Don't define.
-	(__pthread_cond_wait, __condvar_cleanup): Rename __lll_mutex_*
-	to __lll_*, pass LLL_SHARED in %esi to both __lll_lock_wait
-	and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
-	Don't define.
-	(__pthread_rwlock_rdlock): Rename __lll_mutex_* to __lll_*,
-	pass PSHARED(%rdi) in %esi to both __lll_lock_wait
-	and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
-	Don't define.
-	(__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
-	pass PSHARED(%rdi) in %esi to both __lll_lock_wait
-	and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
-	Don't define.
-	(__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
-	pass PSHARED(%rdi) in %esi to both __lll_lock_wait
-	and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
-	Don't define.
-	(__pthread_rwlock_unlock): Rename __lll_mutex_* to __lll_*,
-	pass PSHARED(%rdi) in %esi to both __lll_lock_wait
-	and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S:
-	Include lowlevellock.h.
-	(SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG, LOCK):
-	Don't define.
-	(__pthread_rwlock_wrlock): Rename __lll_mutex_* to __lll_*,
-	pass PSHARED(%rdi) in %ecx to both __lll_lock_wait
-	and __lll_unlock_wake.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Include
-	lowlevellock.h.
-	(LOCK, SYS_futex, FUTEX_WAIT, FUTEX_WAKE, FUTEX_PRIVATE_FLAG): Don't
-	define.
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Include lowlevellock.h.
-	(LOCK, SYS_futex, FUTEX_WAKE): Don't define.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Include
-	lowlevellock.h.
-	(LOCK, SYS_futex, FUTEX_WAIT): Don't define.
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Include
-	lowlevellock.h.
-	(LOCK): Don't define.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Include
-	lowlevellock.h.
-	(LOCK, SYS_futex, FUTEX_WAIT): Don't define.
-	* sysdeps/unix/sysv/linux/sparc/internaltypes.h: New file.
-	* sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/pthread_barrier_wait.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c
-	(__lll_lock_wait_private): New function.
-	(__lll_lock_wait, __lll_timedlock_wait): Add private argument, pass
-	it to lll_futex_*wait.  Don't compile in for libc.so.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c:
-	Remove.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
-	(struct sparc_pthread_barrier): Remove.
-	(pthread_barrier_wait): Use union sparc_pthread_barrier instead of
-	struct sparc_pthread_barrier.  Pass
-	ibarrier->s.pshared ? LLL_SHARED : LLL_PRIVATE to lll_{,un}lock
-	and lll_futex_wait macros.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
-	Remove.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
-	Include sparc pthread_barrier_wait.c instead of generic one.
-
-2007-07-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-rwlock14.c (do_test): Avoid warnings on 32-bit arches.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
-	(pthread_rwlock_timedrdlock): Copy futex retval to %esi rather than
-	%ecx.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
-	(pthread_rwlock_timedwrlock): Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
-	(__pthread_rwlock_unlock): Fix MUTEX != 0 args to __lll_*.
-
-2007-07-31  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/sparc/tls.h (tcbhead_t): Add private_futex field.
-
-2007-07-26  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-locale2.c (useless): Add return statement.
-
-2007-07-24  Jakub Jelinek  <jakub@redhat.com>
-
-	* allocatestack.c (__nptl_setxid, __wait_lookup_done): Replace
-	lll_private_futex_* (*) with lll_futex_* (*, LLL_PRIVATE).
-	* pthread_create.c (start_thread): Likewise.
-	* init.c (sighandler_setxid): Likewise.
-	* sysdeps/alpha/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
-	* sysdeps/ia64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
-	* sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
-	* sysdeps/s390/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
-	* sysdeps/powerpc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
-	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
-	* sysdeps/sparc/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
-	* sysdeps/sh/tls.h (THREAD_GSCOPE_RESET_FLAG): Likewise.
-	* sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY, AIO_MISC_WAIT):
-	Likewise.
-	* sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY, GAI_MISC_WAIT):
-	Likewise.
-	* sysdeps/unix/sysv/linux/unregister-atfork.c (__unregister_atfork):
-	Likewise.
-	* sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_waitzero,
-	__rtld_notify): Likewise.
-	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c (clear_once_control,
-	__pthread_once): Likewise.
-	* sysdeps/unix/sysv/linux/alpha/pthread_once.c (clear_once_control,
-	__pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_PRIVATE_FLAG,
-	LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
-	(lll_futex_wait): Add private argument, define as wrapper around
-	lll_futex_timed_wait.
-	(lll_futex_timed_wait, lll_futex_wake): Add private argument,
-	use __lll_private_flag macro.
-	(lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
-	__lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
-	* sysdeps/unix/sysv/linux/ia64/pthread_once.c (clear_once_control,
-	__pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_PRIVATE_FLAG,
-	LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
-	(lll_futex_wait): Add private argument, define as wrapper around
-	lll_futex_timed_wait.
-	(lll_futex_timed_wait, lll_futex_wake): Add private argument,
-	use __lll_private_flag macro.
-	(__lll_mutex_unlock, __lll_robust_mutex_unlock, lll_wait_tid,
-	__lll_mutex_unlock_force): Pass LLL_SHARED as last arg to lll_futex_*.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (__lll_private_flag):
-	Define.
-	(lll_futex_timed_wait, lll_futex_wake): Use it.
-	(lll_private_futex_wait, lll_private_futex_timed_wait,
-	lll_private_futex_wake): Removed.
-	* sysdeps/unix/sysv/linux/s390/pthread_once.c (clear_once_control,
-	__pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_PRIVATE_FLAG,
-	LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
-	(lll_futex_wait): Add private argument, define as wrapper around
-	lll_futex_timed_wait.
-	(lll_futex_timed_wait, lll_futex_wake): Add private argument,
-	use __lll_private_flag macro.
-	(lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
-	lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
-	to lll_futex_*.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(lll_private_futex_wait, lll_private_futex_timed_wait,
-	lll_private_futex_wake): Removed.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_private_flag):
-	Fix !__ASSUME_PRIVATE_FUTEX non-constant private case.
-	(lll_private_futex_wait, lll_private_futex_timed_wait,
-	lll_private_futex_wake): Removed.
-	* sysdeps/unix/sysv/linux/sparc/pthread_once.c (clear_once_control,
-	__pthread_once): Add LLL_PRIVATE as last argument to lll_futex_*.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_PRIVATE_FLAG,
-	LLL_PRIVATE, LLL_SHARED, __lll_private_flag): Define.
-	(lll_futex_wait): Add private argument, define as wrapper around
-	lll_futex_timed_wait.
-	(lll_futex_timed_wait, lll_futex_wake): Add private argument,
-	use __lll_private_flag macro.
-	(lll_robust_mutex_dead, __lll_mutex_unlock, __lll_robust_mutex_unlock,
-	lll_wait_tid, __lll_mutex_unlock_force): Pass LLL_SHARED as last arg
-	to lll_futex_*.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h (__lll_private_flag):
-	Define.
-	(lll_futex_timed_wait, lll_futex_wake): Use it.
-	(lll_private_futex_wait, lll_private_futex_timed_wait,
-	lll_private_futex_wake): Removed.
-
-2007-07-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/sparc/tls.h (tcbhead_t): Move gscope_flag to the end
-	of the structure for sparc32.
-
-2007-07-26  Aurelien Jarno  <aurelien@aurel32.net>
-
-	* sysdeps/sparc/tls.h (tcbhead_t): Add gscope_flag.
-
-2007-07-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
-	code used when private futexes are assumed.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Likewise.
-
-2007-07-23  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(__lll_private_flag): Define.
-	(lll_futex_wait): Define as a wrapper around lll_futex_timed_wait.
-	(lll_futex_timed_wait, lll_futex_wake, lll_futex_wake_unlock): Use
-	__lll_private_flag.
-	(lll_private_futex_wait, lll_private_futex_timedwait,
-	lll_private_futex_wake): Define as wrapper around non-_private
-	macros.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
-	(__lll_private_flag): Define.
-	(lll_futex_timed_wait, lll_futex_wake): Use __lll_private_flag.
-	(lll_private_futex_wait, lll_private_futex_timedwait,
-	lll_private_futex_wake): Define as wrapper around non-_private
-	macros.
-
-2007-07-10  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* pthread_rwlock_rdlock.c (__pthread_rwlock_rdlock): Add LLL_SHARED
-	parameter to lll_futex_wait call.
-	* pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock): Likewise.
-
-	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
-	Replace lll_futex_wait with lll_private_futex_wait.
-	* sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
-	Add LLL_SHARED parameter to lll_futex_wake().
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define LLL_PRIVATE
-	LLL_SHARED, lll_private_futex_wait, lll_private_futex_timed_wait and
-	lll_private_futex_wake.
-	(lll_futex_wait): Add private parameter. Adjust FUTEX_PRIVATE_FLAG
-	bit from private parm before syscall.
-	(lll_futex_timed_wait): Likewise.
-	(lll_futex_wake): Likewise.
-	(lll_futex_wake_unlock): Likewise.
-	(lll_mutex_unlock): Add LLL_SHARED parm to lll_futex_wake call.
-	(lll_robust_mutex_unlock): Likewise.
-	(lll_mutex_unlock_force): Likewise.
-	(lll_wait_tid): Add LLL_SHARED parm to lll_futex_wait call.
-
-2007-07-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: Fix
-	compilation when unconditionally using private futexes.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-
-2007-07-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock_clear_flags2):
-	Define.
-
-2007-07-06  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/tls.h: Include stdlib.h, list.h, sysdep.h and
-	kernel-features.h.
-
-2007-05-16  Roland McGrath  <roland@redhat.com>
-
-	* init.c (__nptl_initial_report_events): New variable.
-	(__pthread_initialize_minimal_internal): Initialize pd->report_events
-	to that.
-
-2007-06-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_getattr_np.c (pthread_getattr_np): Clear cpuset and
-	cpusetsize if pthread_getaffinity_np failed with ENOSYS.
-
-2007-06-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/rtld-lowlevel.h: Remove mrlock
-	implementation.
-
-2007-06-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Define PTHREAD_MUTEX_TYPE.
-	* phtread_mutex_lock.c: Use PTHREAD_MUTEX_TYPE.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-
-2007-06-17  Andreas Schwab  <schwab@suse.de>
-
-	* sysdeps/pthread/pt-initfini.c: Tell gcc about the nonstandard
-	sections.
-
-2007-06-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): Make code compile if
-	__ASSUME_PRIVATE_FUTEX is set.
-
-2007-06-17  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S:
-	(__pthread_rwlock_rdlock): Don't use non SH-3/4 instruction.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S:
-	(__pthread_rwlock_wrlock): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
-	(pthread_rwlock_timedrdlock): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
-	(pthread_rwlock_timedwrlock): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S:
-	(__pthread_rwlock_unlock): Likewise.
-
-2007-06-10  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/tcb-offsets.sym: Add PRIVATE_FUTEX.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Include endian.h.
-	Split __flags into __flags, __shared, __pad1 and __pad2.
-	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Use private
-	futexes if they are available.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Adjust so that change
-	in libc-lowlevellock.S allow using private futexes.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Define
-	FUTEX_PRIVATE_FLAG.  Add additional parameter to lll_futex_wait,
-	lll_futex_timed_wait and lll_futex_wake.  Change lll_futex_wait
-	to call lll_futex_timed_wait.  Add lll_private_futex_wait,
-	lll_private_futex_timed_wait and lll_private_futex_wake.
-	(lll_robust_mutex_unlock): Fix typo.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Use private
-	field in futex command setup.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Use
-	COND_NWAITERS_SHIFT instead of COND_CLOCK_BITS.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Use private futexes
-	if they are available.  Remove clear_once_control.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Use private
-	futexes if they are available.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S: Add private futex support.
-	Wake only when there are waiters.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Add private futex
-	support.  Indicate that there are waiters.  Remove unnecessary
-	extra cancellation test.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.  Removed
-	left-over duplication of __sem_wait_cleanup.
-
-2007-06-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Add additional
-	parameter to lll_futex_wait, lll_futex_timed_wait, and
-	lll_futex_wake.  Change lll_futex_wait to call lll_futex_timed_wait.
-	Add lll_private_futex_wait, lll_private_futex_timed_wait, and
-	lll_private_futex_wake.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
-	* allocatestack.c: Adjust use of lll_futex_* macros.
-	* init.c: Likewise.
-	* lowlevellock.h: Likewise.
-	* pthread_barrier_wait.c: Likewise.
-	* pthread_cond_broadcast.c: Likewise.
-	* pthread_cond_destroy.c: Likewise.
-	* pthread_cond_signal.c: Likewise.
-	* pthread_cond_timedwait.c: Likewise.
-	* pthread_cond_wait.c: Likewise.
-	* pthread_create.c: Likewise.
-	* pthread_mutex_lock.c: Likewise.
-	* pthread_mutex_setprioceiling.c: Likewise.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	* pthread_rwlock_timedrdlock.c: Likewise.
-	* pthread_rwlock_timedwrlock.c: Likewise.
-	* pthread_rwlock_unlock.c: Likewise.
-	* sysdeps/alpha/tls.h: Likewise.
-	* sysdeps/i386/tls.h: Likewise.
-	* sysdeps/ia64/tls.h: Likewise.
-	* sysdeps/powerpc/tls.h: Likewise.
-	* sysdeps/pthread/aio_misc.h: Likewise.
-	* sysdeps/pthread/gai_misc.h: Likewise.
-	* sysdeps/s390/tls.h: Likewise.
-	* sysdeps/sh/tls.h: Likewise.
-	* sysdeps/sparc/tls.h: Likewise.
-	* sysdeps/unix/sysv/linux/fork.c: Likewise.
-	* sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
-	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
-	* sysdeps/unix/sysv/linux/rtld-lowlevel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sem_post.c: Likewise.
-	* sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
-	* sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/pthread_once.c: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c:
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.
-
-2007-05-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_getattr_np.c: No need to install a cancellation handler,
-	this is no cancellation point.
-	* pthread_getschedparam.c: Likewise.
-	* pthread_setschedparam.c: Likewise.
-	* pthread_setschedprio.c: Likewise.
-	* sysdeps/unix/sysv/linux/lowlevellock.c: Remove all traces of
-	lll_unlock_wake_cb.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Checking
-	whether there are more than one thread makes no sense here since
-	we only call the slow path if the locks are taken.
-	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/internaltypes.h: Introduce
-	COND_NWAITERS_SHIFT.
-	* pthread_cond_destroy.c: Use COND_NWAITERS_SHIFT instead of
-	COND_CLOCK_BITS.
-	* pthread_cond_init.c: Likewise.
-	* pthread_cond_timedwait.c: Likewise.
-	* pthread_cond_wait.c: Likewise.
-	* pthread_condattr_getclock.c: Likewise.
-	* pthread_condattr_setclock.c: Likewise.
-	* sysdeps/unix/sysv/linux/lowlevelcond.sym: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-
-2007-05-28  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c: Include
-	unistd.h.
-
-	* sysdeps/i386/tls.h (THREAD_GSCOPE_RESET_FLAG): Use explicit
-	insn suffix.
-	(THREAD_GSCOPE_GET_FLAG): Remove.
-	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Remove.
-	* allocatestack.c (__wait_lookup_done): Revert 2007-05-24
-	changes.
-	* sysdeps/powerpc/tls.h (tcbhead_t): Remove gscope_flag.
-	(THREAD_GSCOPE_GET_FLAG): Remove.
-	(THREAD_GSCOPE_RESET_FLAG): Use THREAD_SELF->header.gscope_flag
-	instead of THREAD_GSCOPE_GET_FLAG.
-	(THREAD_GSCOPE_SET_FLAG): Likewise.  Add atomic_write_barrier after
-	it.
-	* sysdeps/s390/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
-	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
-	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
-	THREAD_GSCOPE_WAIT): Define.
-	* sysdeps/sparc/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
-	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
-	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
-	THREAD_GSCOPE_WAIT): Define.
-	* sysdeps/sh/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
-	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
-	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
-	THREAD_GSCOPE_WAIT): Define.
-	* sysdeps/ia64/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
-	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
-	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
-	THREAD_GSCOPE_WAIT): Define.
-
-2007-05-24  Richard Henderson  <rth@redhat.com>
-
-	* descr.h (struct pthread): Add header.gscope_flag.
-	* sysdeps/alpha/tls.h (THREAD_GSCOPE_FLAG_UNUSED,
-	THREAD_GSCOPE_FLAG_USED, THREAD_GSCOPE_FLAG_WAIT,
-	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_SET_FLAG,
-	THREAD_GSCOPE_WAIT): Define.
-
-2007-05-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c: Make it compile with older kernel headers.
-
-	* tst-initializers1.c: Show through exit code which test failed.
-
-	* pthread_rwlock_init.c: Also initialize __shared field.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Split __flags
-	element in rwlock structure into four byte elements.  One of them is
-	the new __shared element.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h [__WORDSIZE=32]:
-	Likewise.
-	[__WORDSIZE=64]: Renamed __pad1 element int rwlock structure to
-	__shared, adjust names of other padding elements.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/pthread/pthread.h: Adjust rwlock initializers.
-	* sysdeps/unix/sysv/linux/lowlevelrwlock.sym: Add PSHARED.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define
-	FUTEX_PRIVATE_FLAG.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Change main
-	futex to use private operations if possible.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-
-2007-05-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h (PTHREAD_RWLOCK_PREFER_READER_P): Define.
-	* pthread_rwlock_rdlock.c: Use PTHREAD_RWLOCK_PREFER_READER_P.
-	* pthread_rwlock_timedrdlock.c: Likewise.
-	* pthread_rwlock_tryrdlock.c: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S (sem_trywait): Tiny
-	optimization.
-
-	* sysdeps/unix/sysv/linux/sem_wait.c: Add missing break.
-	* sysdeps/unix/sysv/linux/sem_timedwait.c: Removed left-over
-	duplication of __sem_wait_cleanup.
-
-	* allocatestack.c: Revert last change.
-	* init.c: Likewise.
-	* sysdeps/i386/tls.h: Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.
-	* descr.h [TLS_DTV_AT_TP] (struct pthread): Add private_futex field to
-	header structure.
-	* sysdeps/powerpc/tcb-offsets.sym: Add PRIVATE_FUTEX_OFFSET.
-
-	* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_barrier):
-	Add private field.
-	* sysdeps/unix/sysv/linux/lowlevelbarrier.sym: Add PRIVATE definition.
-	* pthread_barrier_init.c: Set private flag if pshared and private
-	futexes are supported.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Use
-	private field in futex command setup.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
-
-2007-05-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Add private futex
-	support.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
-
-	* semaphoreP.h: Declare __old_sem_init and __old_sem_wait.
-	* sem_init.c (__new_sem_init): Rewrite to initialize all three
-	fields in the structure.
-	(__old_sem_init): New function.
-	* sem_open.c: Initialize all fields of the structure.
-	* sem_getvalue.c: Adjust for renamed element.
-	* sysdeps/unix/sysv/linux/Makefile [subdir=nptl]
-	(gen-as-const-headers): Add structsem.sym.
-	* sysdeps/unix/sysv/linux/structsem.sym: New file.
-	* sysdeps/unix/sysv/linux/internaltypes.h: Rename struct sem to
-	struct new_sem.  Add struct old_sem.
-	* sysdeps/unix/sysv/linux/sem_post.c: Wake only when there are waiters.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/sem_wait.c: Indicate that there are waiters.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
-	* Makefile (tests): Add tst-sem10, tst-sem11, tst-sem12.
-	* tst-sem10.c: New file.
-	* tst-sem11.c: New file.
-	* tst-sem12.c: New file.
-	* tst-typesizes.c: Test struct new_sem and struct old_sem instead
-	of struct sem.
-
-2007-05-25  Ulrich Drepper  <drepper@redhat.com>
-	    Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
-	Move __pthread_enable_asynccancel right before futex syscall.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
-	Likewise.
-
-2007-05-24  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/tls.h (THREAD_SET_PRIVATE_FUTEX,
-	THREAD_COPY_PRIVATE_FUTEX): Define.
-	* sysdeps/x86_64/tls.h (THREAD_SET_PRIVATE_FUTEX,
-	THREAD_COPY_PRIVATE_FUTEX): Define.
-	* allocatestack.c (allocate_stack): Use THREAD_COPY_PRIVATE_FUTEX.
-	* init.c (__pthread_initialize_minimal_internal): Use
-	THREAD_SET_PRIVATE_FUTEX.
-
-	* sysdeps/powerpc/tls.h (tcbhead_t): Add gscope_flag.
-	(THREAD_GSCOPE_FLAG_UNUSED, THREAD_GSCOPE_FLAG_USED,
-	THREAD_GSCOPE_FLAG_WAIT): Define.
-	(THREAD_GSCOPE_GET_FLAG, THREAD_GSCOPE_SET_FLAG,
-	THREAD_GSCOPE_RESET_FLAG, THREAD_GSCOPE_WAIT): Define.
-	* sysdeps/i386/tls.h (THREAD_GSCOPE_WAIT): Don't use
-	PTR_DEMANGLE.
-	(THREAD_GSCOPE_GET_FLAG): Define.
-	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_GET_FLAG): Define.
-	* allocatestack.c (__wait_lookup_done): Use THREAD_GSCOPE_GET_FLAG
-	instead of ->header.gscope_flag directly.
-
-2007-05-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Check whether
-	private futexes are available.
-	* allocatestack.c (allocate_stack): Copy private_futex field from
-	current thread into the new stack.
-	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: Use private
-	futexes if they are available.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Adjust so that change
-	in libc-lowlevellock.S allow using private futexes.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Define
-	FUTEX_PRIVATE_FLAG.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use private futexes
-	if they are available.
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
-	* sysdeps/x86_64/tcb-offsets.sym: Add PRIVATE_FUTEX.
-	* sysdeps/i386/tcb-offsets.sym: Likewise.
-	* sysdeps/x86_64/tls.h (tcbhead_t): Add private_futex field.
-	* sysdeps/i386/tls.h (tcbhead_t): Likewise.
-
-2007-05-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
-	Remove ptr_wait_lookup_done again.
-	* init.c (pthread_functions): Don't add .ptr_wait_lookup_done here.
-	(__pthread_initialize_minimal_internal): Initialize
-	_dl_wait_lookup_done pointer in _rtld_global directly.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
-	Remove code to code _dl_wait_lookup_done.
-	* sysdeps/x86_64/tls.h (THREAD_GSCOPE_WAIT): The pointer is not
-	encrypted for now.
-
-2007-05-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-robust9.c (do_test): Don't fail if ENABLE_PI and
-	pthread_mutex_init failed with ENOTSUP.
-
-2007-05-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (__wait_lookup_done): New function.
-	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
-	Add ptr_wait_lookup_done.
-	* init.c (pthread_functions): Initialize .ptr_wait_lookup_done.
-	* pthreadP.h: Declare __wait_lookup_done.
-	* sysdeps/i386/tls.h (tcbhead_t): Add gscope_flag.
-	Define macros to implement reference handling of global scope.
-	* sysdeps/x86_64/tls.h: Likewise.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
-	Initialize GL(dl_wait_lookup_done).
-
-2007-05-17  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #4512]
-	* pthread_mutex_lock.c: Preserve FUTEX_WAITERS bit when dead owner
-	is detected.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-	Patch in part by Atsushi Nemoto <anemo@mba.ocn.ne.jp>.
-
-	* Makefile (tests): Add tst-robust9 and tst-robustpi9.
-	* tst-robust9.c: New file.
-	* tst-robustpi9.c: New file.
-
-	* sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Remove
-	unnecessary extra cancellation test.
-
-2007-05-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Remove unnecessary
-	extra cancellation test.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
-
-2007-05-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h (struct pthread): Rearrange members to fill hole in
-	64-bit layout.
-
-	* sysdeps/unix/sysv/linux/pthread_setaffinity.c
-	(__pthread_setaffinity_new): If syscall was successful and
-	RESET_VGETCPU_CACHE is defined, use it before returning.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_setaffinity.c: New file.
-
-2007-05-10  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #4455]
-	* tst-align2.c: Include stackinfo.h.
-	* tst-getpid1.c: Likewise.
-
-2007-05-02  Carlos O'Donell  <carlos@systemhalted.org>
-
-	[BZ #4455]
-	* tst-align2.c (do_test): Add _STACK_GROWS_UP case.
-	* tst-getpid1.c (do_test): Likewise.
-
-	[BZ #4456]
-	* allocatestack.c (change_stack_perm): Add _STACK_GROWS_UP case.
-	(allocate_stack): Likewise.
-
-2007-05-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c
-	(__lll_robust_lock_wait): Fix race caused by reloading of futex value.
-	(__lll_robust_timedlock_wait): Likewise.
-	Reported by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
-
-2007-05-06  Mike Frysinger  <vapier@gentoo.org>
-
-	[BZ #4465]
-	* tst-cancel-wrappers.sh: Set C["fdatasync"] to 1.
-	* tst-cancel4.c (tf_fdatasync): New test.
-
-2007-04-27  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #4392]
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Treat error
-	check mutexes like normal mutexes.
-
-	[BZ #4306]
-	* sysdeps/unix/sysv/linux/timer_create.c (timer_create):
-	Initialize the whole sigevent structure to appease valgrind.
-
-2007-04-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/tls.h (tcbhead_t): Add vgetcpu_cache.
-	* sysdeps/x86_64/tcb-offsets.sym: Add VGETCPU_CACHE_OFFSET.
-
-2007-04-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-locale1.c: Avoid warnings.
-	* tst-locale2.c: Likewise.
-
-2007-03-19  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(__lll_robust_trylock):	Add MUTEX_HINT_ACQ to lwarx instruction.
-
-2007-03-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h: Use __extern_inline and
-	__extern_always_inline where appropriate.
-	* sysdeps/pthread/pthread.h: Likewise.
-
-2007-03-13  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (PSEUDO): Use two
-	separate cfi regions for the two subsections.
-
-2007-02-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset refcntr in
-	new thread, don't just decrement it.
-	Patch by Suzuki K P <suzuki@in.ibm.com>.
-
-2007-02-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread-functions.h: Correct last patch, correct
-	PTHFCT_CALL definition.
-
-2007-02-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread-functions.h: If PTR_DEMANGLE is not
-	available, don't use it.
-
-2007-02-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-	(__lll_mutex_timedlock_wait): Use correct pointer when we don't
-	call into the kernel to delay.
-
-2007-01-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-initializers1.c: We want to test the initializers as seen
-	outside of libc, so undefined _LIBC.
-
-	* pthread_join.c (cleanup): Avoid warning.
-
-2007-01-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-	(__lll_timedwait_tid): Add unwind info.
-
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Don't just copy the
-	function table, mangle the pointers.
-	* sysdeps/pthread/pthread-functions.h: Define PTHFCT_CALL.
-	* forward.c: Use PTHFCT_CALL and __libc_pthread_functions_init.
-	* sysdeps/pthread/bits/libc-lock.h: When using __libc_pthread_functions
-	demangle pointers before use.
-	* sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Use PTHFCT_CALL to
-	demangle pointer.
-	* sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
-	* sysdeps/pthread/setxid.h: Likewise.
-
-2007-01-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-rwlock7.c: Show some more information in case of correct
-	behavior.
-
-2007-01-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
-	(lll_futex_timed_wait): Undo part of last change, don't negate
-	return value.
-
-2007-01-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Cleanups.  Define
-	FUTEX_CMP_REQUEUE and lll_futex_requeue.
-
-2006-12-28  David S. Miller  <davem@davemloft.net>
-
-	* shlib-versions: Fix sparc64 linux target specification.
-
-2007-01-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
-	Adjust include path for pthread_barrier_wait.c move.
-
-2006-12-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/pthread_kill.c (pthread_kill): Make sure
-	tid isn't reread from pd->tid in between ESRCH test and the syscall.
-
-2006-12-06  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Handle
-	6 argument cancellable syscalls.
-	(STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO): Handle
-	6 argument cancellable syscalls.
-	(STM_6, LM_6, LR7_0, LR7_1, LR7_2, LR7_3, LR7_4, LR7_5, LR7_6): Define.
-
-2006-12-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/rtld-lowlevel.h
-	(__rtld_mrlock_initialize): Add missing closing parenthesis.
-
-2006-10-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
-	__sync_lock_release instead of __sync_lock_release_si.
-
-2006-10-29  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (RTLD_SINGLE_THREAD_P):
-	Define.
-	(SINGLE_THREAD_P): Define to 1 if IS_IN_rtld.
-	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
-
-2006-10-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread_barrier_wait.c: Move to...
-	* pthread_barrier_wait.c: ...here.
-	* sysdeps/pthread/pthread_cond_broadcast.c: Move to...
-	* pthread_cond_broadcast.c: ...here.
-	* sysdeps/pthread/pthread_cond_signal.c: Move to...
-	* pthread_cond_signal.c: ...here.
-	* sysdeps/pthread/pthread_cond_timedwait.c: Move to...
-	* pthread_cond_timedwait.c: ...here.
-	* sysdeps/pthread/pthread_cond_wait.c: Move to...
-	* pthread_cond_wait.c: ...here.
-	* sysdeps/pthread/pthread_once.c: Move to...
-	* pthread_once.c: ...here.
-	* sysdeps/pthread/pthread_rwlock_rdlock.c: Move to...
-	* pthread_rwlock_rdlock.c: ...here.
-	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Move to...
-	* pthread_rwlock_timedrdlock.c: ...here.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c: Move to...
-	* pthread_rwlock_timedwrlock.c: ...here.
-	* sysdeps/pthread/pthread_rwlock_unlock.c: Move to...
-	* pthread_rwlock_unlock.c: ...here.
-	* sysdeps/pthread/pthread_rwlock_wrlock.c: Move to...
-	* pthread_rwlock_wrlock.c: ...here.
-	* sysdeps/pthread/pthread_spin_destroy.c: Move to...
-	* pthread_spin_destroy.c: ...here.
-	* sysdeps/pthread/pthread_spin_init.c: Move to...
-	* pthread_spin_init.c: ...here.
-	* sysdeps/pthread/pthread_spin_unlock.c: Move to...
-	* pthread_spin_unlock.c: ...here.
-	* sysdeps/pthread/pthread_getcpuclockid.c: Move to...
-	* pthread_getcpuclockid.c: ...here.
-
-	* init.c: USE_TLS support is now always enabled.
-	* tst-tls5.h: Likewise.
-	* sysdeps/alpha/tls.h: Likewise.
-	* sysdeps/i386/tls.h: Likewise.
-	* sysdeps/ia64/tls.h: Likewise.
-	* sysdeps/powerpc/tls.h: Likewise.
-	* sysdeps/s390/tls.h: Likewise.
-	* sysdeps/sh/tls.h: Likewise.
-	* sysdeps/sparc/tls.h: Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.
-
-2006-10-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
-	__rtld_mrlock_change): Update oldval if atomic compare and exchange
-	failed.
-
-	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
-	Define to THREAD_SELF->header.multiple_threads.
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (SINGLE_THREAD_P):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (SINGLE_THREAD_P):
-	Likewise.
-
-2006-10-26  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_attr_setstacksize.c (NEW_VERNUM): Define to GLIBC_2_3_3
-	by default rather than 2_3_3.
-
-2006-10-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/rtld-lowlevel.h (__rtld_mrlock_lock,
-	__rtld_mrlock_unlock, __rtld_mrlock_change, __rtld_mrlock_done): Use
-	atomic_* instead of catomic_* macros.
-
-2006-10-12  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #3285]
-	* sysdeps/unix/sysv/linux/bits/local_lim.h: Add SEM_VALUE_MAX.
-	* sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Remove SEM_VALUE_MAX.
-	* sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
-
-2006-10-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add support for
-	cancelable syscalls with six parameters.
-
-	* sysdeps/unix/sysv/linux/rtld-lowlevel.h: Use catomic_*
-	operations instead of atomic_*.
-
-2006-10-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/rtld-lowlevel.h: New file..
-
-2006-10-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/bits/local_lim.h: New file.
-	* sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstack.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/pthread_attr_setstacksize.c:
-	New file.
-	* pthread_attr_setstack.c: Allow overwriting the version number of the
-	new symbol.
-	* pthread_attr_setstacksize.c: Likewise.
-	(__old_pthread_attr_setstacksize): If STACKSIZE_ADJUST is defined use
-	it.
-	* sysdeps/unix/sysv/linux/powerpc/Versions (libpthread): Add
-	pthread_attr_setstack and pthread_attr_setstacksize to GLIBC_2.6.
-
-2006-09-24  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #3251]
-	* descr.h (ENQUEUE_MUTEX_BOTH): Add cast to avoid warning.
-	Patch by Petr Baudis.
-
-2006-09-18  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-kill4.c (do_test): Explicitly set tf thread's stack size.
-
-	* tst-cancel2.c (tf): Loop as long as something was written.
-
-2006-09-12  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: For PI
-	mutexes wake all mutexes.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Don't increment
-	WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-
-2006-09-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cond22.c (tf): Slight changes to the pthread_cond_wait use
-	to guarantee the thread is always canceled.
-
-2006-09-08  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-cond22.c: Include pthread.h instead of pthreadP.h.
-	Include stdlib.h.
-	* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Only
-	increase FUTEX if increasing WAKEUP_SEQ.  Fix comment typo.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-
-2006-09-08  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #3123]
-	* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Don't
-	increment WAKEUP_SEQ if this would increase the value beyond TOTAL_SEQ.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* Makefile (tests): Add tst-cond22.
-	* tst-cond22.c: New file.
-
-2006-09-05  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #3124]
-	* descr.h (struct pthread): Add parent_cancelhandling.
-	* sysdeps/pthread/createthread.c (create_thread): Pass parent
-	cancelhandling value to child.
-	* pthread_create.c (start_thread): If parent thread was canceled
-	reset the SIGCANCEL mask.
-	* Makefile (tests): Add tst-cancel25.
-	* tst-cancel25.c: New file.
-
-2006-09-05  Jakub Jelinek  <jakub@redhat.com>
-	    Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/gai_misc.h (GAI_MISC_NOTIFY): Don't decrement
-	counterp if it is already zero.
-	* sysdeps/pthread/aio_misc.h (AIO_MISC_NOTIFY): Likewise..
-
-2006-03-04  Jakub Jelinek  <jakub@redhat.com>
-	    Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h
-	(LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
-	LLL_STUB_UNWIND_INFO_3, LLL_STUB_UNWIND_INFO_4): Define.
-	(lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
-	lll_robust_mutex_cond_lock, lll_mutex_timedlock,
-	lll_robust_mutex_timedlock, lll_mutex_unlock,
-	lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
-	Add _L_*_ symbols around the subsection.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Add unwind info.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: Likewise.
-
-2006-03-03  Jakub Jelinek  <jakub@redhat.com>
-	    Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
-	(LLL_STUB_UNWIND_INFO_START, LLL_STUB_UNWIND_INFO_END,
-	LLL_STUB_UNWIND_INFO_5, LLL_STUB_UNWIND_INFO_6): Define.
-	(lll_mutex_lock, lll_robust_mutex_lock, lll_mutex_cond_lock,
-	lll_robust_mutex_cond_lock, lll_mutex_timedlock,
-	lll_robust_mutex_timedlock, lll_mutex_unlock,
-	lll_robust_mutex_unlock, lll_lock, lll_unlock): Use them.
-	Add _L_*_ symbols around the subsection.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Add unwind info.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: Likewise.
-
-2006-08-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Undo last
-	change because it can disturb too much existing code.  If real hard
-	reader preference is needed we'll introduce another type.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c
-	(pthread_rwlock_timedwrlock): Likewise.
-	* sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
-	Likewise.
-
-2006-08-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_rwlock_trywrlock.c (__pthread_rwlock_trywrlock): Respect
-	reader preference.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c
-	(pthread_rwlock_timedwrlock): Likewise.
-	* sysdeps/pthread/pthread_rwlock_wrlock.c (__pthread_rwlock_wrlock):
-	Likewise.
-
-2006-08-25  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libpthread):
-	Only define ifdef SHARED.
-
-2006-08-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (queue_stack): Move freeing of surplus stacks to...
-	(free_stacks): ...here.
-	(__free_stack_cache): New function.
-	* pthreadP.h: Declare __free_stack_cache.
-	* sysdeps/pthread/pthread-functions.h (pthread_functions): Add
-	ptr_freeres.
-	* init.c (pthread_functions): Initialize ptr_freeres.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c (freeres_libptread):
-	New freeres function.
-
-2006-07-30  Joseph S. Myers  <joseph@codesourcery.com>
-
-	[BZ #3018]
-	* Makefile (extra-objs): Add modules to extra-test-objs instead.
-
-2006-08-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
-	_XOPEN_REALTIME_THREADS.
-
-2006-08-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/clock_settime.c (INTERNAL_VSYSCALL): Use
-	HAVE_CLOCK_GETRES_VSYSCALL as guard macro rather than
-	HAVE_CLOCK_GETTIME_VSYSCALL.
-	(maybe_syscall_settime_cpu): Use plain INTERNAL_VSYSCALL here.
-
-2006-08-14  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h
-	(_POSIX_THREAD_PRIO_PROTECT): Define to 200112L.
-	* descr.h (struct priority_protection_data): New type.
-	(struct pthread): Add tpp field.
-	* pthreadP.h (PTHREAD_MUTEX_PP_NORMAL_NP,
-	PTHREAD_MUTEX_PP_RECURSIVE_NP, PTHREAD_MUTEX_PP_ERRORCHECK_NP,
-	PTHREAD_MUTEX_PP_ADAPTIVE_NP): New enum values.
-	* pthread_mutex_init.c (__pthread_mutex_init): Handle non-robust
-	TPP mutexes.
-	* pthread_mutex_lock.c (__pthread_mutex_lock): Handle TPP mutexes.
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Likewise.
-	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Likewise.
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Likewise.
-	* tpp.c: New file.
-	* pthread_setschedparam.c (__pthread_setschedparam): Handle priority
-	boosted by TPP.
-	* pthread_setschedprio.c (pthread_setschedprio): Likewise.
-	* pthread_mutexattr_getprioceiling.c
-	(pthread_mutexattr_getprioceiling): If ceiling is 0, ensure it is
-	in the SCHED_FIFO priority range.
-	* pthread_mutexattr_setprioceiling.c
-	(pthread_mutexattr_setprioceiling): Fix prioceiling validation.
-	* pthread_mutex_getprioceiling.c (pthread_mutex_getprioceiling): Fail
-	if mutex is not TPP.  Ceiling is now in __data.__lock.
-	* pthread_mutex_setprioceiling.c: Include stdbool.h.
-	(pthread_mutex_setprioceiling): Fix prioceiling validation.  Ceiling
-	is now in __data.__lock.  Add locking.
-	* pthread_create.c (__free_tcb): Free pd->tpp structure.
-	* Makefile (libpthread-routines): Add tpp.
-	(xtests): Add tst-mutexpp1, tst-mutexpp6 and tst-mutexpp10.
-	* tst-tpp.h: New file.
-	* tst-mutexpp1.c: New file.
-	* tst-mutexpp6.c: New file.
-	* tst-mutexpp10.c: New file.
-	* tst-mutex1.c (TEST_FUNCTION): Don't redefine if already defined.
-	* tst-mutex6.c (TEST_FUNCTION): Likewise.
-
-2006-08-12  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #2843]
-	* pthread_join.c (pthread_join): Account for self being canceled
-	when checking for deadlocks.
-	* tst-join5.c: Cleanups.  Allow to be used in tst-join6.
-	(tf1): Don't print anything after pthread_join returns, this would be
-	another cancellation point.
-	(tf2): Likewise.
-	* tst-join6.c: New file.
-	* Makefile (tests): Add tst-join6.
-
-2006-08-03  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #2892]
-	* pthread_setspecific.c (__pthread_setspecific): Check
-	out-of-range index before checking for unused key.
-
-	* sysdeps/pthread/gai_misc.h: New file.
-
-2006-08-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/smp.h: New file.  Old Linux-specific
-	file.  Don't use sysctl.
-	* sysdeps/unix/sysv/linux/smp.h: Always assume SMP.  Archs can
-	overwrite the file if this is likely not true.
-
-2006-07-31  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* allocatestack.c (__reclaim_stacks): Reset the PID on cached stacks.
-	* Makefile (tests): Add tst-getpid3.
-	* tst-getpid3.c: New file.
-
-2006-07-30  Roland McGrath  <roland@redhat.com>
-
-	* Makefile (libpthread-routines): Add ptw-sigsuspend.
-
-	* sysdeps/unix/sysv/linux/i386/not-cancel.h
-	(pause_not_cancel): New macro.
-	(nanosleep_not_cancel): New macro.
-	(sigsuspend_not_cancel): New macro.
-	* pthread_mutex_timedlock.c (pthread_mutex_timedlock): Use
-	nanosleep_not_cancel macro from <not-cancel.h>.
-	* pthread_mutex_lock.c (__pthread_mutex_lock): Use pause_not_cancel
-	macro from <not-cancel.h>.
-
-2006-07-28  Ulrich Drepper  <drepper@redhat.com>
-	    Jakub Jelinek  <jakub@redhat.com>
-
-	* descr.h: Change ENQUEUE_MUTEX and DEQUEUE_MUTEX for bit 0
-	notification of PI mutex.  Add ENQUEUE_MUTEX_PI.
-	* pthreadP.h: Define PTHREAD_MUTEX_PI_* macros for PI mutex types.
-	* pthread_mutex_setprioceilining.c: Adjust for mutex type name change.
-	* pthread_mutex_init.c: Add support for priority inheritance mutex.
-	* pthread_mutex_lock.c: Likewise.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	* sysdeps/pthread/pthread_cond_broadcast.c: For PI mutexes wake
-	all mutexes.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.c: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.c: Likewise.
-	* sysdeps/unix/sysv/linux/pthread-pi-defines.sym: New file.
-	* sysdeps/unix/sysv/linux/Makefile (gen-as-const-header): Add
-	pthread-pi-defines.sym.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define FUTEX_LOCK_PI,
-	FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
-	_POSIX_THREAD_PRIO_INHERIT to 200112L.
-	* tst-mutex1.c: Adjust to allow use in PI mutex test.
-	* tst-mutex2.c: Likewise.
-	* tst-mutex3.c: Likewise.
-	* tst-mutex4.c: Likewise.
-	* tst-mutex5.c: Likewise.
-	* tst-mutex6.c: Likewise.
-	* tst-mutex7.c: Likewise.
-	* tst-mutex7a.c: Likewise.
-	* tst-mutex8.c: Likewise.
-	* tst-mutex9.c: Likewise.
-	* tst-robust1.c: Likewise.
-	* tst-robust7.c: Likewise.
-	* tst-robust8.c: Likewise.
-	* tst-mutexpi1.c: New file.
-	* tst-mutexpi2.c: New file.
-	* tst-mutexpi3.c: New file.
-	* tst-mutexpi4.c: New file.
-	* tst-mutexpi5.c: New file.
-	* tst-mutexpi6.c: New file.
-	* tst-mutexpi7.c: New file.
-	* tst-mutexpi7a.c: New file.
-	* tst-mutexpi8.c: New file.
-	* tst-mutexpi9.c: New file.
-	* tst-robust1.c: New file.
-	* tst-robust2.c: New file.
-	* tst-robust3.c: New file.
-	* tst-robust4.c: New file.
-	* tst-robust5.c: New file.
-	* tst-robust6.c: New file.
-	* tst-robust7.c: New file.
-	* tst-robust8.c: New file.
-	* Makefile (tests): Add the new tests.
-
-	* pthread_create.c (start_thread): Add some casts to avoid warnings.
-	* pthread_mutex_destroy.c: Remove unneeded label.
-
-2006-07-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_mutex_init.c (__pthread_mutex_init): Move some
-	computations to compile time.
-
-2006-06-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Add pthread_equal inline version.
-
-2006-05-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/fork.h: Mark __fork_handlers as hidden.
-
-2006-05-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_key_create.c (__pthread_key_create): Do away with
-	__pthread_keys_lock.
-
-	* sysdeps/unix/sysv/linux/pthread_setaffinity.c
-	(__kernel_cpumask_size): Mark as hidden.
-	* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
-
-	* sem_open.c (__sem_mappings_lock): Mark as hidden.
-	* semaphoreP.h (__sem_mappings_lock): Likewise.
-
-2006-05-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_atfork.c: Mark __dso_handle as hidden.
-
-2006-05-09  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #2644]
-	* sysdeps/pthread/unwind-forcedunwind.c: Different solution for
-	the reload problem.  Change the one path in pthread_cancel_init
-	which causes the problem.  Force gcc to reload.  Simplify callers.
-	* sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c
-	(_Unwind_GetBSP): Undo last patch.
-
-2006-05-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: Make sure the
-	function pointer is reloaded after pthread_cancel_init calls.
-
-	[BZ #2644]
-	* sysdeps/pthread/unwind-forcedunwind.c: Make sure functions
-	pointers are reloaded after pthread_cancel_init calls.
-
-2006-05-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/allocalim.h (__libc_use_alloca): Mark with
-	__always_inline.
-
-2006-04-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
-	Allocate new object which is passed to timer_sigev_thread so that
-	the timer can be deleted before the new thread is scheduled.
-
-2006-04-26  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/x86_64/tls.h: Include <asm/prctl.h> inside [! __ASSEMBLER__].
-
-2006-04-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove branch predicion
-	suffix for conditional jumps.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
-
-	* init.c (sigcancel_handler): Compare with correct PID even if the
-	thread is in the middle of a fork call.
-	(sighandler_setxid): Likewise.
-	Reported by Suzuki K P <suzuki@in.ibm.com> .
-
-2006-04-07  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthreadP.h (FUTEX_TID_MASK): Sync with kernel.
-
-2006-04-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_getattr_np.c (pthread_getattr_np): Close fp if getrlimit
-	fails [Coverity CID 105].
-
-2006-04-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Add nonnull attributes.
-
-2006-04-03  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	[BZ #2505]
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h [_ARCH_PWR4]:
-	Define __lll_rel_instr using lwsync.
-
-2006-03-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): Always initialize robust_head.
-	* descr.h: Define struct robust_list_head.
-	(struct pthread): Use robust_list_head in robust mutex list definition.
-	Adjust ENQUEUE_MUTEX and DEQUEUE_MUTEX.
-	* init.c [!__ASSUME_SET_ROBUST_LIST] (__set_robust_list_avail): Define.
-	(__pthread_initialize_minimal_internal): Register robust_list with
-	the kernel.
-	* pthreadP.h: Remove PRIVATE_ from PTHREAD_MUTEX_ROBUST_* names.
-	Declare __set_robust_list_avail.
-	* pthread_create.c (start_thread): Register robust_list of new thread.
-	[!__ASSUME_SET_ROBUST_LIST]: If robust_list is not empty wake up
-	waiters.
-	* pthread_mutex_destroy.c: For robust mutexes don't look at the
-	number of users, it's unreliable.
-	* pthread_mutex_init.c: Allow use of pshared robust mutexes if
-	set_robust_list syscall is available.
-	* pthread_mutex_consistent.c: Adjust for PTHREAD_MUTEX_ROBUST_* rename.
-	* pthread_mutex_lock.c: Simplify robust mutex code a bit.
-	Set robust_head.list_op_pending before trying to lock a robust mutex.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise for unlocking.
-	* Makefile (tests): Add tst-robust8.
-	* tst-robust8.c: New file.
-
-2006-03-08  Andreas Schwab  <schwab@suse.de>
-
-	* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h
-	(DL_SYSINFO_IMPLEMENTATION): Add missing newline.
-
-2006-03-05  Roland McGrath  <roland@redhat.com>
-
-	* configure (libc_add_on): Disable add-on when $add_ons_automatic = yes
-	and $config_os doesn't match *linux*.
-
-2006-03-05  David S. Miller  <davem@sunset.davemloft.net>
-
-	* sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S:
-	Use __syscall_error.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/Makefile: New file.
-
-2006-03-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/aio_misc.h: Various cleanups.
-
-2006-03-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
-	(__lll_robust_lock_wait): Also set FUTEX_WAITERS bit if we got the
-	mutex.
-	(__lll_robust_timedlock_wait): Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
-	(__lll_robust_lock_wait): Likewise.
-	(__lll_robust_timedlock_wait): Likewise.
-	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c
-	(__lll_robust_lock_wait): Likewise.
-	(__lll_robust_timedlock_wait): Likewise.
-
-2006-03-01  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (lll_robust_mutex_dead,
-	lll_robust_mutex_trylock, lll_robust_mutex_lock,
-	lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
-	lll_robust_mutex_unlock): Define.
-	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
-
-2006-02-28  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/unix/sysv/linux/ia64/clone2.S: Include <clone2.S>
-	instead of <clone.S>.
-
-2006-02-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (libpthread-routines): Add
-	pthread_mutexattr_[sg]etprotocol, pthread_mutexattr_[sg]etprioceiling
-	and pthread_mutex_[sg]etprioceiling.
-	* Versions (GLIBC_2.4): Export pthread_mutexattr_getprotocol,
-	pthread_mutexattr_setprotocol, pthread_mutexattr_getprioceiling,
-	pthread_mutexattr_setprioceiling, pthread_mutex_getprioceiling and
-	pthread_mutex_setprioceiling.
-	* sysdeps/pthread/pthread.h (PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT,
-	PTHREAD_PRIO_PROTECT): New enum values.
-	(pthread_mutexattr_getprotocol, pthread_mutexattr_setprotocol,
-	pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling,
-	pthread_mutex_getprioceiling, pthread_mutex_setprioceiling): New
-	prototypes.
-	* pthreadP.h (PTHREAD_MUTEX_PRIO_INHERIT_PRIVATE_NP,
-	PTHREAD_MUTEX_PRIO_PROTECT_PRIVATE_NP): New enum values.
-	(PTHREAD_MUTEX_PRIO_CEILING_SHIFT, PTHREAD_MUTEX_PRIO_CEILING_MASK):
-	Define.
-	(PTHREAD_MUTEXATTR_PROTOCOL_SHIFT, PTHREAD_MUTEXATTR_PROTOCOL_MASK,
-	PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT,
-	PTHREAD_MUTEXATTR_PRIO_CEILING_MASK): Define.
-	(PTHREAD_MUTEXATTR_FLAG_BITS): Or in PTHREAD_MUTEXATTR_PROTOCOL_MASK
-	and PTHREAD_MUTEXATTR_PRIO_CEILING_MASK.
-	* pthread_mutex_init.c (__pthread_mutex_init): For the time being
-	return ENOTSUP for PTHREAD_PRIO_INHERIT or PTHREAD_PRIO_PROTECT
-	protocol mutexes.
-	* pthread_mutex_getprioceiling.c: New file.
-	* pthread_mutex_setprioceiling.c: New file.
-	* pthread_mutexattr_getprioceiling.c: New file.
-	* pthread_mutexattr_setprioceiling.c: New file.
-	* pthread_mutexattr_getprotocol.c: New file.
-	* pthread_mutexattr_setprotocol.c: New file.
-
-2006-02-27  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* sysdeps/unix/sysv/linux/aio_misc.h: Include <limits.h>.
-
-2006-02-27  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/pthread/Subdirs: List nptl here too.
-	* configure (libc_add_on_canonical): New variable.
-
-	* sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: Use #include_next.
-
-	* sysdeps/unix/sysv/linux/sleep.c: Use #include_next after #include of
-	self to get main source tree's file.
-	* sysdeps/unix/sysv/linux/alpha/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/clone2.S: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/clone.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/vfork.S: Likewise.
-
-	* Makefile: Use $(sysdirs) in vpath directive.
-
-	* sysdeps/pthread/Makefile (CFLAGS-libc-start.c): Variable removed.
-	(CPPFLAGS-timer_routines.c): Likewise.
-
-	* Makeconfig (includes): Variable removed.
-
-2006-02-26  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/generic/pt-raise.c: Moved to ...
-	* pt-raise.c: ... here.
-	* sysdeps/generic/lowlevellock.h: Moved to ...
-	* lowlevellock.h: ... here.
-
-2006-02-23  Roland McGrath  <roland@redhat.com>
-
-	* descr.h (struct pthread): Add final member `end_padding'.
-	(PTHREAD_STRUCT_END_PADDING): Use it.
-
-2006-02-20  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/mips: Directory removed, saved in ports repository.
-	* sysdeps/unix/sysv/linux/mips: Likewise.
-
-2006-02-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-robust1.c: Add second mutex to check that the mutex list is
-	handled correctly.
-
-2006-02-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_robust_mutex_dead,
-	lll_robust_mutex_trylock, lll_robust_mutex_lock,
-	lll_robust_mutex_cond_lock, lll_robust_mutex_timedlock,
-	lll_robust_mutex_unlock): New macros.
-	(__lll_robust_lock_wait, __lll_robust_timedlock_wait): New prototypes.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/lowlevelrobustlock.c: New file.
-
-2006-02-17  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Add lll_robust_mutex_*
-	definitions.
-	* sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S: New file.
-
-2006-02-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
-	(lll_robust_mutex_unlock): Avoid unnecessary wakeups.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h
-	(lll_robust_mutex_unlock): Likewise.
-
-2006-02-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX):
-	Set robust_list.__next rather than robust_list.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
-	(__pthread_list_t): New typedef.
-	(pthread_mutex_t): Replace __next and __prev fields with __list.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
-	(__pthread_list_t): New typedef.
-	(pthread_mutex_t): Replace __next and __prev fields with __list.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
-	(__pthread_list_t, __pthread_slist_t): New typedefs.
-	(pthread_mutex_t): Replace __next and __prev fields with __list.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h
-	(__pthread_list_t, __pthread_slist_t): New typedefs.
-	(pthread_mutex_t): Replace __next and __prev fields with __list.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
-	(__pthread_list_t, __pthread_slist_t): New typedefs.
-	(pthread_mutex_t): Replace __next and __prev fields with __list.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
-	(__pthread_slist_t): New typedef.
-	(pthread_mutex_t): Replace __next field with __list.
-
-2006-02-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Define PTHREAD_MUTEX_INCONSISTENT instead of
-	PTHREAD_MUTEX_OWNERDEAD.
-	(PTHREAD_MUTEX_ROBUST_PRIVATE_NP): Define as 16, not 256.
-	Define FUTEX_WAITERS, FUTEX_OWNER_DIED, FUTEX_TID_MASK.
-	* Makefile (libpthread-routines): Add lowlevelrobustlock.
-	* pthread_create.c (start_thread): Very much simplify robust_list loop.
-	* pthread_mutex_consistent.c: Inconsistent mutex have __owner now set
-	to PTHREAD_MUTEX_INCONSISTENT.
-	* pthread_mutex_destroy.c: Allow destroying of inconsistent mutexes.
-	* pthread_mutex_lock.c: Reimplement robust mutex handling.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
-	* sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
-	lowlevelrobustlock.sym.
-	* sysdeps/unix/sysv/linux/lowlevelrobustlock.sym: New file.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add lll_robust_mutex_*
-	definitions.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S: New file.
-
-2006-02-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): Initialize robust_list.
-	* init.c (__pthread_initialize_minimal_internal): Likewise.
-	* descr.h (struct xid_command): Pretty printing.
-	(struct pthread): Use __pthread_list_t or __pthread_slist_t for
-	robust_list.  Adjust macros.
-	* pthread_create.c (start_thread): Adjust robust_list handling.
-	* phtread_mutex_unlock.c: Don't allow unlocking from any thread
-	but the owner for all robust mutex types.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
-	__pthread_list_t and __pthread_slist_t.  Use them in pthread_mutex_t.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/pthread/pthread.h: Adjust mutex initializers.
-
-	* sysdeps/unix/sysv/linux/i386/not-cancel.h: Define openat_not_cancel,
-	openat_not_cancel_3, openat64_not_cancel, and openat64_not_cancel_3.
-
-2006-02-08  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait,
-	lll_futex_timedwait, lll_wait_tid): Add "memory" clobber.
-
-2006-01-20  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_futex_wait):
-	Return status.
-	(lll_futex_timed_wait): Define.
-
-2006-01-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel4.c: Test ppoll.
-
-2006-01-18  Andreas Jaeger  <aj@suse.de>
-
-	[BZ #2167]
-	* sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
-	(pthread_mutex_t): Follow changes for other archs.  Based on patch
-	by Jim Gifford <patches@jg555.com>.
-
-2006-01-13  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/alpha/tls.h (tcbhead_t): Rename member to __private.
-
-2006-01-10  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/alpha/jmpbuf-unwind.h: File moved to main source tree.
-	* sysdeps/i386/jmpbuf-unwind.h: Likewise.
-	* sysdeps/mips/jmpbuf-unwind.h: Likewise.
-	* sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
-	* sysdeps/s390/jmpbuf-unwind.h: Likewise.
-	* sysdeps/sh/jmpbuf-unwind.h: Likewise.
-	* sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
-	* sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
-	* sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
-
-2006-01-09  Roland McGrath  <roland@redhat.com>
-
-	* tst-initializers1-c89.c: New file.
-	* tst-initializers1-c99.c: New file.
-	* tst-initializers1-gnu89.c: New file.
-	* tst-initializers1-gnu99.c: New file.
-	* Makefile (tests): Add them.
-	(CFLAGS-tst-initializers1-c89.c): New variable.
-	(CFLAGS-tst-initializers1-c99.c): New variable.
-	(CFLAGS-tst-initializers1-gnu89.c): New variable.
-	(CFLAGS-tst-initializers1-gnu99.c): New variable.
-
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
-	Use __extension__ on anonymous union definition.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-
-2006-01-08  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
-	Don't give the union a name because it changes the mangled name.
-	Instead name the struct for __data.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_mutex_t):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_mutex_t):
-	Likewise.
-
-2006-01-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/sparc/sparc64/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Add
-	stack bias to mc_ftp field.
-
-2006-01-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/aio_misc.h (AIO_MISC_WAIT): Work around gcc
-	being too clever and reloading the futex value where it shouldn't.
-
-2006-01-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h [!__PTHREAD_MUTEX_HAVE_PREV] (DEQUEUE_MUTEX): Use
-	correct type.
-
-2006-01-06  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
-	Add cfi directives.
-
-2006-01-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/ia64/tls.h (tcbhead_t): Rename private member to __private.
-	* sysdeps/ia64/tcb-offsets.sym: Adjust for private->__private
-	rename in tcbhead_t.
-
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
-	Don't give the union a name because it changes the mangled name.
-	Instead name the struct for __data.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-	* pthread_create.c (start_thread): Adjust robust mutex free loop.
-	* descr.h (ENQUEUE_MUTEX, DEQUEUE_MUTEX): Adjust.
-
-2006-01-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
-	Return status.
-	(lll_futex_timed_wait): Define.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-	* sysdeps/pthread/aio_misc.h: New file.
-
-2006-01-03  Joseph S. Myers  <joseph@codesourcery.com>
-
-	* Makefile ($(objpfx)$(multidir)): Use mkdir -p.
-
-2006-01-03  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
-	(PSEUDO): Remove redundant cfi_startproc and cfi_endproc directives.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
-
-2006-01-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel24.cc: Use C headers instead of C++ headers.
-
-2006-01-03  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Remove #error for
-	sparc-linux configured glibc.
-	(lll_futex_wake_unlock): Define to 1 for sparc-linux configured glibc.
-	(__lll_mutex_trylock, __lll_mutex_cond_trylock, __lll_mutex_lock,
-	__lll_mutex_cond_lock, __lll_mutex_timedlock): Use
-	atomic_compare_and_exchange_val_24_acq instead of
-	atomic_compare_and_exchange_val_acq.
-	(lll_mutex_unlock, lll_mutex_unlock_force): Use atomic_exchange_24_rel
-	instead of atomic_exchange_rel.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/lowlevellock.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_init.c: New
-	file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c: New
-	file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_init.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_init.c:
-	New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/pthread_barrier_wait.c:
-	New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_init.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_post.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_timedwait.c: New
-	file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_trywait.c: New
-	file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sparcv9/sem_wait.c: New file.
-
-2006-01-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h [__WORDSIZE==64]: Don't use cast in
-	mutex initializers.
-
-2006-01-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/sparc/tls.h (tcbhead_t): Add pointer_guard field.
-	(THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
-	THREAD_COPY_POINTER_GUARD): Define.
-	* sysdeps/sparc/tcb-offsets.sym (POINTER_GUARD): Define.
-	* sysdeps/sparc/sparc64/jmpbuf-unwind.h: Revert 2005-12-27 changes.
-
-2006-01-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* version.c: Update copyright year.
-
-2005-12-29  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Remove explicit
-	.eh_frame section, use cfi_* directives.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Add cfi instrumentation.
-
-2005-12-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Undo last change for
-	now.
-
-2005-12-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/sigaction.c: Removed.
-	* sigaction.c: New file.
-	* sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-sigaction.c.
-
-2005-12-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-signal7.
-	* tst-signal7.c: New file.
-
-2005-12-27  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/x86_64/jmpbuf-unwind.h (_jmpbuf_sp): New inline function.
-	(_JMPBUF_UNWINDS_ADJ): Use it, to PTR_DEMANGLE before comparison.
-	* sysdeps/alpha/jmpbuf-unwind.h: Likewise.
-	* sysdeps/i386/jmpbuf-unwind.h: Likewise.
-	* sysdeps/mips/jmpbuf-unwind.h: Likewise.
-	* sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
-	* sysdeps/s390/jmpbuf-unwind.h: Likewise.
-	* sysdeps/sh/jmpbuf-unwind.h: Likewise.
-	* sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
-	* sysdeps/sparc/sparc64/jmpbuf-unwind.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
-
-2005-12-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Add __next
-	and __prev field to pthread_mutex_t.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Add __next field
-	to pthread_mutex_t.
-
-2005-12-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Define PTHREAD_MUTEX_ROBUST_PRIVATE_NP,
-	PTHREAD_MUTEX_ROBUST_PRIVATE_RECURSIVE_NP,
-	PTHREAD_MUTEX_ROBUST_PRIVATE_ERRORCHECK_NP,
-	PTHREAD_MUTEX_ROBUST_PRIVATE_ADAPTIVE_NP,
-	PTHREAD_MUTEXATTR_FLAG_ROBUST, PTHREAD_MUTEXATTR_FLAG_PSHARED,
-	and PTHREAD_MUTEXATTR_FLAG_BITS.
-	* descr.h (struct pthread): Add robust_list field and define
-	ENQUEUE_MUTEX and DEQUEUE_MUTEX macros.
-	* pthread_mutexattr_getrobust.c: New file.
-	* pthread_mutexattr_setrobust.c: New file.
-	* pthread_mutex_consistent.c: New file.
-	* sysdeps/pthread/pthread.h: Declare pthread_mutexattr_getrobust,
-	pthread_mutexattr_setrobust, and pthread_mutex_consistent.
-	Define PTHREAD_MUTEX_STALLED_NP and PTHREAD_MUTEX_ROBUST_NP.
-	Adjust pthread_mutex_t initializers.
-	* nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Add __next
-	field to pthread_mutex_t.
-	* nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Add __next
-	and __prev field to pthread_mutex_t.
-	* Versions [GLIBC_2.4]: Export pthread_mutexattr_getrobust_np,
-	pthread_mutexattr_setrobust_np, and pthread_mutex_consistent_np.
-	* pthread_mutexattr_getpshared.c: Use PTHREAD_MUTEXATTR_FLAG_PSHARED
-	and PTHREAD_MUTEXATTR_FLAG_BITS macros instead of magic numbers.
-	* pthread_mutexattr_gettype.c: Likewise.
-	* pthread_mutexattr_setpshared.c: Likewise.
-	* pthread_mutexattr_settype.c: Likewise.
-	* pthread_mutex_init.c: Reject robust+pshared attribute for now.
-	Initialize mutex kind according to robust flag.
-	* pthread_mutex_lock.c: Implement local robust mutex.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	* pthread_create.c (start_thread): Mark robust mutexes which remained
-	locked as dead.
-	* tst-robust1.c: New file.
-	* tst-robust2.c: New file.
-	* tst-robust3.c: New file.
-	* tst-robust4.c: New file.
-	* tst-robust5.c: New file.
-	* tst-robust6.c: New file.
-	* tst-robust7.c: New file.
-	* Makefile (libpthread-routines): Add pthread_mutexattr_getrobust,
-	pthread_mutexattr_setrobust, and pthread_mutex_consistent.
-	(tests): Add tst-robust1, tst-robust2, tst-robust3, tst-robust4,
-	tst-robust5, tst-robust6, and tst-robust7.
-
-	* tst-typesizes.c: New file.
-	* Makefile (tests): Add tst-typesizes.
-
-	* tst-once3.c: More debug output.
-
-2005-12-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Add break
-	missing after last change.
-
-	* version.c: Update copyright year.
-
-2005-12-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_mutex_destroy.c: Set mutex type to an invalid value.
-	* pthread_mutex_lock.c: Return EINVAL for invalid mutex type.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-
-2005-12-22  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/pthread/sigaction.c: Use "" instead of <> to include self,
-	so that #include_next's search location is not reset to the -I..
-	directory where <nptl/...> can be found.
-
-2005-12-22  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #1913]
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
-	Fix unwind info.  Remove useless branch prediction prefix.
-	* tst-cancel24.cc: New file.
-	* Makefile: Add rules to build and run tst-cancel24.
-
-2005-12-21  Roland McGrath  <roland@redhat.com>
-
-	* libc-cancellation.c: Use <> rather than "" #includes.
-	* pt-cleanup.c: Likewise.
-	* pthread_create.c: Likewise.
-	* pthread_join.c: Likewise.
-	* pthread_timedjoin.c: Likewise.
-	* pthread_tryjoin.c: Likewise.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Likewise.
-	* sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
-	* sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
-	* unwind.c: Likewise.
-
-2005-12-19  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/tcb-offsets.sym: Add POINTER_GUARD.
-	* sysdeps/sh/tls.h (tcbhead_t): Remove private and add pointer_guard.
-	(THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
-	THREAD_COPY_POINTER_GUARD): Define.
-
-2005-12-19  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): Make room for 2 uintptr_t's
-	rather than one.
-	(THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
-	THREAD_COPY_POINTER_GUARD): Define.
-	* sysdeps/powerpc/tcb-offsets.sym (POINTER_GUARD): Add.
-	* sysdeps/powerpc/tls.h (tcbhead_t): Add pointer_guard field.
-	(THREAD_GET_POINTER_GUARD, THREAD_SET_POINTER_GUARD,
-	THREAD_COPY_POINTER_GUARD): Define.
-	* sysdeps/s390/tcb-offsets.sym (STACK_GUARD): Add.
-	* sysdeps/s390/tls.h (THREAD_GET_POINTER_GUARD,
-	THREAD_SET_POINTER_GUARD, THREAD_COPY_POINTER_GUARD): Define.
-	* sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S (__ia64_longjmp):
-	Use PTR_DEMANGLE for B0 if defined.
-
-2005-12-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_create.c (__pthread_create_2_1): Use
-	THREAD_COPY_POINTER_GUARD if available.
-	* sysdeps/i386/tcb-offsets.sym: Add POINTER_GUARD.
-	* sysdeps/x86_64/tcb-offsets.sym: Likewise.
-	* sysdeps/i386/tls.h (tcbhead_t): Add pointer_guard.
-	Define THREAD_SET_POINTER_GUARD and THREAD_COPY_POINTER_GUARD.
-	* sysdeps/x86_64/tls.h: Likewise.
-
-2005-12-15  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/mq_notify.c: Don't use sysdeps/generic.
-
-2005-12-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/sigfillset.c: Adjust for files moved out of
-	sysdeps/generic.
-	* errno-loc.c: New file.
-
-2005-12-12  Roland McGrath  <roland@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Do __static_tls_size
-	adjustments before choosing stack size.  Update minimum stack size
-	calculation to match allocate_stack change.
-
-2005-12-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): Don't demand that there is an
-	additional full page available on the stack beside guard, TLS, the
-	minimum stack.
-
-2005-11-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
-	(__cleanup_fct_attribute): Use __regparm__ not regparm.
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: When
-	compiling 32-bit code we must define __cleanup_fct_attribute.
-
-005-11-24  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #1920]
-	* sysdeps/pthread/pthread.h (__pthread_unwind_next): Use
-	__attribute__ instead of __attribute.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
-	(__cleanup_fct_attribute): Likewise.
-
-2005-11-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/unwind-forcedunwind.c (pthread_cancel_init): Put
-	a write barrier before writing libgcc_s_getcfa.
-
-2005-11-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/configure: Removed.
-
-2005-11-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Remove trace of
-	optional init_array/fini_array support.
-
-2005-10-24  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Remove unnecessary
-	versioned_symbol use.
-
-2005-10-16  Roland McGrath  <roland@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Even when using a
-	compile-time default stack size, apply the minimum that allocate_stack
-	will require, and round up to page size.
-
-2005-10-10  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* Makefile ($(test-modules)): Remove static pattern rule.
-
-2005-10-14  Jakub Jelinek  <jakub@redhat.com>
-	    Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix stack
-	alignment in callback function.
-	* Makefile: Add rules to build and run tst-align3.
-	* tst-align3.c: New file.
-
-2005-10-03  Jakub Jelinek  <jakub@redhat.com>
-
-	* allocatestack.c (setxid_signal_thread): Add
-	INTERNAL_SYSCALL_DECL (err).
-
-2005-10-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* allocatestack.c (setxid_signal_thread): Need to use
-	atomic_compare_and_exchange_bool_acq.
-
-2005-10-01  Ulrich Drepper  <drepper@redhat.com>
-	    Jakub Jelinek  <jakub@redhat.com>
-
-	* descr.h: Define SETXID_BIT and SETXID_BITMASK.  Adjust
-	CANCEL_RESTMASK.
-	(struct pthread): Move specific_used field to avoid padding.
-	Add setxid_futex field.
-	* init.c (sighandler_setxid): Reset setxid flag and release the
-	setxid futex.
-	* allocatestack.c (setxid_signal_thread): New function.  Broken
-	out of the bodies of the two loops in __nptl_setxid.  For undetached
-	threads check whether they are exiting and if yes, don't send a signal.
-	(__nptl_setxid): Simplify loops by using setxid_signal_thread.
-	* pthread_create.c (start_thread): For undetached threads, check
-	whether setxid bit is set.  If yes, wait until signal has been
-	processed.
-
-	* allocatestack.c (STACK_VARIABLES): Initialize them.
-	* pthread_create.c (__pthread_create_2_1): Initialize pd.
-
-2004-09-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_cond_destroy.c (__pthread_cond_destroy): If there are
-	waiters, awake all waiters on the associated mutex.
-
-2005-09-22  Roland McGrath  <roland@redhat.com>
-
-	* perf.c [__x86_64__] (HP_TIMING_NOW): New macro (copied from
-	../sysdeps/x86_64/hp-timing.h).
-
-2005-08-29  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_WAKE_OP,
-	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
-	(lll_futex_wake_unlock): Define.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_WAKE_OP,
-	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
-	(lll_futex_wake_unlock): Define.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_WAKE_OP,
-	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
-	(lll_futex_wake_unlock): Define.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_WAKE_OP,
-	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
-	(lll_futex_wake_unlock): Define.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_WAKE_OP,
-	FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
-	(lll_futex_wake_unlock): Define.
-	* sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal): Use
-	lll_futex_wake_unlock.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
-	(FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
-	(__pthread_cond_signal): Use FUTEX_WAKE_OP.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
-	(FUTEX_WAKE_OP, FUTEX_OP_CLEAR_WAKE_IF_GT_ONE): Define.
-	(__pthread_cond_signal): Use FUTEX_WAKE_OP.
-
-2005-09-05  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
-	Fix typo in register name.
-
-2005-08-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
-	Use __sigfillset.  Document that sigfillset does the right thing wrt
-	to SIGSETXID.
-
-2005-07-11  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #1102]
-	* sysdeps/pthread/pthread.h (PTHREAD_MUTEX_INITIALIZER,
-	PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP,
-	PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP,
-	PTHREAD_MUTEX_ADAPTIVE_NP, PTHREAD_RWLOCK_INITIALIZER,
-	PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP,
-	PTHREAD_COND_INITIALIZER): Supply zeros for all fields
-	in the structure.
-	* Makefile (tests): Add tst-initializers1.
-	(CFLAGS-tst-initializers1.c): Set.
-	* tst-initializers1.c: New test.
-
-2005-07-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_rwlock_t):
-	Make sure __flags are located at offset 48 from the start of the
-	structure.
-
-2005-07-02  Roland McGrath  <roland@redhat.com>
-
-	* Makeconfig: Comment fix.
-
-2005-07-05  Jakub Jelinek  <jakub@redhat.com>
-
-	* descr.h (PTHREAD_STRUCT_END_PADDING): Define.
-	* sysdeps/ia64/tls.h (TLS_PRE_TCB_SIZE): If PTHREAD_STRUCT_END_PADDING
-	is smaller than 8 bytes, increase TLS_PRE_TCB_SIZE by 16 bytes.
-	(THREAD_SYSINFO, THREAD_SELF, DB_THREAD_SELF): Don't assume
-	TLS_PRE_TCB_SIZE is sizeof (struct pthread).
-	(THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
-	* sysdeps/ia64/tcb-offsets.sym (PID, TID, MULTIPLE_THREADS_OFFSET):
-	Use TLS_PRE_TCB_SIZE instead of sizeof (struct pthread).
-	* sysdeps/unix/sysv/linux/ia64/createthread.c (TLS_VALUE): Don't
-	assume TLS_PRE_TCB_SIZE is sizeof (struct pthread).
-
-2005-06-25  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/tls.h (tcbhead_t): Add stack_guard field.
-	(THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
-	* sysdeps/x86_64/tls.h (tcbhead_t): Add sysinfo and stack_guard
-	fields.
-	(THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
-	* sysdeps/s390/tls.h (tcbhead_t): Add stack_guard
-	field.  Put in sysinfo field unconditionally.
-	(THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
-	* sysdeps/powerpc/tls.h (tcbhead_t): Add stack_guard field.
-	(THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
-	* sysdeps/sparc/tls.h (tcbhead_t): Add sysinfo and stack_guard
-	fields.
-	(THREAD_SET_STACK_GUARD, THREAD_COPY_STACK_GUARD): Define.
-	* pthread_create.c (__pthread_create_2_1): Use
-	THREAD_COPY_STACK_GUARD macro.
-	* Makefile: Add rules to build and run tst-stackguard1{,-static}
-	tests.
-	* tst-stackguard1.c: New file.
-	* tst-stackguard1-static.c: New file.
-
-2005-06-14  Alan Modra  <amodra@bigpond.net.au>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
-	Invoke CGOTSETUP and CGOTRESTORE.
-	(CGOTSETUP, CGOTRESTORE): Define.
-
-2005-05-29  Richard Henderson  <rth@redhat.com>
-
-	* tst-cancel4.c (WRITE_BUFFER_SIZE): New.
-	(tf_write, tf_writev): Use it.
-	(do_test): Use socketpair instead of pipe.  Set SO_SNDBUF to
-	the system minimum.
-
-2005-05-23  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
-	[IS_IN_librt] (CENABLE, CDISABLE): Use JUMPTARGET instead of
-	__librt_*_asynccancel@local.
-
-2005-05-17  Alan Modra  <amodra@bigpond.net.au>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Delete
-	all occurrences of JUMPTARGET.  Instead append @local to labels.
-
-2005-05-20  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN): Define to
-	size/alignment of struct pthread rather than tcbhead_t.
-	* sysdeps/x86_64/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
-	Likewise.
-	* sysdeps/s390/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
-	Likewise.
-	* sysdeps/sparc/tls.h (TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN):
-	Likewise.
-
-2005-05-19  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use
-	__sync_val_compare_and_swap, not explicit _si variant.
-	* sysdeps/ia64/pthread_spin_trylock.c (pthread_spin_trylock): Likewise.
-
-2005-05-03  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #915]
-	* sysdeps/pthread/pthread.h: Avoid empty initializers.
-
-2005-05-03  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Remove explicit
-	.eh_frame section, use cfi_* directives.
-
-2005-04-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Use <> instead
-	of "" includes.
-
-2005-04-27  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #1075]
-	* tst-cancel17.c (do_test): Add arbitrary factor to make sure
-	aio_write blocks.
-
-2005-04-27  Roland McGrath  <roland@redhat.com>
-
-	* Makefile (tests): Remove tst-clock2.
-
-	* sysdeps/unix/sysv/linux/timer_create.c (timer_create): Handle
-	CLOCK_PROCESS_CPUTIME_ID and CLOCK_PROCESS_THREAD_ID specially,
-	translating to the kernel clockid_t for our own process/thread clock.
-
-	* sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: New file.
-
-2005-04-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* old_pthread_cond_init.c: Include <errno.h>.
-	(__pthread_cond_init_2_0): Fail with EINVAL if COND_ATTR is
-	process shared or uses clock other than CLOCK_REALTIME.
-	* pthread_cond_init.c (__pthread_cond_init): Remove bogus comment.
-
-2005-04-13  David S. Miller  <davem@davemloft.net>
-
-	* sysdeps/sparc/sparc64/jmpbuf-unwind.h: New file.
-	* sysdeps/sparc/sparc64/clone.S: New file.
-
-2005-04-05  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #1102]
-	* sysdeps/pthread/pthread.h (__pthread_cleanup_routine): Use
-	__inline instead of inline.
-	* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_routine): Likewise.
-
-2005-03-31  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Use
-	functionally equivalent, but shorter instructions.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
-
-2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* sysdeps/mips/Makefile: New file.
-	* sysdeps/mips/nptl-sysdep.S: New file.
-	* sysdeps/mips/tcb-offsets.sym: New file.
-	* sysdeps/mips/pthread_spin_lock.S: New file.
-	* sysdeps/mips/pthread_spin_trylock.S: New file.
-	* sysdeps/mips/pthreaddef.h: New file.
-	* sysdeps/mips/tls.h: New file.
-	* sysdeps/mips/jmpbuf-unwind.h: New file.
-	* sysdeps/unix/sysv/linux/mips/lowlevellock.h: New file.
-	* sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h: New file.
-	* sysdeps/unix/sysv/linux/mips/bits/semaphore.h: New file.
-	* sysdeps/unix/sysv/linux/mips/pthread_once.c: New file.
-	* sysdeps/unix/sysv/linux/mips/fork.c: New file.
-	* sysdeps/unix/sysv/linux/mips/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/mips/vfork.S: New file.
-	* sysdeps/unix/sysv/linux/mips/clone.S: New file.
-	* sysdeps/unix/sysv/linux/mips/createthread.c: New file.
-	* sysdeps/unix/sysv/linux/mips/sysdep-cancel.h: New file.
-
-2005-03-23  Ulrich Drepper  <drepper@redhat.com>
-
-	[BZ #1112]
-	* pthread_create.c (__pthread_create_2_1): Rename syscall error
-	variable to scerr.
-
-2005-03-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-getpid1.c (do_test): Align stack passed to clone{2,}.
-
-2005-02-25  Roland McGrath  <roland@redhat.com>
-
-	* alloca_cutoff.c: Correct license text.
-	* tst-unload.c: Likewise.
-	* sysdeps/pthread/allocalim.h: Likewise.
-	* sysdeps/pthread/pt-initfini.c: Likewise.
-	* sysdeps/pthread/bits/libc-lock.h: Likewise.
-	* sysdeps/pthread/bits/sigthread.h: Likewise.
-	* sysdeps/unix/sysv/linux/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
-
-2005-02-16  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
-	Use unsigned int * for ptr_nthreads.
-
-2005-02-14  Alan Modra  <amodra@bigpond.net.au>
-
-	[BZ #721]
-	* sysdeps/powerpc/tcb-offsets.sym (thread_offsetof): Redefine to suit
-	gcc4.
-
-2005-02-07  Richard Henderson  <rth@redhat.com>
-
-	[BZ #787]
-	* sysdeps/pthread/pthread.h (__sigsetjmp): Use pointer as first
-	argument.
-
-2004-11-03  Marcus Brinkmann  <marcus@gnu.org>
-
-	* sysdeps/generic/lowlevellock.h (__generic_mutex_unlock): Fix
-	order of arguments in invocation of atomic_add_zero.
-
-2005-01-26  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #737]
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S (__new_sem_trywait):
-	Use direct %gs segment access or, if NO_TLS_DIRECT_SEG_REFS,
-	at least gotntpoff relocation and addition.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
-	Likewise.
-
-2005-01-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (init_one_static_tls): Adjust initialization of DTV
-	entry for static tls deallocation fix.
-	* sysdeps/alpha/tls.h (dtv_t): Change pointer type to be struct which
-	also contains information whether the memory pointed to is static
-	TLS or not.
-	* sysdeps/i386/tls.h: Likewise.
-	* sysdeps/ia64/tls.h: Likewise.
-	* sysdeps/powerpc/tls.h: Likewise.
-	* sysdeps/s390/tls.h: Likewise.
-	* sysdeps/sh/tls.h: Likewise.
-	* sysdeps/sparc/tls.h: Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.
-
-2004-12-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Use __sigemptyset.
-
-2004-12-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/tls.h (CALL_THREAD_FCT): Maintain 16 byte alignment of
-	%esp.
-	* Makefile (tests): Add tst-align2.
-	* tst-align2.c: New test.
-	* sysdeps/i386/Makefile (CFLAGS-tst-align{,2}.c): Add
-	-mpreferred-stack-boundary=4.
-
-2004-12-18  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h:
-	New file removed withdrawn for the moment.
-
-2004-12-17  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/clone.S: New file.
-	* sysdeps/alpha/tcb-offsets.sym (TID_OFFSET): New.
-
-2004-12-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/bits/local_lim.h: New file.
-	Increased PTHREAD_STACK_MIN.
-
-	* tst-context1.c (stacks): Use bigger stack size.
-
-2004-12-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/sparc32/clone.S: New file.
-	* sysdeps/sparc/tcb-offsets.sym: Add TID.
-
-2004-12-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/s390-32/clone.S: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/clone.S: New file.
-	* sysdeps/s390/tcb-offsets.sym (TID): Add.
-
-2004-12-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: New file.
-
-2004-12-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/powerpc/tcb-offsets.sym: Add TID.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/clone.S: New file.
-
-	* tst-getpid1.c: If child crashes, report this first.  Print which
-	signal.
-
-2004-12-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Also unblock
-	SIGSETXID.
-
-2004-12-01  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_CPUTIME,
-	_POSIX_THREAD_CPUTIME): Define to 0.
-	* sysdeps/pthread/timer_create.c (timer_create): Remove unused code
-	handling CLOCK_PROCESS_CPUTIME_ID and CLOCK_THREAD_CPUTIME_ID.
-	* sysdeps/pthread/timer_routines.c (__timer_signal_thread_pclk,
-	__timer_signal_thread_tclk): Remove.
-	(init_module): Remove their initialization.
-	(thread_cleanup): Remove their cleanup assertions.
-	* sysdeps/pthread/posix-timer.h (__timer_signal_thread_pclk,
-	__timer_signal_thread_tclk): Remove.
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Removed.
-	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Removed.
-	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Removed.
-
-2004-12-07  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/ia64/tcb-offsets.sym (TID): Add.
-	* sysdeps/unix/sysv/linux/ia64/clone2.S: New file.
-
-	* Makefile (tests): Add tst-getpid2.
-	* tst-getpid1.c (TEST_CLONE_FLAGS): Define.
-	(do_test): Use it.  Use __clone2 instead of clone on ia64.
-	* tst-getpid2.c: New test.
-
-2004-12-07  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/clone.S: New file.
-
-2004-12-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-getpid1.
-	* tst-getpid1.c: New file.
-	* sysdeps/unix/sysv/linux/i386/clone.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/clone.S: New file.
-
-2004-12-02  Roland McGrath  <roland@redhat.com>
-
-	* Makefile (libpthread-nonshared): Variable removed.
-	($(objpfx)libpthread_nonshared.a): Target removed.
-	($(inst_libdir)/libpthread_nonshared.a): Likewise.
-	These are now handled by generic magic from
-	libpthread-static-only-routines being set.
-
-2004-11-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_PRIORITIZED_IO,
-	_POSIX2_CHAR_TERM, _POSIX_THREAD_PRIO_INHERIT,
-	_POSIX_THREAD_PRIO_PROTECT): Define.
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
-
-2004-11-26  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_ADVISORY_INFO,
-	_POSIX_SPORADIC_SERVER, _POSIX_THREAD_SPORADIC_SERVER, _POSIX_TRACE,
-	_POSIX_TRACE_EVENT_FILTER, _POSIX_TRACE_INHERIT, _POSIX_TRACE_LOG,
-	_POSIX_TYPED_MEMORY_OBJECTS, _POSIX_IPV6, _POSIX_RAW_SOCKETS): Define.
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
-
-2004-11-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/Makefile [nptl]: Define CFLAGS-pthread_create.c.
-
-	* Makefile (libpthread-routines): Add pthread_setschedprio.
-	* Versions [libpthread, GLIBC_2.3.4]: Add pthread_setschedprio.
-	* sysdeps/pthread/pthread.h: Declare pthread_setschedprio.
-	* pthread_setschedprio.c: New file.
-
-2004-11-20  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_create.c (pthread_cancel): Add PTHREAD_STATIC_FN_REQUIRE.
-	* pthread_cancel.c (pthread_create): Likewise.
-
-	* Makefile (libpthread-routines): Add vars.
-	* sysdeps/pthread/createthread.c (__pthread_multiple_threads): Remove.
-	* init.c (__default_stacksize, __is_smp): Remove.
-	* vars.c: New file.
-	* pthreadP.h (__find_thread_by_id): If !SHARED, add weak_function
-	and define a wrapper macro.
-	(PTHREAD_STATIC_FN_REQUIRE): Define.
-	* allocatestack.c (__find_thread_by_id): Undefine.
-	* pthread_create (__pthread_keys): Remove.
-	(pthread_mutex_lock, pthread_mutex_unlock, pthread_once,
-	pthread_key_create, pthread_setspecific, pthread_getspecific): Add
-	PTHREAD_STATIC_FN_REQUIRE.
-
-2004-11-18  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/tls.h (DB_THREAD_SELF): Set the correct bias
-	parameter to REGISTER macro.
-
-2004-11-17  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_routines.c (__start_helper_thread):
-	Make sure SIGCANCEL is blocked as well.
-
-2004-11-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/setxid.h: New file.
-	* sysdeps/pthread/pthread-functions.h (HAVE_PTR__NPTL_SETXID): Remove.
-	(struct xid_command): Add forward decl.
-	(struct pthread_functions): Change return type of __nptl_setxid hook
-	to int.
-	* pthreadP.h (__nptl_setxid): Change return type to int.
-	* allocatestack.c (__nptl_setxid): Call INTERNAL_SYSCALL_NCS in the
-	calling thread, return its return value and set errno on failure.
-	* descr.h (struct xid_command): Change id type to long array.
-
-	* Makefile: Add rules to build and test tst-setuid1 and
-	tst-setuid1-static.
-	* tst-setuid1.c: New test.
-	* tst-setuid1-static.c: New test.
-
-2004-11-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Add tst-exit3.
-	* tst-exit3.c: New test.
-
-2004-11-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-exit2.
-	* tst-exit2.c: New file.
-
-2004-11-09  Roland McGrath  <roland@redhat.com>
-
-	[BZ #530]
-	* sysdeps/pthread/createthread.c (do_clone): Increment __nptl_nthreads
-	here, before calling clone.
-	* pthread_create.c (start_thread): Don't do it here.
-
-2004-11-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/smp.h: Include <errno.h>.
-
-2004-10-29  Kaz  Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
-	Set ETIMEDOUT to errno when time is up.  Tweak to avoid
-	assembler warning.
-
-2004-10-28  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_create.c (__pthread_create_2_1): Avoid leaking stacks
-	if sched_priority is not between minprio and maxprio.
-
-2004-10-25  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Use clock_gettime syscall if exists.
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S
-	(__lll_mutex_timedlock_wait): Fix a bad branch condition.
-
-2004-10-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/smp.h (is_smp_system): Use
-	not-cancelable I/O functions.
-
-2004-10-21  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S
-	(__lll_mutex_timedlock_wait): If woken but cannot get the lock,
-	make sure 2 is stored in the futex and we looked at the old value.
-	Fix a few other problems to return the correct value.
-
-2004-10-14  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/alpha/tcb-offsets.sym (thread_offsetof): Redefine to
-	make gcc4 happy.
-
-2004-10-06  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/jmp-unwind.c: Include pthreadP.h instead
-	of pthread-functions.h and pthreaddef.h.
-	* sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
-	Change __data.__nwaiters from int to unsigned int.
-
-	* tst-clock2.c (do_test): Don't fail if _POSIX_THREAD_CPUTIME == 0 and
-	sysconf (_SC_THREAD_CPUTIME) returns negative value.
-
-	* allocatestack.c (__find_thread_by_id): Move attribute_hidden
-	before return type.
-
-	* sysdeps/s390/jmpbuf-unwind.h: Include bits/wordsize.h.
-	(JMPBUF_CFA_UNWINDS_ADJ): Subtract 96 resp. 160 bytes from CFA.
-
-2004-10-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel4.c (tf_msgrcv): Check for failure in msgget.  If the
-	test fails, remove message queue.
-	(tf_msgsnd): Likewise.
-
-2004-10-05  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-clock1.c: Change #ifdef to #if defined.
-	* tst-clock2.c: Likewise.
-	* tst-cond11.c: Likewise.
-
-	* sysdeps/pthread/timer_create.c (timer_create): Use
-	defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0 instead of
-	defined CLOCK_PROCESS_CPUTIME_ID #ifs and similarly for
-	THREAD_CPUTIME.
-
-2004-10-05  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h (_POSIX_CPUTIME,
-	_POSIX_THREAD_CPUTIME): Define to 0.
-
-2004-10-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Define _POSIX_CPUTIME
-	and _POSIX_THREAD_CPUTIME to zero.
-	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Likewise.
-	* tst-barrier2.c: Fix testing for POSIX feature.
-	* tst-clock1.c: Likewise.
-	* tst-clock2.c: Likewise.
-	* tst-cond11.c: Likewise.
-	* tst-cond4.c: Likewise.
-	* tst-cond6.c: Likewise.
-	* tst-flock2.c: Likewise.
-	* tst-mutex4.c: Likewise.
-	* tst-mutex9.c: Likewise.
-	* tst-rwlock12.c: Likewise.
-	* tst-rwlock4.c: Likewise.
-	* tst-signal1.c: Likewise.
-	* tst-spin2.c: Likewise.
-	* sysdeps/pthread/posix-timer.h: Likewise.
-	* sysdeps/pthread/timer_create.c: Likewise.
-	* sysdeps/pthread/timer_routines.c: Likewise.
-
-2004-10-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-	(__lll_mutex_timedlock_wait): Address futex correctly.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(__lll_mutex_timedlock_wait): If woken but cannot get the lock,
-	make sure 2 is stored in the futex and we looked at the old value.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-	(__lll_mutex_timedlock_wait): Likewise.  Fix a few other problems
-	which might very well made the code not working at all before.
-	[BZ #417]
-
-2004-09-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
-	allow SIGSETXID to be sent.
-	* sysdeps/pthread/sigaction.c (__sigaction): Don't allow action
-	for SIGSETXID to be defined.
-	* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
-	SIGSETXID cannot be blocked.
-
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
-	Add __extension__ to long long types.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-
-2004-09-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h (struct pthread): Add stopped_start field.
-	* sysdeps/pthread/createthread.c (create_thread): Set
-	start_stopped flag in descriptor for new thread appropriately.
-	* pthread_create.c (start_thread): Only take lock to be stopped on
-	startup if stopped_start flag says so.
-
-2004-09-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_create.c (__pthread_create_2_1): Remember whether thread
-	is created detached and if yes, do not try to free the stack in case
-	the thread creation failed.
-	* sysdeps/pthread/createthread.c (do_clone): Free stack here if clone
-	call fails.  Don't depend on INTERNAL_SYSCALL_ERRNO return zero in
-	case there has been no error.  [BZ #405]
-
-	* pthread_create.c (start_thread): Don't wait for scheduler data
-	etc to be set at the beginning of the function.  The cancellation
-	infrastructure must have been set up.  And enable async
-	cancellation before potentially going to sleep.  [BZ #401]
-
-2004-09-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* Versions: Remove exports for pthread_set*id_np functions.
-	* sysdeps/pthread/pthread.h: Remove pthread_set*id_np prototypes
-	for now.
-	* Makefile: Don't build pthread_set*id code for now.
-
-2004-09-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/allocrtsig.c: Allocate second signal for
-	internal use.
-	* allocatestack.c (__nptl_setxid): New function.
-	* descr.h (struct xid_command): Define type.
-	* init.c (pthread_functions): Add ptr__nptl_setxid initialization.
-	(sighandler_setxid): New function.
-	(__pthread_initialize_minimal): Register sighandler_setxid for
-	SIGCANCEL.
-	* pt-allocrtsig.c: Update comment.
-	* pthreadP.h: Define SIGSETXID.  Declare __xidcmd variable.
-	Declare __nptl_setxid.
-	* sysdeps/pthread/pthread-functions.h: Add ptr__nptl_setxid.
-	* sysdeps/pthread/pthread.h: Declare pthread_setgid_np,
-	pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
-	pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
-	and pthread_setresuid_np.
-	* pthread_setgid_np.c: New file.
-	* pthread_setuid_np.c: New file.
-	* pthread_setegid_np.c: New file.
-	* pthread_seteuid_np.c: New file.
-	* pthread_setregid_np.c: New file.
-	* pthread_setreuid_np.c: New file.
-	* pthread_setresgid_np.c: New file.
-	* pthread_setresuid_np.c: New file.
-	* Versions [libpthread, GLIBC_2.3.4]: Add pthread_setgid_np,
-	pthread_setuid_np, pthread_setegid_np, pthread_seteuid_np,
-	pthread_setregid_np, pthread_setreuid_np, pthread_setresgid_np,
-	and pthread_setresuid_np.
-	* Makefile (libpthread-routines): Add pthread_setuid, pthread_seteuid,
-	pthread_setreuid, pthread_setresuid, pthread_setgid, pthread_setegid,
-	pthread_setregid, and pthread_setresgid.
-
-2004-09-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): Return EAGAIN instead of
-	ENOMEM when out of memory.
-
-2004-09-10  Roland McGrath  <roland@redhat.com>
-
-	[BZ #379]
-	* allocatestack.c (allocate_stack): Remove [__ASSUME_CLONE_STOPPED]
-	code, since we don't try to use the broken CLONE_STOPPED any more.
-	* pthread_create.c (start_thread): Likewise.
-
-2004-09-15  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/vfork.S: Use libc_hidden_def.
-
-2004-09-01  David Mosberger  <davidm@hpl.hp.com>
-
-	* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h
-	(__libc_unwind_longjmp): Delete macro and declare as function.
-	* sysdeps/unix/sysv/linux/ia64/Makefile (sysdep_routines): Mention
-	__ia64_longjmp, sigstack_longjmp, and __sigstack_longjmp for
-	nptl directory.
-	* sysdeps/unix/sysv/linux/ia64/__ia64_longjmp.S: New file.
-	* sysdeps/unix/sysv/linux/ia64/__sigstack_longjmp.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/unwind_longjmp.c: New file.
-
-2004-09-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Make rwlock prototypes available also
-	for __USE_XOPEN2K.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define rwlock
-	types also for __USE_XOPEN2K.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-	[BZ #320]
-
-2004-09-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h
-	(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): Make safe for C++.
-	(PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Likewise.
-	(PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP): Likewise.
-	(PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP): Likewise.
-	[BZ #375]
-
-2004-09-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Allow
-	PSEUDO to be used with . prefix.
-
-	* sysdeps/unix/sysv/linux/alpha/pthread_once.c (__pthread_once):
-	Use atomic_increment instead of atomic_exchange_and_add.
-	* sysdeps/unix/sysv/linux/sparc/pthread_once.c (__pthread_once):
-	Likewise.
-	* sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
-	Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
-	Likewise.
-
-	* allocatestack.c (allocate_stack): Use atomic_increment_val
-	instead of atomic_exchange_and_add.
-	* sysdeps/unix/sysv/linux/sem_post.c (__new_sem_post): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/sem_post.c (__new_sem_post):
-	Likewise.
-	* sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
-	Likewise.
-
-	* sysdeps/pthread/pthread.h (pthread_once): Remove __THROW since
-	the initialization function might throw.
-
-2005-09-05  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
-	Move definition inside libpthread, libc, librt check.  Provide
-	definition for rtld.
-
-2004-09-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
-	* sysdeps/i386/jmpbuf-unwind.h: Likewise
-	* sysdeps/powerpc/jmpbuf-unwind.h: Likewise.
-	* sysdeps/s390/jmpbuf-unwind.h: Likewise.
-	* sysdeps/sh/jmpbuf-unwind.h: Likewise.
-	* sysdeps/sparc/sparc32/jmpbuf-unwind.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Likewise.
-	* sysdeps/x86_64/jmpbuf-unwind.h: Likewise.
-	* unwind.c: Use it.
-
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
-	Rename __data.__clock to __data.__nwaiters, make it unsigned int.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
-	Decrement __nwaiters.  If pthread_cond_destroy has been called and
-	this is the last waiter, signal pthread_cond_destroy caller and
-	avoid using the pthread_cond_t structure after unlock.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	Read clock type from the least significant bits of __nwaiters instead
-	of __clock.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/internaltypes.h: Define COND_CLOCK_BITS.
-
-2004-08-31  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #342]
-	* Makefile (tests): Add tst-cond20 and tst-cond21.
-	* tst-cond20.c: New test.
-	* tst-cond21.c: New test.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
-	(pthread_cond_t): Rename __data.__clock to __data.__nwaiters, make
-	it unsigned int.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
-	Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
-	(pthread_cond_t): Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
-	Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
-	Likewise.
-	* sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_clock): Remove.
-	(cond_nwaiters): New.
-	(clock_bits): New.
-	* pthread_cond_destroy.c (__pthread_cond_destroy): Return EBUSY
-	if there are waiters not signalled yet.
-	Wait until all already signalled waiters wake up.
-	* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Decrement
-	__nwaiters.  If pthread_cond_destroy has been called and this is the
-	last waiter, signal pthread_cond_destroy caller and avoid using
-	the pthread_cond_t structure after unlock.
-	(__pthread_cond_wait): Increment __nwaiters in the beginning,
-	decrement it when leaving.  If pthread_cond_destroy has been called
-	and this is the last waiter, signal pthread_cond_destroy caller.
-	* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
-	Likewise.  Read clock type from the least significant bits of
-	__nwaiters instead of __clock.
-	* pthread_condattr_setclock.c (pthread_condattr_setclock): Check
-	whether clock ID can be encoded in COND_CLOCK_BITS bits.
-	* pthread_condattr_getclock.c (pthread_condattr_getclock): Decode
-	clock type just from the last COND_CLOCK_BITS bits of value.
-	* pthread_cond_init.c (__pthread_cond_init): Initialize __nwaiters
-	instead of __clock, just from second bit of condattr's value.
-
-2004-08-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Include
-	bits/wordsize.h.  Make the header match i386 header when __WORDSIZE
-	!= 64.
-	* sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
-
-2004-08-15  Roland McGrath  <roland@frob.com>
-
-	* pthread_atfork.c: Update copyright terms including special exception
-	for these trivial files, which are statically linked into executables
-	that use dynamic linking for the significant library code.
-
-2004-08-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* DESIGN-rwlock.txt: Add decreasing of nr_readers_queued to
-	pthread_rwlock_rdlock.
-	* sysdeps/pthread/pthread_rwlock_rdlock (__pthread_rwlock_rdlock):
-	Decrease __nr_readers_queued after reacquiring lock.
-	* sysdeps/pthread/pthread_rwlock_timedrdlock
-	(pthread_rwlock_timedrdlock): Likewise.
-	Reported by Bob Cook <bobcook47@hotmail.com>.
-
-2004-08-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-rwlock14.c (tf): Read main thread handle from *ARG
-	before pthread_barrier_wait.
-
-2004-08-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
-	Remove unnecessary exception handling data.
-
-2004-07-23  Jakub Jelinek  <jakub@redhat.com>
-
-	[BZ #284]
-	* sysdeps/pthread/pthread.h (pthread_getcpuclockid): Use __clockid_t
-	instead of clockid_t.
-
-2004-07-21  Roland McGrath  <roland@redhat.com>
-
-	* Makefile ($(objpfx)multidir.mk): Use $(make-target-directory).
-
-2004-07-19  Roland McGrath  <roland@redhat.com>
-
-	* tst-cancel4.c (tf_waitid): Use WEXITED flag bit if available.
-
-2004-07-02  Roland McGrath  <roland@redhat.com>
-
-	* configure: Don't exit.
-
-2004-07-14  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Check for invalid nanosecond in
-	timeout value.
-
-2004-07-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile: Add rules to build and run tst-fini1.
-	* tst-fini1.c: New file.
-	* tst-fini1mod.c: New file.
-
-2004-07-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define NO_CANCELLATION
-	if no cancellation support is needed.
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: Likewise.
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Define __NR_futex
-	only if not already defined.
-
-2004-07-05  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_unlock): Use
-	constraint "m" instead of "0" for futex.
-
-	* shlib-versions: Add powerpc64-.*-linux.*.
-
-2004-07-04  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
-	(pthread_rwlock_timedrdlock): Use cmpq instead of cmpl to check
-	for valid tv_nsec.
-	* tst-rwlock14.c (do_test): Test for invalid tv_nsec equal to
-	1 billion and 64-bit tv_nsec which is valid when truncated to 32
-	bits.
-
-2004-06-29  Roland McGrath  <roland@redhat.com>
-
-	* Banner: NPTL no longer has its own version number.
-	* Makefile (nptl-version): Variable removed.
-	* sysdeps/pthread/Makefile (CFLAGS-confstr.c): Set LIBPTHREAD_VERSION
-	using $(version), the glibc version number.
-
-2004-06-29  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
-	Fix branch offset for a PLT entry.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S (__new_sem_post):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S (sem_timedwait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_trywait.S (__new_sem_trywait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait):
-	Likewise.
-
-2004-06-28  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/alpha/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define
-	unconditionally.
-
-2004-06-28  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c
-	(pthread_rwlock_timedwrlock): Return EINVAL if tv_nsec is negative,
-	instead of tv_sec.
-	* sysdeps/pthread/pthread_rwlock_timedrdlock.c
-	(pthread_rwlock_timedrdlock): Likewise.
-
-2004-06-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
-	Set __r7 to val, not mutex.
-
-2004-06-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile: Add rules to build tst-rwlock14.
-	* tst-rwlock14.c: New file.
-
-2004-06-24  Boris Hu  <boris.hu@intel.com>
-
-	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Add timeout validation
-	check.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
-
-2004-06-19  Andreas Jaeger  <aj@suse.de>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Fix
-	assembler in last patch.
-
-2004-06-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_timedwait.c
-	(__pthread_cond_timedwait): Also check for negativ nanoseconds.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Check for invalid nanosecond in
-	timeout value.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* tst-cond19.c: New file.
-	* Makefile: Add rules to build and run tst-cond19.
-
-2004-06-15  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* tst-context1.c (GUARD_PATTERN): Defined.
-	(tst_context_t): Define struct containing ucontext_t & guard words.
-	(ctx): Declare as an array of tst_context_t.
-	(fct): Verify uc_link & guard words are still valid.
-	(tf): Initialize guard words in ctx.  Adjust ctx refs for new struct.
-
-2004-06-13  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
-	Add __data.__futex field, reshuffle __data.__clock.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
-	(__pthread_cond_signal): Increment __futex at the same time as
-	__wakeup_seq or __total_seq.  Pass address of __futex instead of
-	address of low 32-bits of __wakeup_seq to futex syscall.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
-	(__pthread_cond_wait): Likewise.  Pass __futex value from before
-	releasing internal lock to FUTEX_WAIT.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
-	(FUTEX_CMP_REQUEUE): Define.
-	(__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
-	Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
-	Pass __futex value from before the unlock and __futex address instead
-	of address of low 32-bits of __wakeup_seq to futex syscall.
-	Fallback to FUTEX_WAKE all on any errors.
-
-2004-06-08  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_mutexattr_getpshared.c (pthread_mutex_getpshared): Fix
-	comment typo.
-	* pthread_mutexattr_gettype.c (pthread_mutexattr_gettype): Likewise.
-	* pthread_mutexattr_init.c (__pthread_mutexattr_init): Likewise.
-	* pthread_mutexattr_settype.c (__pthread_mutexattr_settype): Likewise.
-	* pthread_mutexattr_setpshared.c (pthread_mutexattr_setpshared):
-	Likewise.  Reported by Bob Cook <bobcook47@hotmail.com>.
-
-2004-06-11  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_compare_and_swap):
-	Add memory clobber to inline assembly.
-	(__lll_mutex_trylock): Likewise.
-	(__lll_mutex_cond_trylock): Likewise.
-
-2004-06-07  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (lll_futex_requeue):
-	Pass val argument as 6th system call argument in %r7.
-
-2004-05-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Add tst-cond16.
-	* sysdeps/unix/sysv/linux/lowlevelcond.sym (cond_futex): Add.
-	* pthread_cond_init.c (__pthread_cond_init): Clear __data.__futex.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
-	Add __data.__futex field, reshuffle __data.__clock.
-	* sysdeps/unix/sysv/linux/i386/pthread_cond_signal.S
-	(__pthread_cond_signal): Increment __futex at the same time as
-	__wakeup_seq or __total_seq.  Pass address of __futex instead of
-	address of low 32-bits of __wakeup_seq to futex syscall.
-	* sysdeps/unix/sysv/linux/i386/pthread_cond_wait.S
-	(__pthread_cond_wait): Likewise.  Pass __futex value from before
-	releasing internal lock to FUTEX_WAIT.
-	* sysdeps/unix/sysv/linux/i386/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/i386/pthread_cond_broadcast.S
-	(FUTEX_CMP_REQUEUE): Define.
-	(__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
-	Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
-	Pass __futex value from before the unlock and __futex address instead
-	of address of low 32-bits of __wakeup_seq to futex syscall.
-	Fallback to FUTEX_WAKE all on any errors.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (FUTEX_CMP_REQUEUE):
-	Define.
-	(lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
-	internally.  Return non-zero if error, zero if success.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
-	Add __data.__futex field, reshuffle __data.__clock.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_CMP_REQUEUE):
-	Define.
-	(lll_futex_requeue): Add val argument, return 1 unconditionally
-	for the time being.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
-	Add __data.__futex field, reshuffle __data.__clock.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_CMP_REQUEUE):
-	Define.
-	(lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
-	internally.  Return non-zero if error, zero if success.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
-	(pthread_cond_t): Add __data.__futex field, reshuffle __data.__clock.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h (FUTEX_CMP_REQUEUE):
-	Define.
-	(lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
-	internally.  Return non-zero if error, zero if success.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h (pthread_cond_t):
-	Add __data.__futex field, reshuffle __data.__clock.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (FUTEX_CMP_REQUEUE):
-	Define.
-	(lll_futex_requeue): Add val argument, use FUTEX_CMP_REQUEUE
-	internally.  Return non-zero if error, zero if success.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h (pthread_cond_t):
-	Add __data.__futex field, reshuffle __data.__clock.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h (pthread_cond_t):
-	Add __data.__futex field, reshuffle __data.__clock.
-	* sysdeps/pthread/pthread_cond_signal.c (__pthread_cond_signal):
-	Increment __futex at the same time as __wakeup_seq or __total_seq.
-	Pass address of __futex instead of address of low 32-bits of
-	__wakeup_seq to futex syscall.
-	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
-	Pass __futex value from before releasing internal lock
-	to FUTEX_WAIT.
-	* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
-	Likewise.  Avoid unnecessary shadowing of variables.
-	* sysdeps/pthread/pthread_cond_broadcast.c (__pthread_cond_broadcast):
-	Set __futex to 2 * __total_seq.  Pass __futex value from before the
-	unlock and __futex address instead of address of low 32-bits of
-	__wakeup_seq to futex_requeue macro, adjust for new return value
-	meaning.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
-	(__pthread_cond_signal): Increment __futex at the same time as
-	__wakeup_seq or __total_seq.  Pass address of __futex instead of
-	address of low 32-bits of __wakeup_seq to futex syscall.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__pthread_cond_wait): Likewise.  Pass __futex value from before
-	releasing internal lock to FUTEX_WAIT.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
-	(FUTEX_CMP_REQUEUE): Define.
-	(__pthread_cond_broadcast): Set __futex to 2 * __total_seq.
-	Use FUTEX_CMP_REQUEUE operation instead of FUTEX_REQUEUE.
-	Pass __futex value from before the unlock and __futex address instead
-	of address of low 32-bits of __wakeup_seq to futex syscall.
-	Fallback to FUTEX_WAKE all on any errors.
-
-2004-06-03  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_mutex_lock):
-	Add nop to align the end of critical section.
-	(lll_mutex_cond_lock, lll_mutex_timedlock): Likewise.
-
-2004-06-01  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
-	Add __broadcast_seq field.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Mark
-	all waiters as woken with woken_seq and bump broadcast counter.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use new
-	__broadcast_seq.  Increment __woken_seq correctly when cleanuped.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-	Comment typo fixes.  Avoid returning -ETIMEDOUT.
-
-2004-06-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__condvar_tw_cleanup): Fix access to saved broadcast_seq value.
-	Reported by Kaz Kojima.
-
-2004-05-25  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/aio_misc.h: New file.
-
-2004-05-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Compare
-	__broadcast_seq with bc_seq after acquiring internal lock instead of
-	before it.
-
-2004-05-18  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (.NOTPARALLEL): Only serialize make check/xcheck, not
-	compilation.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Avoid returning -ETIMEDOUT.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
-	(pthread_cond_t): Add __data.__broadcast_seq field.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(FRAME_SIZE): Define.
-	(__pthread_cond_timedwait): Use it.  Store/check broadcast_seq.
-	Comment typo fixes.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S (FRAME_SIZE):
-	Define.
-	(__pthread_cond_wait): Use it.  Store/check broadcast_seq.  Comment
-	typo fixes.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Increment broadcast_seq.  Comment typo
-	fixes.
-
-2004-05-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevelcond.sym: Add broadcast_seq entry.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_cond_t):
-	Add __broadcast_seq field.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Mark
-	all waiters as woken with woken_seq and bump broadcast counter.
-	* sysdeps/pthread/pthread_cond_broadcast.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use new
-	__broadcast_seq field.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/pthread/pthread_cond_wait.c: Likewise.
-	* sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
-	* pthread_cond_init.c: Initialize __broadcast_seq field.
-	* Makefile (tests): Add tst-cond17 and tst-cond18.
-	Add .NOTPARALLEL goal.
-	* tst-cond16.c: New file.  From Jakub.
-	* tst-cond17.c: New file.  From Jakub.
-	* tst-cond18.c: New file.  From Jakub.
-
-2004-05-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Correct some
-	unwind info.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S:
-	Parametrize frame size.  Correct some unwind info.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-
-2004-05-04  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-stack3.c: Note testing functionality beyond POSIX.
-
-2004-05-04  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (USE___THREAD):
-	Change conditional from ifdef to if.
-
-2004-04-23  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SYSDEP_CANCEL_ERRNO,
-	SYSDEP_CANCEL_ERROR): Define.
-	(PSEUDO): Use it.
-
-2004-05-01  Jakub Jelinek  <jakub@redhat.com>
-
-	* Versions (libpthread): Remove __pthread_cleanup_upto@@GLIBC_PRIVATE.
-
-2004-04-20  Jakub Jelinek  <jakub@redhat.com>
-
-	* sem_unlink.c (sem_unlink): Change EPERM into EACCES.
-
-2004-04-19  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Add frame info.
-	Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Remove unneeded frame
-	info.  Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
-
-2004-04-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_routines.c: Make sure helper
-	thread has all signals blocked.
-
-2004-04-18  Andreas Jaeger  <aj@suse.de>
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
-	(SEM_VALUE_MAX): Add missing brace.
-
-2004-04-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/Makefile (tests): Add tst-mqueue8x
-	in rt subdir.
-	(CFLAGS-tst-mqueue8x.c): Add -fexceptions.
-	* sysdeps/pthread/tst-mqueue8x.c: New test.
-	* tst-cancel4.c: Update comment about message queues.
-
-	* sysdeps/pthread/timer_gettime.c (timer_gettime): For expired timer
-	return it_value { 0, 0 }.
-	* sysdeps/pthread/timer_create.c (timer_create): Handle SIGEV_NONE
-	like SIGEV_SIGNAL.
-	* sysdeps/pthread/timer_routines.c (thread_expire_timer): Remove
-	assertion for SIGEV_NONE.
-	(thread_attr_compare): Compare all attributes, not just a partial
-	subset.
-
-2004-04-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/mq_notify.c: Include stdlib.h.
-
-2004-04-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/bits/semaphore.h (SEM_VALUE_MAX):
-	Just use a plain number.
-	* sysdeps/unix/sysv/linux/i386/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: Likewise.
-
-2004-04-16  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Remove unneeded
-	frame info.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-
-2004-04-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_routines.c: Include errno.h.
-	(timer_helper_thread): Use inline rt_sigtimedwait syscall instead
-	of calling sigwaitinfo.
-
-2004-04-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): Set reported_guardsize
-	unconditionally.
-	* pthread_getattr_np.c (pthread_getattr_np): Use
-	reported_guardsize instead of guardsize.
-	* descr.h (struct pthread): Add reported_guardsize field.
-
-2004-04-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/mq_notify.c: Shut up GCC warning.
-
-2004-04-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/mq-notify.c: New file.
-
-2004-04-08  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/local_lim.h (MQ_PRIO_MAX): Define.
-	* sysdeps/unix/sysv/linux/alpha/bits/local_lim.h (MQ_PRIO_MAX): Define.
-	* sysdeps/unix/sysv/linux/ia64/bits/local_lim.h (MQ_PRIO_MAX): Define.
-	* sysdeps/unix/sysv/linux/sparc/bits/local_lim.h (MQ_PRIO_MAX): Define.
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h (_POSIX_MESSAGE_PASSING):
-	Define.
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h
-	(_POSIX_MESSAGE_PASSING): Define.
-	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h
-	(_POSIX_MESSAGE_PASSING): Define.
-	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h
-	(_POSIX_MESSAGE_PASSING): Define.
-
-2004-04-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-context1.c (fct): Check whether correct stack is used.
-
-2004-04-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Never use
-	matching constraints for asm mem parameters.
-
-	* tst-clock2.c (tf): Don't define unless needed.
-
-2004-03-30  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* Makefile (link-libc-static): Use $(static-gnulib) instead of
-	$(gnulib).
-
-2004-03-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread-functions.h: Add ptr__nptl_deallocate_tsd.
-	* init.c (pthread_functions): Add ptr__nptl_deallocate_tsd.
-	* pthreadP.h: Declare __nptl_deallocate_tsd.
-	* pthread_create.c (deallocate_tsd): Remove to __nptl_deallocate_tsd.
-	Adjust caller.
-
-	* Makefile (tests): Add tst-tsd5.
-	* tst-tsd5.c: New file.
-
-2004-03-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
-	(__pthread_attr_setaffinity_old): Prepend GLIBC_ to version names
-	is SHLIB_COMPAT check.
-	* sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
-	(__pthread_attr_getaffinity_old): Likewise.
-	* sysdeps/unix/sysv/linux/pthread_getaffinity.c
-	(__pthread_getaffinity_old): Likewise.
-	* sysdeps/unix/sysv/linux/pthread_setaffinity.c
-	(__pthread_setaffinity_old): Likewise.
-
-2004-03-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (_make_stacks_executable): Call
-	_dl_make_stack_executable first.
-
-2004-03-24  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/i386/pthread_spin_lock.c (pthread_spin_lock): Use "m"
-	constraint instead of "0".
-
-2004-03-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(lll_mutex_cond_trylock): Define as wrapper around __lll_cond_trylock.
-
-	* sysdeps/unix/sysv/linux/getpid.c (really_getpid): Reorganize
-	code to avoid warning.
-
-2004-03-24  Andreas Jaeger  <aj@suse.de>
-
-	* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
-	(__pthread_attr_setaffinity_old): Remove const.
-
-2004-03-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/smp.h: New file.
-	* sysdeps/unix/sysv/linux/sh/smp.h: New file.
-	* init.c: Define __is_smp.
-	(__pthread_initialize_minimal_internal): Call is_smp_system to
-	initialize __is_smp.
-	* pthreadP.h: Declare __is_smp.
-	Define MAX_ADAPTIVE_COUNT is necessary.
-	* pthread_mutex_init.c: Add comment regarding __spins field.
-	* pthread_mutex_lock.c: Implement adaptive mutex type.
-	* pthread_mutex_timedlock.c: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Likewise.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h (pthread_mutex_t):
-	Add __spins field.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Define
-	lll_mutex_cond_trylock.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
-	Define BUSY_WAIT_NOP.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-
-	* tst-mutex5.c: Add support for testing adaptive mutexes.
-	* tst-mutex7.c: Likewise.
-	* tst-mutex5a.c: New file.
-	* tst-mutex7a.c: New file.
-	* Makefile (tests): Add tst-mutex5a and tst-mutex7a.
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-	(__lll_mutex_timedlock_wait): Preserve r8 and r9 since the
-	vgettimeofday call might destroy the content.
-
-	* sysdeps/ia64/pthread_spin_lock.c (pthread_spin_lock): Use hint
-	@pause in the loop.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
-	No need to restrict type of ret.  Make it int.  Add comment.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_mutex_trylock):
-	Remove unnecessary setne instruction.
-
-2004-03-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/pthread_getaffinity.c
-	(__pthread_getaffinity_new): Use INT_MAX instead of UINT_MAX.
-	* pthread_getattr_np.c (pthread_getattr_np): Double size every cycle.
-	If realloc fails, break out of the loop.
-
-2004-03-20  Andreas Jaeger  <aj@suse.de>
-
-	* sysdeps/unix/sysv/linux/pthread_setaffinity.c
-	(__pthread_setaffinity_old): Fix interface.
-	* sysdeps/unix/sysv/linux/pthread_getaffinity.c
-	(__pthread_getaffinity_old): Likewise.
-
-	* sysdeps/unix/sysv/linux/pthread_setaffinity.c
-	(__pthread_setaffinity_new): Remove duplicate declaration.
-
-2004-03-20  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (CENABLE): Save
-	the return value to a safe register.
-	(CDISABLE): Set the function argument correctly.
-
-2004-03-17  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h (XCHG): Define.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S (__lll_mutex_lock_wait):
-	Rewrite so that only one locked memory operation per round is needed.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
-	(pthread_barrier_wait): After wakeup, release lock only when the
-	last thread stopped using the barrier object.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
-	(__pthread_cond_wait): Don't store mutex address if the current
-	value is ~0l.  Add correct cleanup support and unwind info.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Don't use requeue for pshared condvars.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Update comment.
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S (__pthread_once):
-	Add correct cleanup support and unwind info.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S (__new_sem_wait): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Add unwind
-	information for syscall wrappers.
-
-2004-03-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
-	cpusetsize field, remove next.
-	* sysdeps/pthread/pthread.h (pthread_getaffinity_np): Add new second
-	parameter for size of the CPU set.
-	(pthread_setaffinity_np): Likewise.
-	(pthread_attr_getaffinity_np): Likewise.
-	(pthread_attr_setaffinity_np): Likewise.
-	* sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: Implement
-	interface change, keep compatibility code.
-	* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_getaffinity.c: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_setaffinity.c: Likewise.
-	* pthreadP.h: Remove hidden_proto for pthread_getaffinity_np.  Declare
-	__pthread_getaffinity_np.
-	* Versions: Add version for changed interfaces.
-	* tst-attr3.c: Adjust test for interface change.
-	* pthread_getattr_np.c: Query the kernel about the affinity mask with
-	increasing buffer sizes.
-	* pthread_attr_destroy.c: Remove unused list handling.
-	* pthread_attr_init.c: Likewise.
-
-2004-03-17  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_create.c (timer_create): Pass missing
-	first argument to clock_getres so we ever enable kernel timers.
-
-2004-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
-
-	* init.c (nptl_version): Add __attribute_used__ to nptl_version.
-
-2004-03-12  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: Propagate
-	oldvalue from CENABLE to CDISABLE.
-
-2004-03-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/local_lim.h: Define HOST_NAME_MAX.
-	* sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: Likewise.
-	* sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: Likewise.
-
-2004-03-11  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/alpha/tcb-offsets.sym (PID_OFFSET): New.
-	* sysdeps/unix/sysv/linux/alpha/pt-vfork.S: Save/restore PID.
-	* sysdeps/unix/sysv/linux/alpha/vfork.S: New file.
-
-2004-03-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Use jgnl
-	instead of jnl instruction to jump to SYSCALL_ERROR_LABEL.
-	* sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S (__vfork): Likewise.
-
-2004-03-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* forward.c (__pthread_cond_broadcast_2_0,
-	__pthread_cond_destroy_2_0, __pthread_cond_init_2_0,
-	__pthread_cond_signal_2_0, __pthread_cond_wait_2_0,
-	__pthread_cond_timedwait_2_0): Use return 0 as defaction instead of 0.
-
-2004-03-11  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/tcb-offsets.sym: Add PID.
-	* sysdeps/unix/sysv/linux/sh/pt-vfork.S: Properly handle PID cache.
-	* sysdeps/unix/sysv/linux/sh/vfork.S: New file.
-
-2004-03-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: No need to
-	include <sysdep-cancel.h>, vfork is no cancellation point.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: Likewise.
-
-2004-03-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/s390-32/vfork.S (__vfork): Add
-	libc_hidden_def.
-	* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S (__vfork): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S (__vfork):
-	Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S (__vfork):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S (__vfork): Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S (__vfork): Likewise.
-	* sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Include tcb-offsets.h.
-	* sysdeps/unix/sysv/linux/ia64/vfork.S (__vfork): Use DO_CALL instead
-	of DO_CALL_VIA_BREAK.  Work around a gas problem.
-
-	* sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: Remove.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S: New file.
-	* sysdeps/powerpc/tcb-offsets.sym: Add PID.
-
-	* sysdeps/unix/sysv/linux/ia64/pt-vfork.S (__vfork): Don't use
-	a local register for saving old PID.  Negate PID in parent upon exit.
-
-	* sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Include
-	tcb-offsets.h.
-	(__vfork): Negate PID if non-zero and set to INT_MIN if zero
-	before syscall, set to the old value in the parent afterwards.
-	* sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Include
-	tcb-offsets.h.
-	(__vfork): Negate PID if non-zero and set to INT_MIN if zero
-	before syscall, set to the old value in the parent afterwards.
-	* sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: New file.
-	* sysdeps/s390/tcb-offsets.sym: Add PID.
-
-	* sysdeps/unix/sysv/linux/sparc/pt-vfork.S: Remove.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S: New file.
-	* sysdeps/sparc/tcb-offsets.sym: Add PID.
-
-2004-03-10  Andreas Schwab  <schwab@suse.de>
-
-	* sysdeps/ia64/tcb-offsets.sym: Add PID.
-	* sysdeps/unix/sysv/linux/ia64/vfork.S: New file.
-	* sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Properly handle PID cache.
-
-2004-03-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-cancel20.c (do_one_test): Clear in_sh_body first.
-	* tst-cancel21.c (do_one_test): Likewise.
-	Reported by Gordon Jin <gordon.jin@intel.com>.
-
-2004-02-09  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/vfork.S (SAVE_PID): Negate PID
-	if non-zero and set to INT_MIN if zero.
-	* sysdeps/unix/sysv/linux/x86_64/vfork.S (SAVE_PID): Likewise.
-	* sysdeps/unix/sysv/linux/i386/pt-vfork.S: Include tcb-offsets.h.
-	(SAVE_PID, RESTORE_PID): Define.
-	(__vfork): Use it.
-	* sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: Include tcb-offsets.h.
-	Use relative path to avoid including NPTL i386/vfork.S.
-	(SAVE_PID, RESTORE_PID): Define.
-	* sysdeps/unix/sysv/linux/raise.c: Include limits.h.
-	(raise): Handle THREAD_SELF->pid INT_MIN the same as 0.
-	* Makefile (tests): Add tst-vfork1, tst-vfork2, tst-vfork1x and
-	tst-vfork2x.
-	(tests-reverse): Add tst-vfork1x and tst-vfork2x.
-	* tst-vfork1.c: New test.
-	* tst-vfork2.c: New test.
-	* tst-vfork1x.c: New test.
-	* tst-vfork2x.c: New test.
-
-2004-03-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/tcb-offsets.sym: Add PID.
-	* sysdeps/x86_64/tcb-offsets.sym: Likewise.
-	* sysdeps/unix/sysv/linux/i386/vfork.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/vfork.S: New file.
-
-2004-03-08  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/Versions: Remove leading tabs.
-
-2004-03-08  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* sysdeps/s390/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
-	_rtld_global_ro.
-
-2004-03-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/ia64/tls.h (INIT_SYSINFO): _dl_sysinfo is now in
-	_rtld_global_ro.
-
-	* tst-once4.c: Remove unnecessary macro definition.
-
-	* tst-mutex7.c (do_test): Limit thread stack size.
-	* tst-once2.c (do_test): Likewise.
-	* tst-tls3.c (do_test): Likewise.
-	* tst-tls1.c (do_test): Likewise.
-	* tst-signal3.c (do_test): Likewise.
-	* tst-kill6.c (do_test): Likewise.
-	* tst-key4.c (do_test): Likewise.
-	* tst-join4.c (do_test): Likewise.
-	* tst-fork1.c (do_test): Likewise.
-	* tst-context1.c (do_test): Likewise.
-	* tst-cond2.c (do_test): Likewise.
-	* tst-cond10.c (do_test): Likewise.
-	* tst-clock2.c (do_test): Likewise.
-	* tst-cancel10.c (do_test): Likewise.
-	* tst-basic2.c (do_test): Likewise.
-	* tst-barrier4.c (do_test): Likewise.
-
-2004-03-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/tls.h: Use GLRO instead of GL where appropriate.
-
-2004-03-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Optimize wakeup test.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
-	(__pthread_cond_wait): Likewise.
-	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
-	* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
-	Likewise.
-
-2004-02-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(__lll_mutex_lock_wait): Optimize a bit more.  Just one copy of
-	the atomic instruction needed.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-	(__lll_mutex_lock_wait): Likewise.
-
-2004-02-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-cond14 and tst-cond15.
-	* tst-cond14.c: New file.
-	* tst-cond15.c: New file.
-
-2004-02-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/createthread.c (create_thread): Remove use of
-	CLONE_STOPPED.  We cannot use SIGCONT which means CLONE_STOPPED
-	needs to be implemented differently to be useful.
-
-2004-02-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_attr_setschedparam.c: Don't test priority against limits
-	here.  Set ATTR_FLAG_SCHED_SET flag.
-	* pthread_attr_setschedpolicy.c: Set ATTR_FLAG_POLICY_SET flag.
-	* pthread_create.c (__pthread_create_2_1): Copy scheduling attributes
-	from parent thread to child.  If attribute is used and scheduling
-	parameters are not inherited, copy parameters from attribute or
-	compute them.  Check priority value.
-	* pthread_getschedparam.c: If the parameters aren't known yet get
-	them from the kernel.
-	* pthread_setschedparam.c: Set ATTR_FLAG_SCHED_SET and
-	ATTR_FLAG_POLICY_SET flag for thread.
-	* sysdeps/unix/sysv/linux/internaltypes.h: Define ATTR_FLAG_SCHED_SET
-	and ATTR_FLAG_POLICY_SET.
-
-	* sysdeps/pthread/createthread.c: Use tgkill if possible.
-
-	* pthread_attr_getstackaddr.c (__pthread_attr_getstackaddr): Don't
-	fail if stack address hasn't been set.  Just return 0.
-
-2004-02-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests-nolibpthread): Add tst-unload.  Don't link with
-	libpthread for the files in this list.
-	(CFLAGS-tst-unload): Removed.
-	* tst-unload.c (do_test): Don't use complete path for
-	LIBPHREAD_SO.
-
-	* Makefile: Define sonames for tst-tls5mod, tst-_res1mod1, and
-	tst-_res1mod2.
-
-2004-02-22  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(__lll_mutex_lock_wait): Rewrite so that only one locked memory
-	operation per round is needed.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
-	(__lll_mutex_lock_wait): Likewise.
-
-2004-02-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel9.c (cleanup): Don't print to stderr.
-
-2004-02-20  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/jmpbuf-unwind.h (_JMPBUF_UNWINDS_ADJ): Fix variable name.
-
-2004-02-20  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
-	(__syscall_error_handler2): Call CDISABLE.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
-	(__syscall_error_handler2): Call CDISABLE.
-
-	* sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
-	Release lock before the loop, don't reacquire it.
-
-	* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h (DL_ARGV_NOT_RELRO): Define.
-
-2004-02-19  Andreas Schwab  <schwab@suse.de>
-
-	* sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
-	Fix last change.
-
-2004-02-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
-	(pthread_barrier_wait): After wakeup, release lock only when the
-	last thread stopped using the barrier object.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
-	(pthread_barrier_wait): Likewise.
-	* sysdeps/pthread/pthread_barrier_wait.c (pthread_barrier_wait):
-	Likewise.
-	* Makefile (tests): Add tst-barrier4.
-	* tst-barrier4.c: New file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Perform timeout test while holding
-	internal lock to prevent wakeup race.
-	Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
-	* sysdeps/pthread/pthread_cond_timedwait.c
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-
-2004-02-18  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
-	(__pthread_rwlock_unlock): Access WRITER as 32-bit value.
-	* Makefile (tests): Add tst-rwlock13.
-	* tst-rwlock13.c: New test.
-
-2004-02-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__condvar_tw_cleanup): Little optimization.
-	Patch by Dinakar Guniguntala <dgunigun@in.ibm.com>.
-
-2004-02-16  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: Replace libc with
-	libpthread as "lib" parameter to SHLIB_COMPAT.
-	(__novmx_siglongjmp): Fix typo in function name.
-	(__novmx_longjmp): Fix typo in function name.
-
-2004-02-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Add a
-	__builtin_expect.
-
-	* sysdeps/generic/pt-longjmp.c: Moved to...
-	* sysdeps/pthread/pt-longjmp.c: ...here.  New file.
-
-2004-01-29  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* Makefile (libpthread-routines): Add pt-cleanup.
-	* pt-longjmp.c: Removed.
-	* pt-cleanup.c: Copied __pthread_cleanup_upto to here. New file.
-	* sysdeps/generic/pt-longjmp.c: Copied longjmp to here. New file.
-	* sysdeps/unix/sysv/linux/powerpc/Versions: New file.
-	Version longjmp, siglongjmp for GLIBC_2.3.4.
-	* sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c: New File.
-
-2004-02-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_timedwait.c
-	(__pthread_cond_timedwait): Optimize.  Drop internal lock earlier.
-	Reuse code.  Add __builtin_expects.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Get internal lock in case timeout has
-	passed before the futex syscall.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-
-2004-01-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c: Pretty printing.
-
-	* sysdeps/pthread/createthread.c (create_thread): Don't add
-	CLONE_DETACHED bit if it is not necessary.
-
-2004-01-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_getattr_np.c: Include ldsodefs.h.
-
-2004-01-16  Richard Henderson  <rth@redhat.com>
-
-	* allocatestack.c: Don't declare __libc_stack_end.
-	* init.c (__pthread_initialize_minimal_internal): Likewise.
-	* pthread_getattr_np.c (pthread_getattr_np): Likewise.
-
-2004-01-15  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/alpha/tls.h (tcbhead_t): Add private.
-	(TLS_INIT_TCB_SIZE, TLS_INIT_TCB_ALIGN, TLS_TCB_SIZE,
-	TLS_PRE_TCB_SIZE, TLS_TCB_ALIGN, INSTALL_DTV, INSTALL_NEW_DTV,
-	GET_DTV, THREAD_DTV, THREAD_SELF, DB_THREAD_SELF): Match ia64.
-	(TLS_TCB_OFFSET, THREAD_ID, NO_TLS_OFFSET): Remove.
-	(THREAD_GETMEM, THREAD_GETMEM_NC): Simplify.
-	(THREAD_SETMEM, THREAD_SETMEM_NC): Likewise.
-	* sysdeps/unix/sysv/linux/alpha/createthread.c (TLS_VALUE): Match ia64.
-
-2004-01-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (pthread_functions): Make array const.
-
-2004-01-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (__make_stacks_executable): Change interface.
-	Check parameters.  Pass parameter on to libc counterpart.
-	* pthreadP.h: Change declaration.
-
-2004-01-13  Richard Henderson  <rth@redhat.com>
-
-	* pthread_attr_setstack.c (__old_pthread_attr_setstack): Use
-	prototype form.
-	* pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize):
-	Likewise.
-
-	* sysdeps/alpha/Makefile: New file.
-	* sysdeps/alpha/tcb-offsets.sym: New file.
-	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h (SINGLE_THREAD_P):
-	Use MULTIPLE_THREADS_OFFSET to implement !libpthread !libc version.
-
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: Rewrite based
-	on powerpc version.
-
-2004-01-08  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Add tst-backtrace1.
-	* tst-backtrace1.c: New test.
-
-2003-12-11  Ulrich Weigand  <uweigand@de.ibm.com>
-
-	* sysdeps/alpha/tls.h (DB_THREAD_SELF): Pass bit size of thread
-	register as second parameter to the REGISTER macro.
-	* sysdeps/ia64/tls.h (DB_THREAD_SELF): Likewise.
-	* sysdeps/powerpc/tls.h (DB_THREAD_SELF): Likewise.
-	* sysdeps/sh/tls.h (DB_THREAD_SELF): Likewise.
-	* sysdeps/sparc/tls.h (DB_THREAD_SELF): Likewise.
-	* sysdeps/s390/tls.h (DB_THREAD_SELF): Pass __WORDSIZE as bit size
-	of thread register as second parameter to REGISTER macro in 64 case.
-
-2004-01-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Removed.
-	(CFLAGS-getpid.o): Defined.
-	(CFLAGS-getpid.os): Defined.
-
-2003-12-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_getattr_np.c (pthread_getattr_np): Make sure stack info
-	returned for main thread does not overlap with any other VMA.
-	Patch by Jakub Jelinek.
-
-2003-12-29  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-raise1.c: Include stdio.h.
-
-2003-12-23  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/raise.c (raise): Protect pid = selftid
-	setting with __ASSUME_TGKILL || defined __NR_tgkill.
-	If pid is 0, set it to selftid.
-	* sysdeps/unix/sysv/linux/getpid.c (really_getpid): Make inline.
-	Don't set self->pid but self->tid.  If self->pid == 0 and self->tid
-	!= 0, return self->tid without doing a syscall.
-	* descr.h (struct pthread): Move pid field after tid.
-
-	* Makefile (tests): Add tst-raise1.
-	* tst-raise1.c: New file.
-
-2003-12-23  Roland McGrath  <roland@redhat.com>
-
-	* tst-oddstacklimit.c: New file.
-	* Makefile (tests): Add it.
-	(tst-oddstacklimit-ENV): New variable.
-
-	* init.c (__pthread_initialize_minimal_internal): Round stack rlimit
-	value up to page size for __default_stacksize.
-
-2003-12-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-eintr5.
-	* tst-eintr5.c: New file.
-
-	* eintr.c (eintr_source): Prevent sending signal to self.
-
-	* tst-eintr2.c (tf1): Improve error message.
-
-2003-12-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/Makefile (CFLAGS-getpid.c): Define.
-	* sysdeps/unix/sysv/linux/getpid.c: New file.
-	* pthread_cancel.c: Add comment explaining use of PID field.
-	* sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
-	* pthread_getattr_np.c: Use abs() when comparing PID and TID fields.
-	* sysdeps/unix/sysv/linux/fork.c: Negate PID field of parent
-	temporarily to signal the field must not be relied on and updated
-	by getpid().
-	* sysdeps/unix/sysv/linux/pt-raise.c: Handle case where PID is
-	temporarily negative.
-	* sysdeps/unix/sysv/linux/raise.c: Likewise.
-
-2003-12-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* eintr.c (setup_eintr): Add new parameter.  Pass to thread function.
-	(eintr_source): If ARG != NULL, use pthread_kill.
-	* tst-eintr1.c: Adjust for this change.
-	* tst-eintr2.c: Likewise.
-	* Makefile (tests): Add tst-eintr3 and tst-eintr4.
-	* tst-eintr3.c: New file.
-	* tst-eintr4.c: New file.
-
-2003-12-19  Jakub Jelinek  <jakub@redhat.com>
-
-	* libc-cancellation.c (__libc_enable_asynccancel): Don't cancel
-	if CANCELSTATE_BITMASK is set.
-	* sysdeps/pthread/librt-cancellation.c (__librt_enable_asynccancel):
-	Likewise.
-
-	* Makefile (tests): Add tst-cancel22 and tst-cancel23.
-	(tests-reverse): Add tst-cancel23.
-	* tst-cancel22.c: New test.
-	* tst-cancel23.c: New test.
-
-2003-12-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-eintr1.c: Better error messages.
-
-	* Makefile (tests): Add tst-eintr2.
-	* tst-eintr2.c: New file.
-
-2003-12-18  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Add tst-cancel21 and tst-cancelx21.
-	(CFLAGS-tst-cancelx21.c): Set.
-	* tst-cancel21.c: New test.
-	* tst-cancelx21.c: New test.
-
-	* unwind.c (FRAME_LEFT): Add adj argument.  Subtract it from each
-	comparison operand.
-	(unwind_stop): Use _JMPBUF_CFA_UNWINDS_ADJ macro instead of
-	_JMPBUF_CFA_UNWINDS.  Adjust FRAME_LEFT invocations.
-	* pt-longjmp.c: Include jmpbuf-unwind.h.
-	(__pthread_cleanup_upto): Use _JMPBUF_UNWINDS_ADJ macro instead of
-	_JMPBUF_UNWINDS.  Adjust compared pointers.
-	* init.c (__pthread_initialize_minimal_internal): Initialize
-	pd->stackblock_size.
-	* sysdeps/pthread/jmpbuf-unwind.h: Removed.
-	* sysdeps/alpha/jmpbuf-unwind.h: New file.
-	* sysdeps/i386/jmpbuf-unwind.h: New file.
-	* sysdeps/powerpc/jmpbuf-unwind.h: New file.
-	* sysdeps/s390/jmpbuf-unwind.h: New file.
-	* sysdeps/sh/jmpbuf-unwind.h: New file.
-	* sysdeps/sparc/sparc32/jmpbuf-unwind.h: New file.
-	* sysdeps/x86_64/jmpbuf-unwind.h: New file.
-	* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: Include stdint.h.
-	(_JMPBUF_CFA_UNWINDS): Remove.
-	(_JMPBUF_CFA_UNWINDS_ADJ, _JMPBUF_UNWINDS_ADJ): Define.
-
-2003-12-12  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Add tst-cancel20 and tst-cancelx20.
-	(CFLAGS-tst-cancelx20.c): Set.
-	* tst-cancel20.c: New test.
-	* tst-cancelx20.c: New test.
-
-2003-12-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Don't treat
-	architectures with separate register stack special here when
-	computing default stack size.
-
-2003-12-17  Roland McGrath  <roland@redhat.com>
-
-	* Makefile (tst-cancelx7-ARGS): New variable.
-	Reportd by Greg Schafer <gschafer@zip.com.au>.
-
-2003-12-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Add tst-stack3.  Depend on $(objpfx)tst-stack3-mem.
-	(generated): Add tst-stack3.mtrace and tst-stack3-mem.
-	(tst-stack3-ENV): Set.
-	($(objpfx)tst-stack3-mem): New.
-	* tst-stack3.c: New test.
-
-2003-12-10  David Mosberger  <davidm@hpl.hp.com>
-
-	* sysdeps/unix/sysv/linux/ia64/pt-initfini.c (_init_EPILOG_BEGINS):
-	Add unwind directives.  Drop unused .regstk directive.
-	(_fini_EPILOG_BEGINS): Add unwind directives.
-
-2003-12-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_futex_wait):
-	Assume parameter is a pointer.
-	(lll_futex_wake): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_futex_wait):
-	Likewise.
-	(lll_futex_wake): Likewise.
-	Reported by Boris Hu.
-	* sysdeps/unix/sysv/linux/unregister-atfork.c
-	(__unregister_atfork): Pass pointer to refcntr to lll_futex_wait.
-
-	* sysdeps/unix/sysv/linux/sem_wait.c (__new_sem_wait): Simplify a bit.
-
-2003-12-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h (__rtld_lock_initialize): Define.
-	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Call
-	__rtld_lock_initialize for ld.so lock.
-	Patch in part by Adam Li <adam.li@intel.com>.
-
-2003-12-02  David Mosberger  <davidm@hpl.hp.com>
-
-	* Makefile (link-libc-static): Remove -lgcc_eh---it's already mentioned
-	in $(gnulib).  Also, remove stale comment.
-
-2003-11-12  David Mosberger  <davidm@hpl.hp.com>
-
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Take
-	advantage of new syscall stub and optimize accordingly.
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__NR_futex): Rename
-	from SYS_futex, to match expectations of
-	sysdep.h:DO_INLINE_SYSCALL.
-	(lll_futex_clobbers): Remove.
-	(lll_futex_timed_wait): Rewrite in terms of DO_INLINE_SYSCALL.
-	(lll_futex_wake): Likewise.
-	(lll_futex_requeue): Likewise.
-	(__lll_mutex_trylock): Rewrite to a macro, so we can include this
-	file before DO_INLINE_SYSCALL is defined (proposed by Jakub
-	Jelinek).
-	(__lll_mutex_lock): Likewise.
-	(__lll_mutex_cond_lock): Likewise.
-	(__lll_mutex_timed_lock): Likewise.
-	(__lll_mutex_unlock): Likewise.
-	(__lll_mutex_unlock_force): Likewise.
-
-	* sysdeps/ia64/tls.h: Move declaration of __thread_self up so it
-	comes before the include of <sysdep.h>.
-	(THREAD_SELF_SYSINFO): New macro.
-	(THREAD_SYSINFO): Likewise.
-	(INIT_SYSINFO): New macro.
-	(TLS_INIT_TP): Call INIT_SYSINFO.
-
-	* sysdeps/ia64/tcb-offsets.sym: Add SYSINFO_OFFSET.
-
-	* sysdeps/pthread/createthread.c (create_thread): Use
-	THREAD_SELF_SYSINFO and THREAD_SYSINFO instead of open code.
-	* allocatestack.c (allocate_stack): Use THREAD_SYSINFO and
-	THREAD_SELF_SYSINFO instead of open code.
-	* sysdeps/i386/tls.h (THREAD_SELF_SYSINFO): New macro.
-	(THREAD_SYSINFO): Likewise.
-
-	* sysdeps/unix/sysv/linux/ia64/dl-sysdep.h: New file.
-
-	* sysdeps/unix/sysv/linux/ia64/pt-vfork.S: Work around gas problem.
-
-2003-12-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/pt-initfini.c: Use .init_array
-	instead of .init.  Patch by David Mosberger.
-
-2003-11-30  Thorsten Kukuk  <kukuk@suse.de>
-
-	* sysdeps/pthread/configure.in: Remove broken declaration in C
-	cleanup handling check.
-
-2003-11-30  Andreas Jaeger  <aj@suse.de>
-
-	* Makefile (CFLAGS-pt-initfini.s): Add $(fno_unit_at_a_time).
-	* sysdeps/unix/sysv/linux/x86_64/Makefile (CFLAGS-pt-initfini.s):
-	Likewise.
-
-2003-11-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/internaltypes.h (ATTR_FLAG_OLDATTR): Define.
-	* pthread_attr_destroy.c: Include shlib-compat.h.
-	(__pthread_attr_destroy): Return immediately if ATTR_FLAG_OLDATTR
-	is set in iattr->flags.
-	* pthread_attr_init.c (__pthread_attr_init_2_0): Set ATTR_FLAG_OLDATTR.
-
-2003-11-21  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (distribute): Add tst-cleanup4aux.c.
-
-	* tst-cond12.c (prepare): Add prototype.  Move after test-skeleton.c
-	include.
-
-2003-11-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cond12.c (do_test): If USE_COND_SIGNAL is defined, use
-	pthread_cond_signal.
-
-	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Don't
-	store mutex address if the current value is ~0l.
-	* sysdeps/pthread/pthread_cond_timedwait.c
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/pthread/pthread_cond_broadcast.c
-	(__pthread_cond_broadcast): Don't use requeue for pshared
-	condvars.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__pthread_cond_wait): Don't store mutex address if the current
-	value is ~0l.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Don't use requeue for pshared
-	condvars.
-
-	* pthread_cond_init.c (__pthread_cond_init): Initialize __mutex
-	element with ~0l for pshared condvars, with NULL otherwise.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
-	(__pthread_cond_wait): Don't store mutex address if the current
-	value is ~0l.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Don't use requeue for pshared
-	condvars.
-
-	* Makefile: Add rules to build and run tst-cond12 and tst-cond13.
-	* tst-cond12.c: New file.
-	* tst-cond13.c: New file.
-
-2003-11-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/configure.in: Make missing forced unwind support
-	fatal.
-
-2003-11-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Don't declare __pthread_unwind as weak inside libpthread.
-
-2003-11-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile: Add magic to clean up correctly.
-
-2003-11-05  Jakub Jelinek  <jakub@redhat.com>
-
-	* unwind.c (FRAME_LEFT): Define.
-	(unwind_stop): Handle old style cleanups here.
-	(__pthread_unwind): Handle old style cleanups only if
-	!HAVE_FORCED_UNWIND.
-	* Makefile (tests): Add tst-cleanup4 and tst-cleanupx4.
-	(CFLAGS-tst-cleanupx4.c): Add -fexceptions.
-	($(objpfx)tst-cleanup4): Depend on $(objpfx)tst-cleanup4aux.o.
-	($(objpfx)tst-cleanupx4): Likewise.
-	* tst-cleanup4.c: New test.
-	* tst-cleanup4aux.c: New.
-	* tst-cleanupx4.c: New test.
-
-2003-11-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/bits/stdio-lock.h: Use lll_*lock instead of
-	lll_mutex_*lock macros to skip atomic operations on some archs.
-
-2003-11-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/tst-timer.c (main): Initialize
-	sigev2.sigev_value as well.
-
-2003-10-15  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/pthread/configure.in: Barf if visibility attribute support
-	is missing.
-	* sysdeps/pthread/configure: Regenerated.
-
-2003-10-09  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Completely revamp the
-	locking macros.  No distinction between normal and mutex locking
-	anymore.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Rewrite mutex locking.
-	Merge bits from lowlevelmutex.S we still need.
-	* sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Remove.
-	* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/not-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Adjust for
-	new mutex implementation.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h (PSEUDO): Also defined
-	symbol for entry point to avoid cancellation.
-
-2003-10-07  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Backout 2003-10-02
-	changes.
-	(SAVE_OLDTYPE_0): Fix a typo.
-
-2003-10-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
-	Check __sigsetjmp return value.  Reported by Daniel Jacobowitz.
-
-2003-10-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (DOCARGS_1): Use
-	correct offset.
-
-2003-10-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Add tst-cancel19.
-	* tst-cancel19.c: New test.
-
-2003-10-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Fix saving and
-	restoring of the old cancellation type.
-
-2003-09-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/malloc-machine.h: Remove misleading comment.
-
-2003-09-27  Wolfram Gloger  <wg@malloc.de>
-
-	* sysdeps/pthread/malloc-machine.h: New file
-
-2003-09-24  Roland McGrath  <roland@redhat.com>
-
-	* allocatestack.c (__make_stacks_executable): Don't ignore return
-	value from _dl_make_stack_executable.
-
-2003-09-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (__make_stacks_executable): Also change
-	permission of the currently unused stacks.
-
-	* allocatestack.c (change_stack_perm): Split out from
-	__make_stacks_executable.
-	(allocate_stack): If the required permission changed between the time
-	we started preparing the stack and queueing it, change the permission.
-	(__make_stacks_executable): Call change_stack_perm.
-
-	* Makefile: Build tst-execstack-mod locally.
-	* tst-execstack-mod.c: New file.
-
-2003-09-23  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Only add tst-execstack if have-z-execstack is yes.
-
-2003-09-23  Roland McGrath  <roland@redhat.com>
-
-	* tst-execstack.c: New file.
-	* Makefile (tests): Add it.
-	($(objpfx)tst-execstack, $(objpfx)tst-execstack.out): New targets.
-	(LDFLAGS-tst-execstack): New variable.
-
-	* allocatestack.c (allocate_stack): Use GL(dl_stack_flags) to decide
-	whether to use PROT_EXEC for stack mmap.
-	(__make_stacks_executable): New function.
-	* pthreadP.h: Declare it.
-	* init.c (__pthread_initialize_minimal_internal): Set
-	GL(dl_make_stack_executable_hook) to that.
-
-2003-09-22  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Adjust for latest
-	recommendation from AMD re avoidance of lock prefix.
-
-2003-09-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait): Use
-	lll_futex_timed_wait instead of lll_futex_wait.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Removed.
-	* sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Removed.
-	* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: Removed.
-	* sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: Removed.
-	* sysdeps/unix/sysv/linux/s390/sem_trywait.c: Removed.
-	* sysdeps/unix/sysv/linux/s390/sem_wait.c: Removed.
-	* sysdeps/unix/sysv/linux/s390/sem_post.c: Removed.
-	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Removed.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Include atomic.h.
-	Completely revamp the locking macros.  No distinction between
-	normal and mutex locking anymore.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_lock_wait,
-	__lll_lock_timedwait): Fix prototypes.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_lock_wait,
-	__lll_lock_timedwait): Likewise.
-	(lll_mutex_lock, lll_mutex_cond_lock): Use _val instead of _bool
-	macros, add __builtin_expect.
-	(lll_mutex_timedlock): Likewise.  Fix return value.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Removed.
-	* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: Removed.
-	* sysdeps/unix/sysv/linux/i386/i586/lowlevelmutex.S: Removed.
-	* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: Removed.
-	* sysdeps/unix/sysv/linux/i386/i686/lowlevelmutex.S: Removed.
-	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: Removed.
-	* sysdeps/unix/sysv/linux/lowlevelmutex.c: Removed.
-	* sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: Removed.
-
-2003-09-22  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(__lll_mutex_lock_wait): Minor optimization to avoid one atomic
-	operation if possible.
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Don't play tricks
-	like jumping over the lock prefix.
-
-2003-09-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Completely revamp the
-	locking macros.  No distinction between normal and mutex locking
-	anymore.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Rewrite mutex
-	locking.  Merge bits from lowlevelmutex.S we still need.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/lowlevellock.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Removed.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Removed.
-	* Makefile (routines): Remove libc-lowlevelmutex.
-	(libpthread-rountines): Remove lowlevelmutex.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Adjust
-	for new mutex implementation.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: Likewise
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
-	Don't use requeue.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
-	* sysdeps/pthread/pthread_cond_signal.c: Don't use requeue.
-
-2003-09-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't match memory
-	in parameters of asm with output parameters.
-
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Change
-	type of DECR parameter to int.
-	* pthreadP.h: Adjust prototype of __pthread_mutex_unlock_usercnt.
-
-2003-09-18  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-attr3.c (tf, do_test): Print stack start/end/size and
-	guardsize for each thread.
-
-2003-09-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread.h (pthread_getattr_np): Clarify usage.
-	* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
-	(pthread_attr_setaffinity_np): Handle cpuset == NULL.
-
-	* sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
-	(pthread_attr_getaffinity_np): Don't segfault if iattr->cpuset is
-	NULL.
-	* pthread_getattr_np.c: Set cpuset using pthread_getaffinity_np.
-	* pthreadP.h (pthread_getaffinity_np): Add hidden_proto.
-	* sysdeps/unix/sysv/linux/pthread_getaffinity.c
-	(pthread_getaffinity_np): Add hidden_def.
-
-	* Makefile (tests): Add tst-attr3.
-	* tst-attr3.c: New test.
-
-	* sysdeps/i386/Makefile (CFLAGS-tst-align.c): Remove.
-
-2003-09-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/Makefile (CFLAGS-pthread_create.c,
-	CFLAGS-tst-align.c): Add -mpreferred-stack-boundary=4.
-
-2003-09-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (CFLAGS-tst-align.c): Add $(stack-align-test-flags).
-	* tst-align.c: Include tst-stack-align.h.
-	(tf, do_test): Use TEST_STACK_ALIGN macro.
-
-2003-09-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_attr_init.c (__pthread_attr_init_2_0): Remove unused
-	variable.
-
-2003-09-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_getattr_np.c (pthread_getattr_np): Correctly fill in the
-	stack-related values for the initial thread.
-
-2003-09-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (CFLAGS-pthread_once.c): Add $(uses-callbacks).
-
-2003-09-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_mutex_lock.c: Minor code rearrangements.
-
-2003-09-05  Roland McGrath  <roland@redhat.com>
-
-	* pthread_create.c (__pthread_pthread_sizeof_descr): Removed.
-	Instead, include ../nptl_db/db_info.c to do its magic.
-	* pthread_key_create.c (__pthread_pthread_keys_max): Removed.
-	(__pthread_pthread_key_2ndlevel_size): Likewise.
-	* sysdeps/alpha/tls.h (DB_THREAD_SELF): New macro.
-	* sysdeps/i386/tls.h (DB_THREAD_SELF): New macro.
-	* sysdeps/ia64/tls.h (DB_THREAD_SELF): New macro.
-	* sysdeps/powerpc/tls.h (DB_THREAD_SELF): New macro.
-	* sysdeps/s390/tls.h (DB_THREAD_SELF): New macro.
-	* sysdeps/sh/tls.h (DB_THREAD_SELF): New macro.
-	* sysdeps/sparc/tls.h (DB_THREAD_SELF): New macro.
-	* sysdeps/x86_64/tls.h (DB_THREAD_SELF): New macro.
-	* sysdeps/alpha/td_ta_map_lwp2thr.c: File removed.
-	* sysdeps/generic/td_ta_map_lwp2thr.c: File removed.
-	* sysdeps/i386/td_ta_map_lwp2thr.c: File removed.
-	* sysdeps/ia64/td_ta_map_lwp2thr.c: File removed.
-	* sysdeps/powerpc/td_ta_map_lwp2thr.c: File removed.
-	* sysdeps/s390/td_ta_map_lwp2thr.c: File removed.
-	* sysdeps/sh/td_ta_map_lwp2thr.c: File removed.
-	* sysdeps/sparc/td_ta_map_lwp2thr.c: File removed.
-	* sysdeps/x86_64/td_ta_map_lwp2thr.c: File removed.
-
-2003-09-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Change type
-	of pthread_t to be compatible with LT.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Likewise.
-
-2003-09-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/not-cancel.h (fcntl_not_cancel): Define.
-
-2003-09-04  Jakub Jelinek  <jakub@redhat.com>
-
-	* unwind-forcedunwind.c: Move to...
-	* sysdeps/pthread/unwind-forcedunwind.c: ...here.
-	(pthread_cancel_init): Use ARCH_CANCEL_INIT if defined.
-	* sysdeps/pthread/jmpbuf-unwind.h: New file.
-	* sysdeps/unix/sysv/linux/ia64/unwind-forcedunwind.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/jmpbuf-unwind.h: New file.
-	* unwind.c: Include jmpbuf-unwind.h.
-	(unwind_stop): Use _JMPBUF_CFA_UNWINDS macro.
-
-2003-09-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/bits/local_lim.h: New file.
-	* sysdeps/unix/sysv/linux/ia64/Versions (libpthread): Export
-	pthread_attr_setstack and pthread_attr_setstacksize @@GLIBC_2.3.3.
-	* sysdeps/unix/sysv/linux/alpha/bits/local_lim.h: New file.
-	* sysdeps/unix/sysv/linux/alpha/Versions: New file.
-	* sysdeps/unix/sysv/linux/sparc/bits/local_lim.h: New file.
-	* sysdeps/unix/sysv/linux/sparc/Versions: New file.
-	* pthread_attr_setstack.c (__old_pthread_attr_setstack): New function.
-	(pthread_attr_setstack): If PTHREAD_STACK_MIN != 16384, export
-	as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.2.
-	* pthread_attr_setstacksize.c (__old_pthread_attr_setstacksize): New
-	function.
-	(pthread_attr_setstacksize): If PTHREAD_STACK_MIN != 16384, export
-	as @@GLIBC_2.3.2 and also export compatibility @GLIBC_2.1.
-	* Makefile (tests): Add tst-stack2.
-	* tst-stack2.c: New test.
-	* tst-stack1.c: Include limits.h and sys/param.h.
-	(do_test): Set size to MAX (4 * getpagesize (), PTHREAD_STACK_MIN).
-
-	* pthread_condattr_setpshared.c: Include errno.h.
-	(pthread_condattr_setpshared): Return EINVAL if pshared
-	is neither PTHREAD_PROCESS_PRIVATE nor PTHREAD_PROCESS_SHARED.
-
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO): Also
-	defined symbol for entry point to avoid cancellation.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
-	Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (PSEUDO):
-	Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h (PSEUDO):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h (PSEUDO):
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/not-cancel.h (__open_nocancel,
-	__close_nocancel, __read_nocancel, __write_nocancel,
-	__waitpid_nocancel): Add attribute_hidden.  If not in libc.so,
-	libpthread.so or librt.so, define to corresponding function
-	without _nocancel suffix.
-	* sysdeps/unix/sysv/linux/s390/not-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/powerpc/not-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/sparc/not-cancel.h: New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/not-cancel.h: Fix a typo.
-
-2003-09-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/not-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/x86_64/not-cancel.h: New file.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Make sure the code
-	in subsections has a symbol associated with it.
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (PSEUDO): Also
-	defined symbol for entry point to avoid cancellation.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (PSEUDO): Likewise.
-
-2003-09-01  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests): Add tst-tls5.
-	(module-names): Add tst-tls5mod{,a,b,c,d,e,f}.
-	($(objpfx)tst-tls5mod{,a,b,c,d,e,f}.so-no-z-defs): Set to yes.
-	($(objpfx)tst-tls5): New.
-	($(objpfx)tst-tls6.out): Likewise.
-	(tests): Depend on $(objpfx)tst-tls6.out.
-	* tst-tls3.c: Include stdint.h and pthreaddef.h.
-	(do_test): Check pthread_self () return value alignment.
-	* tst-tls3mod.c: Include stdint.h and pthreaddef.h.
-	(tf): Check pthread_self () return value alignment.
-	* tst-tls5.c: New test.
-	* tst-tls5.h: New.
-	* tst-tls5mod.c: New.
-	* tst-tls5moda.c: New.
-	* tst-tls5modb.c: New.
-	* tst-tls5modc.c: New.
-	* tst-tls5modd.c: New.
-	* tst-tls5mode.c: New.
-	* tst-tls5modf.c: New.
-	* tst-tls6.sh: New test.
-
-	* sysdeps/pthread/pthread-functions.h (struct pthread_functions): Add
-	ptr___pthread_cond_timedwait and ptr___pthread_cond_timedwait_2_0.
-	* init.c (pthread_functions): Initialize them.
-	* forward.c (pthread_cond_timedwait@GLIBC_2.0,
-	pthread_cond_timedwait@@GLIBC_2.3.2): New forwards.
-	* Versions (libc): Export pthread_cond_timedwait@GLIBC_2.0,
-	pthread_cond_timedwait@@GLIBC_2.3.2.
-
-2003-09-01  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/alpha/timer_create.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/timer_delete.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/timer_getoverr.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/timer_gettime.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/timer_settime.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/Versions: New file.
-
-	* sysdeps/unix/sysv/linux/alpha/aio_cancel.c: New file.
-
-	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: Define
-	_POSIX_THREAD_PRIORITY_SCHEDULING.
-	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: Likewise.
-
-2003-08-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock): Avoid
-	nested function, use static inline function from libio.h.
-	Code by Richard Henderson.
-
-	* sysdeps/pthread/bits/libc-lock.h: Mark pthread_setcancelstate as
-	weak.
-
-2003-08-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/sparc/sparc64/Versions: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_create.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_delete.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_getoverr.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_gettime.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/timer_settime.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h: New file.
-	* sysdeps/unix/sysv/linux/sparc/bits/semaphore.h: New file.
-	* sysdeps/unix/sysv/linux/sparc/lowlevellock.h: New file.
-	* sysdeps/unix/sysv/linux/sparc/pthread_once.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/sparc/fork.c: New file.
-	* sysdeps/unix/sysv/linux/sparc/aio_cancel.c: New file.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c: New file.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_trylock.c: New file.
-	* sysdeps/sparc/sparc32/sparcv9/pthread_spin_unlock.c: New file.
-	* sysdeps/sparc/sparc32/pthread_spin_lock.c: New file.
-	* sysdeps/sparc/sparc32/pthread_spin_trylock.c: New file.
-	* sysdeps/sparc/sparc32/pthreaddef.h: New file.
-	* sysdeps/sparc/sparc64/pthread_spin_lock.c: New file.
-	* sysdeps/sparc/sparc64/pthread_spin_trylock.c: New file.
-	* sysdeps/sparc/sparc64/pthread_spin_unlock.c: New file.
-	* sysdeps/sparc/sparc64/pthreaddef.h: New file.
-	* sysdeps/sparc/tls.h: New file.
-	* sysdeps/sparc/tcb-offsets.sym: New file.
-	* sysdeps/sparc/Makefile: New file.
-	* sysdeps/sparc/td_ta_map_lwp2thr.c: New file.
-	* init.c [__sparc__] (__NR_set_tid_address): Define.
-
-2003-08-29  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/bits/stdio-lock.h (_IO_acquire_lock,
-	_IO_release_lock): Define.
-
-2003-08-29  Jakub Jelinek  <jakuB@redhat.com>
-
-	* tst-cancel4.c (tf_sigwait, tf_sigwaitinfo, tf_sigtimedwait): Add
-	sigemptyset before sigaddset.  Reported by jreiser@BitWagon.com.
-
-2003-08-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h (pthread_exit): Remove __THROW.
-	(__pthread_cleanup_class): Add missing return types of member
-	functions.
-
-2003-08-26  Steven Munroe <sjmunroe@us.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(lll_mutex_unlock_force): Add memory barrier between store and futex
-	syscall.
-
-2003-08-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel4.c (do_test): Also unlink tempfname and remove
-	tempmsg in first loop.
-
-2003-08-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
-	_POSIX_THREAD_PRIORITY_SCHEDULING.
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
-
-2003-08-07  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h [_LIBC && SHARED]
-	(__rtld_lock_default_lock_recursive,
-	__rtld_lock_default_unlock_recursive): Define.
-	[_LIBC && SHARED] (__rtld_lock_lock_recursive,
-	__rtld_lock_unlock_recursive): Define using
-	GL(_dl_rtld_*lock_recursive).
-	* init.c (__pthread_initialize_minimal_internal): Initialize
-	_dl_rtld_lock_recursive and _dl_rtld_unlock_recursive.
-	Lock GL(_dl_load_lock) the same number of times as
-	GL(_dl_load_lock) using non-mt implementation was nested.
-
-	* pthreadP.h (__pthread_cleanup_upto): Add hidden_proto.
-	* pt-longjmp.c (__pthread_cleanup_upto): Add hidden_def.
-
-2003-08-06  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-cancel17.c (do_test): Make len2 maximum of page size and
-	PIPE_BUF.
-
-2003-08-07  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_create.c (__pthread_create_2_0): Clear new_attr.cpuset.
-
-2003-08-03  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/createthread.c (do_clone): Move error handling
-	to first syscall error check.  Move syscall error check for tkill
-	into __ASSUME_CLONE_STOPPED #ifdef.
-
-2003-08-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/createthread.c (do_clone): If __ASSUME_CLONE_STOPPED
-	is not defined, do explicit synchronization.
-	(create_thread): Do not lock pd->lock here.  If __ASSUME_CLONE_STOPPED
-	is not defined also unlock pd->lock for non-debugging case in case
-	it is necessary.
-	* pthread_create.c (start_thread): Always get and release pd->lock
-	if __ASSUME_CLONE_STOPPED is not defined.
-	(start_thread_debug): Removed.  Adjust users.
-	* allocatestack.c (allocate_stack): Always initialize lock if
-	__ASSUME_CLONE_STOPPED is not defined.
-	* Makefile (tests): Add tst-sched1.
-	* tst-sched1.c: New file.
-
-	* sysdeps/pthread/createthread.c (do_clone): Only use
-	sched_setschduler and pass correct parameters.
-
-2003-07-31  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread.h (pthread_attr_setstackaddr,
-	pthread_attr_setstacksize): Change PTHREAD_STACK_SIZE to
-	PTHREAD_STACK_MIN in comments.
-
-2003-07-31  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
-	Shut up warnings if INTERNAL_SYSCALL_ERROR_P does not use its first
-	argument.
-	* sysdeps/unix/sysv/linux/timer_create.c (timer_create): Likewise.
-	* pthread_condattr_setclock.c (pthread_condattr_setclock): Likewise.
-	* sysdeps/unix/sysv/linux/s390/jmp-unwind.c: Include pthreaddef.h.
-	(__pthread_cleanup_upto): Fix prototype.
-	(_longjmp_unwind): Adjust caller.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_timedlock):
-	Change second argument to const struct pointer.
-	* tst-sem8.c (main): Remove unused s2 and s3 variables.
-	* tst-sem9.c (main): Likewise.
-	* unwind.c: Include string.h for strlen prototype.
-
-2003-07-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Don't use cmov unless HAVE_CMOV is defined.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S:
-	Define HAVE_CMOV.
-	Patch by Nicholas Miell <nmiell@attbi.com>.
-
-2003-07-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Initialize
-	GL(dl_init_static_tls).
-	* pthreadP.h (__pthread_init_static_tls): New prototype.
-	* allocatestack.c (init_one_static_tls, __pthread_init_static_tls):
-	New functions.
-	* Makefile (tests): Add tst-tls4.
-	(modules-names): Add tst-tls4moda and tst-tls4modb.
-	($(objpfx)tst-tls4): Link against libdl and libpthread.
-	($(objpfx)tst-tls4.out): Depend on tst-tls4moda.so and
-	tst-tls4modb.so.
-	* tst-tls4.c: New file.
-	* tst-tls4moda.c: New file.
-	* tst-tls4modb.c: New file.
-
-2003-06-19  Daniel Jacobowitz  <drow@mvista.com>
-
-	* sysdeps/pthread/timer_create.c (timer_create): Call timer_delref
-	before __timer_dealloc.
-	* sysdeps/pthread/timer_routines.c (__timer_thread_find_matching):
-	Don't call list_unlink.
-
-2003-07-29  Roland McGrath  <roland@redhat.com>
-
-	* Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
-
-2003-07-25  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-cancel17.c (do_test): Check if aio_cancel failed.
-	Don't reuse struct aiocb A if it failed.
-	Write fpathconf (fds[1], _PC_PIPE_BUF) + 2 bytes using aio_write,
-	not just one byte, as that does not block.
-
-2003-07-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/unwind-resume.c: New file.
-	* sysdeps/pthread/Makefile (routines, shared-only-routines): Add
-	unwind-resume in csu subdir.
-	(CFLAGS-unwind-resume.c, CFLAGS-rt-unwind-resume.c): Compile with
-	exceptions.
-	(librt-sysdep_routines, librt-shared-only-routines): Add
-	rt-unwind-resume.
-	* sysdeps/pthread/rt-unwind-resume.c: New file.
-	* unwind-forcedunwind.c: New file.
-	* Makefile (libpthread-routines): Add unwind-forcedunwind.
-	(libpthread-shared-only-routines): Likewise.
-	(CFLAGS-unwind-forcedunwind.c): Compile with exceptions.
-	* pthreadP.h (pthread_cancel_init): New prototype.
-	* pthread_cancel.c (pthread_cancel): Call pthread_cancel_init.
-
-	* sysdeps/pthread/createthread.c (do_thread, create_thread): Make
-	attr argument const struct pthread_attr *.
-
-	* res.c (__res_state): Return __resp.
-	* descr.h: Include resolv.h.
-	(struct pthread): Add res field.
-	* pthread_create.c: Include resolv.h.
-	(start_thread): Initialize __resp.
-	* Makefile (tests): Add tst-_res1.
-	(module-names): Add tst-_res1mod1, tst-_res1mod2.
-	($(objpfx)tst-_res1mod2.so): Depend on $(objpfx)tst-_res1mod1.so.
-	($(objpfx)tst-_res1): Depend on $(objpfx)tst-_res1mod2.so and
-	libpthread.
-	* tst-_res1.c: New file.
-	* tst-_res1mod1.c: New file.
-	* tst-_res1mod2.c: New file.
-
-2003-07-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/createthread.c: Don't define CLONE_STOPPED.
-
-	* Makefile: Define various *-no-z-defs variables for test DSOs
-	which has undefined symbols.
-
-2003-07-21  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c (__pthread_once):
-	Retry if the stwcx fails to store once_control.
-
-2003-07-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (libpthread-routines): Add pthread_attr_getaffinity and
-	pthread_attr_setaffinity.
-	* Versions [libpthread] (GLIBC_2.3.3): Likewise.
-	* sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c: New file.
-	* sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c: New file.
-	* pthread_attr_destroy.c: Free cpuset element if allocated.
-	* pthread_create.c: Pass iattr as additional parameter to
-	create_thread.
-	* sysdeps/pthread/createthread.c: If attribute is provided and
-	a new thread is created with affinity set or scheduling parameters,
-	start thread with CLONE_STOPPED.
-	* sysdeps/pthread/pthread.h: Declare pthread_attr_getaffinity and
-	pthread_attr_setaffinity.
-	* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_attr): Add
-	cpuset element.
-
-2003-07-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-tcancel-wrappers.sh: lseek and llseek are not cancelation points.
-
-2003-07-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/configure.in: Require CFI directives also for
-	ppc and s390.
-
-2003-07-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (PSEUDO):
-	Add cfi directives.
-
-2003-07-12  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/tcb-offsets.sym: Add RESULT, TID, CANCELHANDLING and
-	CLEANUP_JMP_BUF.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Use more
-	registers as variables.  Call __pthread_mutex_unlock_usercnt.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Store TID
-	not self pointer in __writer.  Compare with TID to determine
-	deadlocks.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Add cancellation support.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Define all the nice
-	macros also when compiling librt.
-
-2003-07-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (CFLAGS-pthread_once.c): Add -fexceptions
-	-fasynchronous-unwind-tables.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
-	(PSEUDO): Add cfi directives.
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (PSEUDO):
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (PSEUDO):
-	Likewise.
-
-2003-07-08  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthreadP.h (__pthread_unwind_next, __pthread_register_cancel,
-	__pthread_unregister_cancel): Add prototypes and hidden_proto.
-	* unwind.c (__pthread_unwind_next): Add hidden_def.
-	* cleanup.c (__pthread_register_cancel, __pthread_unregister_cancel):
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S (__new_sem_wait):
-	Use HIDDEN_JUMPTARGET to jump to __pthread_unwind.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S (sem_timedwait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S (sem_wait): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once): Use
-	HIDDEN_JUMPTARGET to call __pthread_register_cancel,
-	__pthread_unregister_cancel and __pthread_unwind_next.
-
-2003-07-04  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (PSEUDO): Use
-	different symbol for the cancellation syscall wrapper and
-	non-cancellation syscall wrapper.
-	(PSEUDO_END): Define.
-
-2003-07-05  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/alpha/elf/pt-initfini.c: Avoid .ent/.end.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h (lll_futex_wait,
-	lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
-	return actual return value from the syscall, not 0.
-
-2003-07-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h (struct pthread): Add pid field.
-	* allocatestack.c (allocate_stack): Initialize pid field in descriptor.
-	(__reclaim_stacks): Likewise.
-	* init.c (sigcancel_handler): If __ASSUME_CORRECT_SI_PID is defined
-	also check for PID of the signal source.
-	(__pthread_initialize_minimal_internal): Also initialize pid field
-	of initial thread's descriptor.
-	* pthread_cancel.c: Use tgkill instead of tkill if possible.
-	* sysdeps/unix/sysv/linux/fork.c: Likewise.
-	* sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
-	* sysdeps/unix/sysv/linux/raise.c: Likewise.
-
-2003-07-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_push): Renamed.
-	Fix use of parameter.
-	(__libc_cleanup_pop): Likewise.
-
-2003-07-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (sigcancel_handler): Change parameters to match handler
-	for SA_SIGACTION.  Check signal number and code to recognize
-	invalid invocations.
-
-2003-07-03  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr):
-	Apply sizeof (struct pthread) bias to r13 value.
-
-2003-07-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/configure.in: Require CFI directives.
-
-	* sysdeps/pthread/librt-cancellation.c (__pthread_unwind): Remove
-	definition.
-	* pthreadP.h (__pthread_unwind): Add hidden_proto if used in
-	libpthread compilation.
-	* unwind.c (__pthread_unwind): Add hidden_def.
-	* Versions (libpthread) [GLIBC_PRIVATE]: Add __pthread_unwind.
-
-2003-07-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* libc-cancellation.c (__libc_cleanup_routine): Define.
-	* sysdeps/pthread/bits/libc-lock.h (__pthread_cleanup_push): Define.
-	(__pthread_cleanup_pop): Define.
-
-2003-07-01  Richard Henderson  <rth@redhat.com>
-
-	* sysdeps/alpha/elf/pt-initfini.c: New file.
-	* sysdeps/alpha/pthread_spin_lock.S: New file.
-	* sysdeps/alpha/pthread_spin_trylock.S: New file.
-	* sysdeps/alpha/pthreaddef.h: New file.
-	* sysdeps/alpha/td_ta_map_lwp2thr.c: New file.
-	* sysdeps/alpha/tls.h: New file.
-	* sysdeps/unix/sysv/linux/alpha/Makefile: New file.
-	* sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h: New file.
-	* sysdeps/unix/sysv/linux/alpha/bits/semaphore.h: New file.
-	* sysdeps/unix/sysv/linux/alpha/createthread.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/fork.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/lowlevellock.h: New file.
-	* sysdeps/unix/sysv/linux/alpha/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/alpha/pthread_once.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/sem_post.c: New file.
-	* sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h: New file.
-
-2003-07-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Add correct
-	cleanup support and unwind info.
-
-2003-06-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S (__pthread_once):
-	Use correct cleanup handler registration.  Add unwind info.
-	* sysdeps/unix/sysv/linux/unwindbuf.sym: New file.
-	* sysdeps/unix/sysv/linux/Makefile: Add rule to build unwindbuf.h.
-	* tst-once3.c: Add cleanup handler and check it is called.
-	* tst-once4.c: Likewise.
-	* tst-oncex3.c: New file.
-	* tst-oncex4.c: New file.
-	* Makefile: Add rules to build and run tst-oncex3 and tst-oncex4.
-
-2003-06-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/configure.in: Check for C cleanup handling in gcc.
-
-2003-06-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel4.c (tf_msgrcv): Use IPC_PRIVATE in msgget call.
-	(tf_msgsnd): Likewise.
-
-	* tst-cancel4.c (tf_msgrcv): Strengthen test against valid
-	premature returns a bit more.
-
-2003-06-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/librt-cancellation.c: Move __pthread_unwind
-	definition to the front.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rename
-	the cleanup functions to make the names unique.  Fix dwarf opcode
-	un unwind table.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Rename cleanup
-	functions to make the names unique.  Fix CFA offset for two blocks.
-
-2003-06-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h (class __pthread_cleanup_class): Add
-	missing closing braces.
-	Patch by Christophe Saout <christophe@saout.de>.
-
-2003-06-24  Roland McGrath  <roland@redhat.com>
-
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Typo fix.
-
-2003-06-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/bits/posix_opt.h: New file.
-	* sysdeps/unix/sysv/linux/x86_64/bits/posix_opt.h: New file.
-
-	* pthreadP.h: Declare __find_thread_by_id.
-	* allocatestack.c [HP_TIMING_AVAIL]: Define __find_thread_by_id.
-	* pthread_clock_gettime.c: Allow using other thread's clock.
-	* pthread_clock_settime.c: Likewise.
-	* sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
-	* Makefile: Add rules to build and run tst-clock2.
-	* tst-clock2.c: New file.
-
-2003-06-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Rewrite
-	to use exception-based cleanup handler.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-
-	* tst-cond8.c (ch): Announce that we are done.
-
-	* pthreadP.h (__pthread_mutex_cond_lock): Mark with internal_function.
-
-	* tst-cancel17.c (tf): Retry aio_suspend in case of EINTR.
-	Also test aio_suspend with timeout value.
-
-2003-06-22  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Mark __pthread_mutex_unlock_usercnt also hidden.
-	* pthread_mutex_unlock.c (__pthread_mutex_unlock_usercnt): Add
-	attribute_hidden.
-
-	* pthreadP.h (__pthread_mutex_init_internal): Mark hidden.
-	(__pthread_mutex_lock_internal): Likewise.
-	(__pthread_mutex_unlock_internal): Likewise.
-	(__pthread_mutex_unlock_usercnt): Declare.
-	* pthread_mutex_destroy.c: Always fail if used in any way.
-	* pthread_mutex_init.c: Update comment.
-	* pthread_mutex_lock.c: If NO_INCR is not defined adjust __nusers.
-	* pthread_mutex_timedlock.c: Adjust __nusers.
-	* pthread_mutex_trylock.c: Adjust __nusers.
-	* pthread_mutex_unlock.c: Old code is in __pthread_mutex_unlock_usercnt
-	and public interfaces are wrapper with pass additional parameter.
-	__pthread_mutex_unlock_usercnt does not adjust __nusers if second
-	parameter zero.
-	* tst-mutex8.c: New file.
-	* Makefile (tests): Add tst-mutex8.
-	* sysdeps/pthread/pthread_cond_timedwait.c: Call
-	__pthread_mutex_unlock_usercnt.
-	* sysdeps/pthread/pthread_cond_wait.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_mutex_cond_lock.c: Define NO_INCR.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
-	Add __nusers.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-
-	* pthread_mutex_lock.c: Don't store THREAD_ID in __owner, use TID.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Adjust __nusers.
-	* pthread_mutex_unlock.c: Compare with TID not THREAD_ID.
-	* tst-mutex9.c: New file.
-	* Makefile (tests): Add tst-mutex9.
-	* sysdeps/i386/tls.h: Remove THREAD_ID definition.
-	* sysdeps/ia64/tls.h: Likewise.
-	* sysdeps/powerpc/tls.h: Likewise.
-	* sysdeps/s390/tls.h: Likewise.
-	* sysdeps/sh/tls.h: Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_mutex_t):
-	Change type of __owner.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-
-2003-06-19  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/sem_post.c: Move to...
-	* sysdeps/unix/sysv/linux/sem_post.c: ...here.
-
-	* sysdeps/unix/sysv/linux/sem_post.c: Move to...
-	* sysdeps/unix/sysv/linux/powerpc/sem_post.c: ... here.  Pass nr + 1
-	instead of nr to lll_futex_wake.  Only set errno and return -1
-	if err < 0.
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (lll_futex_wait,
-	lll_futex_timed_wait, lll_futex_wake, lll_futex_requeue): On success
-	return actual return value from the syscall, not 0.
-
-2003-06-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel4.c (tf_msgsnd): Don't always use 100 as the type,
-	find a random value.
-	(tf_msgrcv): Likewise.  Also don't report msgrcv returns if
-	errno==EIDRM.
-
-	* sysdeps/unix/sysv/linux/timer_settime.c: Add prototype for
-	compat_timer_settime.
-	* sysdeps/unix/sysv/linux/timer_gettime.c: Add prototype for
-	compat_timer_gettime.
-	* sysdeps/unix/sysv/linux/timer_getoverr.c: Add prototype for
-	compat_timer_getoverrun.
-	* sysdeps/unix/sysv/linux/timer_delete.c: Add prototype for
-	compat_timer_delete.
-
-	* pthread_mutex_destroy.c (__pthread_mutex_destroy): For
-	error-checking mutex detect busy mutexes.
-
-2003-06-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_mutex_lock):
-	Add ax to clobber list.
-	(lll_mutex_cond_lock): Likewise.
-	(lll_mutex_unlock): Likewise.
-	(lll_lock): Likewise.
-	(lll_unlock): Likewise.
-
-	* Makefile: Add rules to build and run tst-cancel18 and tst-cancelx18.
-	* tst-cancel18.c: New file.
-	* tst-cancelx18.c: New file.
-
-	* tst-cancel4.c: Test connect, creat, msgrcv, msgsnd, sendmsg, sendto,
-	and tcdrain.
-
-	* Makefile: Add rules to build and run tst-cancel17 and tst-cancel17x.
-	* tst-cancel17.c: New file.
-	* tst-cancelx17.c: New file.
-
-	* sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
-	* sysdeps/unix/sysv/linux/sigwait.c: New file.
-	* sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
-
-	* tst-cancel4.c: Test open, close, pread, pwrite, fsync, and msync.
-
-2003-06-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/createthread.c (create_thread): Set
-	header.multiple_threads unconditionally.
-	* allocatestack.c (allocate_stack): Likewise.
-	* descr.h (struct pthread): Add header.multiple_threads
-	unconditionally.
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (CENABLE, CDISABLE):
-	Define for librt.  #error if neither libpthread, libc nor librt.
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (CENABLE, CDISABLE):
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h (CENABLE,
-	CDISABLE): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h (CENABLE,
-	CDISABLE): Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h (CENABLE,
-	CDISABLE): Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h (CENABLE,
-	CDISABLE): Likewise.  Access header.multiple_threads outside of
-	libc and libpthread.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h (CENABLE, CDISABLE):
-	Likewise.
-	* sysdeps/x86_64/tls.h (tcbhead_t): Add multiple_threads.
-	* sysdeps/x86_64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Define.
-
-2003-06-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel4.c: Add tests for the socket and signal functions, pause.
-	Also test early cancellation before the thread reaches the cancellation
-	point.
-
-	* Makefile: Compile forward.c with exceptions.
-
-	* sysdeps/unix/sysv/linux/sleep.c: New file.
-
-2003-06-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile: Add CFLAGS definition to compile function wrappers
-	duplicated from libc with exceptions.
-	* tst-cancel4.c: Also check cancellation handlers.
-
-	* Makefile: Add rules to build and run tst-cancel16 and
-	tst-cancelx16.  Add missing CFLAGS definitions.
-	* tst-cancel16.c: New file.
-	* tst-cancelx16.c: New file.
-
-2003-06-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h
-	(DL_SYSINFO_IMPLEMENTATION): Use CFI opcodes.
-	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
-	(DL_SYSINFO_IMPLEMENTATION): Likewise.
-
-	* pthreadP.h (LIBC_CANCEL_ASYNC): Also define for librt.
-	(LIBC_CANCEL_RESET): Likewise.
-	Declare __librt_enable_asynccancel and __librt_disable_asynccancel.
-	* sysdeps/pthread/Makefile (librt-sysdep_routines): Add
-	librt-cancellation.
-	(CFLAGS-libcrt-cancellation.c): Define.
-	* sysdeps/pthread/librt-cancellation.c: New file.
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define all the nice
-	macros also when compiling librt.
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
-
-	* sysdeps/unix/sysv/linux/timer_create.c: Add prototype for
-	compat_timer_create.
-
-2003-06-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/posix-timer.h (timespec_compare): Always inline.
-
-	* sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
-	__register_atfork.
-	* sysdeps/unix/sysv/linux/register-atfork.c (__register_atfork):
-	Add libc_hidden_def.
-
-2003-06-13  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/x86_64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Pass FS
-	constant from <sys/reg.h> to ps_get_thread_area, not register contents.
-
-2003-06-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (queue_stack): Always inline.
-	* ptreadhP.h (__do_cancel): Likewise.
-
-2003-06-10  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix
-	a typo.
-
-2003-06-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
-	(__pthread_cond_signal): Remove incorrect second addition for
-	cond_lock!=0.
-
-2003-06-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
-	(__pthread_cond_signal): Use correct futex pointer in
-	__lll_mutex_lock_wait call.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
-	(__pthread_cond_signal): Some more tweaks to handle cond_lock!=0.
-
-2003-06-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/sem_wait.c (__new_sem_wait): Make
-	cancelable.
-	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
-	Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Remove
-	hand-written CFI generation code.  Since ENTRY/END also initiated
-	CFI frames this caused two CFI sets to be generated.
-
-2003-06-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* cleanup_routine.c: New file.
-	* Versions (libpthread) [GLIBC_2.3.3]: Add __pthread_cleanup_routine.
-	* sysdeps/pthread/pthread.h: Add support for fully exception-based
-	cleanup handling.
-	* Makefile (libpthread-routines): Add cleanup_routine.
-	Add more CFLAGS variables to compile with exceptions.  Add comments
-	why which file needs unwind tables.
-	(tests) [have-forced-unwind==yes]: Add tst-cancelx* and tst-cleanupx*
-	tests.
-	* tst-cancelx1.c: New file.
-	* tst-cancelx2.c: New file.
-	* tst-cancelx3.c: New file.
-	* tst-cancelx4.c: New file.
-	* tst-cancelx5.c: New file.
-	* tst-cancelx6.c: New file.
-	* tst-cancelx7.c: New file.
-	* tst-cancelx8.c: New file.
-	* tst-cancelx9.c: New file.
-	* tst-cancelx10.c: New file.
-	* tst-cancelx11.c: New file.
-	* tst-cancelx12.c: New file.
-	* tst-cancelx13.c: New file.
-	* tst-cancelx14.c: New file.
-	* tst-cancelx15.c: New file.
-	* tst-cleanupx0.c: New file.
-	* tst-cleanupx0.expect: New file.
-	* tst-cleanupx1.c: New file.
-	* tst-cleanupx2.c: New file.
-	* tst-cleanupx3.c: New file.
-
-	* tst-cleanup0.c: Make standard compliant.
-	* tst-cleanup1.c: Likewise.
-
-	* sysdeps/unix/sysv/linux/sem_timedwait.c: Add cancellation support.
-	* sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
-	* sysdeps/i386/tcb-offsets.sym: Add RESULT, CANCELHANDLING, and
-	CLEANUP_JMP_BUF.
-	* sysdeps/x86_64/tcb-offsets.sym: Likewise.
-	* tst-cancel12.c: New file.
-	* tst-cancel13.c: New file.
-	* tst-cancel14.c: New file.
-	* tst-cancel15.c: New file.
-	* Makefile (tests): Add tst-cancel12, tst-cancel13, tst-cancel14,
-	and tst-cancel15.
-
-	* tst-cancel1.c: Add some comments.
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Compute relative
-	timeout correctly.
-
-2003-06-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (CFLAGS-pthread_cancel.c): Define.
-
-2003-06-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_rwlock_t):
-	Change type of __writer element to int.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/i386/tcb-offsets.sym: Replace SELF entry with TID entry.
-	* sysdeps/x86_64/tcb-offsets.sym: Likewise.
-	* pthread_rwlock_trywrlock.c: Store TID not self pointer in __writer.
-	Compare with TID to determine deadlocks.
-	* sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.: Likewise.
-	* sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-	* Makefile (tests): Add tst-rwlock12.
-	* tst-rwlock12.c: New file.
-
-2003-06-05  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait,
-	__lll_timedlock_wait, lll_unlock_wake_cb, __lll_timedwait_tid):
-	Remove bogus hidden_proto.
-	* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_lock,
-	lll_unlock_wake_cb, ___lll_timedwait_tid): Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (___lll_mutex_lock,
-	___lll_mutex_timedlock): Likewise.
-
-2003-06-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
-	(__pthread_cond_signal): Add some code to eventually handle
-	cond_lock!=0.
-
-2003-06-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-exec4.
-	(tst-exec4-ARGS): Define.
-	* tst-exec4.c: New file.
-
-2003-05-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
-	Also fail if tv_nsec < 0.
-	(__lll_timedwait_tid): Likewise.
-	* sysdeps/unix/sysv/linux/sem_timedwait.c (sem_timedwait): Likewise.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_timedwait_tid):
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.c (___lll_timedwait_tid):
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevelmutex.c (__lll_mutex_timedlock):
-	Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait):
-	Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_timedwait_tid):
-	Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h (lll_timedwait_tid):
-	Likewise.
-
-	* Makefile (tests): Add tst-sem8 and tst-sem9.
-	* tst-sem8.c: New file.
-	* tst-sem9.c: New file.
-	* sem_open.c: Fix creation of in_use record if the file exists but
-	no internal record.
-
-	* posix-timer.h: Remove old, unused timer_id2ptr and timer_ptr2id
-	definitions.
-
-	* sysdeps/pthread/timer_create.c (timer_create): In case
-	evp==NULL, assign timer ID to sival_ptr.
-
-	* descr.h (struct pthread_unwind_buf): Change type of prev element to
-	struct pthread_unwind_buf *.
-	(struct pthread): Likewise for cleanup_jmp_buf element.
-
-	* cleanup.c (__pthread_register_cancel): Add cast to avoid warning.
-	* cleanup_defer.c (__pthread_register_cancel_defer): Likewise.
-	* unwind.c (__pthread_unwind_next): Likewise.
-
-2003-05-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
-	(lll_futex_timed_wait): Use int for futex value parameter.
-	(lll_futex_wake): Likewise.
-	(lll_futex_requeue): Likewise.
-
-	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
-	Replace one memory operation with one register operation.
-
-	* tst-join4.c (do_test): Fix error message.
-
-	* tst-rwlock6.c (do_test): Use correct format specifier.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
-	(__lll_mutex_lock_wait): Replace one memory operation with one
-	register operation.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S
-	(__lll_mutex_lock_wait): Likewise.
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
-	(__lll_mutex_cond_lock): Add one to value parameter of
-	__lll_lock_wait to reflect reality in the futex syscall.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(lll_mutex_cond_lock): Likewise.
-
-2003-05-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (__lll_mutex_cond_lock):
-	New function.
-	(lll_mutex_cond_lock): Define.
-
-2003-05-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-signal6.
-	* tst-signal6.c: New file.
-
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h
-	(__lll_mutex_unlock_force): New function
-	(lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
-	(__lll_mutex_unlock_force): New function.
-	(lll_mutex_unlock_force): Use __lll_mutex_unlock_force.
-
-	* tst-rwlock7.c (do_test): Use correct format specifier.
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_requeue):
-	Find break parameter in correct asm argument.
-
-2003-05-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_clobbers):
-	Remove out4.
-	(lll_futex_requeue): Fix __o3 constraint, return negative errno if
-	error occured.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
-	Add __mutex.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h (FUTEX_REQUEUE,
-	lll_futex_requeue, lll_mutex_unlock_force): Define.
-
-2003-05-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
-	(pthread_cond_t): Add __mutex.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (FUTEX_REQUEUE,
-	lll_futex_requeue, lll_mutex_unlock_force): Define.
-
-2003-05-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/tcb-offsets.sym: Define MUTEX_FUTEX.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h (pthread_cond_t):
-	Add __mutex field.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h (SYSCALL_WITH_INST_PAD):
-	Define.
-	(lll_futex_wait, lll_futex_wake): Define.
-	* sysdeps/unix/sysv/linux/sh/sh4/lowlevellock.h: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: Try using
-	FUTEX_REQUEUE instead of FUTEX_WAIT.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Remember
-	mutex which was used in condvar structure.  Call
-	__pthread_mutex_cond_lock instead of __pthread_mutex_lock_internal.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Don't
-	include tcb-offsets.h.  Read wakeup value in locked region.
-	Use the value of gbr register as THREAD_ID.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Remove futex related
-	macros.
-
-2003-05-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_broadcast.c
-	(__pthread_cond_broadcast): Fix typo: MAX_INT -> INT_MAX.
-
-2003-05-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Fix
-	typo in register name.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Use parameters
-	correctly.  Actually use requeue.  Little optimization.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Store
-	mutex address early.  Handle cancellation state as 32-bit value.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	Remove unnecessary label.
-
-2003-05-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_broadcast.c: Try using FUTEX_REQUEUE
-	instead of FUTEX_WAIT.
-	* sysdeps/pthread/pthread_cond_signal.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
-	* sysdeps/pthread/pthread_cond_timedwait.c: Remember mutex which was
-	used in condvar structure.  Call __pthread_mutex_cond_lock instead
-	of __pthread_mutex_lock_internal.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/pthread/pthread_cond_wait.c: Likewise.
-	(__condvar_cleanup): Always call __pthread_mutex_cond_lock.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/Makefile (libpthread-sysdep_routines):
-	Add pthread_mutex_cond_lock.
-	* sysdeps/unix/sysv/linux/lowlevelcond.sym: Add dep_mutex.
-	* sysdeps/unix/sysv/linux/pthread_cond_mutex_lock.c: New file.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define
-	lll_mutex_cond_lock.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
-	Add __mutex field.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-
-	* sysdeps/i386/tcb-offsets.sym: Define MUTEX_FUTEX.
-	* sysdeps/x86_64/tcb-offsets.sym: Likewise.
-
-	* pthreadP.h: Declare __pthread_mutex_cond_lock.
-	* pthread_mutex_lock.c: Define LLL_MUTEX_LOCK if not already defined.
-	Use it instead of lll_mutex_lock.  If __pthread_mutex_lock is a
-	macro don't define aliases.
-
-	* cancellation.c: Remove __pthread_enable_asynccancel_2.
-	* pthreadP.h: Remove declaration of __pthread_enable_asynccancel_2.
-	* sysdeps/pthread/pthread_cond_timedwait.c: Use
-	__pthread_enable_asynccancel instead of __pthread_enable_asynccancel_2.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/pthread/pthread_cond_wait.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-
-2003-05-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sem_open.c: Fix one endless loop.  Implement correct semantics
-	wrt opening the same semaphore more then once.
-	* sem_close.c: Adjust for sem_open change.
-	* semaphoreP.h: Include <semaphore.h>.  Define struct inuse_sem.
-	Declare __sem_mappings, __sem_mappings_lock, __sem_search.
-	* Makefile (tests): Add tst-sem7.
-	* tst-sem7.c: New file.
-
-2003-05-16  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/register-atfork.c (libc_freeres_fn): Fix
-	uninitialized variable braino.
-
-2003-05-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_gettime.c (timer_gettime): Correct
-	test for syscall availability.
-
-	* sysdeps/unix/sysv/linux/timer_settime.c (timer_settime): Set
-	__no_posix_timers to -1 if the syscalls don't exist.
-
-	* pthread_join.c (pthread_join): Set tid field of the joined
-	thread to -1.  This isn't necessary but helps to recognize some
-	error conditions with almost no cost.
-
-	* allocatestack.c (FREE_P): Also negative values indicate an
-	unused stack.
-
-	* unwind.c: Include <unistd.h>.
-
-2003-05-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile ($(objpfx)$(multidir)): Add rule to create the directory.
-
-2003-05-14  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (crti-objs, crtn-objs): New variables.
-	(omit-deps, extra-objs): Add crtn.
-	($(objpfx)libpthread.so): Depend on both crti and crtn
-	and links to them in multidir.
-	($(objpfx)crtn.S, $(objpfx)crtn.o): New rules.
-
-2003-05-12  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
-	(lll_mutex_unlock): Use atomic_exchange_rel.
-
-2003-05-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* cond-perf.c (cons): Add missing locking around setting of alldone.
-
-2003-05-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Remove futex
-	related macros.
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
-
-2003-05-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-sem6.c: New file.
-	* Makefile (tests): Add tst-sem6.
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (___lll_mutex_unlock):
-	Use atomic_exchange_rel instead of atomic_exchange.
-	* sysdeps/unix/sysv/linux/lowlevellock.c (lll_unlock_wake_cb):
-	Likewise.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Improve quality of
-	code for lll_futex_wait and lll_futex_wake in static apps.  Use
-	vsyscall is possible.
-
-	* sysdeps/unix/sysv/linux/pthread_getaffinity.c: New file.
-	* sysdeps/unix/sysv/linux/pthread_setaffinity.c: New file.
-	* sysdeps/pthread/pthread.h: Declare pthread_getaffinity_np and
-	pthread_setaffinity_np.
-	* Versions [libpthread] (GLIBC_2.3.3): Add pthread_getaffinity_np
-	and pthread_setaffinity_np.
-	* Makefile (libpthread-routines): Add pthread_getaffinity and
-	pthread_setaffinity.
-
-	* allocatestack.c (allocate_stack): If ARCH_RETRY_MMAP is defined,
-	use it in case mmap to allocate the stack fails.
-	* sysdeps/unix/sysv/linux/x86_64/Makefile: Don't define
-	ARCH_MAP_FLAGS here.
-	* sysdeps/x86_64/pthreaddef.h: Define ARCH_MAP_FLAGS and
-	ARCH_RETRY_MMAP.
-
-2003-05-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/fork.c: Complete rewrite of the atfork
-	handler implementation.  It is now lockless in fork().
-	* sysdeps/unix/sysv/linux/register-atfork.c: Likewise.
-	* sysdeps/unix/sysv/linux/unregister-atfork.c: Likewise.
-	* sysdeps/unix/sysv/linux/fork.h: Don't include <link.h>.  Don't
-	declare the __fork_*_lists.
-	(struct fork_handler): Include pointers to all three functions.
-	Add next, refcntr and need_signal elements.
-	(__fork_handlers): New declaration.
-	(__register_atfork_malloc): Remove declaration.
-	(HAVE_register_atfork_malloc): Remove definition.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove
-	__pthread_child_handler variable.
-	(__libc_pthread_init): Use __register_atfork instead of explicitly
-	adding to the list.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Define lll_futex_wait
-	and lll_futex_wake.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-
-	* unwind.c (unwind_cleanup): Print error message and then abort.  This
-	function must never be reached.
-
-	* cond-perf.c: New file.
-
-2003-05-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/tls.h (TLS_INIT_TP): Include \n in error message.
-
-2003-05-04  Roland McGrath  <roland@redhat.com>
-
-	* Makefile ($(objpfx)../libc.so): New target.
-
-2003-05-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
-	(pthread_condattr_t): Size is only an int, don't use long for
-	alignment.
-	(pthread_mutexattr_t): Likewise.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-
-2003-05-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/tls.h: Define THREAD_ID.
-	* sysdeps/ia64/tls.h: Likewise.
-	* sysdeps/powerpc/tls.h: Likewise.
-	* sysdeps/s390/tls.h: Likewise.
-	* sysdeps/sh/tls.h: Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.
-	* pthread_mutex_lock.c: Use THREAD_ID instead of THREAD_SELF to
-	record ownership.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-	* pthread_mutex_unlock.c: Likewise.
-	* pthread_rwlock_trywrlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlocklock_rdlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
-
-	* sysdeps/pthread/createthread.c (create_thread): Use CLONE_SYSVSEM
-	flag.
-
-2003-04-29  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
-	(__SIZEOF_PTHREAD_COND_T): Define to 48.
-	(pthread_rwlock_t): Add 16 bytes of pad instead of 8 before __flags.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h (pthread_cond_t):
-	Make __align long long instead of long.
-	(pthread_rwlock_t): Formatting.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h
-	(pthread_rwlock_t): Formatting.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
-	(pthread_cond_t): Make __align long long instead of long.
-	(pthread_rwlock_t): Move __flags field to the same position as in
-	linuxthreads.
-
-2003-04-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-rwlock6.c (do_test): Use correct printf format specifiers.
-	* tst-rwlock7.c (do_test): Likewise.
-
-2003-04-26  Roland McGrath  <roland@redhat.com>
-
-	* Makefile ($(test-modules)): Depend on $(common-objpfx)shlib.lds.
-
-2003-04-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* allocatestack.c (TLS_TPADJ): Add TLS_PRE_TCB_SIZE instead of
-	sizeof (struct pthread).
-	(allocate_stack): Subtract TLS_PRE_TCB_SIZE bytes instead of
-	1 struct pthread.
-	* sysdeps/powerpc/tls.h (TLS_INIT_TCB_SIZE, TLS_TCB_SIZE): Define
-	to 0.
-	(TLS_INIT_TCB_ALIGN, TLS_TCB_ALIGN): Define to alignment of
-	struct pthread.
-	(TLS_PRE_TCB_SIZE): Increase to cover tcbhead_t preceeded by pad
-	to 32-bit bytes.
-	(INSTALL_DTV, GET_DTV, THREAD_DTV): tcbhead_t is immediately before
-	tcbp.
-	(TLS_INIT_TP, THREAD_SELF, INIT_THREAD_SELF): Don't add TLS_TCB_SIZE
-	unneccessarily.
-	(NO_TLS_OFFSET): Define.
-	* sysdeps/unix/sysv/linux/powerpc/createthread.c (TLS_VALUE): Don't
-	add TLS_TCB_SIZE unnecessarily.
-
-2003-04-22  Roland McGrath  <roland@redhat.com>
-
-	* Makeconfig (shared-thread-library): Reverse link order to work
-	around linker bug.
-
-2003-04-22  Ulrich Drepper  <drepper@redhat.com>
-
-	* semaphore.h: Fix typo in comment.
-
-2003-04-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/sigfillset.c: New file.
-
-	* init.c (__pthread_initialize_minimal): Don't block SIGTIMER.
-	* pthreadP.h: Make SIGTIMER and SIGCANCEL the same.
-	* sysdeps/pthread/pthread_sigmask.c: Remove handling of SIGTIMER.
-	* sysdeps/pthread/sigaction.c: Likewise.
-	* sysdeps/pthread/sigprocmask.c: New file.
-	* sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): Define as
-	__SIGRTMIN+1.
-	* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
-	Block SIGTIMER.  Also handle SI_TKILL events and terminate thread
-	in this case.
-
-2003-04-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h
-	(DL_SYSINFO_IMPLEMENTATION): Add .eh_frame information.
-
-	* sysdeps/unix/sysv/linux/unregister-atfork.c
-	(__unregister_atfork): Don't free memory not allocated dynamically.
-
-	* semaphore.h: Remove __THROW marker from cancellation points.
-	* nptl/sysdeps/pthread/pthread.h: Likewise.
-
-2003-04-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Don't mark pthread_testcancel,
-	pthread_cancel, pthread_setcancelstate, and pthread_setcanceltype with
-	__THROW.
-
-2003-04-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-cancel4.c (do_test): Use %zd instead of %d when printing cnt.
-
-2003-04-15  Roland McGrath  <roland@redhat.com>
-
-	* forward.c (__pthread_unwind): Tweak to avoid warning.
-
-2003-04-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Move THREAD_ATOMIC_* replacements to the top.
-
-2003-04-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Don't
-	overflow CFA advance instructions.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-
-2003-04-14  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/tls.h: Rename LOCK to LOCK_PREFIX.
-	* sysdeps/i386/pthread_spin_lock.c: Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.  Define LOCK_PREFIX if not already
-	defined.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Use
-	DW_CFA_advance_loc2 for .Laddl-.Lsubl.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Use
-	DW_CFA_advance_loc for .Laddl-.Lsubl.
-
-2003-04-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Don't use
-	position-independent unwind data for static libraries.
-	Add missing unwind info.  Add comments.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Add unwind info.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-
-2003-04-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile: Make sure all cancellation points are compiled with
-	exception and asynchronous unwind tables.
-
-	* sysdeps/x86_64/tls.h (THREAD_SETMEM): Word around compiler bug
-	which mishandles loading of global object addresses in PIC.
-	(THREAD_SETMEM_NC): Likewise.
-
-2003-04-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread.h: Define new data structure for cleanup buffer.  Declare
-	new cleanup handler interfaces.
-	* descr.h: Include <unwind.h> if necessary.  Define pthread_unwind_buf.
-	(struct pthread): Add cleanup_jmp_buf pointer.  Define
-	HAVE_CLEANUP_JMP_BUF and not HAVE_CANCELBUF.
-	* pthreadP.h: Declare __pthread_unwind.  Define __do_cancel to use
-	it.  Declare old cleanup handler installation functions.
-	* cleanup.c: Rewrite.  Install handler for unwind-based cleanup
-	handling.
-	* cleanup_defer.c: Likewise.
-	* cleanup_compat.c: New file.  Old cleanup code.
-	* cleanup_def_compat.c: New file.  Old cleanup code.
-	* pthread_create.c (start_thread): Initialize cleanup_jmp_buf element
-	if own thread descriptor.
-	* unwind.c: New file.
-	* forward.c: Add __pthread_unwind.
-	* init.c (pthread_functions): Add __pthread_unwind.
-	* sysdeps/pthread/pthread-functions.s (struct pthread_functions):
-	Add ptr___pthread_unwind.
-	* Versions [GLIBC_2.3.3] (libpthread): Export new cleanup handling
-	and unwind function.
-	* Makefile (libpthread-routines): Add cleanup_compat,
-	cleanup_def_compat, and unwind.  Define CFLAGS to enable unwind
-	table generation if necessary.
-	* version.c: Record whether unwind support is compiled in.
-	* sysdeps/pthread/configure.in: Add checks for unwind unterfaces.
-	* sysdeps/pthread/bits/libc-lock.h: Add prototypes of the old cleanup
-	handler interfaces.
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Add quite a bit of
-	complication to generate unwind information for syscall wrappers.
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Define
-	__cleanup_fct_attribute.
-
-	* Makefile: Add rules to build and run tst-cleanup0.
-	* tst-cleanup0.c: New file.
-	* tst-cleanup0.expect: New file.
-
-	* pthread_create.c (deallocate_tsd): Don't take parameter.  Adjust
-	caller.  Optimize to avoid often unecessary local variable.
-
-2003-04-11  Roland McGrath  <roland@redhat.com>
-
-	* Makefile ($(objpfx)multidir.mk): New target, generated makefile that
-	sets variable `multidir'; include that.
-	(generated): Add it.
-	($(objpfx)$(multidir)/crti.o): New target.
-	[$(multidir) != .] (generated-dirs, extra-objs, omit-deps): Add it.
-
-2003-04-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-attr2.c (do_test): Add cast to avoid warning.
-	* tst-mutex4.c (do_test): Likewise.
-
-2003-04-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Reset CPU clocks
-	in child.
-
-2003-04-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-detach1.
-	* tst-detach1.c: New file.
-
-2003-04-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Remove duplicate
-	pthread_cleanup_{push,pop} definitions.
-
-	* tst-barrier2.c: Eliminate warnings.
-	* tst-cancel4.c: Likewise.
-	* tst-cond4.c: Likewise.
-	* tst-cond6.c: Likewise.
-	* tst-detach1.c: Likewise.
-	* tst-rwlock4.c: Likewise.
-	* tst-rwlock6.c: Likewise.
-	* tst-rwlock7.c: Likewise.
-	* tst-sem3.c: Likewise.
-	* tst-spin2.c: Likewise.
-	* tst-umask1.c: Likewise.
-
-2003-04-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_detach.c (pthread_detach): Fix test for invalid TID.
-
-2003-04-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h (struct pthread): Move cancelhandling member to the front.
-
-2003-04-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/register-atfork.c: Define malloc_prepare,
-	malloc_parent, and malloc_child statically.
-	(__register_atfork_malloc): New function.
-	(free_mem): Don't free any of the malloc_* variables on the list.
-	* sysdeps/unix/sysv/linux/fork.h: Declare __register_atfork_malloc.
-	Define HAVE_register_atfork_malloc.
-
-2003-04-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/createthread.c (create_thread): Add some more
-	comments explaining when to set multiple_threads and when not.
-
-	* pthreadP.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
-	THREAD_ATOMIC_BIT_SET if not already defined.
-	* sysdeps/i386/tls.h: Define THREAD_ATOMIC_CMPXCHG_VAL and
-	THREAD_ATOMIC_BIT_SET:
-	* sysdeps/x86_64/tls.h: Likewise.
-	* cleanup_defer.c (_pthread_cleanup_push_defer): Rewrite to use
-	THREAD_ATOMIC_CMPXCHG_VAL.
-	(_pthread_cleanup_pop_restore): Likewise.
-	* cancellation.c (__pthread_enable_asynccancel): Likewise.
-	(__pthread_enable_asynccancel_2): Likewise.
-	(__pthread_disable_asynccancel): Likewise.
-	* libc-cancellation.c (__libc_enable_asynccancel): Likewise.
-	(__libc_disable_asynccancel): Likewise.
-	* init.c (sigcancel_handler): Likewise.
-	* pthread_setcancelstate.c (__pthread_setcancelstate): Likewise.
-	* pthread_setcanceltype.c (__pthread_setcanceltype): Likewise.
-
-2003-04-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (sigcancel_handler): Don't set EXITING_BIT here.
-	* libc-cancellation.c (__libc_enable_asynccancel): Likewise.
-	* pthreadP.h (__do_cancel): Set EXITING_BIT here.
-	* Makefile (tests): Add tst-cancel11.
-	* tst-cancel11.c: New file.
-
-2003-04-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_create.c (deallocate_tsd): Clear/free memory after the last
-	round, not the first.  Use specific_used flag instead of local
-	found_nonzero variable.  Use THREAD_[SG]ETMEM where possible.
-	(__free_tcb): Don't call deallocate_tsd here.
-	(start_thread): Call deallocate_tsd here.
-	* pthread_setspecific.c: Set specific_used flag really only when
-	needed.
-	* Makefile (tests): Add tst-tsd3.c and tst-tsd4.
-	* tst-tsd3.c: New file.
-	* tst-tsd4.c: New file.
-
-2003-03-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_mutex_lock):
-	Use atomic_exchange_and_add instead of __lll_add.
-	(__lll_mutex_timedlock): Likewise.
-	Patch by Ian Wienand.
-
-2003-03-24  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
-	(SINGLE_THREAD_P): Fix typo.
-	* tst-cancel-wrappers.sh: Handle '.'ed symbols.
-
-2003-03-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-align.
-	* tst-align.c: New file.
-	* sysdeps/i386/Makefile: Define CFLAGS-tst-align.
-
-	* sysdeps/i386/tls.h (CALL_THREAD_FCT): Align stack of called
-	function correctly.
-
-	* tst-tsd2.c: Add casts to avoid warnings.
-
-2003-03-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h (struct pthread): Move most often used elements to the front.
-
-2003-03-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (libpthread-routines): Add pthread_atfork.
-	(libpthread-static-only-routines): Add pthread_atfork.
-
-2003-03-28  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/tls.h: Include nptl/descr.h after the definition
-	of TLS_DTV_AT_TP.
-	(INSTALL_DTV): Add parens.
-	(THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM, THREAD_SETMEM_NC):
-	Use passed descr instead of THREAD_SELF.
-	* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S
-	(__lll_mutex_timedlock_wait): Correct expected value after
-	spurious wakeup.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S:
-	Release lock before waking up the waiters.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: Correct exit
-	criteria.  Reorderstruct passed to cleanup handler.  Fix
-	handling of cancellation and failung pthread_mutex_unlock call.
-	Use __pthread_enable_asynccancel_2 instead of
-	__pthread_enable_asynccancel.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-	Return result of lock re-get if it fails.
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S: Fix wrong argument
-	for __pthread_cleanup_push.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Fix
-	completely broken rwlock implementation.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S: Fix error value.  Use
-	versioned_symbol macro.
-	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Use	versioned_symbol macro.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
-
-2003-03-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/kernel-posix-timers.h: Don't declare
-	__timer_helper_thread.  Declare __start_helper_thread, __helper_once,
-	and __helper_tid.
-	(struct timer): Remove th and bar field.
-	* sysdeps/unix/sysv/linux/timer_create.c (timer_create): Remove
-	debugging code.  Create only one helper thread.
-	* sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Don't kill
-	helper thread.
-	* sysdeps/unix/sysv/linux/timer_routines.c (timer_helper_thread):
-	Renamed.  Define statically.  Use thread info from siginfo.
-	(__helper_once): New variable.
-	(__helper_tid): New variable.
-	(__reset_helper_control): New function.
-	(__start_helper_thread): New function.
-
-	* pthread_create.c (start_thread): Don't use setjmp inside
-	__builtin_expect to work around gcc bug.
-
-	* sysdeps/unix/sysv/linux/timer_delete.c (timer_delete): Even if
-	timer_delete syscall fails, but not with ENOSYS, set
-	__no_posix_timers.
-
-	* sysdeps/unix/sysv/linux/timer_settime.c [!__ASSUME_POSIX_TIMERS]
-	(timer_settime): Fix typo.
-	* sysdeps/unix/sysv/linux/timer_getoverr.c
-	[!__ASSUME_POSIX_TIMERS] (timer_getoverrun): Likewise.
-
-2003-03-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Fix
-	offset of cleanupbuf.__prev.
-
-2003-03-26  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_getoverr.c: Fix typo in name
-	of included file.
-
-2003-03-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/timer_create.c (timer_create): If EVP ==
-	NULL provide default definition to syscall.
-
-2003-03-25  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/pthread/posix-timer.h (TIMER_MAX): Define if not defined.
-	(timer_id2ptr): Fix typo.
-
-2003-03-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Define SIGCANCEL and SIGTIMER.
-	* sysdeps/i386/pthreaddef.h: Remove SIGCANCEL definition.
-	* sysdeps/ia64/pthreaddef.h: Likewise.
-	* sysdeps/powerpc/pthreaddef.h: Likewise.
-	* sysdeps/s390/pthreaddef.h: Likewise.
-	* sysdeps/sh/pthreaddef.h: Likewise.
-	* sysdeps/x86_64/pthreaddef.h: Likewise.
-	* init.c (__pthread_initialize_minimal): Block SIGTIMER.
-	* sysdeps/pthread/sigaction.c: Also prevent SIGTIMER handler from
-	being changed.
-	* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Make sure
-	SIGTIMER is not unblocked.
-	* sysdeps/unix/sysv/linux/allocrtsig.c (current_rtmin): One more
-	RT signal taken.
-	* sysdeps/unix/sysv/linux/pthread_kill.c: Do not allow SIGTIMER to
-	be send.
-	* sysdeps/pthread/posix-timer.h (timer_id2ptr, timer_ptr2id): Just
-	pass pointer through as ID.
-	* sysdeps/unix/sysv/linux/bits/local_lim.h (TIMER_MAX): Removed.
-	* sysdeps/unix/sysv/linux/kernel-posix-timers.h: New file.
-	* sysdeps/unix/sysv/linux/timer_create.c: New file.
-	* sysdeps/unix/sysv/linux/timer_delete.c: New file.
-	* sysdeps/unix/sysv/linux/timer_getoverr.c: New file.
-	* sysdeps/unix/sysv/linux/timer_gettime.c: New file.
-	* sysdeps/unix/sysv/linux/timer_routines.c: New file.
-	* sysdeps/unix/sysv/linux/timer_settime.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/Versions: New file.
-	* sysdeps/unix/sysv/linux/ia64/timer_create.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/timer_delete.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/timer_getoverr.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/timer_gettime.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/timer_settime.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/Versions: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_create.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_delete.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_getoverr.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_gettime.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/timer_settime.c: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/Versions: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/timer_create.c: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/timer_delete.c: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/timer_getoverr.c: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/timer_gettime.c: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/timer_settime.c: New file.
-	* sysdeps/unix/sysv/linux/x86_64/Versions: New file.
-	* sysdeps/unix/sysv/linux/x86_64/compat-timer.h: New file.
-	* sysdeps/unix/sysv/linux/x86_64/timer_create.c: New file.
-	* sysdeps/unix/sysv/linux/x86_64/timer_delete.c: New file.
-	* sysdeps/unix/sysv/linux/x86_64/timer_getoverr.c: New file.
-	* sysdeps/unix/sysv/linux/x86_64/timer_gettime.c: New file.
-	* sysdeps/unix/sysv/linux/x86_64/timer_settime.c: New file.
-
-	* pthreadP.h: Remove FRAME_LEFT definition.
-	* cleanup.c (_pthread_cleanup_push): Don't check for reference to
-	already left frame.  Programs which have this problem are not POSIX
-	compliant.
-	* cleanup_defer.c (_pthread_cleanup_push_defer): Likewise.
-
-2003-03-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/tst-timer.c: Check return values of the
-	functions we test.
-
-2003-03-23  Roland McGrath  <roland@redhat.com>
-
-	* tst-tls3.c (do_test) [! HAVE___THREAD]: Don't test anything.
-	* tst-tls3mod.c: Likewise.
-	* tst-tls1.c: Likewise.
-	* tst-tls2.c: Likewise.
-
-	* tst-mutex5.c (do_test): Unlock before destroy, otherwise we invoke
-	undefined behavior.
-
-	* tst-join5.c (tf1, tf2): Add a cast.
-
-	* Makeconfig (includes): Append -I$(..)nptl to this variable.
-
-	* tst-barrier2.c (do_test) [! _POSIX_THREAD_PROCESS_SHARED]:
-	Don't test anything.
-	* tst-cond4.c: Likewise.
-	* tst-cond6.c: Likewise.
-	* tst-flock2.c: Likewise.
-	* tst-mutex4.c: Likewise.
-	* tst-rwlock4.c: Likewise.
-	* tst-signal1.c: Likewise.
-	* tst-spin2.c: Likewise.
-	* tst-cond11.c [! _POSIX_CLOCK_SELECTION]: Likewise.
-
-	* tst-mutex4.c: Use test-skeleton.c.
-	* tst-spin2.c: Likewise.
-	* tst-sysconf.c: Likewise.
-	* tst-barrier2.c: Likewise.
-	* tst-cond4.c: Likewise.
-	* tst-cond6.c: Likewise.
-	* tst-rwlock4.c: Likewise.
-	* tst-unload.c: Likewise.
-	* tst-flock2.c (do_test): Use return instead of exit.
-
-2003-03-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/fork.c (__fork): Add libc_hidden_def.
-
-2003-03-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h
-	(__lll_mutex_trylock): Use atomic_compare_and_exchange_val_acq
-	instead of __lll_compare_and_swap.
-	* sysdeps/unix/sysv/linux/ia64/pthread_once.c (__pthread_once):
-	Likewise.
-	Removed definition if __lll_compare_and_swap.
-
-	* cancellation.c: Adjust for new form of compare&exchange macros.
-	* cleanup_defer.c: Likewise.
-	* init.c: Likewise.
-	* libc-cancellation.c: Likewise.
-	* old_pthread_cond_broadcast.c: Likewise.
-	* old_pthread_cond_signal.c: Likewise.
-	* old_pthread_cond_timedwait.c: Likewise.
-	* old_pthread_cond_wait.c: Likewise.
-	* pthread_cancel.c: Likewise.
-	* pthread_create.c: Likewise.
-	* pthread_detach.c: Likewise.
-	* pthread_join.c: Likewise.
-	* pthread_key_delete.c: Likewise.
-	* pthread_setcancelstate.c: Likewise.
-	* pthread_setcanceltype.c: Likewise.
-	* pthread_timedjoin.c: Likewise.
-	* pthread_tryjoin.c: Likewise.
-	* sysdeps/pthread/createthread.c: Likewise.
-
-2003-03-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: Include <atomic.h>.
-	Remove __lll_add, __lll_dec_if_positive, and __lll_test_and_set
-	definitions.  Replace uses with calls to atomic_* functions.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/lowlevellock.c: Replace __lll_add and
-	__lll_test_and_set calls with atomic_exchange_and_add and
-	atomic_exchange calls respectively.
-	* sysdeps/unix/sysv/linux/sem_post.c: Likewise.
-	* sysdeps/unix/sysv/linux/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/sem_trywait.c: Likewise.
-	* sysdeps/unix/sysv/linux/sem_wait.c: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/pthread_once.c: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/sem_port.c: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c: Likewise.
-
-	* allocatestack.c (allocate_stack): Assume atomic_exchange_and_add
-	returns the old value.
-
-2003-03-20  Martin Schwidefsky  <sky@mschwid3.boeblingen.de.ibm.com>
-
-	* sysdeps/s390/pthread_spin_lock.c (pthread_spin_lock): Use type
-	int for variable OLDVAL and correct inline assembler contraint.
-	* sysdeps/s390/pthread_spin_trylock.c (pthread_spin_trylock): Use
-	type int for variable OLD.
-
-	* sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it
-	only for s390-32.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
-	(SINGLE_THREAD_P): Use global variable __local_multiple_threads
-	instead of multiple_threads field in the TCB.
-
-2003-03-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/i686/bits/atomic.h: Removed.
-	* sysdeps/i386/i586/bits/atomic.h: Removed.
-	* sysdeps/i386/i486/bits/atomic.h: Removed.  Moved to glibc.
-	* sysdeps/x86_64/bits/atomic.h: Removed.  Moved to glibc.
-	* sysdeps/s390/bits/atomic.h: Removed.  Moved to glibc.
-	* sysdeps/sh/bits/atomic.h: Removed.  Moved to glibc.
-	* sysdeps/ia64/bits/atomic.h: Removed.  Moved to glibc.
-	* sysdeps/powerpc/bits/atomic.h: Removed.  Moved to glibc.
-	* atomic.h: Removed.  Moved to glibc.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Add
-	support for clock selection.
-
-	* sysdeps/pthread/pthread_cond_broadcast.c: Release lock before
-	signalling waiters.
-
-2003-03-18  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
-	Add __lll_rel_instr first.  Add memory clobber.
-	(lll_mutex_unlock): Use __lll_test_and_set.
-	From Paul Mackerras <paulus@samba.org>.
-
-	* sysdeps/powerpc/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define
-	unconditionally.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
-	(SINGLE_THREAD_P):  Add `header.' prefix.
-	From Paul Mackerras <paulus@samba.org>.
-
-	* Versions (libpthread: GLIBC_2.3.2): Move pthread_tryjoin_np and
-	pthread_timedjoin_np to ...
-	(libpthread: GLIBC_2.3.3): ... here.
-	(libpthread: GLIBC_2.2): Move pthread_barrierattr_getpshared there too.
-
-	* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
-	Avoid shadowing VAL variable.
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h (__lll_test_and_set):
-	New macro.
-
-2003-03-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-cond11.
-	* tst-cond11.c: New file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Reorder
-	struct passed to cleanup handler to eliminate one more
-	instruction.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
-	(pthrad_cond_t): Replace __unused field with __clock.
-
-	* sysdeps/pthread/pthread_cond_wait.c: Release condvar lock before
-	waken all waiters in cleanup handler.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-
-	* pthread_condattr_getclock.c: New file.
-	* pthread_condattr_setclock.c: New file.
-	* sysdeps/pthread/pthread.h: Declare these new functions.
-	* Versions [GLIBC_2.3.3] (libpthread): Add the new functions.
-	* Makefile (libpthread-routines): Add the new functions.
-	* sysdeps/unix/sysv/linux/internaltypes.h (struct pthread_condattr):
-	Renamed field to value.  Document use of the bits.
-	* pthread_condattr_getpshared.c: Adjust for struct pthread_condattr
-	change.
-	* pthread_condattr_setpshared.c: Likewise.
-	* pthread_cond_init.c (__pthread_cond_init): Initialized __clock field.
-	* sysdeps/unix/sysv/linux/lowlevelcond.sym: Add cond_clock symbol.
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
-	Add __clock field.
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:
-	Implement clock selection.
-	* sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
-	* pthread-errnos.sym: Add ENOSYS.
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
-	_POSIX_CLOCK_SELECTION.
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Remove
-	invalid .size directive.
-
-2003-03-17  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_lock_wait):
-	Formatting tweaks.
-
-2003-03-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/pthread_once.c: Use __builtin_expect.
-	Use __lll_add instead of spelling it out.  Use protected symbol names.
-	* sysdeps/unix/sysv/linux/ia64/sem_post.c: Use __builtin_expect.
-	Use __lll_add.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (__lll_compare_and_swap):
-	Renamed from lll_compare_and_swap.  Use new name where necessary.
-	(__lll_add): Defined.
-	(__lll_dec_if_positive): Defined.
-	(__lll_test_and_set): Defined.
-	* sysdeps/ia64/pthread_spin_init.c: Removed.
-	* sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Removed.
-	* sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Removed.
-	* sysdeps/unix/sysv/linux/ia64/sem_wait.c: Removed.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Removed.
-	* sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: Removed.
-	* sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: Removed.
-	* sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Removed.
-	* sysdeps/ia64/bits/atomic.h: Add __builtin_expect where appropriate.
-	* sysdeps/ia64/pthread_spin_unlock.c (pthread_spin_unlock): Use
-	__sync_lock_release_si.
-	Patch by Jakub Jelinek.
-
-	* sysdeps/unix/sysv/linux/lowlevellock.c (__lll_timedlock_wait):
-	Fix timeout handling.
-	(__lll_timedwait_tid): Likewise.
-	(lll_unlock_wake_cb): Wake up other waiters if necessary.
-	Patch by Jakub Jelinek.
-
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: Pretty printing.
-
-2003-03-17  Roland McGrath  <roland@redhat.com>
-
-	PowerPC port contributed by Paul Mackerras <paulus@samba.org>.
-	* sysdeps/pthread/pthread_spin_init.c: New file.
-	* sysdeps/pthread/pthread_spin_unlock.c: New file.
-	* sysdeps/powerpc/Makefile: New file.
-	* sysdeps/powerpc/pthread_spin_lock.c: New file.
-	* sysdeps/powerpc/pthread_spin_trylock.c: New file.
-	* sysdeps/powerpc/pthreaddef.h: New file.
-	* sysdeps/powerpc/tcb-offsets.sym: New file.
-	* sysdeps/powerpc/td_ta_map_lwp2thr.c: New file.
-	* sysdeps/powerpc/tls.h: New file.
-	* sysdeps/powerpc/bits/atomic.h: New file.
-	* sysdeps/unix/sysv/linux/libc-lowlevelmutex.c: New file.
-	* sysdeps/unix/sysv/linux/libc-lowlevellock.c: New file.
-	* sysdeps/unix/sysv/linux/lowlevellock.c: New file.
-
-	* sysdeps/unix/sysv/linux/lowlevelmutex.c: New file.
-	* sysdeps/unix/sysv/linux/sem_post.c: New file.
-	* sysdeps/unix/sysv/linux/sem_timedwait.c: New file.
-	* sysdeps/unix/sysv/linux/sem_trywait.c: New file.
-	* sysdeps/unix/sysv/linux/sem_wait.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/Makefile: New file.
-	* sysdeps/unix/sysv/linux/powerpc/createthread.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/fork.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/lowlevellock.h: New file.
-	* sysdeps/unix/sysv/linux/powerpc/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/powerpc/pthread_once.c: New file.
-	* sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h: New file.
-	* sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h: New file.
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.c: Use __gettimeofday,
-	not gettimeofday.
-	* sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
-
-2003-03-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_wait.c: Correct exit criteria.
-	* sysdeps/pthread/pthread_cond_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	Patch by Ewald Snel <ewald@rambo.its.tudelft.nl>.
-
-2003-03-16  Roland McGrath  <roland@redhat.com>
-
-	* tst-fork4.c: Include <string.h>.
-	* tst-signal2.c: Likewise.
-	* tst-mutex5.c (do_test): exit -> return.
-	* tst-mutex2.c: Include <stdlib.h>.
-
-2003-03-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
-	(__lll_mutex_timedlock_wait): Correct expected value after
-	spurious wakeup.  Otherwise we would never wait again.
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Work around red
-	zone versus inline asm stupidity.  Use correct instructions.
-
-	* tst-rwlock6.c: Add some more status output.
-
-2003-03-15  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/pthread/configure.in: New file.
-	* sysdeps/pthread/configure: New file (generated).
-
-2003-03-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): Store the exact stack size of
-	user allocated stacks.
-
-2003-03-15  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
-	(SINGLE_THREAD): Use `header' prefix instead of `header.data'.
-	* sysdeps/sh/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
-	* sysdeps/sh/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define.
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h (SINGLE_THREAD_P):
-	Use `header.' prefix.
-	* sysdeps/ia64/tcb-offsets.sym (MULTIPLE_THREADS_OFFSET): Likewise.
-
-2003-03-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/pthreaddef.h (CURRENT_STACK_FRAME): Don't use
-	__builtin_frame_address, use stack pointer.
-
-	* sysdeps/unix/sysv/linux/jmp-unwind.c: Use CURRENT_STACK_FRAME
-	instead of __builtin_frame_pointer.
-
-2003-03-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-basic1.c (do_test): Add cast to avoid warning.
-	* tst-basic2.c (do_test): Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Use correct
-	amount of stack correction.
-
-	* tst-fork4.c: Use test-skeleton.c.
-
-2003-03-14  Roland McGrath  <roland@redhat.com>
-
-	* init.c: Fix typo "#eli" for "#else".
-
-2003-03-14  Steven Munroe  <sjmunroe@us.ibm.com>
-
-	* allocatestack.c (__stack_user): Use hidden_data_def.
-	* pthread_create.c (__pthread_keys): Likewise.
-
-	* init.c [__powerpc__] (__NR_set_tid_address): Define it.
-
-2003-03-14  Roland McGrath  <roland@redhat.com>
-
-	* tst-fork4.c: New file.
-	* Makefile (tests): Add it.
-
-	* descr.h (struct pthread): Move the union out of [!TLS_DTV_AT_TP], so
-	we always define the padding space.
-	[!TLS_DTV_AT_TP]: Give tcbhead_t field a name, `header', since GCC
-	stopped supporting its own extensions fully.
-	[TLS_MULTIPLE_THREADS_IN_TCB]: Put `multiple_threads' inside a wrapper
-	struct also called `header', so `header.multiple_threads' is the field
-	name to use on all machines.
-	* allocatestack.c (allocate_stack): Use `header.' prefix.
-	* sysdeps/pthread/createthread.c (create_thread): Likewise.
-	* pthread_create.c (__pthread_create_2_1): Likewise.
-	* sysdeps/i386/tls.h (INSTALL_NEW_DTV, THREAD_DTV): Likewise.
-	(THREAD_SELF): Likewise.
-	* sysdeps/x86_64/tls.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-
-	* sysdeps/s390/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Use REGS[18]
-	value directly.
-
-2003-03-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_create.c (start_thread): Use CALL_THREAD_FCT if defined.
-	* sysdeps/i386/tls.h: Define CALL_THREAD_FCT.
-
-	* pthread_create.c (start_thread): setjmp is expected to return 0.
-
-	* sysdeps/x86_64/tls.h (THREAD_GETMEM): Mark asms volatile.
-	(THREAD_GETMEM_NC): Likewise.
-
-2003-03-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): If MULTI_PAGE_ALIASING is defined
-	and the size of the stack which must be allocated is a multiple,
-	allocate one more page.
-	* sysdeps/i386/i686/Makefile: Don't define COLORING_INCREMENT, but
-	MULTI_PAGE_ALIASING.
-
-2003-03-13  Roland McGrath  <roland@redhat.com>
-
-	* pthread_create.c (start_thread): Set EXITING_BIT after the
-	event-reporting (and destructors), not before.
-
-2003-03-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h (lll_futex_timed_wait,
-	lll_futex_wake): Declare register variables as long int instead of
-	unsigned long int.  Patch by Ian Wienand <ianw@gelato.unsw.edu.au>.
-	Make syscall arguments clobbered by the syscall.
-	(lll_futex_wait): Define using lll_futex_timed_wait.
-
-	* sysdeps/ia64/td_ta_map_lwp2thr.c (td_ta_map_lwp2thr): Cast regs[13]
-	to void *.
-
-	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Only declare and set
-	PPID if [! NDEBUG].
-
-	* allocatestack.c (nptl_ncreated): Only declare if
-	COLORING_INCREMENT != 0.
-
-	* pthreadP.h (__pthread_enable_asynccancel_2): New prototype.
-	(__libc_enable_asynccancel_2): Remove prototype.
-
-	* sysdeps/unix/sysv/linux/ia64/fork.c (ARCH_FORK): Swap ptid and
-	ctid to match kernel.
-
-2003-03-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add
-	libc_multiple_threads.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Move definition of
-	__libc_multiple_threads to...
-	* sysdeps/unix/sysv/linux/libc_multiple_threads.c: ...here.  New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Remove unnecessary
-	versioning.
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S
-	(__pthread_once_internal): Define.
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Use shlib-compat.h
-	macros instead of .symver directly.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Likewise.
-
-	* sysdeps/x86_64/tls.h [__ASSEMBLER__]: Include tcb-offsets.h.
-	* sysdeps/x86_64/tcb-offsets.sym: New file.
-	* sysdeps/x86_64/Makefile: New file.
-
-	* sysdeps/i386/tcb-offsets.sym: Add SELF.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Use SELF
-	to access own pthread_t in TCB.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-
-2003-03-12  Roland McGrath  <roland@redhat.com>
-
-	* pthread-errnos.sym: New file.
-	* Makefile (gen-as-const-headers): New variable, list that file.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: Include generated
-	header <pthread-errnos.h> instead of defining errno values here.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Likewise.
-	* sysdeps/i386/i486/pthread_spin_trylock.S: Likewise.
-	* sysdeps/x86_64/pthread_spin_trylock.S: Likewise.
-	* sysdeps/sh/pthread_spin_trylock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/fork.c: Add an assert to check that
-	CLONE_CHILD_SETTID worked.
-
-2003-03-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S: New
-	file.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S: New
-	file.
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
-	(pthread_cond_t): Add padding.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S: New file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
-	(__pthread_rwlock_timedwrlock): Add missing opcode suffix.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
-	(__pthread_rwlock_timedrdlock): Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
-	(__pthread_rwlock_wrlock): Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
-	(__pthread_rwlock_rdlock): Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: New file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Return
-	result of lock re-get if it fails.
-
-2003-03-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: Fix asm syntax.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: Likewise.
-
-	* sysdeps/x86_64/tls.h (THREAD_SELF, THREAD_GETMEM, THREAD_GETMEM_NC,
-	THREAD_SETMEM, THREAD_SETMEM_NC): Correct asm syntax.
-
-	* allocatestack.c [! TLS_MULTIPLE_THREADS_IN_TCB] (allocate_stack):
-	Initialize *__libc_multiple_threads_ptr not __libc_multiple_threads.
-	* sysdeps/pthread/createthread.c [! TLS_MULTIPLE_THREADS_IN_TCB]
-	(create_thread): Likewise.
-	Define __pthread_multiple_threads and __libc_multiple_threads_ptr.
-	* init.c (__pthread_initialize_minimal_internal): Initialize
-	__libc_multiple_threads_ptr if necessary.
-	* pthreadP.h: Adjust prototype for __libc_pthread_init.  Declare
-	__pthread_multiple_threads and __libc_multiple_threads_ptr.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Define
-	__libc_multiple_threads.
-	(__libc_pthread_init): Return pointer to __libc_pthread_init if
-	necessary.
-
-	* sysdeps/i386/tls.h (THREAD_SETMEM): Fix one-byte variant.
-	(THREAD_SETMEM_NC): Likewise.
-
-	* sysdeps/x86_64/pthread_spin_trylock.c: Removed.
-	* sysdeps/x86_64/pthread_spin_trylock.S: New file.
-	* sysdeps/x86_64/pthread_spin_unlock.c: Removed.
-	* sysdeps/x86_64/pthread_spin_unlock.S: New file.
-
-	* sysdeps/i386/i486/pthread_spin_trylock.S (pthread_spin_trylock):
-	Eliminate one entire instruction.
-
-	* cancellation.c (__pthread_enable_asynccancel_2): New function.
-	* pthreadP.h: Declare __pthread_enable_asynccancel_2.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
-	(__pthread_cond_timedwait): Use __pthread_enable_asynccancel_2
-	instead of __pthread_enable_asynccancel.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
-	(__pthread_cond_wait): Likewise.
-	* sysdeps/pthread/pthread_cond_timedwait.c
-	(__pthread_cond_timedwait): Likewise.
-	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait): Likewise.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
-	(__condvar_cleanup): Wake up all waiters in case we got signaled
-	after being woken up but before disabling asynchronous
-	cancellation.
-	* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
-	(__condvar_cleanup): Likewise.
-
-	* init.c (__NR_set_tid_address): If already defined, don't redefine.
-	Make it an error if architecture has no #if case.  Add x86-64.
-
-	* sysdeps/unix/sysv/linux/x86_64/Makefile: Add flags for
-	pt-initfini.s generation.
-
-	* sysdeps/x86_64/tls.h: Include <asm/prctl.h>.
-	(TLS_INIT_TP): Fix typo.
-
-2003-03-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/ia64/bits/atomic.h (atomic_exchange_and_add): Swap 2nd and
-	3rd argument of __arch_compare_and_exchange_{32,64}_val_acq.
-
-	* sysdeps/unix/sysv/linux/ia64/sem_post.c: Include semaphore.h.
-	* sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/sem_trywait.c: Likewise.
-	* sysdeps/unix/sysv/linux/ia64/sem_wait.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_post.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
-
-2003-03-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_timedwait.c
-	(__pthread_cond_timedwait): Return the result of the final
-	locking.  If it succeeds, the regular function return value.
-
-	* sysdeps/pthread/pthread_cond_wait.c (__pthread_cond_wait):
-	Return result of the final locking.
-	* version.c (__nptl_main): Work around problems with the strange
-	INTERNAL_SYSCALL macro on ppc32.
-	* init.c (__pthread_initialize_minimal_internal): Unblock
-	SIGCANCEL in case the parent blocked it.
-	Reported by Paul Mackerras <paulus@samba.org>.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: New file.
-
-2003-03-11  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread_cond_timedwait.c
-	(__pthread_cond_timedwait): Unlock and fail if
-	__pthread_mutex_unlock_internal failed.
-
-	* sysdeps/pthread/createthread.c (ARCH_CLONE): Define if not defined.
-	(create_thread): Only assert PD->tcb != NULL under [TLS_TCB_AT_TP].
-	Use ARCH_CLONE.
-	* allocatestack.c (ALLOCATE_STACK_PARMS): New macro.
-	[NEED_SEPARATE_REGISTER_STACK] (STACK_VARIABLES,
-	STACK_VARIABLES_ARGS, STACK_VARIABLES_PARMS, ALLOCATE_STACK_PARMS,
-	ALLOCATE_STACK): New macros.
-	(TLS_TPADJ): New macro.
-	(get_cached_stack, queue_stack, __deallocate_stack): Use TLS_TPADJ.
-	(allocate_stack): Handle TLS_DTV_AT_TP and
-	NEED_SEPARATE_REGISTER_STACK.  Use TLS_TPADJ.
-	* pthread_create.c (__pthread_create_2_1) [! TLS_TCB_AT_TP]:
-	Don't set PD->self.
-	* init.c [__ia64__] (__NR_set_tid_address): Define.
-
-	* sysdeps/unix/sysv/linux/ia64/bits/pthreadtypes.h: New file.
-	* sysdeps/unix/sysv/linux/ia64/bits/semaphore.h: New file.
-	* sysdeps/unix/sysv/linux/ia64/fork.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/createthread.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/libc-lowlevellock.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/libc-lowlevelmutex.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/lowlevellock.h: New file.
-	* sysdeps/unix/sysv/linux/ia64/lowlevelmutex.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/pt-initfini.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/ia64/pthread_once.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/sem_post.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/sem_timedwait.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/sem_trywait.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/sem_wait.c: New file.
-	* sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h: New file.
-	* sysdeps/ia64/bits/atomic.h: New file.
-	* sysdeps/ia64/Makefile: New file.
-	* sysdeps/ia64/pthread_spin_init.c: New file.
-	* sysdeps/ia64/pthread_spin_lock.c: New file.
-	* sysdeps/ia64/pthread_spin_trylock.c: New file.
-	* sysdeps/ia64/pthread_spin_unlock.c: New file.
-	* sysdeps/ia64/pthreaddef.h: New file.
-	* sysdeps/ia64/tcb-offsets.sym: New file.
-	* sysdeps/ia64/td_ta_map_lwp2thr.c: New file.
-	* sysdeps/ia64/tls.h: New file.
-
-	* sysdeps/s390/pthreaddef.h (__exit_thread_inline): Pass 1 argument
-	to syscall instead of no arguments.
-
-2003-03-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/sem_post.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/sem_wait.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S: New file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Fix error value in
-	unused code.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S: New file
-
-	* sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
-	lowlevelbarrier.sym.
-	* sysdeps/unix/sysv/linux/lowlevelbarrier.sym: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S:
-	Include lowlevelbarrier.h and don't define offsets locally.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
-	(__lll_mutex_lock_wait): Reverse order of first two parameters.
-	(__lll_mutex_timedlock_wait): Likewise.
-	(lll_mutex_lock): Adjust asm for that.
-	(lll_mutex_timedlock): Likewise.  Mark cx, cc, r10 as clobbered.
-	(lll_lock): Adjust asm for operand order change.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelmutex.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevelmutex.S: New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (__lll_lock_wait):
-	Reverse order of parameters.
-	(__lll_timedwait_tid): Remove regparms attribute.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: New file.
-	* sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S: New file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(__lll_timedwait_tid): Remove one unnecessary instruction.
-
-	* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: Define
-	__lll_mutex_timedlock_wait only for NOT_IN_libc.
-	* sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: Include
-	lowlevelmutex.S.
-
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Define
-	lll_unlock_wake_cb, __lll_wait_tid, and __lll_timedwait_tid only
-	for NOT_IN_libc.
-	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Include
-	lowlevellock.S.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Don't define
-	LOCK is already defined.  Don't define __lll_mutex_timedlock_wait
-	for libc.so.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Only
-	define LOCK here (if UP is not defined).  The actual code is in
-	lowlevelmutex.S.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Don't define
-	LOCK is already defined.  Don't define lll_unlock_wake_cb and
-	__lll_timedwait_tid for libc.so.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Only
-	define LOCK here (if UP is not defined).  The actual code is in
-	lowlevellock.S.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Not needed anymore.
-	* sysdeps/unix/sysv/linux/s390/lowlevelsem.h: Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_post.c: Include lowlevellock.h
-	instead of lowlevelsem.h.
-	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_trywait.c: Likewise.
-	* sysdeps/unix/sysv/linux/s390/sem_wait.c: Likewise.
-
-	* sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add
-	lowlevelrwlock.sym.
-	* sysdeps/unix/sysv/linux/lowlevelrwlock.sym: New file.
-	* sysdeps/unix/sysv/linux/i386/lowlevelrwlock.h: Removed.
-	* sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: Removed.
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h (lll_trylock): Fix
-	register loading.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_trylock): Undo
-	last changed.  D'oh.
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevellock.h: New file.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove declaration
-	of __libc_locking_needed.
-	(lll_trylock): Initialize %eax to zero.
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Update
-	pthread_cond_t definition.
-
-2003-03-10  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/lowlevelcond.sym: New file.
-	* sysdeps/unix/sysv/linux/Makefile (gen-as-const-headers): Add it.
-	* sysdeps/unix/sysv/linux/sh/lowlevelcond.h: File removed.
-	* sysdeps/unix/sysv/linux/i386/lowlevelcond.h: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: Likewise.
-
-	* allocatestack.c (allocate_stack) [!TLS_MULTIPLE_THREADS_IN_TCB]:
-	Instead of setting PD->multiple_threads, set globals
-	__pthread_multiple_threads and __libc_multiple_threads.
-	* sysdeps/pthread/createthread.c (create_thread): Likewise.
-	* sysdeps/i386/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Define it.
-	* sysdeps/s390/tls.h (TLS_MULTIPLE_THREADS_IN_TCB): Likewise.
-
-	* descr.h (struct pthread): Conditionalize first member on
-	[!TLS_DTV_AT_TP].  Replace the `header' member with an anonymous union
-	containing an anonymous tcbhead_t.  Move `list' member out.
-	[TLS_MULTIPLE_THREADS_IN_TCB]: Define a `multiple_threads' member.
-	* allocatestack.c: Remove use of `header.data.' prefix.
-	* pthread_create.c: Likewise.
-	* init.c (__pthread_initialize_minimal_internal): Likewise.
-	* sysdeps/pthread/createthread.c (create_thread): Likewise.
-	* sysdeps/i386/tls.h (INSTALL_DTV): Add parens.
-	(THREAD_SELF, THREAD_DTV, INSTALL_NEW_DTV): No `header.data.' prefix.
-	* sysdeps/x86_64/tls.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
-	(SINGLE_THREAD_P): Likewise.
-	* sysdeps/i386/tls.h (tcbhead_t): Remove `list' member.
-	* sysdeps/s390/tls.h (tcbhead_t): Likewise.
-
-2003-03-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/lowlevelcond.h: New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Fix many
-	leftovers from the ia32 code.
-
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Remove unneccessary
-	memory load.
-	(clear_once_control): Don't load %esi.
-
-	* sysdeps/x86_64/tls.h: Remove all traces of segment descriptor
-	handling.
-
-	* sysdeps/unix/sysv/linux/x86_64/fork.c: New file.
-
-	* sysdeps/unix/sysv/linux/s390/createthread.c: Moved to...
-	* sysdeps/unix/sysv/linux/createthread.c: ...here.
-
-	* Makefile (tests): Add tst-cond10.
-	* tst-cond10.c: New file.
-
-2003-03-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-tls2.c (do_test): Add TEMP_FAILURE_RETRY around sem_wait call.
-	* tst-signal3.c (do_test): Likewise.
-	* tst-sem5.c (do_test): Likewise.
-	* tst-kill6.c (do_test): Likewise.
-	* tst-tls3.c (do_test): Likewise.  Include <errno.h>.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use add/sub instead
-	of inc/dec.
-	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-
-	* allocatestack.c (allocate_stack): If mprotect() fails free the
-	TLS memory.
-
-2003-03-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/i486/bits/atomic.h: Fix a few unused definitions.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Remove all trace of
-	lll_wake_tid.  This was used only to work around kernel limits in
-	the early days.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: Likewise.
-	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: Likewise.
-
-	* init.c (__static_tls_align_m1): Renamed from __static_tls_align.
-	(__pthread_initialize_minimal_internal): Change initialization of
-	__static_tls_align_m1 appropriately.
-	* pthreadP.h (__static_tls_align_m1): Renamed from
-	__static_tls_align.
-	* allocatestack.c (allocate_stack): Use __static_tls_align_m1
-	instead of __static_tls_align-1.
-
-2003-03-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/x86_64/Makefile: New file.
-
-	* pthread_create.c: Define __pthread_keys using nocommon
-	attribute, not by placing it explicitly in bss.
-	Remove DEFINE_DEALLOC definition.  Not needed anymore.
-
-	* allocatestack.c: Define ARCH_MAP_FLAGS if not already defined.
-	Use it in mmap call to allocate stacks.
-
-	* sysdeps/pthread/createthread.c (create_thread): Fix comment.
-
-	* pthread_create.c (start_thread): Use THREAD_SETMEM to store
-	result of the thread function.
-
-2003-03-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/s390/dl-sysdep.h: Removed.  The generic
-	version is just fine.
-
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c
-	(__pthread_child_handler): Renamed from pthread_child_handler,
-	exported, and marked hidden.  Change all users.
-	* sysdeps/unix/sysv/linux/register-atfork.c (free_mem): Do not
-	free __pthread_child_handler from child list.
-
-2003-03-03  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* atomic.h (atomic_exchange_and_add): Return newval, not oldval.
-
-	* sysdeps/pthread/pthread_cond_timedwait.c (__pthread_cond_timedwait):
-	Fix handling of cancellation and failing pthread_mutex_unlock call.
-	* sysdeps/pthread/pthread_cond_wait.c (__condvar_cleanup): Likewise.
-	(__pthread_cond_wait): Likewise.
-
-	* sysdeps/pthread/pthread_rwlock_timedrdlock.c
-	(pthread_rwlock_timedrdlock): Fix clobber of result variable by
-	lll_futex_timed_wait call.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c
-	(pthread_rwlock_timedwrlock): Likewise.
-
-	* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c (___lll_lock):
-	Don't define lll_unlock_wake_cb and ___lll_timedwait_tid in libc.so.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Remove XXX comments.
-
-	* sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Fix
-	check of lll_futex_wake return value.
-
-2003-03-03  Roland McGrath  <roland@redhat.com>
-
-	* forward.c: Fix typo in __pthread_attr_init_2_0 compat_symbol decl.
-
-	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
-	Argument to ptr___pthread_cleanup_upto is __jmp_buf, not jmp_buf.
-	* sysdeps/unix/sysv/linux/jmp-unwind.c: Likewise.
-
-2003-03-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/timer_create.c (timer_create): Return correct
-	error for CPU clocks.
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define
-	_POSIX_MONOTONIC_CLOCK.
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Likewise.
-
-	* tst-cancel4.c (tf_sleep): Lower sleep time a bit to not upset
-	recent kernels.
-
-2003-03-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h (struct pthread): Move cleanup field to the front.
-
-2003-03-01  Roland McGrath  <roland@redhat.com>
-
-	* sem_open.c (sem_open): Braino fix.
-
-2003-03-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/tcb-offsets.sym: Add CLEANUP and CLEANUP_PREV.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Inline
-	__pthread_cleanup_pop functionality.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-
-	* descr.h (struct pthread): Move tid field to the front now that
-	it is often used.
-
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S
-	(__lll_mutex_timedlock_wait): Remove.
-	(__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S
-	(__lll_mutex_unlock_wake): Don't save, load, and restore %esi.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(lll_unlock_wake_cb): Don't save and restore %esi.
-	(__lll_unlock_wake): Add alignment.  Don't save, load, and restore
-	%esi.
-	(__lll_timedwait_tid): Add alignment.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
-	(__lll_unlock_wake): Add alignment.  Don't save, load, and restore
-	%esi.
-	(__lll_timedwait_tid): Removed.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
-	(__pthread_cond_broadcast): Don't save, load, and restore %esi.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
-	(pthread_barrier_wait): Don't save, load, and restore %esi for
-	last thread.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
-	(__pthread_cond_signal): Don't save, load, and restore %esi.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
-	(__pthread_rwlock_unlock): Don't save, load, and restore %esi.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S (__new_sem_post):
-	Don't save, load, and restore %esi.
-
-2003-02-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S:
-	Release lock before waking up the waiters.
-
-	* tst-exit1.c (do_test): Don't start more than one thread in parallel.
-
-	* tst-rwlock9.c (writer_thread): Correct adding TIMEOUT.
-	(reader_thread): Likewise.
-
-	* sysdeps/pthread/pthread_rwlock_unlock.c
-	(__pthread_rwlock_unlock): Release internal lock early.  Don't try
-	to wake up readers if there are none.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S:
-	Release internal lock before wake threads.
-
-2003-02-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-rwlock10 and tst-rwlock11.
-	* tst-rwlock8.c: Initialize lock with INIT.  Allow INIT to be
-	predefined.
-	* tst-rwlock9.c: Likewise.
-	* tst-rwlock10.c: New file.
-	* tst-rwlock11.c: New file.
-
-	* Makefile (tests): Add tst-dlsym1.
-	* tst-dlsym1.c: New file.
-
-	* init.c (__pthread_initialize_minimal_internal): Set
-	GL(dl_error_catch_tsd) to __libc_dl_error_tsd.
-	* Versions (libc:GLIBC_PRIVATE): Export __libc_dl_error_tsd.
-
-2003-02-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sem_open.c (sem_open): Fix handling of O_CREAT without O_EXCL.
-
-	* tst-cond2.c: Fix sychronization with child.
-
-	* tst-rwlock8.c (reader_thread): Remove unused variable.
-
-	* Makefile: Add rules to build and run tst-tls3.
-	* tst-tls3.c: New file.
-	* tst-tls3mod.c: New file.
-
-	* Makefile (tests): Add tst-rwlock8 and tst-rwlock9.
-	* tst-rwlock8.c: New file.
-	* tst-rwlock9.c: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: Fix
-	complete broken rwlock implementation.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: Likewise.
-	* sysdeps/pthread/pthread_rwlock_rdlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_unlock.c: Likewise.
-	* sysdeps/pthread/pthread_rwlock_wrlock.c: Likewise.
-
-2003-02-23  Roland McGrath  <roland@redhat.com>
-
-	* Makefile (nptl-version): Change regexp so case sensitivity is ok.
-
-2003-02-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-context1.
-	* tst-context1.c: New file.
-
-	* Makefile (tests): Add tst-tls1 and tst-tls2.
-	* tst-tls1.c: New file.
-	* tst-tls2.c: New file.
-
-	* libc-cancellation.c (__libc_enable_asynccancel): Correct test
-	for failed cmpxchg.
-
-	* pthread_create.c (start_thread): Set EXITING_BIT early.
-
-	* sysdeps/i386/tls.h (THREAD_GETMEM): Mark asm as volatile.
-	(THREAD_GETMEM_NC): Likewise.
-
-2003-02-22  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Shave
-	off 3 more bytes by using offset-less instructions when possible.
-
-	* Makefile: Add dependency for $(objpfx)version.d.
-
-	* eintr.c (eintr_source): Add unnecessary return but the compiler
-	insists.
-
-	* tst-kill3.c: Include <unistd.h>.
-
-2003-02-21  Roland McGrath  <roland@redhat.com>
-
-	* pthread_create.c (start_thread): Call __libc_thread_freeres.
-
-2003-02-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-eintr1.
-	(distribute): Add eintr.c.
-	* tst-eintr1.c: New file.
-	* eintr.c: New file.
-
-	* pthread_cancel.c (pthread_cancel): Use tkill directly.
-
-	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill):
-	Disallow sending SIGCANCEL.
-
-	* Makefile (tests): Remove tst-basic7.  Add tst-kill1, tst-kill2,
-	tst-kill3, tst-kill4, tst-kill5, tst-kill6.
-	* tst-kill1.c: New file.
-	* tst-kill2.c: New file.
-	* tst-kill3.c: New file.
-	* tst-kill5.c: New file.
-	* tst-kill6.c: New file.
-	* tst-basic7.c: Renamed to...
-	* tst-kill4.c: ...this.
-
-2003-02-21  Roland McGrath  <roland@redhat.com>
-
-	* Makefile (install-lib-ldscripts): New variable.
-
-2003-02-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Define INVALID_TD_P and INVALID_NOT_TERMINATED_TD_P.
-	* pthread_cancel.c: Use INVALID_TD_P.
-	* pthread_detach.c: Likewise.
-	* pthread_getschedparam.c: Likewise.
-	* pthread_setschedparam.c: Likewise.
-	* sysdeps/pthread/pthread_getcpuclockid.c: Likewise.
-	* sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
-	* pthread_join.c: Use INVALID_NOT_TERMINATED_TD_P.
-	* pthread_timedjoin.c: Likewise.
-
-	* tst-basic7.c: Include <signal.h>.
-
-	* pthread_join.c (pthread_join): Limited checking for invalid
-	descriptors.
-	* pthread_timedjoin.c (pthread_timedjoin_np): Likewise.
-
-2003-02-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_create.c (deallocate_tsd): Reset found_nonzero at the
-	beginning of the loop.  Clear the entire first block of TSD.
-	* Makefile (tests): Add tst-key4.
-	* tst-key4.c: New file.
-
-2003-02-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-basic7.
-	* tst-basic7.c: New file.
-
-	* pthread_create.c (deallocate_tsd): Mark as internal_function.
-	Add some more __builtin_expect.
-
-	* pthreadP.h: Define dummy version of DEBUGGING_P.
-
-2003-02-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remnove
-	_POSIX_THREAD_PRIORITY_SCHEDULING.
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: Remove
-	_XOPEN_REALTIME_THREADS.
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Likewise.
-
-	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): The
-	kernel returns EINVAL for PID <= 0, work around it.
-
-	* Makefile (tests): Add tst-signal5.
-	* tst-signal5.c: New file.
-
-	* sysdeps/unix/sysv/linux/bits/local_lim.h: Define TTY_NAME_MAX
-	and LOGIN_NAME_MAX.
-
-	* tst-cancel1.c (tf): Block all signals.
-
-	* Makefile (tests): Add tst-basic6.
-	* tst-basic6.c: New file.
-
-	* tst-basic1.c: Add test for process ID.
-
-	* Makefile (tests): Add tst-cancel10.
-	* tst-cancel10.c: New file.
-
-	* Makefile (tests): Add tst-signal4.
-	* tst-signal4.c: New file.
-
-	* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use
-	__sigismember instead of sigismember.  Add __builtin_expect.
-
-2003-02-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-attr1.c (do_test): Add tests for pthread_setcanceltype,
-	pthread_setcancelstate, and pthread_rwlock_setpshared.
-
-	* tst-cancel7.c (do_test): Make sure the pid file exists before
-	canceling the thread.
-
-	* tst-rwlock6.c: More pthread_rwlock_timedwrlock and
-	pthread_rwlock_timedrdlock tests.
-	* tst-rwlock7.c: More pthread_rwlock_timedwrlock tests.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	Check for invalid tv_nsec field.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	Likewise.
-
-	* pthread_mutex_trylock.c (__pthread_mutex_trylock): Protect
-	recursive mutex of overflow.
-
-	* tst-attr1.c (do_test): Add test for pthread_mutexattr_setpshared.
-
-	* libc-cancellation.c (__libc_enable_asynccancel): Rewrite to avoid
-	going into an endless loop.
-	* Makefile (tests): Add tst-cancel9.
-	* tst-cancel9.c: New file.
-
-	* pthread_cancel.c (pthread_cancel): Use the result of __pthread_kill.
-
-2003-02-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-mutex5.c (do_test): Add more timedlock tests.
-
-	* tst-mutex2.c: Tests of trylock and unlock with ERROR mutexes.
-	* tst-mutex3.c (do_test): Add tests for trylock with RECURSIVE mutexes.
-
-	* sysdeps/unix/sysv/linux/pthread_kill.c (__pthread_kill): Don't
-	use INLINE_SYSCALL.  Error number is returned, not -1.
-
-	* pthreadP.h: Mark declarations of __find_in_stack_list, __free_tcb,
-	and __deallocate_stack with internal_function.
-	* pthread_create.c: Adjust definitions appropriately.
-	* allocatestack.c: Likewise.
-
-	* pthread_join.c: Add one more __builtin_expect.
-	* pthread_timedjoin.c: Likewise.
-
-	* pthread_getspecific.c (__pthread_getspecific): Clear data->data
-	not data of sequence number does not match.
-	Add one __builtin_expect.
-
-	* Makefile (tests): Add tst-clock1.
-	* tst-clock1.c: New file.
-
-	* pthread_setconcurrency.c (pthread_setconcurrency): Fail for
-	negative arguments.
-	* Makefile (tests): Add tst-basic5.
-	* tst-basic5.c: New file.
-
-2003-02-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-basic4.
-	* tst-basic4.c: New file.
-
-	* pthreadP.h: Add declaraction for __nptl_nthreads.
-	* pthread_create.c: Define __nptl_nthreads
-	(start_thread): Increment __nptl_nthreads at beginning.  Decrement
-	after thread is done.  If then zero, call exit(0).
-	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
-	Add ptr_nthreads.  Define HAVE_PTR_NTHREADS.
-	* init.c (pthread_functions): Initialize ptr_nthreads.
-	* allocatestack.c (nptl_nthreads): Remove definition and all uses.
-	(__reclaim_stacks): Decrement __nptl_nthreads.
-	* sysdeps/pthread/Makefile [$(subdir)==csu] (CFLAGS-libc-start.c):
-	Define.
-	* Makefile (tests): Add tst-basic3.
-	* tst-basic3.c: New file.
-
-	* descr.h: Define CANCELING_BIT and CANCELING_BITMASK.  Introduce
-	after CANCELTYPE_BIT, move the other bits up.  Update CANCEL_RESTMASK.
-	* init.c (sigcancel_handler): Also set CANCELING_BITMASK bit in newval.
-	* pthread_cancel.c (pthread_cancel): Likewise.  Also set CANCELING_BIT
-	if asynchronous canceling is enabled.
-	* pthread_join.c (pthread_join): When recognizing circular joins,
-	take into account the other thread might be already canceled.
-	* Makefile (tests): Add tst-join5.
-	* tst-join5.c: New file.
-
-	* Makefile (tests): Add tst-join4.
-	* tst-join4.c: New file.
-
-2003-02-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cond4.c (main): Add test of pthread_attr_getpshared.
-
-2003-02-13  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* sysdeps/s390/tls.h (THREAD_GETMEM, THREAD_GETMEM_NC, THREAD_SETMEM,
-	THREAD_SETMEM_NC): Use passed descr instead of THREAD_SELF.
-	* sysdeps/unix/sysv/linux/s390/jmp-unwind.c (_longjmp_unwind): Avoid
-	warning.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.c: Include <sys/time.h>
-	to avoid warning.
-	* sysdeps/unix/sysv/linux/s390/sem_post.c (__new_sem_post): Return
-	error if lll_futex_wake failed.
-
-2003-02-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Fix
-	handling of cancellation and failung pthread_mutex_unlock call.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* Makefile (tests): Add tst-cond8 and tst-cond9.
-	* tst-cond8.c: New file.
-	* tst-cond9.c: New file.
-
-	* tst-cond7.c (do_test): Unlock the mutex before canceling the thread.
-
-	* sysdeps/pthread/pthread.h: Add missing initializers.  Protect
-	non-standard initializers with __USE_GNU.
-
-	* Makefile (tests): Add tst-cleanup3.
-	* tst-cleanup3.c: New file.
-
-2003-02-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-attr1 and tst-attr2.
-	* tst-attr1.c: New file.
-	* tst-attr2.c: New file.
-
-	* Makefile: Add rules to build and run tst-atfork2 test.
-	* tst-atfork2.c: New file.
-	* tst-atfork2mod.c: New file.
-
-	* sysdeps/unix/sysv/linux/unregister-atfork.c
-	(__unregister_atfork): Free the memory allocated for the handlers
-	after removing them from the lists.
-
-	* sysdeps/unix/sysv/linux/register-atfork.c: Define memeory
-	cleanup function.
-
-	* tst-atfork1.c (do_test): Wait for the child we forked.
-	Report error in child.
-
-	* sysdeps/unix/sysv/linux/fork.c (__libc_fork): Fix comment.
-
-	* sysdeps/pthread/Makefile: Define CFLAGS-confstr.c.
-
-2003-02-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-cancel8.
-	* tst-cancel8.c: New file.
-
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S (clear_once_control): Fix
-	clearing of control variable.
-	* Makefile (tests): Add tst-once3 and tst-once4.
-	* tst-once3.c: New file.
-	* tst-once4.c: New file.
-
-2003-02-08  kaz Kojima  <kkojima@rr.iij4u.or.jp>
-
-	* sysdeps/sh/Makefile: New file.
-	* sysdeps/sh/bits/atomic.h: New file.
-	* sysdeps/sh/pthread_spin_init.c: New file.
-	* sysdeps/sh/pthread_spin_lock.c: New file.
-	* sysdeps/sh/pthread_spin_trylock.S: New file.
-	* sysdeps/sh/pthread_spin_unlock.S: New file.
-	* sysdeps/sh/pthreaddef.h: New file.
-	* sysdeps/sh/tcb-offsets.sym: New file.
-	* sysdeps/sh/td_ta_map_lwp2thr.c: New file.
-	* sysdeps/sh/tls.h: New file.
-	* sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h: New file.
-	* sysdeps/unix/sysv/linux/sh/bits/semaphore.h: New file.
-	* sysdeps/unix/sysv/linux/sh/createthread.c: New file.
-	* sysdeps/unix/sysv/linux/sh/fork.c: New file.
-	* sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S: New file.
-	* sysdeps/unix/sysv/linux/sh/libc-lowlevelmutex.S: New file.
-	* sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h: New file.
-	* sysdeps/unix/sysv/linux/sh/lowlevelcond.h: New file.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.S: New file.
-	* sysdeps/unix/sysv/linux/sh/lowlevellock.h: New file.
-	* sysdeps/unix/sysv/linux/sh/lowlevelmutex.S: New file.
-	* sysdeps/unix/sysv/linux/sh/lowlevelrwlock.h: New file.
-	* sysdeps/unix/sysv/linux/sh/pt-initfini.c: New file.
-	* sysdeps/unix/sysv/linux/sh/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_once.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S: New file.
-	* sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S: New file.
-	* sysdeps/unix/sysv/linux/sh/sem_post.S: New file.
-	* sysdeps/unix/sysv/linux/sh/sem_timedwait.S: New file.
-	* sysdeps/unix/sysv/linux/sh/sem_trywait.S: New file.
-	* sysdeps/unix/sysv/linux/sh/sem_wait.S: New file.
-	* sysdeps/unix/sysv/linux/sh/sysdep-cancel.h: New file.
-
-2003-02-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cond2.c: Rearrange code to not rely on behavior undefined
-	according to POSIX.
-
-	* tst-basic2.c (do_test): Lock mutex before creating the thread.
-
-2003-02-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/tls.h: Remove unnecessary macros, left over from x86.
-	(TLS_GET_FS): New #define.
-	(TLS_SET_FS): New #define.
-	Correct value of __NR_set_thread_area.
-
-	* sysdeps/x86_64/td_ta_map_lwp2thr.c: New file.
-
-2003-02-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-popen1.
-	* tst-popen1.c: New file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: Remove wrong
-	but inactive generalization.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: Likewise.
-	Minor optimization, remove one instruction.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: Likewise.
-
-2003-02-04  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* sysdeps/unix/sysv/linux/s390/fork.c: Correct order of parameters.
-
-2003-01-31  Martin Schwidefsky  <schwidefsky@de.ibm.com>
-
-	* init.c (__NR_set_tid_address): Add #ifdef for s390.
-	* sysdeps/pthread/pthread_barrier_wait.c: New file.
-	* sysdeps/pthread/pthread_cond_broadcast.c: New file.
-	* sysdeps/pthread/pthread_cond_signal.c: New file.
-	* sysdeps/pthread/pthread_cond_timedwait.c: New file.
-	* sysdeps/pthread/pthread_cond_wait.c: New file.
-	* sysdeps/pthread/pthread_rwlock_rdlock.c: New file.
-	* sysdeps/pthread/pthread_rwlock_timedrdlock.c: New file.
-	* sysdeps/pthread/pthread_rwlock_timedwrlock.c: New file.
-	* sysdeps/pthread/pthread_rwlock_unlock.c: New file.
-	* sysdeps/pthread/pthread_rwlock_wrlock.c: New file.
-	* sysdeps/s390/Makefile: New file.
-	* sysdeps/s390/bits/atomic.h: New file.
-	* sysdeps/s390/pthread_spin_init.c: New file.
-	* sysdeps/s390/pthread_spin_lock.c: New file.
-	* sysdeps/s390/pthread_spin_trylock.c: New file.
-	* sysdeps/s390/pthread_spin_unlock.c: New file.
-	* sysdeps/s390/pthreaddef.h: New file.
-	* sysdeps/s390/tcb-offsets.sym: New file.
-	* sysdeps/s390/td_ta_map_lwp2thr.c: New file.
-	* sysdeps/s390/tls.h: New file.
-	* sysdeps/unix/sysv/linux/s390/bits/pthreadtypes.h: New file.
-	* sysdeps/unix/sysv/linux/s390/bits/semaphore.h: New file.
-	* sysdeps/unix/sysv/linux/s390/createthread.c: New file.
-	* sysdeps/unix/sysv/linux/s390/dl-sysdep.h: New file.
-	* sysdeps/unix/sysv/linux/s390/fork.c: New file.
-	* sysdeps/unix/sysv/linux/s390/jmp-unwind.c: New file.
-	* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
-	* sysdeps/unix/sysv/linux/s390/libc-lowlevelmutex.c: New file.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.c: New file.
-	* sysdeps/unix/sysv/linux/s390/lowlevellock.h: New file.
-	* sysdeps/unix/sysv/linux/s390/lowlevelmutex.c: New file.
-	* sysdeps/unix/sysv/linux/s390/lowlevelsem.h: New file.
-	* sysdeps/unix/sysv/linux/s390/pthread_once.c: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: New file.
-	* sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/s390/sem_post.c: New file.
-	* sysdeps/unix/sysv/linux/s390/sem_timedwait.c: New file.
-	* sysdeps/unix/sysv/linux/s390/libc-lowlevellock.c: New file.
-	* sysdeps/unix/sysv/linux/s390/sem_wait.c: New file.
-
-2003-02-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* atomic.h: Add a couple more default implementations.
-	(atomic_compare_and_exchange_acq): Use
-	__arch_compare_and_exchange_32_acq in return value definition.  It
-	always exists.
-	(atomic_bit_set): Renamed from atomic_set_bit.
-	Add missing atomic_ prefixes.
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_once): In case no
-	thread library is available, use correct value to mark initialized
-	once variable.
-
-2003-02-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): Use __getpagesize instead of
-	__sysconf to determine pagesize.
-
-	* pthread_create.c: Include <atomic.h>.
-	* allocatestack.c (allocate_stack): Implement coloring of the
-	allocated stack memory.  Rename pagesize to pagesize_m1.  It's the
-	size minus one.  Adjust users.
-	* sysdeps/i386/i686/Makefile: New file.
-
-2003-02-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c: Improve comment throughout the file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
-	(__lll_lock_wait): Add branch prediction.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
-	(__lll_lock_wait): Likewise.
-	(lll_unlock_wake_cb): Removed.
-
-2003-01-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Remove
-	_POSIX_THREAD_PRIORITY_SCHEDULING.
-
-2003-01-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread-functions.h (struct pthread_functions):
-	Fix return type of ptr___pthread_getspecific.
-
-2003-01-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-umask1.
-	(tst-umask1-ARGS): Define.
-	* tst-umask1.c: New file.
-
-2003-01-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (libpthread-routines): Remove lowlevelrwlock.  Add
-	pthread_rwlock_rdlock, pthread_rwlock_timedrdlock,
-	pthread_rwlock_wrlock, pthread_rwlock_timedwrlock, and
-	pthread_rwlock_unlock.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i586/lowlevelrwlock.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S:
-	New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S:
-	New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S:
-	New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S:
-	New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S:
-	New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S:
-	New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S: New file.
-
-	* Makefile (libpthread-routines): Remove lowlevelcond and
-	lowlevelsem.  Add sem_wait, sem_trywait, sem_timedwait, sem_post,
-	pthread_cond_wait, pthread_cond_timedwait, pthread_cond_signal,
-	and pthread_cond_broadcast.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i586/lowlevelsem.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i586/lowlevelcond.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i686/lowlevelsem.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i686/lowlevelcond.S: Removed
-	* sysdeps/unix/sysv/linux/i386/i486/sem_wait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/sem_post.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/sem_wait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/sem_post.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/sem_wait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/sem_post.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S: New file.
-	* sysdeps/unix/sysv/linux/i386/lowlevelcond.h: New file.
-
-	* sysdeps/unix/sysv/linux/i386/createthread.c: Define
-	PREPARE_CREATE and TLS_VALUE with x86-specific bits.  All the rest
-	of the code is moved to ...
-	* sysdeps/pthread/createthread.c: ...here.  New file.
-
-2003-01-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S
-	(__new_sem_post): Clear %eax before returning.
-	Reported by MAEDA Naoaki <maeda.naoaki@jp.fujitsu.com>.
-
-	* Makefile (tests): Add tst-cleanup2.
-	* tst-cleanup2.c: New file.
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
-	Interpret first parameter correctly.
-
-2003-01-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (headers): Add bits/semaphore.h.
-
-2003-01-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/tls.h (INIT_SYSINFO): Initialize _head->sysinfo even
-	if not SHARED.
-
-2003-01-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sem_open.c (sem_open): Return SEM_FAILED if existing semaphore
-	must be used and mapping failed.
-	Reported by Luke Elliott <luke.elliott@activfinancial.com>.
-
-	* Makefile (CFLAGS-pthread_self.os): Define this, not
-	CFLAGS-pthread_self.c.
-
-2003-01-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Don't export
-	lll_unlock_wake_cb.
-
-	* Makefile (libpthread-routines): Add version.  Add rules to build
-	version.os and banner.h.
-	* version.c: New file.
-
-2003-01-13  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthread_mutex_lock.c (__pthread_mutex_lock_internal): Make
-	the alias unconditional.
-	* pthread_mutex_unlock.c  (__pthread_mutex_unlock_internal): Likewise.
-
-2003-01-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (CFLAGS-pthread_self.c): New definition.
-
-2003-01-06  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Add
-	INTERNAL_SYSCALL_DECL, add err argument to INTERNAL_SYSCALL* macros.
-	* sysdeps/unix/sysv/linux/raise.c (raise): Likewise.
-	* init.c (__pthread_initialize_minimal_internal): Likewise.
-
-2003-01-07  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthreadP.h (__pthread_cond_timedwait): Add prototype.
-
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h
-	(RTLD_CORRECT_DYNAMIC_WEAK): Remove.
-	(DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
-	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h
-	(RTLD_CORRECT_DYNAMIC_WEAK): Remove.
-	(DL_SYSINFO_IMPLEMENTATION): Change into .text section and back.
-
-2003-01-06  Jakub Jelinek  <jakub@redhat.com>
-
-	* pthreadP.h (LIBC_CANCEL_HANDLED): Define.
-	* pt-system.c (LIBC_CANCEL_HANDLED): Add.
-	* tst-cancel-wrappers.sh: Remove all exceptions.
-
-2003-01-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* tst-cancel-wrappers.sh: Invoke gawk not awk since we use GNU awk
-	features.  Reported by Marijn Ros <marijn@mad.scientist.com>.
-
-	* sysdeps/unix/sysv/linux/jmp-unwind.c: Include <pthread-functions.h>.
-	Use __libc_pthread_functions array if SHARED.
-
-	* pthreadP.h: Move pthread_cond_2_0_t definition to...
-	* sysdeps/unix/sysv/linux/internaltypes.h: ...here.
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_ptf_call): New #define.
-	(__libc_rwlock_rdlock, __libc_rwlock_wrlock, __libc_rwlock_unlock,
-	__libc_key_create, __libc_getspecific, __libc_setspecific): Use
-	__libc_ptf_call instead of __libc_maybe_call.
-	(PTF): New #define.
-	(__libc_cleanup_region_start): Wrap function name with PTF call.
-	(__libc_cleanup_region_end): Likewise.
-	(__libc_cleanup_end): Likewise.
-
-	* pthread_getspecific.c: Add __pthread_getspecific_internal alias.
-	* pthread_setspecific.c: Add __pthread_setspecific_internal alias.
-	* pthread_key_create.c: Add __pthread_key_create_internal alias.
-	* pthreadP.h: Add prototypes.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Add
-	__pthread_rwlock_rdlock, __pthread_rwlock_wrlock, and
-	__pthread_rwlock_unlock aliases.
-	* pthreadP.h: Add prototypes for new aliases.
-
-	* pthreadP.h (struct pthead_functions): Moved to...
-	* sysdeps/pthread/pthread-functions.h: ...here.  New file.
-	* init.c (pthread_functions): Add initializers for new elements.
-
-	* cleanup_defer.c: Add __pthread_cleanup_push_defer and
-	__pthread_cleanup_pop_restore aliases.
-	* pthreadP.h: Add prototypes.
-
-	* cleanup.c: Rename _GI_pthread_cleanup_push to __pthread_cleanup_push
-	and _GI_pthread_cleanup_pop to __pthread_cleanup_pop.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Adjust caller.
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Likewise.
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: Likewise.
-	* pthreadP.h: Adjust prototypes and callers.
-
-2003-01-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-cancel7.
-	(tst-cancel7-ARGS): New variable.
-	* tst-cancel7.c: New file.
-
-	* old_pthread_cond_broadcast.c: Optimize initialization a bit to work
-	around gcc defficiencies.
-	* old_pthread_cond_signal.c: Likewise.
-	* old_pthread_cond_timedwait.c: Likewise.
-	* old_pthread_cond_wait.c: Likewise.
-
-	* pthreadP.h (pthread_cond_2_0_t): Remove unneeded lock element.
-
-2003-01-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-cond7.
-	* tst-cond7.c: New file.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
-	(condvar_cleanup): Get condvar address from the right place.
-
-	* atomic.h: Correct definitions of atomic_full_barrier,
-	atomic_read_barrier, atomic_write_barrier.
-
-	* old_pthread_cond_broadcast.c: Make memory allocate and initialization
-	race-free.
-	* old_pthread_cond_signal.c: Likewise.
-	* old_pthread_cond_timedwait.c: Likewise.
-	* old_pthread_cond_wait.c: Likewise.
-
-2003-01-03  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile ($(objpfx)libpthread.so): Depend on ld.so.
-
-2003-01-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h (pthread_cond_2_0_t): New type.
-	(struct pthread_functions): Use new type for 2.0 condvar callbacks.
-	Use new type for the 2.0 condvar function prototypes.
-	* forward.c: Use pthread_cond_2_0_t for 2.0 condvar functions.
-	* old_pthread_cond_init.c: Use pthread_cond_2_0_t for condvar
-	parameter.
-	* old_pthread_cond_destroy.c: Likewise.
-	* old_pthread_cond_broadcast.c: Likewise.  Lock appropriately.
-	* old_pthread_cond_signal.c: Likewise.
-	* old_pthread_cond_timedwait.c: Likewise.
-	* old_pthread_cond_wait.c: Likewise.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S
-	(__pthread_cond_wait): Don't save cancellation mode and seq value
-	in same location.
-
-	* herrno.c (__h_errno_location): Don't define as weak.
-
-2003-01-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* Versions [libc] (GLIBC_2.3.2): Export pthread_cond_broadcast,
-	pthread_cond_destroy, pthread_cond_init, pthread_cond_signal
-	and pthread_cond_wait.
-	* old_pthread_cond_broadcast.c (__old_pthread_cond_broadcast):
-	Renamed to...
-	(__pthread_cond_broadcast_2_0): ... this.
-	* old_pthread_cond_destroy.c (__old_pthread_cond_destroy):
-	Renamed to...
-	(__pthread_cond_destroy_2_0): ... this.
-	* old_pthread_cond_init.c (__old_pthread_cond_init):
-	Renamed to...
-	(__pthread_cond_init_2_0): ... this.
-	* old_pthread_cond_signal.c (__old_pthread_cond_signal):
-	Renamed to...
-	(__pthread_cond_signal_2_0): ... this.
-	* old_pthread_cond_wait.c (__old_pthread_cond_wait):
-	Renamed to...
-	(__pthread_cond_wait_2_0): ... this.
-	* pthread_cond_destroy.c: Include shlib-compat.h.
-	(pthread_cond_destroy): Change strong_alias into versioned_symbol.
-	* pthread_cond_init.c: Include shlib-compat.h.
-	(pthread_cond_init): Change strong_alias into versioned_symbol.
-	* pthreadP.h (struct pthread_functions): Rename ptr_pthread_cond_*
-	fields to ptr___pthread_cond_* and add ptr___pthread_cond_*_2_0
-	fields.
-	(__pthread_cond_broadcast_2_0, __pthread_cond_destroy_2_0,
-	__pthread_cond_init_2_0, __pthread_cond_signal_2_0,
-	__pthread_cond_wait_2_0): New prototypes.
-	(__old_pthread_cond_broadcast, __old_pthread_cond_destroy,
-	__old_pthread_cond_init, __old_pthread_cond_signal,
-	__old_pthread_cond_wait): Removed.
-	* init.c: Include shlib-compat.h.
-	(pthread_functions): Guard ptr___pthread_attr_init_2_0
-	initialization with SHLIB_COMPAT (GLIBC_2_0, GLIBC_2_1).
-	Rename ptr_pthread_cond_* to ptr___pthread_cond_*, initialize
-	ptr___pthread_cond_*_2_0 fields.
-	* forward.c: Export both pthread_cond_*@@GLIBC_2.3.2 and
-	pthread_cond_*@GLIBC_2.0 compatibility symbols.
-
-	* sysdeps/pthread/sigaction.c (SIGCANCEL): Only define if
-	LIBC_SIGACTION was not yet defined.
-	[!defined LIBC_SIGACTION]: Define LIBC_SIGACTION, #include self.
-	[!defined LIBC_SIGACTION] (__sigaction): New function and
-	libc_hidden_weak.
-	[!defined LIBC_SIGACTION] (sigaction): New weak_alias.
-	[defined LIBC_SIGACTION]: #include_next <sigaction.c>.
-
-2003-01-02  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (CFLAGS-pthread_atfork.c): Add -DNOT_IN_libc.
-
-2003-01-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h (pthread_cond_t):
-	New, larger type definition.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: New condvar
-	implementation.
-	* Versions [libpthread]: Add definitions for new pthread_cond_*
-	interfaces for version GLIBC_2.3.2.
-	* pthread_cond_init.c: Update initialization for new type definition.
-	* Makefile (libpthread-routines): Remove pthread_cond_wait,
-	pthread_cond_timedwait, pthread_cond_signal, and
-	pthread_cond_broadcast.  Add old_pthread_cond_init,
-	old_pthread_cond_destroy, old_pthread_cond_wait,
-	old_pthread_cond_timedwait, old_pthread_cond_signal, and
-	old_pthread_cond_broadcast.
-	* old_pthread_cond_broadcast.c: New file.
-	* old_pthread_cond_destroy.c: New file.
-	* old_pthread_cond_init.c: New file.
-	* old_pthread_cond_signal.c: New file.
-	* old_pthread_cond_timedwait.c: New file.
-	* old_pthread_cond_wait.c: New file.
-	* pthreadP.h: Add prototypes for the compatibility interfaces.
-
-	* pthread_cond_destroy.c: Don't include <errno.h>.
-
-2003-01-01  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Avoid
-	unnecessary zero offset when addressing MUTEX.
-
-2002-12-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/fork.h: Add libc_hidden_proto for
-	__register_atfork.
-	* sysdeps/unix/sysv/linux/register-atfork.c: Add libc_hidden_def
-	for __register_atfork.
-
-2002-12-31  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use __ASSEMBLER__
-	instead of ASSEMBLER test macro.
-
-	* sysdeps/unix/sysv/linux/allocrtsig.c (__libc_current_sigrtmin,
-	__libc_current_sigrtmax): Add libc_hidden_def.
-
-	* sysdeps/pthread/list.h: Remove assert.h include.
-
-2002-12-31  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Use
-	__pthread_initialize_minimal_internal not
-	__pthread_initialize_minimal.
-
-2002-12-30  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pt-initfini.c (call_initialize_minimal): Mark
-	__pthread_initialize_minimal as hidden.
-
-	* init.c (__pthread_initialize_minimal_internal): Don't mark as
-	constructor.
-
-2002-12-31  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile ($(inst_libdir)/libpthread.so): Depend on
-	$(common-objpfx)format.lds, include that into the output script.
-	Fix comment.
-	(extra-B-pthread.so): Change linuxthreads/ into nptl/.
-
-2002-12-28  Andreas Jaeger  <aj@suse.de>
-
-	* sysdeps/unix/sysv/linux/xstatconv.c (xstat_conv): Adjust for
-	nsec resolution changes.
-	(xstat64_conv): Likewise.
-	(xstat32_conv): Likewise.
-	* sysdeps/unix/sysv/linux/kernel_stat.h: Add nsec resolution for
-	struct kernel_stat.
-	* sysdeps/unix/sysv/linux/bits/stat.h: Add nsec resolution for
-	structs stat and stat64.
-	* time/time.h (__timespec_defined): Define for __USE_MISC.
-	* io/sys/stat.h [__USE_MISC]: Define __need_timespec for struct stat.
-
-2002-12-30  Jakub Jelinek  <jakub@redhat.com>
-
-	* forward.c (FORWARD2): Renamed from FORWARD3.  Remove unused export
-	argument.
-	(pthread_attr_init_2_0, pthread_attr_init_2_1): Use FORWARD macro.
-	(pthread_exit): Use strong_alias to avoid warnings.
-	* pthreadP.h (struct pthread_functions): Rename ptr_pthread_exit
-	and ptr_pthread_attr_init_2_* to ptr___pthread_exit and
-	ptr___pthread_attr_init_2_*.
-	* init.c (pthread_functions): Adjust.
-
-2002-12-29  Ulrich Drepper  <drepper@redhat.com>
-
-	* forward.c: Make all functions available by default again.  It
-	caused too much trouble.
-
-	* pt-siglongjmp.c: Removed.
-
-2002-12-28  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/tls.h: Include tcb-offsets.h in assembler.
-	(SYSINFO_OFFSET, MULTIPLE_THREADS_OFFSET): Remove.
-	* sysdeps/i386/Makefile: New file.
-	* sysdeps/i386/tcb-offsets.sym: New file.
-	* sysdeps/pthread/tcb-offsets.h: New file.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
-	Remove MULTIPLE_THREADS_OFFSET and SYSINFO_OFFSET checks.
-
-	* sysdeps/unix/sysv/linux/Versions [libc] (GLIBC_PRIVATE): Move
-	__register_atfork...
-	(GLIBC_2.3.2): ...here.
-
-2002-12-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h: Mark pthread_attr_getstackaddr and
-	pthread_attr_setstackaddr with __attribute_deprecated__.
-
-2002-12-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* pt-system.c (system): Remove cancellation handling.
-	* tst-cancel-wrappers.sh: Allow pt-system.o* to not use the
-	cancellation routines.
-
-2002-12-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h: Include <dl-sysdep.h>.
-	(struct pthread): Move header.data.list to the back of the struct.
-	* sysdeps/i386/tls.h (tcbhead_t): Move list to the back of the struct.
-	(MULTIPLE_THREADS_OFFSET): Adjust offset.
-	(SYSINFO_OFFSEET): Likewise.
-
-2002-12-27  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h (USE_DL_SYSINFO):
-	Define.
-	(DL_SYSINFO_DEFAULT): Cast to uintptr_t to avoid warnings.
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h (NEED_DL_SYSINFO,
-	DL_SYSINFO_DEFAULT, DL_SYSINFO_IMPLEMENTATION): Define.
-	(USE_DL_SYSINFO): Undef.
-
-2002-12-22  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (tests-reverse): Use $(objpfx)../libc.so instead of
-	$(common-objpfx)libc.so.
-	* tst-cancel4.c (tf_write, tf_writev): Increase buf sizes so that
-	it is bigger than pipe buffer size even on arches with bigger
-	page size.
-	(tf_usleep): Cast usleep argument to useconds_t to avoid warnings.
-
-2002-12-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Implement
-	correct errno access for case that USE___THREAD is not defined.
-
-2002-12-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Add missing #endif.
-	Patch by Marijn Ros <marijn@mad.scientist.com>.
-
-2002-12-22  Roland McGrath  <roland@redhat.com>
-
-	* Makefile (omit-deps): Add $(unix-syscalls:%=ptw-%).
-
-2002-12-20  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/bits/stdio-lock.h (_IO_lock_inexpensive): Define.
-
-2002-12-19  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Don't define
-	NEED_DL_SYSINFO since no processor < i686 had the sysenter opcode.
-	* sysdeps/unix/sysv/linux/i386/i686/dl-sysdep.h: New file.
-
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Use ENTER_KERNEL instead
-	of int $0x80.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelcond.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelmutex.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Likewise.
-	* sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Add support for using
-	sysenter.
-	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Likewise.
-
-	* sysdeps/i386/tls.h: Unconditionally include <dl-sysdep.h>.
-
-	* allocatestack.c (allocate_stack) [NEED_DL_SYSINFO]: Set sysinfo
-	in new TCB.
-	* sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Check
-	that sysinfo is properly initialized.
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define RTLD_PRIVATE_ERRNO
-	to 1 only for ld.so.
-
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: Define
-	RTLD_CORRECT_DYNAMIC_WEAK.
-
-2002-12-19  Jakub Jelinek  <jakub@redhat.com>
-
-	* forward.c (pthread_attr_init_2_0, pthread_attr_init_2_1):
-	Use return 0 as 6th argument to FORWARD4.
-	* pthread_equal.c: Include pthreadP.h instead of pthread.h.
-
-2002-12-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* descr.h (struct pthread) [NEED_DL_SYSINFO]: Add sysinfo member.
-	* sysdeps/i386/tls.h (tcbhead_t): Add sysinfo member.
-	Define SYSINFO_OFFSEET if NEED_DL_SYSINFO is defined.
-	(INIT_SYSINFO): New #define.
-	(TLS_TP_INIT): Use INIT_SYSINFO.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
-	At test to make sure SYSINFO_OFFSET value is correct.
-	* sysdeps/unix/sysv/linux/i386/dl-sysdep.h: New file.
-
-2002-12-18  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/flockfile.c (flockfile): Change into weak alias.
-	* sysdeps/unix/sysv/linux/raise.c (gsignal): Add weak alias to raise.
-	* Versions [libc: GLIBC_2.0]: Add pthread_attr_init.
-	[libpthread: GLIBC_2.1]: Remove __pthread_rwlock_init,
-	__pthread_rwlock_destroy, __pthread_rwlock_rdlock,
-	__pthread_rwlock_wrlock, __pthread_rwlock_unlock,
-	__pthread_rwlock_tryrdlock and __pthread_rwlock_trywrlock.
-
-2002-12-18  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Use ENTER_KERNEL
-	macro instead of using int $0x80 directly.
-
-	* sysdeps/pthread/bits/stdio-lock.h: New file.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevelmutex.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevelmutex.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevelmutex.S: New file.
-	* Makefile (routines): Add libc-lowlevelmutex.
-
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Remove
-	__i686.get_pc_thunk.dx.
-
-2002-12-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* Makefile (libpthread-shared-only-routines): Add pt-allocrtsig.
-	(tests): Depend on $(objpfx)tst-cancel-wrappers.out.
-	($(objpfx)tst-cancel-wrappers.out): New rule.
-	* tst-cancel-wrappers.sh: New test.
-	* tst-locale1.c: Include signal.h.
-	(uselocale): Test static linking of __libc_current_sigrt*.
-
-2002-12-17  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-cancel6.
-	* tst-cancel6.c: New file
-
-2002-12-17  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h (SINGLE_THREAD_P):
-	Define meaningfully for assembler as well.
-	* pthreadP.h (struct pthread_functions): Remove
-	ptr_pthread_attr_init field.  Add ptr_pthread_attr_init_2_0
-	and ptr_pthread_attr_init_2_1 fields.
-	* init.c (pthread_functions): Initialize ptr_pthread_attr_init_2_0
-	and ptr_pthread_attr_init_2_1 instead of ptr_pthread_attr_init.
-	* forward.c (FORWARD4): Renamed from FORWARD3. Add export argument.
-	(FORWARD3): Define using FORWARD4.
-	(pthread_attr_init): Provide both @GLIBC_2.0 and @@GLIBC_2.1
-	versions.
-	* pt-system.c: Remove duplicate stdlib.h include.
-
-2002-12-16  Ulrich Drepper  <drepper@redhat.com>
-
-	* sem_init.c: Define sem_init@GLIBC_2.0.
-	* sem_destroy.c: Define sem_destroy@GLIBC_2.0.
-	* sem_getvalue.c: Define sem_getvalue@GLIBC_2.0.
-
-	* flockfile.c: Moved to...
-	* sysdeps/pthread/flockfile.c: ...here.  New file.
-	* funlockfile.c: Moved to...
-	* sysdeps/pthread/funlockfile.c: ...here.  New file.
-	* ftrylockfile.c: Moved to...
-	* sysdeps/pthread/ftrylockfile.c: ...here.  New file.
-
-2002-12-16  Jakub Jelinek  <jakub@redhat.com>
-
-	* libc-cancellation.c: Guard both function with
-	#if !defined NOT_IN_libc.
-	* Makefile (libpthread-routines): Use ptw-, not pt- prefix for the
-	automatically provided pthread wrappers.
-	* pthreadP.h (LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): Define to
-	CANCEL_* if IS_IN_libpthread and to dummy versions if not in libc
-	nor in libpthread.
-	* pt-open.c: Removed.
-	* pt-fcntl.c: Removed.
-	* pt-fsync.c: Removed.
-	* pt-lseek.c: Removed.
-	* pt-msgrcv.c: Removed.
-	* pt-msgsnd.c: Removed.
-	* pt-msync.c: Removed.
-	* pt-nanosleep.c: Removed.
-	* pt-open64.c: Removed.
-	* pt-pause.c: Removed.
-	* pt-pread.c: Removed.
-	* pt-pread64.c: Removed.
-	* pt-pwrite.c: Removed.
-	* pt-pwrite64.c: Removed.
-	* pt-read.c: Removed.
-	* pt-recv.c: Removed.
-	* pt-recvfrom.c: Removed.
-	* pt-recvmsg.c: Removed.
-	* pt-send.c: Removed.
-	* pt-sendto.c: Removed.
-	* pt-sigtimedwait.c: Removed.
-	* pt-sigwait.c: Removed.
-	* pt-wait.c: Removed.
-	* pt-waitpid.c: Removed.
-	* pt-write.c: Removed.
-	* pt-accept.c: Removed.
-	* pt-close.c: Removed.
-	* pt-connect.c: Removed.
-	* pt-lseek64.c: Removed.
-	* pt-sendmsg.c: Removed.
-	* pt-tcdrain.c: Removed.
-
-2002-12-15  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal_internal): Renamed from
-	__pthread_initialize_minimal.  Make old name an alias.  This
-	converts a normal relocation into a relative relocation.
-
-	* pt-fcntl.c (__fcntl): Use fcntl64 syscall, not fcntl.
-
-	* Versions [libpthread: GLIBC_2.3.2]: Remove creat, poll, pselect,
-	readv, select, sigpause, sigsuspend, sigwaitinfo, waitid, writev.
-	* Makefile (libpthread-routines): Remove pt-creat, pt-poll,
-	pt-pselect, pt-readv, pt-select, pt-sigpause, pt-sigsuspend,
-	pt-sigwaitinfo, pt-waitid, and pt-writev.
-	* pt-creat.c: Removed.
-	* pt-poll.c: Removed.
-	* pt-pselect.c: Removed.
-	* pt-readv.c: Removed.
-	* pt-select.c: Removed.
-	* pt-sigpause.c: Removed.
-	* pt-sigsuspend.c: Removed.
-	* pt-sigwaitinfo.c: Removed.
-	* pt-waitid.c: Removed.
-	* pt-writev.c: Removed.
-
-	* init.c (pthread_functions): New variable.
-	(__pthread_initialize_minimal): Pass pointer to pthread_functions
-	(or NULL) to __libc_pthread_init.
-	* forward.c: Rewrite to use __libc:pthread_functions array to get
-	function addresses.
-	* sysdeps/unix/sysv/linux/fork.h: Remove __libc_pthread_init
-	prototype.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c (__libc_pthread_init):
-	Take new parameter.  Copy content of variable pointed to by it
-	to __libc_pthread_init.
-
-	* pthreadP.h (struct pthread_functions): New type.
-	(__libc_pthread_init): Declare.
-
-	* pthread_attr_destroy.c: Add namespace protected alias.
-	* pthread_attr_getdetachstate.c: Likewise.
-	* pthread_attr_getinheritsched.c: Likewise.
-	* pthread_attr_getschedparam.c: Likewise.
-	* pthread_attr_getschedpolicy.c: Likewise.
-	* pthread_attr_getscope.c: Likewise.
-	* pthread_attr_setdetachstate.c: Likewise.
-	* pthread_attr_setinheritsched.c: Likewise.
-	* pthread_attr_setschedparam.c: Likewise.
-	* pthread_attr_setschedpolicy.c: Likewise.
-	* pthread_attr_setscope.c: Likewise.
-	* pthread_cond_broadcast.c: Likewise.
-	* pthread_cond_destroy.c: Likewise.
-	* pthread_cond_init.c: Likewise.
-	* pthread_cond_signal.c: Likewise.
-	* pthread_cond_wait.c: Likewise.
-	* pthread_condattr_destroy.c: Likewise.
-	* pthread_condattr_init.c: Likewise.
-	* pthread_equal.c: Likewise.
-	* pthread_exit.c: Likewise.
-	* pthread_getschedparam.c: Likewise.
-	* pthread_self.c: Likewise.
-	* pthread_setcancelstate.c: Likewise.
-	* pthread_setschedparam.c: Likewise.
-	* pthread_mutex_destroy.c: Likewise.
-	* pthread_mutex_init.c: Likewise.
-	* pthreadP.h: Add prototypes for the aliases.
-
-	* sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Set
-	multiple_threads member in correct TCB to 1.
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: Define
-	SINGLE_THREAD_P.  If in libc or libpthread examine multiple_thread
-	member of thread decriptor, otherwise return unconditionally 1.
-
-2002-12-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/pt-socket.S: Changes folded into the
-	regular Linux version.  Remove file.
-	* sysdeps/unix/sysv/linux/connect.S: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/llseek.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/msgrcv.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/msgsnd.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/open64.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/poll.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/pread.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/pread64.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/pselect.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/pwrite.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/readv.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/recv.S: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/recvfrom.S: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/recvmsg.S: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/send.S: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/sendmsg.S: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/sendto.S: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/sigpause.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/sigtimedwait.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/sigwait.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/sigwaitinfo.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/system.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/tcdrain.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/wait.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/waitid.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/waitpid.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/writev.c: Likewise.  Remove file.
-	* sysdeps/unix/sysv/linux/i386/fcntl.c: Likewise.  Remove file.
-
-2002-12-14  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/sysdep-cancel.h: New file.
-	* sysdeps/unix/sysv/linux/open.c: Removed.
-	* sysdeps/unix/sysv/linux/fsync.c: Removed.
-	* sysdeps/unix/sysv/linux/lseek.c: Removed.
-	* sysdeps/unix/sysv/linux/msync.c: Removed.
-	* sysdeps/unix/sysv/linux/read.c: Removed.
-	* sysdeps/unix/sysv/linux/close.c: Removed.
-	* sysdeps/unix/sysv/linux/creat.c: Removed.
-	* sysdeps/unix/sysv/linux/nanosleep.c: Removed.
-	* sysdeps/unix/sysv/linux/pause.c: Removed.
-	* sysdeps/unix/sysv/linux/select.c: Removed.
-	* sysdeps/unix/sysv/linux/write.c: Removed.
-
-2002-12-14  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/pt-socket.S: Check multiple_threads
-	element in TCB to see whether locking is needed.
-
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Check that
-	MULTIPLE_THREADS_OFFSET value is correct.
-
-	* sysdeps/unix/sysv/linux/close.c: New file.
-	* sysdeps/unix/sysv/linux/connect.S: New file.
-	* sysdeps/unix/sysv/linux/creat.c: New file.
-	* sysdeps/unix/sysv/linux/fsync.c: New file.
-	* sysdeps/unix/sysv/linux/llseek.c: New file.
-	* sysdeps/unix/sysv/linux/lseek.c: New file.
-	* sysdeps/unix/sysv/linux/msgrcv.c: New file.
-	* sysdeps/unix/sysv/linux/msgsnd.c: New file.
-	* sysdeps/unix/sysv/linux/msync.c: New file.
-	* sysdeps/unix/sysv/linux/nanosleep.c: New file.
-	* sysdeps/unix/sysv/linux/open.c: New file.
-	* sysdeps/unix/sysv/linux/open64.c: New file.
-	* sysdeps/unix/sysv/linux/pause.c: New file.
-	* sysdeps/unix/sysv/linux/poll.c: New file.
-	* sysdeps/unix/sysv/linux/pread.c: New file.
-	* sysdeps/unix/sysv/linux/pread64.c: New file.
-	* sysdeps/unix/sysv/linux/pselect.c: New file.
-	* sysdeps/unix/sysv/linux/pwrite.c: New file.
-	* sysdeps/unix/sysv/linux/pwrite64.c: New file.
-	* sysdeps/unix/sysv/linux/readv.c: New file.
-	* sysdeps/unix/sysv/linux/recv.S: New file.
-	* sysdeps/unix/sysv/linux/recvfrom.S: New file.
-	* sysdeps/unix/sysv/linux/recvmsg.S: New file.
-	* sysdeps/unix/sysv/linux/select.c: New file.
-	* sysdeps/unix/sysv/linux/send.S: New file.
-	* sysdeps/unix/sysv/linux/sendmsg.S: New file.
-	* sysdeps/unix/sysv/linux/sendto.S: New file.
-	* sysdeps/unix/sysv/linux/sigpause.c: New file.
-	* sysdeps/unix/sysv/linux/sigsuspend.c: New file.
-	* sysdeps/unix/sysv/linux/sigtimedwait.c: New file.
-	* sysdeps/unix/sysv/linux/sigwait.c: New file.
-	* sysdeps/unix/sysv/linux/sigwaitinfo.c: New file.
-	* sysdeps/unix/sysv/linux/system.c: New file.
-	* sysdeps/unix/sysv/linux/tcdrain.c: New file.
-	* sysdeps/unix/sysv/linux/wait.c: New file.
-	* sysdeps/unix/sysv/linux/waitid.c: New file.
-	* sysdeps/unix/sysv/linux/waitpid.c: New file.
-	* sysdeps/unix/sysv/linux/writev.c: New file.
-	* sysdeps/unix/sysv/linux/i386/fcntl.c: New file.
-
-	* pt-readv.c: Fix comment.
-
-2002-12-14  Jakub Jelinek  <jakub@redhat.com>
-
-	* tst-cleanup1.c: Include stdlib.h.
-
-	* tst-cancel5.c: New test.
-	* Makefile (tests): Add tst-cancel5.
-	(tst-cancel5): Link against libc.so libpthread.so in that order.
-
-2002-12-13  Ulrich Drepper  <drepper@redhat.com>
-
-	* forward.c (test_loaded): Prevent recursive calls.
-
-	* Makefile (routines): Add libc-cancellation.
-	* libc-cancellation.c: New file.
-	* descr.h (struct pthread): Add multiple_threads field.
-	* allocatestack.c (allocate_stack): Initialize multiple_header field of
-	new thread descriptor to 1.
-	* sysdeps/unix/sysv/linux/i386/createthread.c (create_thread):
-	Initialize multiple_thread field after successful thread creation.
-	* cancellation.c (__do_cancel): Move to pthreadP.h.
-	(__pthread_enable_asynccancel): Remove parameter from __do_cancel call.
-	(__pthread_disable_asynccancel): Add internal_function attribute.
-	* init.c (sigcancel_handler): Remove parameter from __do_cancel call.
-	* pthread_setcancelstate.c: Likewise.
-	* pthread_setcanceltype.c: Likewise.
-	* pthread_exit.c: Likewise.
-	* pthreadP.h (CANCELLATION_P): Likewise.
-	(__do_cancel): Define as static inline.
-	(LIBC_CANCEL_ASYNC, LIBC_CANCEL_RESET): New #defines.
-	(__libc_enable_asynccancel, __libc_disable_asynccancel): New
-	declarations.
-	* sysdeps/i386/tls.h (tcbhead_t): Add list and multiple_threads
-	fields.  Define MULTIPLE_THREADS_OFFSET.
-	* sysdeps/pthread/bits/libc-lock.h: Remove __libc_locking_needed
-	declaration.
-	* sysdeps/unix/sysv/linux/accept.S: New file.
-	* sysdeps/unix/sysv/linux/read.c: New file.
-	* sysdeps/unix/sysv/linux/write.c: New file.
-	* sysdeps/unix/sysv/linux/i386/pt-socket.S: New file.
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c: Remove definition and
-	initialization of __libc_locking_needed.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Don't use
-	__libc_locking_needed, use multiple_threads field in TCB.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
-
-2002-12-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: Use i486
-	version.
-	* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: Likewise.
-
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Correct
-	access to __libc_locking_needed for PIC.
-
-2002-12-12  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_locking_needed): Only
-	declare for libc.so.
-	(__libc_lock_init, __libc_lock_init_recursive): Change into comma
-	expression.
-	(__libc_lock_lock): Put into statement expression.
-	(__libc_lock_unlock): Remove trailing semicolon.
-	* sysdeps/unix/sysv/linux/fork.h (__libc_pthread_init): Fix typo.
-
-2002-12-12  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use asm operand with
-	"m" constraint to refer to __libc_locking_needed.  Declare it here.
-
-2002-12-12  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/fork-gen.c: Renamed to...
-	* sysdeps/unix/sysv/linux/libc_pthread_init.c: ...this.
-	Initialize __libc_locking_needed.
-	* init.c (__pthread_initialize_minimal): Call __libc_pthread_init
-	instead of __register_pthread_fork_handler.
-	* sysdeps/pthread/bits/libc-lock.h: Declare __libc_locking_needed.
-	* sysdeps/unix/sysv/linux/Makefile (sysdep_routimes): Replace
-	fork-gen with libc_pthread_init.
-	* sysdeps/unix/sysv/linux/Versions: Use __libc_pthread_init instead
-	of __register_pthread_fork_handler.
-	* sysdeps/unix/sysv/linux/fork.h: Declare __libc_pthread_init instead
-	of __register_pthread_fork_handler.
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Use
-	__libc_locking_needed to determine whether lock prefix can be avoided.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: Likewise.
-
-2002-12-11  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-cleanup1.
-	* tst-cleanup1.c: New file.
-	* cancellation.c (__cleanup_thread): Removed.
-	(__do_cancel): Remove call to __cleanup_thread.
-	* pthreadP.h: Remove __cleanup_thread prorotype.
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_cleanup_region_start):
-	Remember function and argument even if cancellation handler
-	function is not available.
-	(__libc_cleanup_region_end): Execute registered function directly if
-	pthread functions are not available.
-	(__libc_cleanup_end): Likewise.
-
-	* init.c (__pthread_initialize_minimal): Fix initialization in
-	static lib by preventing gcc from being too clever.
-
-2002-12-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* init.c (__pthread_initialize_minimal): Remove unneccesary
-	sigaddset call.
-
-	* Makefile (tests): We can run tst-locale2 now.
-
-2002-12-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* Versions: Remove duplicated sigwait entry.
-
-2002-12-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Enable pthread_cleanup_{push,pop} optimizations only
-	inside libpthread.
-
-	* pt-fcntl.c (__fcntl): Initialize oldtype to avoid warning.
-
-	* pthreadP.h: Declare __pthread_enable_asynccancel and
-	__pthread_disable_asynccancel.
-	(CANCEL_ASYNC): Use __pthread_enable_asynccancel.
-	(CANCEL_RESET): Use __pthread_disable_asynccancel.
-	* cancellation.c (__pthread_enable_asynccancel): New function.
-	(__pthread_disable_asynccancel): New function.
-	* pt-accept.c: Adjust for CANCEL_ASYNC and CANCEL_RESET change.
-	* pt-close.c: Likewise.
-	* pt-connect.c: Likewise.
-	* pt-creat.c: Likewise.
-	* pt-fcntl.c: Likewise.
-	* pt-fsync.c: Likewise.
-	* pt-lseek.c: Likewise.
-	* pt-lseek64.c: Likewise.
-	* pt-msgrcv.c: Likewise.
-	* pt-msgsnd.c: Likewise.
-	* pt-msync.c: Likewise.
-	* pt-nanosleep.c: Likewise.
-	* pt-open.c: Likewise.
-	* pt-open64.c: Likewise.
-	* pt-pause.c: Likewise.
-	* pt-poll.c: Likewise.
-	* pt-pread.c: Likewise.
-	* pt-pread64.c: Likewise.
-	* pt-pselect.c: Likewise.
-	* pt-pwrite.c: Likewise.
-	* pt-pwrite64.c: Likewise.
-	* pt-read.c: Likewise.
-	* pt-readv.c: Likewise.
-	* pt-recv.c: Likewise.
-	* pt-recvfrom.c: Likewise.
-	* pt-recvmsg.c: Likewise.
-	* pt-select.c: Likewise.
-	* pt-send.c: Likewise.
-	* pt-sendmsg.c: Likewise.
-	* pt-sendto.c: Likewise.
-	* pt-sigpause.c: Likewise.
-	* pt-sigsuspend.c: Likewise.
-	* pt-sigtimedwait.c: Likewise.
-	* pt-sigwait.c: Likewise.
-	* pt-sigwaitinfo.c: Likewise.
-	* pt-system.c: Likewise.
-	* pt-tcdrain.c: Likewise.
-	* pt-wait.c: Likewise.
-	* pt-waitid.c: Likewise.
-	* pt-waitpid.c: Likewise.
-	* pt-write.c: Likewise.
-	* pt-writev.c: Likewise.
-	* pthread_join.c: Likewise.
-	* pthread_timedjoin.c: Likewise.
-
-	* pt-sigpause.c (sigsuspend): Call __sigsuspend.
-	(__xpg_sigpause): New function.
-	* Versions (libpthread:GLIBC_2.3.2): Add __xpg_sigpause.
-
-2002-12-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (CFLAGS-ftrylockfile.c): Add -D_IO_MTSAFE_IO.
-
-	* cleanup.c: Move declarations of _GI_pthread_cleanup_push and
-	_GI_pthread_cleanup_pop to pthreadP.h.
-
-	* ftrylockfile.c: Use _IO_lock_trylock instead of
-	pthread_mutex_trylock.
-
-	* pthreadP.h (CANCEL_ASYNC): Use __pthread_setcanceltype.
-	(CANCEL_RESET): Likewise.
-	(__pthread_setcanceltype_): Declare.
-	(__pthread_mutex_lock_internal): Declare.
-	(__pthread_mutex_unlock_internal): Declare.
-	(__pthread_once_internal): Declare.
-	(pthread_cleanup_push): Redefine using _GI_pthread_cleanup_push.
-	(pthread_cleanup_pop): Redefine using _GI_pthread_cleanup_pop.
-
-	* pthread_cond_timedwait.c: Use INTUSE is calls to pthread_mutex_lock
-	and pthread_mutex_unlock.
-	* pthread_cond_wait.c: Likewise.
-	* pthread_mutex_lock.c: Use INTDEF to define alias if needed.
-	* pthread_mutex_unlock.c: Likewise.
-
-	* pthread_setcanceltype.c: Add additional alias
-	__pthread_setcanceltype.
-
-	* sem_unlink.c (sem_unlink): Use __pthread_once with INTDEF.
-	* sem_open.c (sem_open): Likewise.
-	Use __libc_open, __libc_write, and __libc_close instead of
-	open, write, and close respectively.
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_lock_trylock_internal):
-	Rewrite as statement expression since it must return a value.
-
-	* pthread_cancel.c: Use __pthread_kill instead of pthread_kill.
-	* sysdeps/unix/sysv/linux/pthread_kill.c: Define additional alias
-	__pthread_kill.
-
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Define additional
-	alias __pthread_once_internal.
-
-	* sysdeps/unix/sysv/linux/raise.c: Use libc_hidden_def for raise.
-
-2002-12-06  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-stdio1 and tst-stdio2.
-	* tst-stdio1.c: New file.
-	* tst-stdio2.c: New file.
-
-	* init.c (__pthread_initialize_minimal): Correct INIT_LIST_HEAD use.
-
-	* Makefile (tests): Comment out tst-locale2 for now.
-	(CFLAGS-flockfile.c, CFLAGS-funlockfile.c): Define to -D_IO_MTSAFE_IO.
-
-	* sysdeps/unix/sysv/linux/Makefile: Define CFLAGS-fork.c to
-	-D_IO_MTSAFE_IO.
-	* sysdeps/unix/sysv/linux/fork.c: Include <bits/stdio-lock.h>.
-	Use _IO_lock_init instead of explicit assignment.
-
-	* sysdeps/pthread/bits/libc-lock.h: Define __rtld_lock_* macros.
-	Define __libc_lock_* and __libc_lock_recursive macros with
-	lowlevellock macros, not pthread mutexes.
-
-	* flockfile.c: Include <bits/stdio-lock.h>.  Use _IO_lock_lock instead
-	of pthread_mutex_lock.
-	* funlockfile.c: Include <bits/stdio-lock.h>.  Use _IO_lock_unlock
-	instead of pthread_mutex_unlock.
-
-2002-12-06  Roland McGrath  <roland@redhat.com>
-
-	* allocatestack.c (__stack_user): Use uninitialized defn.
-	* init.c (__pthread_initialize_minimal): Initialize it here.
-
-2002-12-05  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/i386/tls.h (TLS_INIT_TP): Make it return zero or an error
-	string.
-	* sysdeps/x86_64/tls.h (TLS_INIT_TP): Likewise.
-
-	* sysdeps/unix/sysv/linux/i386/createthread.c (create_thread): Add
-	missing & here too.
-
-2002-12-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
-	lowlevellock.
-	* sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i586/libc-lowlevellock.S: New file.
-	* sysdeps/unix/sysv/linux/i386/i686/libc-lowlevellock.S: New file.
-	* sysdeps/pthread/bits/libc-lock.h: Use lowlevellock implementation
-	for __libc_lock_* macros.
-	* Makefile (routines): Add libc-lowlevellock.
-
-2002-10-09  Roland McGrath  <roland@redhat.com>
-
-	* sysdeps/pthread/bits/libc-lock.h (__libc_maybe_call): New macro.
-	Under [__PIC__], call the function via the pointer fetched for
-	comparison rather than a call by name that uses the PLT.
-	(__libc_lock_init, __libc_rwlock_init, __libc_lock_fini)
-	(__libc_rwlock_fini, __libc_lock_lock, __libc_rwlock_rdlock)
-	(__libc_rwlock_wrlock, __libc_lock_trylock, __libc_rwlock_tryrdlock)
-	(__libc_rwlock_trywrlock, __libc_lock_unlock, __libc_rwlock_unlock)
-	(__libc_key_create, __libc_getspecific, __libc_setspecific): Use it.
-
-2002-12-04  Roland McGrath  <roland@redhat.com>
-
-	* forward.c (pthread_self): Use FORWARD3 macro to correct return type.
-
-	* sysdeps/i386/td_ta_map_lwp2thr.c: Moved from ../nptl_db.
-	* sysdeps/generic/td_ta_map_lwp2thr.c: New file.
-
-	* pthread_create.c (start_thread): Add missing & on __nptl_last_event.
-
-2002-12-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h: Make pthread_t
-	a completely opaque, non-integer type.
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: Likewise.
-
-2002-12-05  Jakub Jelinek  <jakub@redhat.com>
-
-	* sysdeps/i386/tls.h: Include stdlib.h.
-	* sysdeps/x86_64/tls.h: Likewise.
-
-2002-12-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-locale2.
-	(tests-static): Likewise.
-	* tst-locale2.c: New file.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevellock.h: Mark asms as
-	volatile and add memory clobbers to lock operations.
-
-2002-12-03  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/i686/bits/atomic.h: Use i486 version.
-	* sysdeps/i386/i486/bits/atomic.h: New file.
-	* sysdeps/i386/i586/bits/atomic.h: New file.
-	* sysdeps/i386/i686/pthread_spin_trylock.S: Define HAVE_CMOV and
-	include i486 version.
-	* sysdeps/i386/i486/pthread_spin_trylock.S: New file.
-	* sysdeps/i386/i586/pthread_spin_trylock.S: New file.
-	Patch by Marijn Ros <marijn@mad.scientist.com>.
-
-	* allocatestack.c (get_cached_stack): Don't crash if we first
-	found a stack with a larger size then needed.
-	Reported by Hui Huang <hui.huang@sun.com>.
-
-	* Makefile (tests): Add tst-sysconf.
-	* tst-sysconf.c: New file.
-
-	* sysdeps/unix/sysv/linux/bits/local_lim.h: Undefine
-	PTHREAD_THREADS_MAX.
-
-2002-12-02  Roland McGrath  <roland@redhat.com>
-
-	* pthreadP.h (__stack_user, __nptl_create_event, __nptl_death_event):
-	Declare using hidden_proto instead of attribute_hidden, so there are
-	non-.hidden static symbols for gdb to find.
-	(__pthread_keys): Likewise.
-	* events.c (__nptl_create_event, __nptl_death_event): Add hidden_def.
-	* allocatestack.c (__stack_user): Likewise.
-	* pthread_create.c (__pthread_keys): Likewise.
-	(__nptl_threads_events, __nptl_last_event): Make these static instead
-	of hidden.
-	* pthread_key_create.c (__pthread_pthread_keys_max,
-	__pthread_pthread_key_2ndlevel_size): Renamed from __linuxthreads_*.
-
-2002-12-02  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-locale1.  If buid-static is yes link
-	statically.
-	* tst-locale1.c: New file.
-
-	* pthread_cond_timedwait.c: Include <stdlib.h>.
-
-	* Makefile (tests): Add tst-fork2 and tst-fork3.
-	* tst-fork2.c: New file.
-	* tst-fork3.c: New file.
-
-2002-11-28  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/bits/posix_opt.h: New file.
-
-	* sysdeps/unix/sysv/linux/bits/posix_opt.h: Define macros which
-	require it to 200112L.
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelrwlock.S: Use cmov
-	instruction only if HAVE_CMOV is defined.
-	* sysdeps/unix/sysv/linux/i386/i686/lowlevelrwlock.S: Define HAVE_CMOV.
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h: New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/pthread_once.S: New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h: New file.
-
-	* sysdeps/unix/sysv/linux/x86_64/pt-vfork.S: New file.
-
-2002-11-27  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/x86_64/bits/atomic.h: New file.
-
-	* sysdeps/i386/i686/bits/atomic.h: Fix asm syntax for 8- and
-	16-bit operations.
-
-	* sysdeps/unix/sysv/linux/raise.c (raise): Use INTERNAL_SYSCALL if
-	possible since gettid cannot fail.
-
-	* sysdeps/x86_64/pthreaddef.h: New file.
-
-	* sysdeps/i386/pthreaddef.h (gettid): Removed.
-
-	* sysdeps/x86_64/pthread_spin_init.c: New file.
-	* sysdeps/x86_64/pthread_spin_lock.c: New file.
-	* sysdeps/x86_64/pthread_spin_trylock.c: New file.
-	* sysdeps/x86_64/pthread_spin_unlock.c: New file.
-
-	* sysdeps/i386/i686/pthread_spin_trylock.S (pthread_spin_trylock):
-	Add missing lock prefix.  Minute optimization.
-
-	* tst-spin2.c (main): Also check successful trylock call.
-
-	* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Use correct
-	syscall.  Fix typo in case INTERNAL_SYSCALL is not used.
-
-	* sysdeps/i386/pthread_spin_destroy.c: Moved to...
-	* sysdeps/pthread/pthread_spin_destroy.c: ...here.  New file.
-
-	* sysdeps/i386/pthread_sigmask.c: Removed.  Use the generic code.
-	* sysdeps/pthread/pthread_sigmask.c (pthread_sigmask): Return correct
-	value in case of an error.  Add support for INTERNAL_SYSCALL.
-
-	* sysdeps/i386/pthread_sigmask.c (pthread_sigmask): Return correct
-	value in case of an error.
-
-	* sysdeps/x86_64/tls.h: New file.
-
-2002-11-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/i386/tls.h (THREAD_GETMEM_NC): Change interface.  It now
-	takes the array member name and the index as parameters.
-	(THREAD_SETMEM_NC): Likewise.
-	* pthread_getspecific.c: Use new THREAD_GETMEM_NC interface.
-	* pthread_setspecific.c: Use new THREAD_GETMEM_NC and THREAD_SETMEM_NC
-	interfaces.
-
-	* sysdeps/i386/tls.h (THREAD_SETMEM): Use size of member element
-	to decide which code to use.
-	(THREAD_SETMEM_NC): Likewise.
-
-	* allocatestack.c (queue_stack): Don't remove stack from list here.
-	Do it in the caller.  Correct condition to prematurely terminate
-	loop to free stacks.
-	(__deallocate_stack): Remove stack from list here.
-
-2002-11-26  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-stack1.
-	* tst-stack1.c: New file.
-
-	* allocatestack.c (allocate_stack): Initialize the TCB on a user
-	provided stack.
-
-	* pthread_attr_getstack.c: Return bottom of the thread area.
-
-2002-11-25  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (libpthread-routines): Add pt-allocrtsig and
-	pthread_kill_other_threads.
-	* pt-allocrtsig.c: New file.
-	* pthread_kill_other_threads.c: New file.
-	* sysdeps/unix/sysv/linux/allocrtsig.c: Add additional aliases for
-	all three functions.
-	* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
-	allocrtsig.
-	* sysdeps/unix/sysv/linux/Versions (libc:GLIBC_PRIVATE): Export
-	__libc_current_sigrtmin_private, __libc_current_sigrtmax_private,
-	and __libc_allocate_rtsig_private.
-	* Versions (libpthread): Export pthread_kill_other_threads_np,
-	__libc_current_sigrtmin, and __libc_current_sigrtmax.
-
-2002-11-24  Ulrich Drepper  <drepper@redhat.com>
-
-	* allocatestack.c (allocate_stack): stackaddr in attribute points to
-	the end of the stack.  Adjust computations.
-	When mprotect call fails dequeue stack and free it.
-	* pthread_attr_setstack.c: Store top of the stack in stackaddr
-	attribute.
-	* pthread_getattr_np.c: Likewise.
-
-	* descr.h (IS_DETACHED): Add some more parenthesis to prevent
-	surprises.
-
-2002-11-23  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/pthread/pthread.h (pthread_self): __THROW must come before
-	attribute definitions.  Patch by Luca Barbieri <ldb@ldb.ods.org>.
-
-2002-11-22  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_getspecific.c: Optimize access to first 2nd-level array.
-	* pthread_setspecific.c: Likewise.
-
-2002-11-21  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/createthread.c: Remove CLONE_ flags
-	definitions.  Get them from the official place.
-	* sysdeps/unix/sysv/linux/i386/fork.c: Likewise.
-
-	* sysdeps/unix/sysv/linux/i386/createthread.c: Update CLONE_* flags.
-	Use new CLONE_ flags in clone() calls.
-
-	* sysdeps/unix/sysv/linux/fork.c: Use ARCH_FORK to actually fork.
-	* sysdeps/unix/sysv/linux/i386/fork.c: New file.
-
-	* Versions: Add pthread_* functions for libc.
-	* forward.c: New file.
-
-	* sysdeps/pthread/Makefile (libpthread-sysdeps_routines): Add
-	errno-loc.
-	* herrno.c: New file.
-	* res.c: New file.
-
-	* Makefile (libpthread-routines): Remove sem_post, sem_wait,
-	sem_trywait, and sem_timedwait.  Add herrno and res.
-	* sem_init.c: Don't initialize lock and waiters members.
-	* sem_open.c: Likewise.
-	* sem_post.c: Removed.
-	* sem_wait.c: Removed.
-	* sem_trywait.c: Removed.
-	* sem_timedwait.c: Removed.
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Complete rewrite.
-	Includes full implementations of sem_post, sem_wait, sem_trywait,
-	and sem_timedwait.
-	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Adjust
-	for new implementation.
-	* sysdeps/unix/sysv/linux/internaltypes.h (struct sem): Remove lock
-	and waiters fields.
-
-	* tst-sem3.c: Improve error message.
-	* tst-signal3.c: Likewise.
-
-	* init.c (__pthread_initialize_minimal): Use set_tid_address syscall
-	to tell the kernel about the termination futex and to initialize tid
-	member.  Don't initialize main_thread.
-	* descr.h (struct pthread): Remove main_thread member.
-	* cancelllation.c (__do_cancel): Remove code handling main thread.
-	The main thread is not special anymore.
-
-	* allocatestack.c (__reclaim_stacks): Mark stacks as unused.  Add
-	size of the stacks to stack_cache_actsize.
-
-	* pt-readv.c: Add missing "defined".
-	* pt-sigwait.c: Likewise.
-	* pt-writev.c: Likewise.
-
-2002-11-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* Versions: Export __connect from libpthread.
-	Patch by Luca Barbieri <ldb@ldb.ods.org>.
-
-	* Makefile (libpthread-routines): Add pt-raise.
-	* sysdeps/unix/sysv/linux/raise.c: New file.
-	* sysdeps/unix/sysv/linux/pt-raise.c: New file.
-	* sysdeps/generic/pt-raise.c: New file.
-
-	* pthread_cond_init.c: Initialize all data elements of the condvar
-	structure.  Patch by Luca Barbieri <ldb@ldb.ods.org>.
-
-	* pthread_attr_init.c: Actually implement 2.0 compatibility version.
-	* pthread_create.c: Likewise.
-
-	* Makefile (tests): Add tst-key1, tst-key2, tst-key3.
-	* tst-key1.c: New file.
-	* tst-key2.c: New file.
-	* tst-key3.c: New file.
-
-	* Versions: Export pthread_detach for version GLIBC_2.0.
-	Reported by Saurabh Desai <sdesai@austin.ibm.com>.
-
-2002-11-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_key_create.c: Terminate search after an unused key was found.
-	Patch by Luca Barbieri <ldb@ldb.ods.org>.
-
-	* sysdeps/unix/sysv/linux/i386/pthread_once.S: Return zero.
-	Patch by Luca Barbieri <ldb@ldb.ods.org>.
-
-2002-10-10  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/i486/lowlevelsem.S: Use slow generic
-	dynamic lookup for errno in PIC.
-
-	* allocatestack.c (get_cached_stack): Rearrange code slightly to
-	release the stack lock as soon as possible.
-	Call _dl_allocate_tls_init for TCB from the cache to re-initialize
-	the static TLS block.
-	(allocate_stack): Call _dl_allocate_tls_init for user-provided stack.
-
-	* cancellation.c: Renamed from cancelation.c.
-	* Makefile: Adjust accordingly.
-	* pthreadP.h (CANCELLATION_P): Renamed from CANCELATION_P.
-	* cleanup_defer.c: Use CANCELLATION_P.
-	* pthread_testcancel.c: Likewise.
-	* descr.h: Fix spelling in comments.
-	* init.c: Likewise.
-	* pthread_getattr_np.c: Likewise.
-	* pthread_getschedparam.c: Likewise.
-	* pthread_setschedparam.c: Likewise.
-	* Versions: Likewise.
-
-	* pt-pselect.c: New file.
-	* Makefile (libpthread-routines): Add pt-pselect.
-	* Versions: Add pselect.
-
-	* tst-cancel4.c: New file.
-	* Makefile (tests): Add tst-cancel4.
-
-2002-10-09  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthread_mutex_lock.c: Always record lock ownership.
-	* pthread_mutex_timedlock.c: Likewise.
-	* pthread_mutex_trylock.c: Likewise.
-
-	* pt-readv.c: New file.
-	* pt-writev.c: New file.
-	* pt-creat.c: New file.
-	* pt-msgrcv.c: New file.
-	* pt-msgsnd.c: New file.
-	* pt-poll.c: New file.
-	* pt-select.c: New file.
-	* pt-sigpause.c: New file.
-	* pt-sigsuspend.c: New file.
-	* pt-sigwait.c: New file.
-	* pt-sigwaitinfo.c: New file.
-	* pt-waitid.c: New file.
-	* Makefile (libpthread-routines): Add pt-readv, pt-writev, pt-creat,
-	pt-msgrcv, pt-msgsnd, pt-poll, pt-select, pt-sigpause, pt-sigsuspend,
-	pt-sigwait, pt-sigwaitinfo, and pt-waitid.
-	* Versions: Add all the new functions.
-
-	* tst-exit1.c: New file.
-	* Makefile (tests): Add tst-exit1.
-
-	* sem_timedwait.c: Minor optimization for more optimal fastpath.
-
-2002-10-08  Ulrich Drepper  <drepper@redhat.com>
-
-	* pt-fcntl.c: Only enable asynchronous cancellation for F_SETLKW.
-
-	* pthread_join.c: Enable asynchronous cancellation around lll_wait_tid
-	call.  pthread_join is an official cancellation point.
-	* pthread_timedjoin.c: Likewise.
-
-	* pthread_cond_wait.c: Revert order in which internal lock are dropped
-	and the condvar's mutex are retrieved.
-	* pthread_cond_timedwait.c: Likewise.
-	Reported by dice@saros.East.Sun.COM.
-
-2002-10-07  Ulrich Drepper  <drepper@redhat.com>
-
-	* pthreadP.h: Cut out all type definitions and move them...
-	* sysdeps/unix/sysv/linux/internaltypes.h: ...here.  New file.
-	* pthreadP.h: Include <internaltypes.h>.
-
-	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h (lll_sem_post): Little
-	performance tweaks.
-
-	* sem_trywait.c: Shuffle #includes around to get right order.
-	* sem_timedwait.c: Likewise.
-	* sem_post.c: Likewise.
-	* sem_wait.c: Likewise.
-
-	* nptl 0.3 released.
-
-	* Makefile (tests): Add tst-signal3.
-	* tst-signal3.c: New file.
-
-2002-10-05  Ulrich Drepper  <drepper@redhat.com>
-
-	* sysdeps/unix/sysv/linux/i386/lowlevelsem.h: Tell the compiler that
-	the asms modify the sem object.
-	(__lll_sem_timedwait): Now takes struct sem* as first parameter.
-
-	* sysdeps/unix/sysv/linux/i386/bits/semaphore.h (sem_t): Don't expose
-	the actual members.
-	* pthreadP.h (struct sem): New type.  Actual semaphore type.
-	* semaphoreP.h: Include pthreadP.h.
-	* sem_getvalue.c: Adjust to sem_t change.
-	* sem_init.c: Likewise.
-	* sem_open.c: Likewise.
-	* sem_post.c: Likewise.
-	* sem_timedwait.c: Likewise.
-	* sem_trywait.c: Likewise.
-	* sem_wait.c: Likewise.
-
-2002-10-04  Ulrich Drepper  <drepper@redhat.com>
-
-	* Makefile (tests): Add tst-basic2, tst-exec1, tst-exec3, tst-exec3.
-	* tst-basic2.c: New file.
-	* tst-exec1.c: New file.
-	* tst-exec2.c: New file.
-	* tst-exec3.c: New file.
-
-	* tst-fork1.c: Remove extra */.
-
-	* nptl 0.2 released.  The API for IA-32 is complete.
diff --git a/nptl/DESIGN-systemtap-probes.txt b/nptl/DESIGN-systemtap-probes.txt
deleted file mode 100644
index ac972a9542..0000000000
--- a/nptl/DESIGN-systemtap-probes.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-Systemtap is a dynamic tracing/instrumenting tool available on Linux. Probes
-that are not fired at run time have close to zero overhead.
-
-The following probes are available for NPTL:
-
-Thread creation & Join Probes
-=============================
-pthread_create - probe for pthread_create
-               arg1 = pointer (pthread_t*) to thread
-               arg2 = pointer (pthread_attr_t*) to attr
-               arg3 = pointer (void *) to start_routine
-               arg4 = arguments to start_routine
-pthread_start - probe for actual thread creation
-              arg1 = struct pthread (members include thread ID, process ID)
-              arg2 = address of start_routine
-              arg3 = pointer to the list of arguments
-pthread_join - probe for pthread_join
-             arg1 = thread ID
-pthread_join_ret - probe for pthread_join return
-                 arg1 = thread ID
-                 arg2 = return value
-
-Lock-related Probes
-===================
-mutex_init    - probe for pthread_mutex_init
-              arg1 = address of mutex lock
-mutex_acquired - probe for succ. return of pthread_mutex_lock
-               arg1 = address of mutex lock
-mutex_timedlock_acquired - probe for succ. return of pthread_mutex_timedlock
-                         arg1 = address of mutex lock
-mutex_entry   - probe for entry to the pthread_mutex_lock function
-              arg1 = address of mutex lock
-mutex_timedlock_entry - probe for entry to the pthread_mutex_timedlock function
-                      arg1 = address of mutex lock, arg2 = address of timespec
-mutex_release - probe for pthread_mutex_unlock after the successful release of a
-                mutex lock
-              arg1 = address of mutex lock
-mutex_destroy - probe for pthread_mutex_destroy
-              arg1 = address of mutex lock
-
-wrlock_entry - probe for entry to the pthread_rwlock_wrlock function
-             arg1 = address of rw lock
-rdlock_entry - probe for entry to the pthread_rwlock_rdlock function
-             arg1 = address of rw lock
-
-rwlock_destroy - probe for pthread_rwlock_destroy
-               arg1 = address of rw lock
-wrlock_acquire_write - probe for pthread_rwlock_wrlock (after getting the lock)
-                     arg1 = address of rw lock
-rdlock_acquire_read - probe for pthread_rwlock_rdlock after successfully getting
-                      the lock
-                    arg1 = address of rw lock
-rwlock_unlock - probe for pthread_rwlock_unlock
-              arg1 = address of rw lock
-
-Condition variable Probes
-=========================
-cond_init - probe for pthread_cond_init
-          arg1 = condition
-          arg2 = attr
-cond_destroy - probe for pthread_cond_destroy
-             arg1 = cond
-cond_wait - probe for pthread_cond_wait
-          arg1 = condition
-          arg2 = mutex lock
-cond_timedwait - probe for pthread_cond_timedwait
-               arg1 = condition
-               arg2 = mutex lock
-               arg3 = timespec
-cond_signal - probe for pthread_cond_signal
-            arg1 = condition
-cond_broadcast - probe for pthread_cond_broadcast
-               arg1 = condition
diff --git a/nptl/Makefile b/nptl/Makefile
deleted file mode 100644
index 853da72e74..0000000000
--- a/nptl/Makefile
+++ /dev/null
@@ -1,722 +0,0 @@
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-#
-#	Sub-makefile for NPTL portion of the library.
-#
-subdir	:= nptl
-
-include ../Makeconfig
-
-headers := pthread.h semaphore.h bits/semaphore.h
-
-extra-libs := libpthread
-extra-libs-others := $(extra-libs)
-install-lib-ldscripts := libpthread.so
-
-routines = alloca_cutoff forward libc-lowlevellock libc-cancellation \
-	   libc-cleanup libc_pthread_init libc_multiple_threads \
-	   register-atfork unregister-atfork
-shared-only-routines = forward
-
-# We need to provide certain routines for compatibility with existing
-# binaries.
-pthread-compat-wrappers = \
-		      write read close fcntl accept \
-		      connect recv recvfrom send \
-		      sendto fsync lseek lseek64 \
-		      msync nanosleep open open64 pause \
-		      pread pread64 pwrite pwrite64 \
-		      tcdrain wait waitpid msgrcv msgsnd \
-		      sigwait sigsuspend \
-		      recvmsg sendmsg
-
-libpthread-routines = nptl-init vars events version pt-interp \
-		      pthread_create pthread_exit pthread_detach \
-		      pthread_join pthread_tryjoin pthread_timedjoin \
-		      pthread_self pthread_equal pthread_yield \
-		      pthread_getconcurrency pthread_setconcurrency \
-		      pthread_getschedparam pthread_setschedparam \
-		      pthread_setschedprio \
-		      pthread_attr_init pthread_attr_destroy \
-		      pthread_attr_getdetachstate pthread_attr_setdetachstate \
-		      pthread_attr_getguardsize pthread_attr_setguardsize \
-		      pthread_attr_getschedparam pthread_attr_setschedparam \
-		      pthread_attr_getschedpolicy pthread_attr_setschedpolicy \
-		      pthread_attr_getinheritsched \
-		      pthread_attr_setinheritsched \
-		      pthread_attr_getscope pthread_attr_setscope \
-		      pthread_attr_getstackaddr pthread_attr_setstackaddr \
-		      pthread_attr_getstacksize pthread_attr_setstacksize \
-		      pthread_attr_getstack pthread_attr_setstack \
-		      pthread_getattr_np \
-		      pthread_mutex_init pthread_mutex_destroy \
-		      pthread_mutex_lock pthread_mutex_trylock \
-		      pthread_mutex_timedlock pthread_mutex_unlock \
-		      pthread_mutex_cond_lock \
-		      pthread_mutexattr_init pthread_mutexattr_destroy \
-		      pthread_mutexattr_getpshared \
-		      pthread_mutexattr_setpshared \
-		      pthread_mutexattr_gettype pthread_mutexattr_settype \
-		      pthread_rwlock_init pthread_rwlock_destroy \
-		      pthread_rwlock_rdlock pthread_rwlock_timedrdlock \
-		      pthread_rwlock_wrlock pthread_rwlock_timedwrlock \
-		      pthread_rwlock_tryrdlock pthread_rwlock_trywrlock \
-		      pthread_rwlock_unlock \
-		      pthread_rwlockattr_init pthread_rwlockattr_destroy \
-		      pthread_rwlockattr_getpshared \
-		      pthread_rwlockattr_setpshared \
-		      pthread_rwlockattr_getkind_np \
-		      pthread_rwlockattr_setkind_np \
-		      pthread_cond_init pthread_cond_destroy \
-		      pthread_cond_wait \
-		      pthread_cond_signal pthread_cond_broadcast \
-		      old_pthread_cond_init old_pthread_cond_destroy \
-		      old_pthread_cond_wait old_pthread_cond_timedwait \
-		      old_pthread_cond_signal old_pthread_cond_broadcast \
-		      pthread_condattr_init pthread_condattr_destroy \
-		      pthread_condattr_getpshared pthread_condattr_setpshared \
-		      pthread_condattr_getclock pthread_condattr_setclock \
-		      pthread_spin_init pthread_spin_destroy \
-		      pthread_spin_lock pthread_spin_trylock \
-		      pthread_spin_unlock \
-		      pthread_barrier_init pthread_barrier_destroy \
-		      pthread_barrier_wait \
-		      pthread_barrierattr_init pthread_barrierattr_destroy \
-		      pthread_barrierattr_getpshared \
-		      pthread_barrierattr_setpshared \
-		      pthread_key_create pthread_key_delete \
-		      pthread_getspecific pthread_setspecific \
-		      pthread_sigmask pthread_kill pthread_sigqueue \
-		      pthread_cancel pthread_testcancel \
-		      pthread_setcancelstate pthread_setcanceltype \
-		      pthread_once \
-		      old_pthread_atfork pthread_atfork \
-		      pthread_getcpuclockid \
-		      pthread_clock_gettime pthread_clock_settime \
-		      shm-directory \
-		      sem_init sem_destroy \
-		      sem_open sem_close sem_unlink \
-		      sem_getvalue \
-		      sem_wait sem_timedwait sem_post \
-		      cleanup cleanup_defer cleanup_compat \
-		      cleanup_defer_compat unwind \
-		      pt-longjmp pt-cleanup\
-		      cancellation \
-		      lowlevellock \
-		      lll_timedlock_wait lll_timedwait_tid \
-		      pt-fork pt-vfork \
-		      $(pthread-compat-wrappers) \
-		      pt-raise pt-system \
-		      flockfile ftrylockfile funlockfile \
-		      sigaction \
-		      herrno res pt-allocrtsig \
-		      pthread_kill_other_threads \
-		      pthread_getaffinity pthread_setaffinity \
-		      pthread_attr_getaffinity pthread_attr_setaffinity \
-		      pthread_mutexattr_getrobust pthread_mutexattr_setrobust \
-		      pthread_mutex_consistent \
-		      cleanup_routine unwind-forcedunwind \
-		      pthread_mutexattr_getprotocol \
-		      pthread_mutexattr_setprotocol \
-		      pthread_mutexattr_getprioceiling \
-		      pthread_mutexattr_setprioceiling tpp \
-		      pthread_mutex_getprioceiling \
-		      pthread_mutex_setprioceiling \
-		      pthread_setname pthread_getname \
-		      pthread_setattr_default_np pthread_getattr_default_np
-#		      pthread_setuid pthread_seteuid pthread_setreuid \
-#		      pthread_setresuid \
-#		      pthread_setgid pthread_setegid pthread_setregid \
-#		      pthread_setresgid
-
-libpthread-shared-only-routines = version pt-interp pt-allocrtsig \
-				  unwind-forcedunwind
-libpthread-static-only-routines = pthread_atfork
-
-# Since cancellation handling is in large parts handled using exceptions
-# we have to compile some files with exception handling enabled, some
-# even with asynchronous unwind tables.
-
-# nptl-init.c contains sigcancel_handler().
-CFLAGS-nptl-init.c = -fexceptions -fasynchronous-unwind-tables
-# The unwind code itself,
-CFLAGS-unwind.c = -fexceptions
-CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables
-
-# The following three functions must be async-cancel safe.
-CFLAGS-pthread_cancel.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pthread_setcancelstate.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pthread_setcanceltype.c = -fexceptions -fasynchronous-unwind-tables
-
-# These are internal functions which similar functionality as setcancelstate
-# and setcanceltype.
-CFLAGS-cancellation.c = -fasynchronous-unwind-tables
-CFLAGS-libc-cancellation.c = -fasynchronous-unwind-tables
-
-# Calling pthread_exit() must cause the registered cancel handlers to
-# be executed.  Therefore exceptions have to be thrown through this
-# function.
-CFLAGS-pthread_exit.c = -fexceptions
-
-# Among others, __pthread_unwind is forwarded.  This function must handle
-# exceptions.
-CFLAGS-forward.c = -fexceptions
-
-# The following are cancellation points.  Some of the functions can
-# block and therefore temporarily enable asynchronous cancellation.
-# Those must be compiled asynchronous unwind tables.
-CFLAGS-pthread_testcancel.c = -fexceptions
-CFLAGS-pthread_join.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pthread_timedjoin.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pthread_once.c = $(uses-callbacks) -fexceptions \
-			-fasynchronous-unwind-tables
-CFLAGS-pthread_cond_wait.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-sem_wait.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-sem_timedwait.c = -fexceptions -fasynchronous-unwind-tables
-
-# These are the function wrappers we have to duplicate here.
-CFLAGS-fcntl.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-lockf.c = -fexceptions
-CFLAGS-pread.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pread64.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pwrite.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pwrite64.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-wait.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-waitpid.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-sigwait.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-msgrcv.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-msgsnd.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-tcdrain.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-open.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-open64.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-pause.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-recv.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-send.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-accept.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-sendto.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-connect.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-recvfrom.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-recvmsg.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-sendmsg.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-close.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-read.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-write.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-nanosleep.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-sigsuspend.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-msync.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-fdatasync.c = -fexceptions -fasynchronous-unwind-tables
-CFLAGS-fsync.c = -fexceptions -fasynchronous-unwind-tables
-
-CFLAGS-pt-system.c = -fexceptions
-
-LDLIBS-tst-once5 = -lstdc++
-CFLAGS-tst-thread_local1.o = -std=gnu++11
-LDLIBS-tst-thread_local1 = -lstdc++
-
-tests = tst-attr1 tst-attr2 tst-attr3 tst-default-attr \
-	tst-mutex1 tst-mutex2 tst-mutex3 tst-mutex4 tst-mutex5 tst-mutex6 \
-	tst-mutex7 tst-mutex9 tst-mutex5a tst-mutex7a \
-	tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 tst-mutexpi5 \
-	tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a \
-	tst-mutexpi9 \
-	tst-spin1 tst-spin2 tst-spin3 tst-spin4 \
-	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-cond22 tst-cond23 tst-cond24 tst-cond25 \
-	tst-cond-except \
-	tst-robust1 tst-robust2 tst-robust3 tst-robust4 tst-robust5 \
-	tst-robust6 tst-robust7 tst-robust8 tst-robust9 \
-	tst-robustpi1 tst-robustpi2 tst-robustpi3 tst-robustpi4 tst-robustpi5 \
-	tst-robustpi6 tst-robustpi7 tst-robustpi8 tst-robustpi9 \
-	tst-rwlock1 tst-rwlock2 tst-rwlock2a tst-rwlock2b tst-rwlock3 \
-	tst-rwlock4 tst-rwlock5 tst-rwlock6 tst-rwlock7 tst-rwlock8 \
-	tst-rwlock9 tst-rwlock10 tst-rwlock11 tst-rwlock12 tst-rwlock13 \
-	tst-rwlock14 tst-rwlock15 tst-rwlock16 tst-rwlock17 tst-rwlock18 \
-	tst-once1 tst-once2 tst-once3 tst-once4 tst-once5 \
-	tst-key1 tst-key2 tst-key3 tst-key4 \
-	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-barrier1 tst-barrier2 tst-barrier3 tst-barrier4 \
-	tst-align tst-align3 \
-	tst-basic1 tst-basic2 tst-basic3 tst-basic4 tst-basic5 tst-basic6 \
-	tst-basic7 \
-	tst-kill1 tst-kill2 tst-kill3 tst-kill4 tst-kill5 tst-kill6 \
-	tst-raise1 \
-	tst-join1 tst-join2 tst-join3 tst-join4 tst-join5 tst-join6 tst-join7 \
-	tst-detach1 \
-	tst-eintr1 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-cancel25 \
-	tst-cancel26 tst-cancel27 \
-	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-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-pthread-getattr \
-	tst-pthread-attr-affinity tst-pthread-mutexattr \
-	tst-unload \
-	tst-dlsym1 \
-	tst-sysconf \
-	tst-locale1 tst-locale2 \
-	tst-umask1 \
-	tst-popen1 \
-	tst-clock1 \
-	tst-context1 \
-	tst-sched1 \
-	tst-backtrace1 \
-	tst-abstime \
-	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-mutex-errorcheck tst-robust10 \
-	tst-robust-fork tst-create-detached
-
-tests-internal := tst-typesizes tst-rwlock19 tst-sem11 tst-sem12 tst-sem13 \
-		  tst-barrier5 tst-signal7 tst-mutex8 tst-mutex8-static \
-		  tst-mutexpi8 tst-mutexpi8-static
-
-xtests = tst-setuid1 tst-setuid1-static tst-setuid2 \
-	tst-mutexpp1 tst-mutexpp6 tst-mutexpp10
-test-srcs = tst-oddstacklimit
-
-# Test expected to fail on most targets (except x86_64) due to bug
-# 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 = pthread-errnos.sym \
-		       unwindbuf.sym \
-		       pthread-pi-defines.sym
-
-gen-py-const-headers := nptl_lock_constants.pysym
-pretty-printers := nptl-printers.py
-tests-printers := test-mutexattr-printers test-mutex-printers \
-		  test-condattr-printers test-cond-printers \
-		  test-rwlockattr-printers test-rwlock-printers
-
-# We must specify both CFLAGS and CPPFLAGS to override any
-# compiler options the user might have provided that conflict
-# with what we need e.g. user specifies CPPFLAGS with -O2 and
-# we need -O0.
-CFLAGS-test-mutexattr-printers.c := $(CFLAGS-printers-tests)
-CFLAGS-test-mutex-printers.c := $(CFLAGS-printers-tests)
-CFLAGS-test-condattr-printers.c := $(CFLAGS-printers-tests)
-CFLAGS-test-cond-printers.c := $(CFLAGS-printers-tests)
-CFLAGS-test-rwlockattr-printers.c := $(CFLAGS-printers-tests)
-CFLAGS-test-rwlock-printers.c := $(CFLAGS-printers-tests)
-CPPFLAGS-test-mutexattr-printers.c := $(CFLAGS-printers-tests)
-CPPFLAGS-test-mutex-printers.c := $(CFLAGS-printers-tests)
-CPPFLAGS-test-condattr-printers.c := $(CFLAGS-printers-tests)
-CPPFLAGS-test-cond-printers.c := $(CFLAGS-printers-tests)
-CPPFLAGS-test-rwlockattr-printers.c := $(CFLAGS-printers-tests)
-CPPFLAGS-test-rwlock-printers.c := $(CFLAGS-printers-tests)
-
-ifeq ($(build-shared),yes)
-tests-printers-libs := $(shared-thread-library)
-else
-tests-printers-libs := $(static-thread-library)
-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-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 \
-	 tst-oncex3 tst-oncex4
-ifeq ($(build-shared),yes)
-tests += tst-atfork2 tst-tls4 tst-_res1 tst-fini1
-tests-internal += tst-tls3 tst-tls3-malloc tst-tls5 tst-stackguard1
-tests-nolibpthread += tst-fini1
-ifeq ($(have-z-execstack),yes)
-tests += tst-execstack
-endif
-endif
-
-modules-names = tst-atfork2mod tst-tls3mod tst-tls4moda tst-tls4modb \
-		tst-tls5mod tst-tls5moda tst-tls5modb tst-tls5modc \
-		tst-tls5modd tst-tls5mode tst-tls5modf tst-stack4mod \
-		tst-_res1mod1 tst-_res1mod2 tst-execstack-mod tst-fini1mod \
-		tst-join7mod
-extra-test-objs += $(addsuffix .os,$(strip $(modules-names))) \
-		   tst-cleanup4aux.o tst-cleanupx4aux.o
-test-extras += tst-cleanup4aux tst-cleanupx4aux
-test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(modules-names)))
-
-tst-atfork2mod.so-no-z-defs = yes
-tst-tls3mod.so-no-z-defs = yes
-tst-tls5mod.so-no-z-defs = yes
-tst-tls5moda.so-no-z-defs = yes
-tst-tls5modb.so-no-z-defs = yes
-tst-tls5modc.so-no-z-defs = yes
-tst-tls5modd.so-no-z-defs = yes
-tst-tls5mode.so-no-z-defs = yes
-tst-tls5modf.so-no-z-defs = yes
-
-ifeq ($(build-shared),yes)
-# Build all the modules even when not actually running test programs.
-tests: $(test-modules)
-endif
-
-ifeq ($(build-shared),yes)
-
-# Set the `multidir' variable by grabbing the variable from the compiler.
-# We do it once and save the result in a generated makefile.
--include $(objpfx)multidir.mk
-$(objpfx)multidir.mk: $(common-objpfx)config.make
-	$(make-target-directory)
-	dir=`$(CC) $(CFLAGS) $(CPPFLAGS) -print-multi-directory`; \
-	echo "multidir := $$dir" > $@T
-	mv -f $@T $@
-
-crti-objs := crti.o
-crtn-objs := crtn.o
-ifneq (,$(patsubst .,,$(multidir)))
-generated-dirs += $(firstword $(subst /, , $(multidir)))
-crti-objs += $(multidir)/crti.o
-crtn-objs += $(multidir)/crtn.o
-$(objpfx)$(multidir):
-	mkdir -p $@
-endif
-extra-objs += $(crti-objs) $(crtn-objs)
-extra-objs += pt-crti.o
-endif
-
-CFLAGS-flockfile.c = $(libio-mtsafe)
-CFLAGS-ftrylockfile.c = $(libio-mtsafe)
-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 \
-		tst-cancel21-static tst-cancel24-static tst-cond8-static \
-		tst-mutex8-static tst-mutexpi8-static tst-sem11-static \
-		tst-sem12-static
-tests += tst-cancel21-static tst-cancel24-static \
-	 tst-cond8-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
-
-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 \
-		 $(objpfx)tst-cancel-wrappers.out
-endif
-endif
-
-ifeq (,$(CXX))
-# These tests require a C++ compiler and runtime.
-tests-unsupported += tst-cancel24 tst-cancel24-static tst-once5
-endif
-# These tests require a C++ compiler and runtime with thread_local support.
-ifneq ($(have-cxx-thread_local),yes)
-tests-unsupported += tst-thread_local1
-endif
-
-include ../Rules
-
-ifeq (yes,$(build-shared))
-# Make sure these things are built in the `make lib' pass so they can be used
-# to run programs during the `make others' pass.
-lib-noranlib: $(addprefix $(objpfx),$(extra-objs))
-
-# What we install as libpthread.so for programs to link against is in fact a
-# link script.  It contains references for the various libraries we need.
-# The libpthread.so object is not complete since some functions are only
-# defined in libpthread_nonshared.a.
-# We need to use absolute paths since otherwise local copies (if they exist)
-# of the files are taken by the linker.
-install: $(inst_libdir)/libpthread.so
-
-$(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \
-			      $(objpfx)libpthread.so$(libpthread.so-version) \
-			      $(inst_libdir)/$(patsubst %,$(libtype.oS),\
-							$(libprefix)pthread) \
-			      $(+force)
-	(echo '/* GNU ld script';\
-	 echo '   Use the shared library, but some functions are only in';\
-	 echo '   the static library, so try that secondarily.  */';\
-	 cat $<; \
-	 echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \
-	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\
-	      ')' \
-	) > $@.new
-	mv -f $@.new $@
-endif
-
-
-# 'pthread_self' is a simple memory or register load.  Setting up the
-# stack frame is more work than the actual operation.  Disable the
-# frame creation entirely.  This will help applications which call the
-# function frequently to get a thread-specific handle.
-CFLAGS-pthread_self.os += -fomit-frame-pointer
-
-# 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-oncex3.c += -fexceptions
-CFLAGS-tst-oncex4.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=%,$<)
-CFLAGS-tst-initializers1-c89.c = $(CFLAGS-tst-initializers1-<)
-CFLAGS-tst-initializers1-c99.c = $(CFLAGS-tst-initializers1-<)
-CFLAGS-tst-initializers1-c11.c = $(CFLAGS-tst-initializers1-<)
-CFLAGS-tst-initializers1-gnu89.c = $(CFLAGS-tst-initializers1-<)
-CFLAGS-tst-initializers1-gnu99.c = $(CFLAGS-tst-initializers1-<)
-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
-tst-atfork2-ENV = MALLOC_TRACE=$(objpfx)tst-atfork2.mtrace
-$(objpfx)tst-atfork2mod.so: $(shared-thread-library)
-
-tst-stack3-ENV = MALLOC_TRACE=$(objpfx)tst-stack3.mtrace
-$(objpfx)tst-stack3-mem.out: $(objpfx)tst-stack3.out
-	$(common-objpfx)malloc/mtrace $(objpfx)tst-stack3.mtrace > $@; \
-	$(evaluate-test)
-generated += tst-stack3-mem.out tst-stack3.mtrace
-
-$(objpfx)tst-stack4: $(libdl) $(shared-thread-library)
-tst-stack4mod.sos=$(shell for i in 0 1 2 3 4 5 6 7 8 9 10 \
-				   11 12 13 14 15 16 17 18 19; do \
-			    for j in 0 1 2 3 4 5 6 7 8 9 10 \
-				     11 12 13 14 15 16 17 18 19; do \
-			      echo $(objpfx)tst-stack4mod-$$i-$$j.so; \
-			    done; done)
-$(objpfx)tst-stack4.out: $(tst-stack4mod.sos)
-$(tst-stack4mod.sos): $(objpfx)tst-stack4mod.so
-	cp -f $< $@
-clean:
-	rm -f $(tst-stack4mod.sos)
-
-$(objpfx)tst-cleanup4: $(objpfx)tst-cleanup4aux.o $(shared-thread-library)
-$(objpfx)tst-cleanupx4: $(objpfx)tst-cleanupx4aux.o $(shared-thread-library)
-
-$(objpfx)tst-tls3: $(libdl) $(shared-thread-library)
-LDFLAGS-tst-tls3 = -rdynamic
-$(objpfx)tst-tls3.out: $(objpfx)tst-tls3mod.so
-$(objpfx)tst-tls3mod.so: $(shared-thread-library)
-
-$(objpfx)tst-tls3-malloc: $(libdl) $(shared-thread-library)
-LDFLAGS-tst-tls3-malloc = -rdynamic
-$(objpfx)tst-tls3-malloc.out: $(objpfx)tst-tls3mod.so
-
-$(objpfx)tst-tls4: $(libdl) $(shared-thread-library)
-$(objpfx)tst-tls4.out: $(objpfx)tst-tls4moda.so $(objpfx)tst-tls4modb.so
-
-$(objpfx)tst-tls5: $(objpfx)tst-tls5mod.so $(shared-thread-library)
-LDFLAGS-tst-tls5 = $(no-as-needed)
-LDFLAGS-tst-tls5mod.so = -Wl,-soname,tst-tls5mod.so
-
-ifeq ($(build-shared),yes)
-$(objpfx)tst-tls6.out: tst-tls6.sh $(objpfx)tst-tls5 \
-		       $(objpfx)tst-tls5moda.so $(objpfx)tst-tls5modb.so \
-		       $(objpfx)tst-tls5modc.so $(objpfx)tst-tls5modd.so \
-		       $(objpfx)tst-tls5mode.so $(objpfx)tst-tls5modf.so
-	$(BASH) $< $(common-objpfx) '$(test-via-rtld-prefix)' \
-	  '$(test-wrapper-env)' '$(run-program-env)'; \
-	$(evaluate-test)
-endif
-
-$(objpfx)tst-join7: $(libdl) $(shared-thread-library)
-$(objpfx)tst-join7.out: $(objpfx)tst-join7mod.so
-$(objpfx)tst-join7mod.so: $(shared-thread-library)
-LDFLAGS-tst-join7mod.so = -Wl,-soname,tst-join7mod.so
-
-$(objpfx)tst-dlsym1: $(libdl) $(shared-thread-library)
-
-$(objpfx)tst-fini1: $(shared-thread-library) $(objpfx)tst-fini1mod.so
-
-ifeq (yes,$(build-shared))
-librt = $(common-objpfx)rt/librt.so
-else
-librt = $(common-objpfx)rt/librt.a
-endif
-
-$(objpfx)tst-cancel17: $(librt)
-$(objpfx)tst-cancelx17: $(librt)
-$(objpfx)tst-_res1mod2.so: $(objpfx)tst-_res1mod1.so
-LDFLAGS-tst-_res1mod1.so = -Wl,-soname,tst-_res1mod1.so
-LDFLAGS-tst-_res1mod2.so = -Wl,-soname,tst-_res1mod2.so
-$(objpfx)tst-_res1: $(objpfx)tst-_res1mod1.so $(objpfx)tst-_res1mod2.so \
-		    $(shared-thread-library)
-
-LDLIBS-tst-cancel24 = $(no-as-needed) -lstdc++
-LDLIBS-tst-cancel24-static = $(LDLIBS-tst-cancel24)
-
-extra-B-pthread.so = -B$(common-objpfx)nptl/
-$(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))): \
-	$(objpfx)libpthread.so \
-	$(objpfx)libpthread_nonshared.a
-$(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)libpthread_nonshared.a
-$(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 $< $@
-
-ifneq ($(multidir),.)
-$(objpfx)$(multidir)/crti.o: $(objpfx)crti.o $(objpfx)$(multidir)/
-	ln -f $< $@
-
-$(objpfx)$(multidir)/crtn.o: $(objpfx)crtn.o $(objpfx)$(multidir)/
-	ln -f $< $@
-endif
-
-generated += libpthread_nonshared.a \
-	     multidir.mk tst-atfork2.mtrace tst-cancel-wrappers.out \
-	     tst-tls6.out
-
-generated += $(objpfx)tst-atfork2.mtrace \
-	     $(addsuffix .so,$(strip $(modules-names)))
-
-$(objpfx)version.d: $(objpfx)banner.h
-$(objpfx)version.os: $(objpfx)banner.h
-$(objpfx)banner.h: Banner
-	sed 's/\(.*\)/"\1\\n"/' $< > $@
-generated += banner.h
-# Give libpthread.so an entry point and make it directly runnable itself.
-LDFLAGS-pthread.so += -e __nptl_main
-# pt-interp.c exists just to get the runtime linker path into libpthread.so.
-$(objpfx)pt-interp.os: $(common-objpfx)runtime-linker.h
-endif
-
-ifeq ($(run-built-tests),yes)
-ifeq (yes,$(build-shared))
-$(objpfx)tst-cancel-wrappers.out: tst-cancel-wrappers.sh
-	$(SHELL) $< '$(NM)' \
-		    $(common-objpfx)libc_pic.a \
-		    $(common-objpfx)libc.a \
-		    $(objpfx)libpthread_pic.a \
-		    $(objpfx)libpthread.a > $@; \
-	$(evaluate-test)
-endif
-endif
-
-tst-exec4-ARGS = $(host-test-program-cmd)
-
-$(objpfx)tst-execstack: $(libdl)
-$(objpfx)tst-execstack.out: $(objpfx)tst-execstack-mod.so
-LDFLAGS-tst-execstack = -Wl,-z,noexecstack
-CFLAGS-tst-execstack-mod.c += -Wno-trampolines
-
-$(objpfx)tst-fini1mod.so: $(shared-thread-library)
-
-tst-stackguard1-ARGS = --command "$(host-test-program-cmd) --child"
-tst-stackguard1-static-ARGS = --command "$(objpfx)tst-stackguard1-static --child"
-
-ifeq ($(run-built-tests),yes)
-$(objpfx)tst-oddstacklimit.out: $(objpfx)tst-oddstacklimit $(objpfx)tst-basic1
-	$(test-program-prefix) $< --command '$(host-test-program-cmd)' > $@; \
-	$(evaluate-test)
-endif
-
-# The tests here better do not run in parallel
-ifneq ($(filter %tests,$(MAKECMDGOALS)),)
-.NOTPARALLEL:
-endif
diff --git a/nptl/TODO b/nptl/TODO
deleted file mode 100644
index 70b8fe4f76..0000000000
--- a/nptl/TODO
+++ /dev/null
@@ -1,31 +0,0 @@
-- we should probably extend pthread_mutexattr_t with a field to create a
-  single linked list of all instances.  This requires changing the
-  pthread_mutexattr_* functions.
-
-
-- a new attribute for mutexes: number of times we spin before calling
-sys_futex
-
-- for adaptive mutexes: when releasing, determine whether somebody spins.
-If yes, for a short time release lock.  If someone else locks no wakeup
-syscall needed.
-
-
-
-- test with threaded process terminating and semadj (?) being applied
-  only after all threads are gone
-
-
-
-- semaphore changes:
-
-  - sem_post should only wake one thread and only when the state of
-    the semaphore changed from 0 to 1
-
-    this also requires that sem_wait and sem_timedwait don't drop the
-    post if they get canceled.
-
-  - possibly add counter field.  This requires reviving the
-    differences between old and new semaphose funtions.  The old ones
-    stay as they are now.  The new once can use an additional field
-    wich is the counter for the number of waiters
diff --git a/nptl/TODO-kernel b/nptl/TODO-kernel
deleted file mode 100644
index ad6d2a4b51..0000000000
--- a/nptl/TODO-kernel
+++ /dev/null
@@ -1,20 +0,0 @@
-- setuid/setgid must effect process
-  + test syscalls (getuid) afterwards
-  + test core file content
-
-  + use UID/GID in access(2), chmod(2), chown(2), link(2)
-
-- nice level is process property
-
-- rlimit should be process-wide and SIGXCPU should be sent if all threads
-  together exceed the limit
-
-- getrusage() must return resource utilization for the process
-
-
-
-The following are possible optimizations and in no way required:
-
-
-- the scheduler should be thread group-aware, i.e., it has to give time to
-  the thread group not proportional to the number of threads.
diff --git a/nptl/TODO-testing b/nptl/TODO-testing
deleted file mode 100644
index e076e5624f..0000000000
--- a/nptl/TODO-testing
+++ /dev/null
@@ -1,20 +0,0 @@
-pthread_attr_setguardsize
-
-  test effectiveness
-
-pthread_attr_[sg]etschedparam
-
-  what to test?
-
-pthread_attr_[sg]etstack
-
-  some more tests needed
-
-pthread_getcpuclockid
-
-  check that value is reset -> rt subdir
-
-pthread_getschedparam
-pthread_setschedparam
-
-  what to test?
diff --git a/nptl/Versions b/nptl/Versions
deleted file mode 100644
index 0ae5def464..0000000000
--- a/nptl/Versions
+++ /dev/null
@@ -1,275 +0,0 @@
-libc {
-  GLIBC_2.0 {
-    pthread_attr_destroy; pthread_attr_init;
-    pthread_attr_getdetachstate; pthread_attr_setdetachstate;
-    pthread_attr_getinheritsched; pthread_attr_setinheritsched;
-    pthread_attr_getschedparam; pthread_attr_setschedparam;
-    pthread_attr_getschedpolicy;  pthread_attr_setschedpolicy;
-    pthread_attr_getscope; pthread_attr_setscope;
-    pthread_condattr_destroy; pthread_condattr_init;
-    pthread_cond_broadcast; pthread_cond_destroy;
-    pthread_cond_init; pthread_cond_signal; pthread_cond_wait;
-    pthread_cond_timedwait;
-    pthread_equal; pthread_exit;
-    pthread_getschedparam; pthread_setschedparam;
-    pthread_mutex_destroy; pthread_mutex_init;
-    pthread_mutex_lock; pthread_mutex_unlock;
-    pthread_self;
-    pthread_setcancelstate; pthread_setcanceltype;
-  }
-  GLIBC_2.1 {
-    pthread_attr_init;
-  }
-  GLIBC_2.3.2 {
-    __register_atfork;
-
-    # Changed pthread_cond_t.
-    pthread_cond_init; pthread_cond_destroy;
-    pthread_cond_wait; pthread_cond_signal;
-    pthread_cond_broadcast; pthread_cond_timedwait;
-  }
-  GLIBC_PRIVATE {
-    __libc_alloca_cutoff;
-    # Internal libc interface to libpthread
-    __libc_dl_error_tsd;
-    __libc_vfork;
-    __libc_pthread_init;
-    __libc_current_sigrtmin_private; __libc_current_sigrtmax_private;
-    __libc_allocate_rtsig_private;
-  }
-}
-
-libpthread {
-  GLIBC_2.0 {
-    pthread_create; pthread_join; pthread_self; pthread_equal;
-    pthread_exit; pthread_detach;
-
-    pthread_getschedparam; pthread_setschedparam;
-
-    pthread_attr_init; pthread_attr_destroy;
-    pthread_attr_getdetachstate; pthread_attr_setdetachstate;
-    pthread_attr_getschedparam; pthread_attr_setschedparam;
-    pthread_attr_getschedpolicy; pthread_attr_setschedpolicy;
-    pthread_attr_getinheritsched; pthread_attr_setinheritsched;
-    pthread_attr_getscope; pthread_attr_setscope;
-
-    pthread_mutex_init; pthread_mutex_destroy;
-    pthread_mutex_lock; pthread_mutex_trylock; pthread_mutex_unlock;
-
-    pthread_mutexattr_init; pthread_mutexattr_destroy;
-
-    pthread_cond_init; pthread_cond_destroy;
-    pthread_cond_wait; pthread_cond_timedwait;
-    pthread_cond_signal; pthread_cond_broadcast;
-
-    pthread_condattr_destroy; pthread_condattr_init;
-
-    pthread_cancel; pthread_testcancel;
-    pthread_setcancelstate; pthread_setcanceltype;
-
-    pthread_sigmask; pthread_kill;
-
-    pthread_key_create; pthread_key_delete;
-    pthread_getspecific; pthread_setspecific;
-
-    pthread_once;
-
-    pthread_atfork;
-
-    flockfile; funlockfile; ftrylockfile;
-
-    # Non-standard POSIX1.x functions.
-    pthread_mutexattr_getkind_np; pthread_mutexattr_setkind_np;
-
-    # Protected names for functions used in other shared objects.
-    __pthread_mutex_init; __pthread_mutex_destroy;
-    __pthread_mutex_lock; __pthread_mutex_trylock; __pthread_mutex_unlock;
-    __pthread_mutexattr_init; __pthread_mutexattr_destroy;
-    __pthread_mutexattr_settype;
-    __pthread_key_create; __pthread_getspecific; __pthread_setspecific;
-    __pthread_once; __pthread_atfork;
-    _IO_flockfile; _IO_ftrylockfile; _IO_funlockfile;
-
-    # Semaphores.
-    sem_destroy; sem_getvalue; sem_init; sem_post; sem_trywait; sem_wait;
-
-    # Special fork handling.
-    fork; __fork; vfork;
-
-    # Cancellation points.
-    close; __close; fcntl; __fcntl; read; __read; write; __write; accept;
-    connect; __connect; recv; recvfrom; recvmsg; send; __send; sendmsg; sendto;
-    fsync; lseek; __lseek; msync; nanosleep; open; __open; pause; tcdrain;
-    system; wait; __wait; waitpid;
-
-    # Hidden entry point (through macros).
-    _pthread_cleanup_push; _pthread_cleanup_pop;
-    _pthread_cleanup_push_defer; _pthread_cleanup_pop_restore;
-
-    pthread_kill_other_threads_np;
-
-    # The error functions.
-    __errno_location; __h_errno_location;
-
-    # Functions which previously have been overwritten.
-    sigwait; sigaction; __sigaction; _exit; _Exit; longjmp; siglongjmp;
-    raise;
-  }
-
-  GLIBC_2.1 {
-    pthread_create;
-    pthread_attr_init;
-
-    pthread_attr_getguardsize; pthread_attr_setguardsize;
-    pthread_attr_getstackaddr; pthread_attr_setstackaddr;
-    pthread_attr_getstacksize; pthread_attr_setstacksize;
-
-    pthread_mutexattr_gettype; pthread_mutexattr_settype;
-
-    pthread_rwlock_init; pthread_rwlock_destroy;
-    pthread_rwlock_rdlock; pthread_rwlock_wrlock; pthread_rwlock_unlock;
-    pthread_rwlock_tryrdlock; pthread_rwlock_trywrlock;
-
-    pthread_rwlockattr_init; pthread_rwlockattr_destroy;
-    pthread_rwlockattr_getpshared; pthread_rwlockattr_setpshared;
-    pthread_rwlockattr_getkind_np; pthread_rwlockattr_setkind_np;
-
-    pthread_getconcurrency; pthread_setconcurrency;
-
-    # Semaphores.
-    sem_destroy; sem_getvalue; sem_init; sem_post; sem_trywait; sem_wait;
-
-    __libc_current_sigrtmin; __libc_current_sigrtmax;
-    __libc_allocate_rtsig;
-  }
-
-  GLIBC_2.1.1 {
-    sem_close; sem_open; sem_unlink;
-  }
-
-  GLIBC_2.1.2 {
-    __vfork;
-  }
-
-  GLIBC_2.2 {
-    pthread_mutexattr_getpshared; pthread_mutexattr_setpshared;
-
-    pthread_condattr_getpshared; pthread_condattr_setpshared;
-
-    # New functions from IEEE Std. 1003.1-2001.
-    pthread_mutex_timedlock;
-
-    pthread_rwlock_timedrdlock; pthread_rwlock_timedwrlock;
-
-    pthread_attr_getstack; pthread_attr_setstack;
-
-    pthread_spin_destroy; pthread_spin_init; pthread_spin_lock;
-    pthread_spin_trylock; pthread_spin_unlock;
-
-    pthread_barrier_init; pthread_barrier_destroy; pthread_barrier_wait;
-    pthread_barrierattr_destroy; pthread_barrierattr_init;
-    pthread_barrierattr_setpshared;
-
-    sem_timedwait;
-
-    pthread_yield;
-
-    pthread_getcpuclockid;
-
-    # Cancellation points.
-    lseek64; open64; __open64; pread; pread64; __pread64; pwrite; pwrite64;
-    __pwrite64;
-
-    # Names used internally.
-    __pthread_rwlock_init; __pthread_rwlock_destroy;
-    __pthread_rwlock_rdlock; __pthread_rwlock_tryrdlock;
-    __pthread_rwlock_wrlock; __pthread_rwlock_trywrlock;
-    __pthread_rwlock_unlock;
-
-    __res_state;
-  }
-
-  GLIBC_2.2.3 {
-    # Extensions.
-    pthread_getattr_np;
-  }
-
-  GLIBC_2.2.6 {
-    # Cancellation wrapper
-    __nanosleep;
-  }
-
-  GLIBC_2.3.2 {
-    # Changed pthread_cond_t.
-    pthread_cond_init; pthread_cond_destroy;
-    pthread_cond_wait; pthread_cond_timedwait;
-    pthread_cond_signal; pthread_cond_broadcast;
-  }
-
-  GLIBC_2.3.3 {
-    # 1003.1-2001 function accidentally left out in 2.2.
-    pthread_barrierattr_getpshared;
-
-    # Unix CS option.
-    pthread_condattr_getclock; pthread_condattr_setclock;
-
-    # Proposed API extensions.
-    pthread_tryjoin_np; pthread_timedjoin_np;
-
-    # New cancellation cleanup handling.
-    __pthread_register_cancel; __pthread_unregister_cancel;
-    __pthread_register_cancel_defer; __pthread_unregister_cancel_restore;
-    __pthread_unwind_next;
-    __pthread_cleanup_routine;
-
-    # affinity interfaces without size parameter
-    pthread_getaffinity_np; pthread_setaffinity_np;
-    pthread_attr_getaffinity_np; pthread_attr_setaffinity_np;
-  }
-
-  GLIBC_2.3.4 {
-    # New affinity interfaces.
-    pthread_getaffinity_np; pthread_setaffinity_np;
-    pthread_attr_getaffinity_np; pthread_attr_setaffinity_np;
-
-    pthread_setschedprio;
-  }
-
-  GLIBC_2.4 {
-    pthread_mutexattr_getrobust_np; pthread_mutexattr_setrobust_np;
-    pthread_mutex_consistent_np;
-    pthread_mutexattr_getprotocol; pthread_mutexattr_setprotocol;
-    pthread_mutexattr_getprioceiling; pthread_mutexattr_setprioceiling;
-    pthread_mutex_getprioceiling; pthread_mutex_setprioceiling;
-  };
-
-  GLIBC_2.11 {
-    pthread_sigqueue;
-  };
-
-  GLIBC_2.12 {
-    pthread_mutex_consistent; pthread_mutexattr_getrobust;
-    pthread_mutexattr_setrobust;
-
-    pthread_setname_np; pthread_getname_np;
-  };
-
-  GLIBC_2.18 {
-    pthread_getattr_default_np;
-    pthread_setattr_default_np;
-  }
-
-  GLIBC_2.20 {
-  }
-
-  GLIBC_2.22 {
-  }
-
-  GLIBC_PRIVATE {
-    __pthread_initialize_minimal;
-    __pthread_clock_gettime; __pthread_clock_settime;
-    __pthread_unwind; __pthread_get_minstack;
-    __pthread_barrier_init; __pthread_barrier_wait;
-    __shm_directory;
-  }
-}
diff --git a/nptl/alloca_cutoff.c b/nptl/alloca_cutoff.c
deleted file mode 100644
index f2ae1a8e85..0000000000
--- a/nptl/alloca_cutoff.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Determine whether block of given size can be allocated on the stack or not.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <alloca.h>
-#include <stdlib.h>
-#include <sys/param.h>
-#include <pthreadP.h>
-
-
-int
-__libc_alloca_cutoff (size_t size)
-{
-  return size <= (MIN (__MAX_ALLOCA_CUTOFF,
-		       THREAD_GETMEM (THREAD_SELF, stackblock_size) / 4
-		       /* The main thread, before the thread library is
-			  initialized, has zero in the stackblock_size
-			  element.  Since it is the main thread we can
-			  assume the maximum available stack space.  */
-		       ?: __MAX_ALLOCA_CUTOFF * 4));
-}
-libc_hidden_def (__libc_alloca_cutoff)
diff --git a/nptl/allocatestack.c b/nptl/allocatestack.c
deleted file mode 100644
index e5c5f79a82..0000000000
--- a/nptl/allocatestack.c
+++ /dev/null
@@ -1,1238 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <signal.h>
-#include <stdint.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/param.h>
-#include <dl-sysdep.h>
-#include <dl-tls.h>
-#include <tls.h>
-#include <list.h>
-#include <lowlevellock.h>
-#include <futex-internal.h>
-#include <kernel-features.h>
-#include <stack-aliasing.h>
-
-
-#ifndef NEED_SEPARATE_REGISTER_STACK
-
-/* Most architectures have exactly one stack pointer.  Some have more.  */
-# define STACK_VARIABLES void *stackaddr = NULL
-
-/* How to pass the values to the 'create_thread' function.  */
-# define STACK_VARIABLES_ARGS stackaddr
-
-/* How to declare function which gets there parameters.  */
-# define STACK_VARIABLES_PARMS void *stackaddr
-
-/* How to declare allocate_stack.  */
-# define ALLOCATE_STACK_PARMS void **stack
-
-/* This is how the function is called.  We do it this way to allow
-   other variants of the function to have more parameters.  */
-# define ALLOCATE_STACK(attr, pd) allocate_stack (attr, pd, &stackaddr)
-
-#else
-
-/* We need two stacks.  The kernel will place them but we have to tell
-   the kernel about the size of the reserved address space.  */
-# define STACK_VARIABLES void *stackaddr = NULL; size_t stacksize = 0
-
-/* How to pass the values to the 'create_thread' function.  */
-# define STACK_VARIABLES_ARGS stackaddr, stacksize
-
-/* How to declare function which gets there parameters.  */
-# define STACK_VARIABLES_PARMS void *stackaddr, size_t stacksize
-
-/* How to declare allocate_stack.  */
-# define ALLOCATE_STACK_PARMS void **stack, size_t *stacksize
-
-/* This is how the function is called.  We do it this way to allow
-   other variants of the function to have more parameters.  */
-# define ALLOCATE_STACK(attr, pd) \
-  allocate_stack (attr, pd, &stackaddr, &stacksize)
-
-#endif
-
-
-/* Default alignment of stack.  */
-#ifndef STACK_ALIGN
-# define STACK_ALIGN __alignof__ (long double)
-#endif
-
-/* Default value for minimal stack size after allocating thread
-   descriptor and guard.  */
-#ifndef MINIMAL_REST_STACK
-# define MINIMAL_REST_STACK	4096
-#endif
-
-
-/* Newer kernels have the MAP_STACK flag to indicate a mapping is used for
-   a stack.  Use it when possible.  */
-#ifndef MAP_STACK
-# define MAP_STACK 0
-#endif
-
-/* This yields the pointer that TLS support code calls the thread pointer.  */
-#if TLS_TCB_AT_TP
-# define TLS_TPADJ(pd) (pd)
-#elif TLS_DTV_AT_TP
-# define TLS_TPADJ(pd) ((struct pthread *)((char *) (pd) + TLS_PRE_TCB_SIZE))
-#endif
-
-/* Cache handling for not-yet free stacks.  */
-
-/* Maximum size in kB of cache.  */
-static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default.  */
-static size_t stack_cache_actsize;
-
-/* Mutex protecting this variable.  */
-static int stack_cache_lock = LLL_LOCK_INITIALIZER;
-
-/* List of queued stack frames.  */
-static LIST_HEAD (stack_cache);
-
-/* List of the stacks in use.  */
-static LIST_HEAD (stack_used);
-
-/* We need to record what list operations we are going to do so that,
-   in case of an asynchronous interruption due to a fork() call, we
-   can correct for the work.  */
-static uintptr_t in_flight_stack;
-
-/* List of the threads with user provided stacks in use.  No need to
-   initialize this, since it's done in __pthread_initialize_minimal.  */
-list_t __stack_user __attribute__ ((nocommon));
-hidden_data_def (__stack_user)
-
-
-/* Check whether the stack is still used or not.  */
-#define FREE_P(descr) ((descr)->tid <= 0)
-
-
-static void
-stack_list_del (list_t *elem)
-{
-  in_flight_stack = (uintptr_t) elem;
-
-  atomic_write_barrier ();
-
-  list_del (elem);
-
-  atomic_write_barrier ();
-
-  in_flight_stack = 0;
-}
-
-
-static void
-stack_list_add (list_t *elem, list_t *list)
-{
-  in_flight_stack = (uintptr_t) elem | 1;
-
-  atomic_write_barrier ();
-
-  list_add (elem, list);
-
-  atomic_write_barrier ();
-
-  in_flight_stack = 0;
-}
-
-
-/* We create a double linked list of all cache entries.  Double linked
-   because this allows removing entries from the end.  */
-
-
-/* Get a stack frame from the cache.  We have to match by size since
-   some blocks might be too small or far too large.  */
-static struct pthread *
-get_cached_stack (size_t *sizep, void **memp)
-{
-  size_t size = *sizep;
-  struct pthread *result = NULL;
-  list_t *entry;
-
-  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-  /* Search the cache for a matching entry.  We search for the
-     smallest stack which has at least the required size.  Note that
-     in normal situations the size of all allocated stacks is the
-     same.  As the very least there are only a few different sizes.
-     Therefore this loop will exit early most of the time with an
-     exact match.  */
-  list_for_each (entry, &stack_cache)
-    {
-      struct pthread *curr;
-
-      curr = list_entry (entry, struct pthread, list);
-      if (FREE_P (curr) && curr->stackblock_size >= size)
-	{
-	  if (curr->stackblock_size == size)
-	    {
-	      result = curr;
-	      break;
-	    }
-
-	  if (result == NULL
-	      || result->stackblock_size > curr->stackblock_size)
-	    result = curr;
-	}
-    }
-
-  if (__builtin_expect (result == NULL, 0)
-      /* Make sure the size difference is not too excessive.  In that
-	 case we do not use the block.  */
-      || __builtin_expect (result->stackblock_size > 4 * size, 0))
-    {
-      /* Release the lock.  */
-      lll_unlock (stack_cache_lock, LLL_PRIVATE);
-
-      return NULL;
-    }
-
-  /* Don't allow setxid until cloned.  */
-  result->setxid_futex = -1;
-
-  /* Dequeue the entry.  */
-  stack_list_del (&result->list);
-
-  /* And add to the list of stacks in use.  */
-  stack_list_add (&result->list, &stack_used);
-
-  /* And decrease the cache size.  */
-  stack_cache_actsize -= result->stackblock_size;
-
-  /* Release the lock early.  */
-  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-
-  /* Report size and location of the stack to the caller.  */
-  *sizep = result->stackblock_size;
-  *memp = result->stackblock;
-
-  /* Cancellation handling is back to the default.  */
-  result->cancelhandling = 0;
-  result->cleanup = NULL;
-
-  /* No pending event.  */
-  result->nextevent = NULL;
-
-  /* Clear the DTV.  */
-  dtv_t *dtv = GET_DTV (TLS_TPADJ (result));
-  for (size_t cnt = 0; cnt < dtv[-1].counter; ++cnt)
-    free (dtv[1 + cnt].pointer.to_free);
-  memset (dtv, '\0', (dtv[-1].counter + 1) * sizeof (dtv_t));
-
-  /* Re-initialize the TLS.  */
-  _dl_allocate_tls_init (TLS_TPADJ (result));
-
-  return result;
-}
-
-
-/* Free stacks until cache size is lower than LIMIT.  */
-void
-__free_stacks (size_t limit)
-{
-  /* We reduce the size of the cache.  Remove the last entries until
-     the size is below the limit.  */
-  list_t *entry;
-  list_t *prev;
-
-  /* Search from the end of the list.  */
-  list_for_each_prev_safe (entry, prev, &stack_cache)
-    {
-      struct pthread *curr;
-
-      curr = list_entry (entry, struct pthread, list);
-      if (FREE_P (curr))
-	{
-	  /* Unlink the block.  */
-	  stack_list_del (entry);
-
-	  /* Account for the freed memory.  */
-	  stack_cache_actsize -= curr->stackblock_size;
-
-	  /* Free the memory associated with the ELF TLS.  */
-	  _dl_deallocate_tls (TLS_TPADJ (curr), false);
-
-	  /* Remove this block.  This should never fail.  If it does
-	     something is really wrong.  */
-	  if (munmap (curr->stackblock, curr->stackblock_size) != 0)
-	    abort ();
-
-	  /* Maybe we have freed enough.  */
-	  if (stack_cache_actsize <= limit)
-	    break;
-	}
-    }
-}
-
-
-/* Add a stack frame which is not used anymore to the stack.  Must be
-   called with the cache lock held.  */
-static inline void
-__attribute ((always_inline))
-queue_stack (struct pthread *stack)
-{
-  /* We unconditionally add the stack to the list.  The memory may
-     still be in use but it will not be reused until the kernel marks
-     the stack as not used anymore.  */
-  stack_list_add (&stack->list, &stack_cache);
-
-  stack_cache_actsize += stack->stackblock_size;
-  if (__glibc_unlikely (stack_cache_actsize > stack_cache_maxsize))
-    __free_stacks (stack_cache_maxsize);
-}
-
-
-static int
-internal_function
-change_stack_perm (struct pthread *pd
-#ifdef NEED_SEPARATE_REGISTER_STACK
-		   , size_t pagemask
-#endif
-		   )
-{
-#ifdef NEED_SEPARATE_REGISTER_STACK
-  void *stack = (pd->stackblock
-		 + (((((pd->stackblock_size - pd->guardsize) / 2)
-		      & pagemask) + pd->guardsize) & pagemask));
-  size_t len = pd->stackblock + pd->stackblock_size - stack;
-#elif _STACK_GROWS_DOWN
-  void *stack = pd->stackblock + pd->guardsize;
-  size_t len = pd->stackblock_size - pd->guardsize;
-#elif _STACK_GROWS_UP
-  void *stack = pd->stackblock;
-  size_t len = (uintptr_t) pd - pd->guardsize - (uintptr_t) pd->stackblock;
-#else
-# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
-#endif
-  if (mprotect (stack, len, PROT_READ | PROT_WRITE | PROT_EXEC) != 0)
-    return errno;
-
-  return 0;
-}
-
-
-/* Returns a usable stack for a new thread either by allocating a
-   new stack or reusing a cached stack of sufficient size.
-   ATTR must be non-NULL and point to a valid pthread_attr.
-   PDP must be non-NULL.  */
-static int
-allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
-		ALLOCATE_STACK_PARMS)
-{
-  struct pthread *pd;
-  size_t size;
-  size_t pagesize_m1 = __getpagesize () - 1;
-
-  assert (powerof2 (pagesize_m1 + 1));
-  assert (TCB_ALIGNMENT >= STACK_ALIGN);
-
-  /* Get the stack size from the attribute if it is set.  Otherwise we
-     use the default we determined at start time.  */
-  if (attr->stacksize != 0)
-    size = attr->stacksize;
-  else
-    {
-      lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
-      size = __default_pthread_attr.stacksize;
-      lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
-    }
-
-  /* Get memory for the stack.  */
-  if (__glibc_unlikely (attr->flags & ATTR_FLAG_STACKADDR))
-    {
-      uintptr_t adj;
-      char *stackaddr = (char *) attr->stackaddr;
-
-      /* Assume the same layout as the _STACK_GROWS_DOWN case, with struct
-	 pthread at the top of the stack block.  Later we adjust the guard
-	 location and stack address to match the _STACK_GROWS_UP case.  */
-      if (_STACK_GROWS_UP)
-	stackaddr += attr->stacksize;
-
-      /* If the user also specified the size of the stack make sure it
-	 is large enough.  */
-      if (attr->stacksize != 0
-	  && attr->stacksize < (__static_tls_size + MINIMAL_REST_STACK))
-	return EINVAL;
-
-      /* Adjust stack size for alignment of the TLS block.  */
-#if TLS_TCB_AT_TP
-      adj = ((uintptr_t) stackaddr - TLS_TCB_SIZE)
-	    & __static_tls_align_m1;
-      assert (size > adj + TLS_TCB_SIZE);
-#elif TLS_DTV_AT_TP
-      adj = ((uintptr_t) stackaddr - __static_tls_size)
-	    & __static_tls_align_m1;
-      assert (size > adj);
-#endif
-
-      /* The user provided some memory.  Let's hope it matches the
-	 size...  We do not allocate guard pages if the user provided
-	 the stack.  It is the user's responsibility to do this if it
-	 is wanted.  */
-#if TLS_TCB_AT_TP
-      pd = (struct pthread *) ((uintptr_t) stackaddr
-			       - TLS_TCB_SIZE - adj);
-#elif TLS_DTV_AT_TP
-      pd = (struct pthread *) (((uintptr_t) stackaddr
-				- __static_tls_size - adj)
-			       - TLS_PRE_TCB_SIZE);
-#endif
-
-      /* The user provided stack memory needs to be cleared.  */
-      memset (pd, '\0', sizeof (struct pthread));
-
-      /* The first TSD block is included in the TCB.  */
-      pd->specific[0] = pd->specific_1stblock;
-
-      /* Remember the stack-related values.  */
-      pd->stackblock = (char *) stackaddr - size;
-      pd->stackblock_size = size;
-
-      /* This is a user-provided stack.  It will not be queued in the
-	 stack cache nor will the memory (except the TLS memory) be freed.  */
-      pd->user_stack = true;
-
-      /* This is at least the second thread.  */
-      pd->header.multiple_threads = 1;
-#ifndef TLS_MULTIPLE_THREADS_IN_TCB
-      __pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
-#endif
-
-#ifndef __ASSUME_PRIVATE_FUTEX
-      /* The thread must know when private futexes are supported.  */
-      pd->header.private_futex = THREAD_GETMEM (THREAD_SELF,
-						header.private_futex);
-#endif
-
-#ifdef NEED_DL_SYSINFO
-      SETUP_THREAD_SYSINFO (pd);
-#endif
-
-      /* Don't allow setxid until cloned.  */
-      pd->setxid_futex = -1;
-
-      /* Allocate the DTV for this thread.  */
-      if (_dl_allocate_tls (TLS_TPADJ (pd)) == NULL)
-	{
-	  /* Something went wrong.  */
-	  assert (errno == ENOMEM);
-	  return errno;
-	}
-
-
-      /* Prepare to modify global data.  */
-      lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-      /* And add to the list of stacks in use.  */
-      list_add (&pd->list, &__stack_user);
-
-      lll_unlock (stack_cache_lock, LLL_PRIVATE);
-    }
-  else
-    {
-      /* Allocate some anonymous memory.  If possible use the cache.  */
-      size_t guardsize;
-      size_t reqsize;
-      void *mem;
-      const int prot = (PROT_READ | PROT_WRITE
-			| ((GL(dl_stack_flags) & PF_X) ? PROT_EXEC : 0));
-
-      /* Adjust the stack size for alignment.  */
-      size &= ~__static_tls_align_m1;
-      assert (size != 0);
-
-      /* Make sure the size of the stack is enough for the guard and
-	 eventually the thread descriptor.  */
-      guardsize = (attr->guardsize + pagesize_m1) & ~pagesize_m1;
-      if (__builtin_expect (size < ((guardsize + __static_tls_size
-				     + MINIMAL_REST_STACK + pagesize_m1)
-				    & ~pagesize_m1),
-			    0))
-	/* The stack is too small (or the guard too large).  */
-	return EINVAL;
-
-      /* Try to get a stack from the cache.  */
-      reqsize = size;
-      pd = get_cached_stack (&size, &mem);
-      if (pd == NULL)
-	{
-	  /* To avoid aliasing effects on a larger scale than pages we
-	     adjust the allocated stack size if necessary.  This way
-	     allocations directly following each other will not have
-	     aliasing problems.  */
-#if MULTI_PAGE_ALIASING != 0
-	  if ((size % MULTI_PAGE_ALIASING) == 0)
-	    size += pagesize_m1 + 1;
-#endif
-
-	  mem = mmap (NULL, size, prot,
-		      MAP_PRIVATE | MAP_ANONYMOUS | MAP_STACK, -1, 0);
-
-	  if (__glibc_unlikely (mem == MAP_FAILED))
-	    return errno;
-
-	  /* SIZE is guaranteed to be greater than zero.
-	     So we can never get a null pointer back from mmap.  */
-	  assert (mem != NULL);
-
-	  /* Place the thread descriptor at the end of the stack.  */
-#if TLS_TCB_AT_TP
-	  pd = (struct pthread *) ((char *) mem + size) - 1;
-#elif TLS_DTV_AT_TP
-	  pd = (struct pthread *) ((((uintptr_t) mem + size
-				    - __static_tls_size)
-				    & ~__static_tls_align_m1)
-				   - TLS_PRE_TCB_SIZE);
-#endif
-
-	  /* Remember the stack-related values.  */
-	  pd->stackblock = mem;
-	  pd->stackblock_size = size;
-
-	  /* We allocated the first block thread-specific data array.
-	     This address will not change for the lifetime of this
-	     descriptor.  */
-	  pd->specific[0] = pd->specific_1stblock;
-
-	  /* This is at least the second thread.  */
-	  pd->header.multiple_threads = 1;
-#ifndef TLS_MULTIPLE_THREADS_IN_TCB
-	  __pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
-#endif
-
-#ifndef __ASSUME_PRIVATE_FUTEX
-	  /* The thread must know when private futexes are supported.  */
-	  pd->header.private_futex = THREAD_GETMEM (THREAD_SELF,
-						    header.private_futex);
-#endif
-
-#ifdef NEED_DL_SYSINFO
-	  SETUP_THREAD_SYSINFO (pd);
-#endif
-
-	  /* Don't allow setxid until cloned.  */
-	  pd->setxid_futex = -1;
-
-	  /* Allocate the DTV for this thread.  */
-	  if (_dl_allocate_tls (TLS_TPADJ (pd)) == NULL)
-	    {
-	      /* Something went wrong.  */
-	      assert (errno == ENOMEM);
-
-	      /* Free the stack memory we just allocated.  */
-	      (void) munmap (mem, size);
-
-	      return errno;
-	    }
-
-
-	  /* Prepare to modify global data.  */
-	  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-	  /* And add to the list of stacks in use.  */
-	  stack_list_add (&pd->list, &stack_used);
-
-	  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-
-
-	  /* There might have been a race.  Another thread might have
-	     caused the stacks to get exec permission while this new
-	     stack was prepared.  Detect if this was possible and
-	     change the permission if necessary.  */
-	  if (__builtin_expect ((GL(dl_stack_flags) & PF_X) != 0
-				&& (prot & PROT_EXEC) == 0, 0))
-	    {
-	      int err = change_stack_perm (pd
-#ifdef NEED_SEPARATE_REGISTER_STACK
-					   , ~pagesize_m1
-#endif
-					   );
-	      if (err != 0)
-		{
-		  /* Free the stack memory we just allocated.  */
-		  (void) munmap (mem, size);
-
-		  return err;
-		}
-	    }
-
-
-	  /* Note that all of the stack and the thread descriptor is
-	     zeroed.  This means we do not have to initialize fields
-	     with initial value zero.  This is specifically true for
-	     the 'tid' field which is always set back to zero once the
-	     stack is not used anymore and for the 'guardsize' field
-	     which will be read next.  */
-	}
-
-      /* Create or resize the guard area if necessary.  */
-      if (__glibc_unlikely (guardsize > pd->guardsize))
-	{
-#ifdef NEED_SEPARATE_REGISTER_STACK
-	  char *guard = mem + (((size - guardsize) / 2) & ~pagesize_m1);
-#elif _STACK_GROWS_DOWN
-	  char *guard = mem;
-#elif _STACK_GROWS_UP
-	  char *guard = (char *) (((uintptr_t) pd - guardsize) & ~pagesize_m1);
-#endif
-	  if (mprotect (guard, guardsize, PROT_NONE) != 0)
-	    {
-	    mprot_error:
-	      lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-	      /* Remove the thread from the list.  */
-	      stack_list_del (&pd->list);
-
-	      lll_unlock (stack_cache_lock, LLL_PRIVATE);
-
-	      /* Get rid of the TLS block we allocated.  */
-	      _dl_deallocate_tls (TLS_TPADJ (pd), false);
-
-	      /* Free the stack memory regardless of whether the size
-		 of the cache is over the limit or not.  If this piece
-		 of memory caused problems we better do not use it
-		 anymore.  Uh, and we ignore possible errors.  There
-		 is nothing we could do.  */
-	      (void) munmap (mem, size);
-
-	      return errno;
-	    }
-
-	  pd->guardsize = guardsize;
-	}
-      else if (__builtin_expect (pd->guardsize - guardsize > size - reqsize,
-				 0))
-	{
-	  /* The old guard area is too large.  */
-
-#ifdef NEED_SEPARATE_REGISTER_STACK
-	  char *guard = mem + (((size - guardsize) / 2) & ~pagesize_m1);
-	  char *oldguard = mem + (((size - pd->guardsize) / 2) & ~pagesize_m1);
-
-	  if (oldguard < guard
-	      && mprotect (oldguard, guard - oldguard, prot) != 0)
-	    goto mprot_error;
-
-	  if (mprotect (guard + guardsize,
-			oldguard + pd->guardsize - guard - guardsize,
-			prot) != 0)
-	    goto mprot_error;
-#elif _STACK_GROWS_DOWN
-	  if (mprotect ((char *) mem + guardsize, pd->guardsize - guardsize,
-			prot) != 0)
-	    goto mprot_error;
-#elif _STACK_GROWS_UP
-	  if (mprotect ((char *) pd - pd->guardsize,
-			pd->guardsize - guardsize, prot) != 0)
-	    goto mprot_error;
-#endif
-
-	  pd->guardsize = guardsize;
-	}
-      /* The pthread_getattr_np() calls need to get passed the size
-	 requested in the attribute, regardless of how large the
-	 actually used guardsize is.  */
-      pd->reported_guardsize = guardsize;
-    }
-
-  /* Initialize the lock.  We have to do this unconditionally since the
-     stillborn thread could be canceled while the lock is taken.  */
-  pd->lock = LLL_LOCK_INITIALIZER;
-
-  /* The robust mutex lists also need to be initialized
-     unconditionally because the cleanup for the previous stack owner
-     might have happened in the kernel.  */
-  pd->robust_head.futex_offset = (offsetof (pthread_mutex_t, __data.__lock)
-				  - offsetof (pthread_mutex_t,
-					      __data.__list.__next));
-  pd->robust_head.list_op_pending = NULL;
-#ifdef __PTHREAD_MUTEX_HAVE_PREV
-  pd->robust_prev = &pd->robust_head;
-#endif
-  pd->robust_head.list = &pd->robust_head;
-
-  /* We place the thread descriptor at the end of the stack.  */
-  *pdp = pd;
-
-#if _STACK_GROWS_DOWN
-  void *stacktop;
-
-# if TLS_TCB_AT_TP
-  /* The stack begins before the TCB and the static TLS block.  */
-  stacktop = ((char *) (pd + 1) - __static_tls_size);
-# elif TLS_DTV_AT_TP
-  stacktop = (char *) (pd - 1);
-# endif
-
-# ifdef NEED_SEPARATE_REGISTER_STACK
-  *stack = pd->stackblock;
-  *stacksize = stacktop - *stack;
-# else
-  *stack = stacktop;
-# endif
-#else
-  *stack = pd->stackblock;
-#endif
-
-  return 0;
-}
-
-
-void
-internal_function
-__deallocate_stack (struct pthread *pd)
-{
-  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-  /* Remove the thread from the list of threads with user defined
-     stacks.  */
-  stack_list_del (&pd->list);
-
-  /* Not much to do.  Just free the mmap()ed memory.  Note that we do
-     not reset the 'used' flag in the 'tid' field.  This is done by
-     the kernel.  If no thread has been created yet this field is
-     still zero.  */
-  if (__glibc_likely (! pd->user_stack))
-    (void) queue_stack (pd);
-  else
-    /* Free the memory associated with the ELF TLS.  */
-    _dl_deallocate_tls (TLS_TPADJ (pd), false);
-
-  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-}
-
-
-int
-internal_function
-__make_stacks_executable (void **stack_endp)
-{
-  /* First the main thread's stack.  */
-  int err = _dl_make_stack_executable (stack_endp);
-  if (err != 0)
-    return err;
-
-#ifdef NEED_SEPARATE_REGISTER_STACK
-  const size_t pagemask = ~(__getpagesize () - 1);
-#endif
-
-  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-  list_t *runp;
-  list_for_each (runp, &stack_used)
-    {
-      err = change_stack_perm (list_entry (runp, struct pthread, list)
-#ifdef NEED_SEPARATE_REGISTER_STACK
-			       , pagemask
-#endif
-			       );
-      if (err != 0)
-	break;
-    }
-
-  /* Also change the permission for the currently unused stacks.  This
-     might be wasted time but better spend it here than adding a check
-     in the fast path.  */
-  if (err == 0)
-    list_for_each (runp, &stack_cache)
-      {
-	err = change_stack_perm (list_entry (runp, struct pthread, list)
-#ifdef NEED_SEPARATE_REGISTER_STACK
-				 , pagemask
-#endif
-				 );
-	if (err != 0)
-	  break;
-      }
-
-  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-
-  return err;
-}
-
-
-/* In case of a fork() call the memory allocation in the child will be
-   the same but only one thread is running.  All stacks except that of
-   the one running thread are not used anymore.  We have to recycle
-   them.  */
-void
-__reclaim_stacks (void)
-{
-  struct pthread *self = (struct pthread *) THREAD_SELF;
-
-  /* No locking necessary.  The caller is the only stack in use.  But
-     we have to be aware that we might have interrupted a list
-     operation.  */
-
-  if (in_flight_stack != 0)
-    {
-      bool add_p = in_flight_stack & 1;
-      list_t *elem = (list_t *) (in_flight_stack & ~(uintptr_t) 1);
-
-      if (add_p)
-	{
-	  /* We always add at the beginning of the list.  So in this case we
-	     only need to check the beginning of these lists to see if the
-	     pointers at the head of the list are inconsistent.  */
-	  list_t *l = NULL;
-
-	  if (stack_used.next->prev != &stack_used)
-	    l = &stack_used;
-	  else if (stack_cache.next->prev != &stack_cache)
-	    l = &stack_cache;
-
-	  if (l != NULL)
-	    {
-	      assert (l->next->prev == elem);
-	      elem->next = l->next;
-	      elem->prev = l;
-	      l->next = elem;
-	    }
-	}
-      else
-	{
-	  /* We can simply always replay the delete operation.  */
-	  elem->next->prev = elem->prev;
-	  elem->prev->next = elem->next;
-	}
-    }
-
-  /* Mark all stacks except the still running one as free.  */
-  list_t *runp;
-  list_for_each (runp, &stack_used)
-    {
-      struct pthread *curp = list_entry (runp, struct pthread, list);
-      if (curp != self)
-	{
-	  /* This marks the stack as free.  */
-	  curp->tid = 0;
-
-	  /* Account for the size of the stack.  */
-	  stack_cache_actsize += curp->stackblock_size;
-
-	  if (curp->specific_used)
-	    {
-	      /* Clear the thread-specific data.  */
-	      memset (curp->specific_1stblock, '\0',
-		      sizeof (curp->specific_1stblock));
-
-	      curp->specific_used = false;
-
-	      for (size_t cnt = 1; cnt < PTHREAD_KEY_1STLEVEL_SIZE; ++cnt)
-		if (curp->specific[cnt] != NULL)
-		  {
-		    memset (curp->specific[cnt], '\0',
-			    sizeof (curp->specific_1stblock));
-
-		    /* We have allocated the block which we do not
-		       free here so re-set the bit.  */
-		    curp->specific_used = true;
-		  }
-	    }
-	}
-    }
-
-  /* Add the stack of all running threads to the cache.  */
-  list_splice (&stack_used, &stack_cache);
-
-  /* Remove the entry for the current thread to from the cache list
-     and add it to the list of running threads.  Which of the two
-     lists is decided by the user_stack flag.  */
-  stack_list_del (&self->list);
-
-  /* Re-initialize the lists for all the threads.  */
-  INIT_LIST_HEAD (&stack_used);
-  INIT_LIST_HEAD (&__stack_user);
-
-  if (__glibc_unlikely (THREAD_GETMEM (self, user_stack)))
-    list_add (&self->list, &__stack_user);
-  else
-    list_add (&self->list, &stack_used);
-
-  /* There is one thread running.  */
-  __nptl_nthreads = 1;
-
-  in_flight_stack = 0;
-
-  /* Initialize locks.  */
-  stack_cache_lock = LLL_LOCK_INITIALIZER;
-  __default_pthread_attr_lock = LLL_LOCK_INITIALIZER;
-}
-
-
-#if HP_TIMING_AVAIL
-# undef __find_thread_by_id
-/* Find a thread given the thread ID.  */
-attribute_hidden
-struct pthread *
-__find_thread_by_id (pid_t tid)
-{
-  struct pthread *result = NULL;
-
-  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-  /* Iterate over the list with system-allocated threads first.  */
-  list_t *runp;
-  list_for_each (runp, &stack_used)
-    {
-      struct pthread *curp;
-
-      curp = list_entry (runp, struct pthread, list);
-
-      if (curp->tid == tid)
-	{
-	  result = curp;
-	  goto out;
-	}
-    }
-
-  /* Now the list with threads using user-allocated stacks.  */
-  list_for_each (runp, &__stack_user)
-    {
-      struct pthread *curp;
-
-      curp = list_entry (runp, struct pthread, list);
-
-      if (curp->tid == tid)
-	{
-	  result = curp;
-	  goto out;
-	}
-    }
-
- out:
-  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-
-  return result;
-}
-#endif
-
-
-#ifdef SIGSETXID
-static void
-internal_function
-setxid_mark_thread (struct xid_command *cmdp, struct pthread *t)
-{
-  int ch;
-
-  /* Wait until this thread is cloned.  */
-  if (t->setxid_futex == -1
-      && ! atomic_compare_and_exchange_bool_acq (&t->setxid_futex, -2, -1))
-    do
-      futex_wait_simple (&t->setxid_futex, -2, FUTEX_PRIVATE);
-    while (t->setxid_futex == -2);
-
-  /* Don't let the thread exit before the setxid handler runs.  */
-  t->setxid_futex = 0;
-
-  do
-    {
-      ch = t->cancelhandling;
-
-      /* If the thread is exiting right now, ignore it.  */
-      if ((ch & EXITING_BITMASK) != 0)
-	{
-	  /* Release the futex if there is no other setxid in
-	     progress.  */
-	  if ((ch & SETXID_BITMASK) == 0)
-	    {
-	      t->setxid_futex = 1;
-	      futex_wake (&t->setxid_futex, 1, FUTEX_PRIVATE);
-	    }
-	  return;
-	}
-    }
-  while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling,
-					       ch | SETXID_BITMASK, ch));
-}
-
-
-static void
-internal_function
-setxid_unmark_thread (struct xid_command *cmdp, struct pthread *t)
-{
-  int ch;
-
-  do
-    {
-      ch = t->cancelhandling;
-      if ((ch & SETXID_BITMASK) == 0)
-	return;
-    }
-  while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling,
-					       ch & ~SETXID_BITMASK, ch));
-
-  /* Release the futex just in case.  */
-  t->setxid_futex = 1;
-  futex_wake (&t->setxid_futex, 1, FUTEX_PRIVATE);
-}
-
-
-static int
-internal_function
-setxid_signal_thread (struct xid_command *cmdp, struct pthread *t)
-{
-  if ((t->cancelhandling & SETXID_BITMASK) == 0)
-    return 0;
-
-  int val;
-  pid_t pid = __getpid ();
-  INTERNAL_SYSCALL_DECL (err);
-  val = INTERNAL_SYSCALL_CALL (tgkill, err, pid, t->tid, SIGSETXID);
-
-  /* If this failed, it must have had not started yet or else exited.  */
-  if (!INTERNAL_SYSCALL_ERROR_P (val, err))
-    {
-      atomic_increment (&cmdp->cntr);
-      return 1;
-    }
-  else
-    return 0;
-}
-
-/* Check for consistency across set*id system call results.  The abort
-   should not happen as long as all privileges changes happen through
-   the glibc wrappers.  ERROR must be 0 (no error) or an errno
-   code.  */
-void
-attribute_hidden
-__nptl_setxid_error (struct xid_command *cmdp, int error)
-{
-  do
-    {
-      int olderror = cmdp->error;
-      if (olderror == error)
-	break;
-      if (olderror != -1)
-	/* Mismatch between current and previous results.  */
-	abort ();
-    }
-  while (atomic_compare_and_exchange_bool_acq (&cmdp->error, error, -1));
-}
-
-int
-attribute_hidden
-__nptl_setxid (struct xid_command *cmdp)
-{
-  int signalled;
-  int result;
-  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-  __xidcmd = cmdp;
-  cmdp->cntr = 0;
-  cmdp->error = -1;
-
-  struct pthread *self = THREAD_SELF;
-
-  /* Iterate over the list with system-allocated threads first.  */
-  list_t *runp;
-  list_for_each (runp, &stack_used)
-    {
-      struct pthread *t = list_entry (runp, struct pthread, list);
-      if (t == self)
-	continue;
-
-      setxid_mark_thread (cmdp, t);
-    }
-
-  /* Now the list with threads using user-allocated stacks.  */
-  list_for_each (runp, &__stack_user)
-    {
-      struct pthread *t = list_entry (runp, struct pthread, list);
-      if (t == self)
-	continue;
-
-      setxid_mark_thread (cmdp, t);
-    }
-
-  /* Iterate until we don't succeed in signalling anyone.  That means
-     we have gotten all running threads, and their children will be
-     automatically correct once started.  */
-  do
-    {
-      signalled = 0;
-
-      list_for_each (runp, &stack_used)
-	{
-	  struct pthread *t = list_entry (runp, struct pthread, list);
-	  if (t == self)
-	    continue;
-
-	  signalled += setxid_signal_thread (cmdp, t);
-	}
-
-      list_for_each (runp, &__stack_user)
-	{
-	  struct pthread *t = list_entry (runp, struct pthread, list);
-	  if (t == self)
-	    continue;
-
-	  signalled += setxid_signal_thread (cmdp, t);
-	}
-
-      int cur = cmdp->cntr;
-      while (cur != 0)
-	{
-	  futex_wait_simple ((unsigned int *) &cmdp->cntr, cur,
-			     FUTEX_PRIVATE);
-	  cur = cmdp->cntr;
-	}
-    }
-  while (signalled != 0);
-
-  /* Clean up flags, so that no thread blocks during exit waiting
-     for a signal which will never come.  */
-  list_for_each (runp, &stack_used)
-    {
-      struct pthread *t = list_entry (runp, struct pthread, list);
-      if (t == self)
-	continue;
-
-      setxid_unmark_thread (cmdp, t);
-    }
-
-  list_for_each (runp, &__stack_user)
-    {
-      struct pthread *t = list_entry (runp, struct pthread, list);
-      if (t == self)
-	continue;
-
-      setxid_unmark_thread (cmdp, t);
-    }
-
-  /* This must be last, otherwise the current thread might not have
-     permissions to send SIGSETXID syscall to the other threads.  */
-  INTERNAL_SYSCALL_DECL (err);
-  result = INTERNAL_SYSCALL_NCS (cmdp->syscall_no, err, 3,
-				 cmdp->id[0], cmdp->id[1], cmdp->id[2]);
-  int error = 0;
-  if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
-    {
-      error = INTERNAL_SYSCALL_ERRNO (result, err);
-      __set_errno (error);
-      result = -1;
-    }
-  __nptl_setxid_error (cmdp, error);
-
-  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-  return result;
-}
-#endif  /* SIGSETXID.  */
-
-
-static inline void __attribute__((always_inline))
-init_one_static_tls (struct pthread *curp, struct link_map *map)
-{
-# if TLS_TCB_AT_TP
-  void *dest = (char *) curp - map->l_tls_offset;
-# elif TLS_DTV_AT_TP
-  void *dest = (char *) curp + map->l_tls_offset + TLS_PRE_TCB_SIZE;
-# else
-#  error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
-# endif
-
-  /* Initialize the memory.  */
-  memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size),
-	  '\0', map->l_tls_blocksize - map->l_tls_initimage_size);
-}
-
-void
-attribute_hidden
-__pthread_init_static_tls (struct link_map *map)
-{
-  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-  /* Iterate over the list with system-allocated threads first.  */
-  list_t *runp;
-  list_for_each (runp, &stack_used)
-    init_one_static_tls (list_entry (runp, struct pthread, list), map);
-
-  /* Now the list with threads using user-allocated stacks.  */
-  list_for_each (runp, &__stack_user)
-    init_one_static_tls (list_entry (runp, struct pthread, list), map);
-
-  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-}
-
-
-void
-attribute_hidden
-__wait_lookup_done (void)
-{
-  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-  struct pthread *self = THREAD_SELF;
-
-  /* Iterate over the list with system-allocated threads first.  */
-  list_t *runp;
-  list_for_each (runp, &stack_used)
-    {
-      struct pthread *t = list_entry (runp, struct pthread, list);
-      if (t == self || t->header.gscope_flag == THREAD_GSCOPE_FLAG_UNUSED)
-	continue;
-
-      int *const gscope_flagp = &t->header.gscope_flag;
-
-      /* We have to wait until this thread is done with the global
-	 scope.  First tell the thread that we are waiting and
-	 possibly have to be woken.  */
-      if (atomic_compare_and_exchange_bool_acq (gscope_flagp,
-						THREAD_GSCOPE_FLAG_WAIT,
-						THREAD_GSCOPE_FLAG_USED))
-	continue;
-
-      do
-	futex_wait_simple ((unsigned int *) gscope_flagp,
-			   THREAD_GSCOPE_FLAG_WAIT, FUTEX_PRIVATE);
-      while (*gscope_flagp == THREAD_GSCOPE_FLAG_WAIT);
-    }
-
-  /* Now the list with threads using user-allocated stacks.  */
-  list_for_each (runp, &__stack_user)
-    {
-      struct pthread *t = list_entry (runp, struct pthread, list);
-      if (t == self || t->header.gscope_flag == THREAD_GSCOPE_FLAG_UNUSED)
-	continue;
-
-      int *const gscope_flagp = &t->header.gscope_flag;
-
-      /* We have to wait until this thread is done with the global
-	 scope.  First tell the thread that we are waiting and
-	 possibly have to be woken.  */
-      if (atomic_compare_and_exchange_bool_acq (gscope_flagp,
-						THREAD_GSCOPE_FLAG_WAIT,
-						THREAD_GSCOPE_FLAG_USED))
-	continue;
-
-      do
-	futex_wait_simple ((unsigned int *) gscope_flagp,
-			   THREAD_GSCOPE_FLAG_WAIT, FUTEX_PRIVATE);
-      while (*gscope_flagp == THREAD_GSCOPE_FLAG_WAIT);
-    }
-
-  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-}
diff --git a/nptl/cancellation.c b/nptl/cancellation.c
deleted file mode 100644
index e3f0b619d6..0000000000
--- a/nptl/cancellation.c
+++ /dev/null
@@ -1,101 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <setjmp.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <futex-internal.h>
-
-
-/* The next two functions are similar to pthread_setcanceltype() but
-   more specialized for the use in the cancelable functions like write().
-   They do not need to check parameters etc.  */
-int
-attribute_hidden
-__pthread_enable_asynccancel (void)
-{
-  struct pthread *self = THREAD_SELF;
-  int oldval = THREAD_GETMEM (self, cancelhandling);
-
-  while (1)
-    {
-      int newval = oldval | CANCELTYPE_BITMASK;
-
-      if (newval == oldval)
-	break;
-
-      int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval,
-					      oldval);
-      if (__glibc_likely (curval == oldval))
-	{
-	  if (CANCEL_ENABLED_AND_CANCELED_AND_ASYNCHRONOUS (newval))
-	    {
-	      THREAD_SETMEM (self, result, PTHREAD_CANCELED);
-	      __do_cancel ();
-	    }
-
-	  break;
-	}
-
-      /* Prepare the next round.  */
-      oldval = curval;
-    }
-
-  return oldval;
-}
-
-
-void
-internal_function attribute_hidden
-__pthread_disable_asynccancel (int oldtype)
-{
-  /* If asynchronous cancellation was enabled before we do not have
-     anything to do.  */
-  if (oldtype & CANCELTYPE_BITMASK)
-    return;
-
-  struct pthread *self = THREAD_SELF;
-  int newval;
-
-  int oldval = THREAD_GETMEM (self, cancelhandling);
-
-  while (1)
-    {
-      newval = oldval & ~CANCELTYPE_BITMASK;
-
-      int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval,
-					      oldval);
-      if (__glibc_likely (curval == oldval))
-	break;
-
-      /* Prepare the next round.  */
-      oldval = curval;
-    }
-
-  /* We cannot return when we are being canceled.  Upon return the
-     thread might be things which would have to be undone.  The
-     following loop should loop until the cancellation signal is
-     delivered.  */
-  while (__builtin_expect ((newval & (CANCELING_BITMASK | CANCELED_BITMASK))
-			   == CANCELING_BITMASK, 0))
-    {
-      futex_wait_simple ((unsigned int *) &self->cancelhandling, newval,
-			 FUTEX_PRIVATE);
-      newval = THREAD_GETMEM (self, cancelhandling);
-    }
-}
diff --git a/nptl/cleanup.c b/nptl/cleanup.c
deleted file mode 100644
index efbb89aa27..0000000000
--- a/nptl/cleanup.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdlib.h>
-#include "pthreadP.h"
-
-
-void
-__cleanup_fct_attribute
-__pthread_register_cancel (__pthread_unwind_buf_t *buf)
-{
-  struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
-  struct pthread *self = THREAD_SELF;
-
-  /* Store old info.  */
-  ibuf->priv.data.prev = THREAD_GETMEM (self, cleanup_jmp_buf);
-  ibuf->priv.data.cleanup = THREAD_GETMEM (self, cleanup);
-
-  /* Store the new cleanup handler info.  */
-  THREAD_SETMEM (self, cleanup_jmp_buf, (struct pthread_unwind_buf *) buf);
-}
-hidden_def (__pthread_register_cancel)
-
-
-void
-__cleanup_fct_attribute
-__pthread_unregister_cancel (__pthread_unwind_buf_t *buf)
-{
-  struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
-
-  THREAD_SETMEM (THREAD_SELF, cleanup_jmp_buf, ibuf->priv.data.prev);
-}
-hidden_def (__pthread_unregister_cancel)
diff --git a/nptl/cleanup_compat.c b/nptl/cleanup_compat.c
deleted file mode 100644
index fc76591178..0000000000
--- a/nptl/cleanup_compat.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdlib.h>
-#include "pthreadP.h"
-
-
-void
-_pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
-		       void (*routine) (void *), void *arg)
-{
-  struct pthread *self = THREAD_SELF;
-
-  buffer->__routine = routine;
-  buffer->__arg = arg;
-  buffer->__prev = THREAD_GETMEM (self, cleanup);
-
-  THREAD_SETMEM (self, cleanup, buffer);
-}
-strong_alias (_pthread_cleanup_push, __pthread_cleanup_push)
-
-
-void
-_pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer, int execute)
-{
-  struct pthread *self __attribute ((unused)) = THREAD_SELF;
-
-  THREAD_SETMEM (self, cleanup, buffer->__prev);
-
-  /* If necessary call the cleanup routine after we removed the
-     current cleanup block from the list.  */
-  if (execute)
-    buffer->__routine (buffer->__arg);
-}
-strong_alias (_pthread_cleanup_pop, __pthread_cleanup_pop)
diff --git a/nptl/cleanup_defer.c b/nptl/cleanup_defer.c
deleted file mode 100644
index 7e1942df28..0000000000
--- a/nptl/cleanup_defer.c
+++ /dev/null
@@ -1,91 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdlib.h>
-#include "pthreadP.h"
-
-
-void
-__cleanup_fct_attribute
-__pthread_register_cancel_defer (__pthread_unwind_buf_t *buf)
-{
-  struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
-  struct pthread *self = THREAD_SELF;
-
-  /* Store old info.  */
-  ibuf->priv.data.prev = THREAD_GETMEM (self, cleanup_jmp_buf);
-  ibuf->priv.data.cleanup = THREAD_GETMEM (self, cleanup);
-
-  int cancelhandling = THREAD_GETMEM (self, cancelhandling);
-
-  /* Disable asynchronous cancellation for now.  */
-  if (__glibc_unlikely (cancelhandling & CANCELTYPE_BITMASK))
-    while (1)
-      {
-	int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
-						cancelhandling
-						& ~CANCELTYPE_BITMASK,
-						cancelhandling);
-	if (__glibc_likely (curval == cancelhandling))
-	  /* Successfully replaced the value.  */
-	  break;
-
-	/* Prepare for the next round.  */
-	cancelhandling = curval;
-      }
-
-  ibuf->priv.data.canceltype = (cancelhandling & CANCELTYPE_BITMASK
-				? PTHREAD_CANCEL_ASYNCHRONOUS
-				: PTHREAD_CANCEL_DEFERRED);
-
-  /* Store the new cleanup handler info.  */
-  THREAD_SETMEM (self, cleanup_jmp_buf, (struct pthread_unwind_buf *) buf);
-}
-
-
-void
-__cleanup_fct_attribute
-__pthread_unregister_cancel_restore (__pthread_unwind_buf_t *buf)
-{
-  struct pthread *self = THREAD_SELF;
-  struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
-
-  THREAD_SETMEM (self, cleanup_jmp_buf, ibuf->priv.data.prev);
-
-  int cancelhandling;
-  if (ibuf->priv.data.canceltype != PTHREAD_CANCEL_DEFERRED
-      && ((cancelhandling = THREAD_GETMEM (self, cancelhandling))
-	  & CANCELTYPE_BITMASK) == 0)
-    {
-      while (1)
-	{
-	  int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
-						  cancelhandling
-						  | CANCELTYPE_BITMASK,
-						  cancelhandling);
-	  if (__glibc_likely (curval == cancelhandling))
-	    /* Successfully replaced the value.  */
-	    break;
-
-	  /* Prepare for the next round.  */
-	  cancelhandling = curval;
-	}
-
-      CANCELLATION_P (self);
-    }
-}
diff --git a/nptl/cleanup_defer_compat.c b/nptl/cleanup_defer_compat.c
deleted file mode 100644
index 2705b4605e..0000000000
--- a/nptl/cleanup_defer_compat.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-void
-_pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
-			     void (*routine) (void *), void *arg)
-{
-  struct pthread *self = THREAD_SELF;
-
-  buffer->__routine = routine;
-  buffer->__arg = arg;
-  buffer->__prev = THREAD_GETMEM (self, cleanup);
-
-  int cancelhandling = THREAD_GETMEM (self, cancelhandling);
-
-  /* Disable asynchronous cancellation for now.  */
-  if (__glibc_unlikely (cancelhandling & CANCELTYPE_BITMASK))
-    while (1)
-      {
-	int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
-						cancelhandling
-						& ~CANCELTYPE_BITMASK,
-						cancelhandling);
-	if (__glibc_likely (curval == cancelhandling))
-	  /* Successfully replaced the value.  */
-	  break;
-
-	/* Prepare for the next round.  */
-	cancelhandling = curval;
-      }
-
-  buffer->__canceltype = (cancelhandling & CANCELTYPE_BITMASK
-			  ? PTHREAD_CANCEL_ASYNCHRONOUS
-			  : PTHREAD_CANCEL_DEFERRED);
-
-  THREAD_SETMEM (self, cleanup, buffer);
-}
-strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer)
-
-
-void
-_pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
-			      int execute)
-{
-  struct pthread *self = THREAD_SELF;
-
-  THREAD_SETMEM (self, cleanup, buffer->__prev);
-
-  int cancelhandling;
-  if (__builtin_expect (buffer->__canceltype != PTHREAD_CANCEL_DEFERRED, 0)
-      && ((cancelhandling = THREAD_GETMEM (self, cancelhandling))
-	  & CANCELTYPE_BITMASK) == 0)
-    {
-      while (1)
-	{
-	  int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
-						  cancelhandling
-						  | CANCELTYPE_BITMASK,
-						  cancelhandling);
-	  if (__glibc_likely (curval == cancelhandling))
-	    /* Successfully replaced the value.  */
-	    break;
-
-	  /* Prepare for the next round.  */
-	  cancelhandling = curval;
-	}
-
-      CANCELLATION_P (self);
-    }
-
-  /* If necessary call the cleanup routine after we removed the
-     current cleanup block from the list.  */
-  if (execute)
-    buffer->__routine (buffer->__arg);
-}
-strong_alias (_pthread_cleanup_pop_restore, __pthread_cleanup_pop_restore)
diff --git a/nptl/cleanup_routine.c b/nptl/cleanup_routine.c
deleted file mode 100644
index aee26f46c6..0000000000
--- a/nptl/cleanup_routine.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-
-
-void
-__pthread_cleanup_routine (struct __pthread_cleanup_frame *f)
-{
-  if (f->__do_it)
-    f->__cancel_routine (f->__cancel_arg);
-}
diff --git a/nptl/cond-perf.c b/nptl/cond-perf.c
deleted file mode 100644
index 9c9488e274..0000000000
--- a/nptl/cond-perf.c
+++ /dev/null
@@ -1,103 +0,0 @@
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <atomic.h>
-
-static pthread_cond_t cond1 = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut1 = PTHREAD_MUTEX_INITIALIZER;
-
-static pthread_cond_t cond2 = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut2 = PTHREAD_MUTEX_INITIALIZER;
-
-static bool last_round;
-static int ntogo;
-static bool alldone;
-
-
-static void *
-cons (void *arg)
-{
-  pthread_mutex_lock (&mut1);
-
-  do
-    {
-      if (atomic_decrement_and_test (&ntogo))
-	{
-	  pthread_mutex_lock (&mut2);
-	  alldone = true;
-	  pthread_cond_signal (&cond2);
-	  pthread_mutex_unlock (&mut2);
-	}
-
-      pthread_cond_wait (&cond1, &mut1);
-    }
-  while (! last_round);
-
-  pthread_mutex_unlock (&mut1);
-
-  return NULL;
-}
-
-
-int
-main (int argc, char *argv[])
-{
-  int opt;
-  int err;
-  int nthreads = 10;
-  int nrounds = 100;
-  bool keeplock = false;
-
-  while ((opt = getopt (argc, argv, "n:r:k")) != -1)
-    switch (opt)
-      {
-      case 'n':
-	nthreads = atol (optarg);
-	break;
-      case 'r':
-	nrounds = atol (optarg);
-	break;
-      case 'k':
-	keeplock = true;
-	break;
-      }
-
-  ntogo = nthreads;
-
-  pthread_t th[nthreads];
-  int i;
-  for (i = 0; __builtin_expect (i < nthreads, 1); ++i)
-    if (__glibc_unlikely ((err = pthread_create (&th[i], NULL, cons, (void *) (long) i)) != 0))
-      printf ("pthread_create: %s\n", strerror (err));
-
-  for (i = 0; __builtin_expect (i < nrounds, 1); ++i)
-    {
-      pthread_mutex_lock (&mut2);
-      while (! alldone)
-	pthread_cond_wait (&cond2, &mut2);
-      pthread_mutex_unlock (&mut2);
-
-      pthread_mutex_lock (&mut1);
-      if (! keeplock)
-	pthread_mutex_unlock (&mut1);
-
-      ntogo = nthreads;
-      alldone = false;
-      if (i + 1 >= nrounds)
-	last_round = true;
-
-      pthread_cond_broadcast (&cond1);
-
-      if (keeplock)
-	pthread_mutex_unlock (&mut1);
-    }
-
-  for (i = 0; i < nthreads; ++i)
-    if ((err = pthread_join (th[i], NULL)) != 0)
-      printf ("pthread_create: %s\n", strerror (err));
-
-  return 0;
-}
diff --git a/nptl/createthread.c b/nptl/createthread.c
deleted file mode 100644
index 6c67b7e74e..0000000000
--- a/nptl/createthread.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Low-level thread creation for NPTL.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* See the comments in pthread_create.c for the requirements for these
-   two macros and the create_thread function.  */
-
-#define START_THREAD_DEFN \
-  static void __attribute__ ((noreturn)) start_thread (void)
-#define START_THREAD_SELF THREAD_SELF
-
-static int
-create_thread (struct pthread *pd, const struct pthread_attr *attr,
-	       bool *stopped_start, STACK_VARIABLES_PARMS, bool *thread_ran)
-{
-  /* If the implementation needs to do some tweaks to the thread after
-     it has been created at the OS level, it can set STOPPED_START here.  */
-
-  pd->stopped_start = *stopped_start;
-  if (__glibc_unlikely (*stopped_start))
-    /* See CONCURRENCY NOTES in nptl/pthread_create.c.  */
-    lll_lock (pd->lock, LLL_PRIVATE);
-
-  return ENOSYS;
-
-  /* It's started now, so if we fail below, we'll have to cancel it
-     and let it clean itself up.  */
-  *thread_ran = true;
-
-  return 0;
-}
diff --git a/nptl/default-sched.h b/nptl/default-sched.h
deleted file mode 100644
index 593f3b87ac..0000000000
--- a/nptl/default-sched.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Determine calling thread's scheduling parameters.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-
-/* This should fill in PD->schedpolicy if PD->flags does not contain
-   ATTR_FLAG_POLICY_SET, and set it; and PD->schedparam if PD->flags does
-   not contain ATTR_FLAG_SCHED_SET, and set it.  It won't be called at all
-   if both bits are already set.  */
-
-static void
-collect_default_sched (struct pthread *pd)
-{
-  assert ((pd->flags & (ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET)) != 0);
-
-  /* The generic/stub version is a no-op rather than just using the
-     __sched_getscheduler and __sched_getparam functions so that there
-     won't be stub warnings for those functions just because pthread_create
-     was called without actually calling those.  */
-}
diff --git a/nptl/descr.h b/nptl/descr.h
deleted file mode 100644
index c5ad0c8dba..0000000000
--- a/nptl/descr.h
+++ /dev/null
@@ -1,406 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _DESCR_H
-#define _DESCR_H	1
-
-#include <limits.h>
-#include <sched.h>
-#include <setjmp.h>
-#include <stdbool.h>
-#include <sys/types.h>
-#include <hp-timing.h>
-#include <list_t.h>
-#include <lowlevellock.h>
-#include <pthreaddef.h>
-#include <dl-sysdep.h>
-#include "../nptl_db/thread_db.h"
-#include <tls.h>
-#include <unwind.h>
-#include <bits/types/res_state.h>
-#include <kernel-features.h>
-
-#ifndef TCB_ALIGNMENT
-# define TCB_ALIGNMENT	sizeof (double)
-#endif
-
-
-/* We keep thread specific data in a special data structure, a two-level
-   array.  The top-level array contains pointers to dynamically allocated
-   arrays of a certain number of data pointers.  So we can implement a
-   sparse array.  Each dynamic second-level array has
-        PTHREAD_KEY_2NDLEVEL_SIZE
-   entries.  This value shouldn't be too large.  */
-#define PTHREAD_KEY_2NDLEVEL_SIZE       32
-
-/* We need to address PTHREAD_KEYS_MAX key with PTHREAD_KEY_2NDLEVEL_SIZE
-   keys in each subarray.  */
-#define PTHREAD_KEY_1STLEVEL_SIZE \
-  ((PTHREAD_KEYS_MAX + PTHREAD_KEY_2NDLEVEL_SIZE - 1) \
-   / PTHREAD_KEY_2NDLEVEL_SIZE)
-
-
-
-
-/* Internal version of the buffer to store cancellation handler
-   information.  */
-struct pthread_unwind_buf
-{
-  struct
-  {
-    __jmp_buf jmp_buf;
-    int mask_was_saved;
-  } cancel_jmp_buf[1];
-
-  union
-  {
-    /* This is the placeholder of the public version.  */
-    void *pad[4];
-
-    struct
-    {
-      /* Pointer to the previous cleanup buffer.  */
-      struct pthread_unwind_buf *prev;
-
-      /* Backward compatibility: state of the old-style cleanup
-	 handler at the time of the previous new-style cleanup handler
-	 installment.  */
-      struct _pthread_cleanup_buffer *cleanup;
-
-      /* Cancellation type before the push call.  */
-      int canceltype;
-    } data;
-  } priv;
-};
-
-
-/* Opcodes and data types for communication with the signal handler to
-   change user/group IDs.  */
-struct xid_command
-{
-  int syscall_no;
-  long int id[3];
-  volatile int cntr;
-  volatile int error; /* -1: no call yet, 0: success seen, >0: error seen.  */
-};
-
-
-/* Data structure used by the kernel to find robust futexes.  */
-struct robust_list_head
-{
-  void *list;
-  long int futex_offset;
-  void *list_op_pending;
-};
-
-
-/* Data strcture used to handle thread priority protection.  */
-struct priority_protection_data
-{
-  int priomax;
-  unsigned int priomap[];
-};
-
-
-/* Thread descriptor data structure.  */
-struct pthread
-{
-  union
-  {
-#if !TLS_DTV_AT_TP
-    /* This overlaps the TCB as used for TLS without threads (see tls.h).  */
-    tcbhead_t header;
-#else
-    struct
-    {
-      /* multiple_threads is enabled either when the process has spawned at
-	 least one thread or when a single-threaded process cancels itself.
-	 This enables additional code to introduce locking before doing some
-	 compare_and_exchange operations and also enable cancellation points.
-	 The concepts of multiple threads and cancellation points ideally
-	 should be separate, since it is not necessary for multiple threads to
-	 have been created for cancellation points to be enabled, as is the
-	 case is when single-threaded process cancels itself.
-
-	 Since enabling multiple_threads enables additional code in
-	 cancellation points and compare_and_exchange operations, there is a
-	 potential for an unneeded performance hit when it is enabled in a
-	 single-threaded, self-canceling process.  This is OK though, since a
-	 single-threaded process will enable async cancellation only when it
-	 looks to cancel itself and is hence going to end anyway.  */
-      int multiple_threads;
-      int gscope_flag;
-# ifndef __ASSUME_PRIVATE_FUTEX
-      int private_futex;
-# endif
-    } header;
-#endif
-
-    /* This extra padding has no special purpose, and this structure layout
-       is private and subject to change without affecting the official ABI.
-       We just have it here in case it might be convenient for some
-       implementation-specific instrumentation hack or suchlike.  */
-    void *__padding[24];
-  };
-
-  /* This descriptor's link on the `stack_used' or `__stack_user' list.  */
-  list_t list;
-
-  /* Thread ID - which is also a 'is this thread descriptor (and
-     therefore stack) used' flag.  */
-  pid_t tid;
-
-  /* Ununsed.  */
-  pid_t pid_ununsed;
-
-  /* List of robust mutexes the thread is holding.  */
-#ifdef __PTHREAD_MUTEX_HAVE_PREV
-  void *robust_prev;
-  struct robust_list_head robust_head;
-
-  /* The list above is strange.  It is basically a double linked list
-     but the pointer to the next/previous element of the list points
-     in the middle of the object, the __next element.  Whenever
-     casting to __pthread_list_t we need to adjust the pointer
-     first.
-     These operations are effectively concurrent code in that the thread
-     can get killed at any point in time and the kernel takes over.  Thus,
-     the __next elements are a kind of concurrent list and we need to
-     enforce using compiler barriers that the individual operations happen
-     in such a way that the kernel always sees a consistent list.  The
-     backward links (ie, the __prev elements) are not used by the kernel.
-     FIXME We should use relaxed MO atomic operations here and signal fences
-     because this kind of concurrency is similar to synchronizing with a
-     signal handler.  */
-# define QUEUE_PTR_ADJUST (offsetof (__pthread_list_t, __next))
-
-# define ENQUEUE_MUTEX_BOTH(mutex, val)					      \
-  do {									      \
-    __pthread_list_t *next = (__pthread_list_t *)			      \
-      ((((uintptr_t) THREAD_GETMEM (THREAD_SELF, robust_head.list)) & ~1ul)   \
-       - QUEUE_PTR_ADJUST);						      \
-    next->__prev = (void *) &mutex->__data.__list.__next;		      \
-    mutex->__data.__list.__next = THREAD_GETMEM (THREAD_SELF,		      \
-						 robust_head.list);	      \
-    mutex->__data.__list.__prev = (void *) &THREAD_SELF->robust_head;	      \
-    /* Ensure that the new list entry is ready before we insert it.  */	      \
-    __asm ("" ::: "memory");						      \
-    THREAD_SETMEM (THREAD_SELF, robust_head.list,			      \
-		   (void *) (((uintptr_t) &mutex->__data.__list.__next)	      \
-			     | val));					      \
-  } while (0)
-# define DEQUEUE_MUTEX(mutex) \
-  do {									      \
-    __pthread_list_t *next = (__pthread_list_t *)			      \
-      ((char *) (((uintptr_t) mutex->__data.__list.__next) & ~1ul)	      \
-       - QUEUE_PTR_ADJUST);						      \
-    next->__prev = mutex->__data.__list.__prev;				      \
-    __pthread_list_t *prev = (__pthread_list_t *)			      \
-      ((char *) (((uintptr_t) mutex->__data.__list.__prev) & ~1ul)	      \
-       - QUEUE_PTR_ADJUST);						      \
-    prev->__next = mutex->__data.__list.__next;				      \
-    /* Ensure that we remove the entry from the list before we change the     \
-       __next pointer of the entry, which is read by the kernel.  */	      \
-    __asm ("" ::: "memory");						      \
-    mutex->__data.__list.__prev = NULL;					      \
-    mutex->__data.__list.__next = NULL;					      \
-  } while (0)
-#else
-  union
-  {
-    __pthread_slist_t robust_list;
-    struct robust_list_head robust_head;
-  };
-
-# define ENQUEUE_MUTEX_BOTH(mutex, val)					      \
-  do {									      \
-    mutex->__data.__list.__next						      \
-      = THREAD_GETMEM (THREAD_SELF, robust_list.__next);		      \
-    /* Ensure that the new list entry is ready before we insert it.  */	      \
-    __asm ("" ::: "memory");						      \
-    THREAD_SETMEM (THREAD_SELF, robust_list.__next,			      \
-		   (void *) (((uintptr_t) &mutex->__data.__list) | val));     \
-  } while (0)
-# define DEQUEUE_MUTEX(mutex) \
-  do {									      \
-    __pthread_slist_t *runp = (__pthread_slist_t *)			      \
-      (((uintptr_t) THREAD_GETMEM (THREAD_SELF, robust_list.__next)) & ~1ul); \
-    if (runp == &mutex->__data.__list)					      \
-      THREAD_SETMEM (THREAD_SELF, robust_list.__next, runp->__next);	      \
-    else								      \
-      {									      \
-	__pthread_slist_t *next = (__pthread_slist_t *)		      \
-	  (((uintptr_t) runp->__next) & ~1ul);				      \
-	while (next != &mutex->__data.__list)				      \
-	  {								      \
-	    runp = next;						      \
-	    next = (__pthread_slist_t *) (((uintptr_t) runp->__next) & ~1ul); \
-	  }								      \
-									      \
-	runp->__next = next->__next;					      \
-	/* Ensure that we remove the entry from the list before we change the \
-	   __next pointer of the entry, which is read by the kernel.  */      \
-	    __asm ("" ::: "memory");					      \
-	mutex->__data.__list.__next = NULL;				      \
-      }									      \
-  } while (0)
-#endif
-#define ENQUEUE_MUTEX(mutex) ENQUEUE_MUTEX_BOTH (mutex, 0)
-#define ENQUEUE_MUTEX_PI(mutex) ENQUEUE_MUTEX_BOTH (mutex, 1)
-
-  /* List of cleanup buffers.  */
-  struct _pthread_cleanup_buffer *cleanup;
-
-  /* Unwind information.  */
-  struct pthread_unwind_buf *cleanup_jmp_buf;
-#define HAVE_CLEANUP_JMP_BUF
-
-  /* Flags determining processing of cancellation.  */
-  int cancelhandling;
-  /* Bit set if cancellation is disabled.  */
-#define CANCELSTATE_BIT		0
-#define CANCELSTATE_BITMASK	(0x01 << CANCELSTATE_BIT)
-  /* Bit set if asynchronous cancellation mode is selected.  */
-#define CANCELTYPE_BIT		1
-#define CANCELTYPE_BITMASK	(0x01 << CANCELTYPE_BIT)
-  /* Bit set if canceling has been initiated.  */
-#define CANCELING_BIT		2
-#define CANCELING_BITMASK	(0x01 << CANCELING_BIT)
-  /* Bit set if canceled.  */
-#define CANCELED_BIT		3
-#define CANCELED_BITMASK	(0x01 << CANCELED_BIT)
-  /* Bit set if thread is exiting.  */
-#define EXITING_BIT		4
-#define EXITING_BITMASK		(0x01 << EXITING_BIT)
-  /* Bit set if thread terminated and TCB is freed.  */
-#define TERMINATED_BIT		5
-#define TERMINATED_BITMASK	(0x01 << TERMINATED_BIT)
-  /* Bit set if thread is supposed to change XID.  */
-#define SETXID_BIT		6
-#define SETXID_BITMASK		(0x01 << SETXID_BIT)
-  /* Mask for the rest.  Helps the compiler to optimize.  */
-#define CANCEL_RESTMASK		0xffffff80
-
-#define CANCEL_ENABLED_AND_CANCELED(value) \
-  (((value) & (CANCELSTATE_BITMASK | CANCELED_BITMASK | EXITING_BITMASK	      \
-	       | CANCEL_RESTMASK | TERMINATED_BITMASK)) == CANCELED_BITMASK)
-#define CANCEL_ENABLED_AND_CANCELED_AND_ASYNCHRONOUS(value) \
-  (((value) & (CANCELSTATE_BITMASK | CANCELTYPE_BITMASK | CANCELED_BITMASK    \
-	       | EXITING_BITMASK | CANCEL_RESTMASK | TERMINATED_BITMASK))     \
-   == (CANCELTYPE_BITMASK | CANCELED_BITMASK))
-
-  /* Flags.  Including those copied from the thread attribute.  */
-  int flags;
-
-  /* We allocate one block of references here.  This should be enough
-     to avoid allocating any memory dynamically for most applications.  */
-  struct pthread_key_data
-  {
-    /* Sequence number.  We use uintptr_t to not require padding on
-       32- and 64-bit machines.  On 64-bit machines it helps to avoid
-       wrapping, too.  */
-    uintptr_t seq;
-
-    /* Data pointer.  */
-    void *data;
-  } specific_1stblock[PTHREAD_KEY_2NDLEVEL_SIZE];
-
-  /* Two-level array for the thread-specific data.  */
-  struct pthread_key_data *specific[PTHREAD_KEY_1STLEVEL_SIZE];
-
-  /* Flag which is set when specific data is set.  */
-  bool specific_used;
-
-  /* True if events must be reported.  */
-  bool report_events;
-
-  /* True if the user provided the stack.  */
-  bool user_stack;
-
-  /* True if thread must stop at startup time.  */
-  bool stopped_start;
-
-  /* The parent's cancel handling at the time of the pthread_create
-     call.  This might be needed to undo the effects of a cancellation.  */
-  int parent_cancelhandling;
-
-  /* Lock to synchronize access to the descriptor.  */
-  int lock;
-
-  /* Lock for synchronizing setxid calls.  */
-  unsigned int setxid_futex;
-
-#if HP_TIMING_AVAIL
-  /* Offset of the CPU clock at start thread start time.  */
-  hp_timing_t cpuclock_offset;
-#endif
-
-  /* If the thread waits to join another one the ID of the latter is
-     stored here.
-
-     In case a thread is detached this field contains a pointer of the
-     TCB if the thread itself.  This is something which cannot happen
-     in normal operation.  */
-  struct pthread *joinid;
-  /* Check whether a thread is detached.  */
-#define IS_DETACHED(pd) ((pd)->joinid == (pd))
-
-  /* The result of the thread function.  */
-  void *result;
-
-  /* Scheduling parameters for the new thread.  */
-  struct sched_param schedparam;
-  int schedpolicy;
-
-  /* Start position of the code to be executed and the argument passed
-     to the function.  */
-  void *(*start_routine) (void *);
-  void *arg;
-
-  /* Debug state.  */
-  td_eventbuf_t eventbuf;
-  /* Next descriptor with a pending event.  */
-  struct pthread *nextevent;
-
-  /* Machine-specific unwind info.  */
-  struct _Unwind_Exception exc;
-
-  /* If nonzero pointer to area allocated for the stack and its
-     size.  */
-  void *stackblock;
-  size_t stackblock_size;
-  /* Size of the included guard area.  */
-  size_t guardsize;
-  /* This is what the user specified and what we will report.  */
-  size_t reported_guardsize;
-
-  /* Thread Priority Protection data.  */
-  struct priority_protection_data *tpp;
-
-  /* Resolver state.  */
-  struct __res_state res;
-
-  /* This member must be last.  */
-  char end_padding[];
-
-#define PTHREAD_STRUCT_END_PADDING \
-  (sizeof (struct pthread) - offsetof (struct pthread, end_padding))
-} __attribute ((aligned (TCB_ALIGNMENT)));
-
-
-#endif	/* descr.h */
diff --git a/nptl/eintr.c b/nptl/eintr.c
deleted file mode 100644
index 073c8574c7..0000000000
--- a/nptl/eintr.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <unistd.h>
-
-
-static int the_sig;
-
-
-static void
-eintr_handler (int sig)
-{
-  if (sig != the_sig)
-    {
-      write (STDOUT_FILENO, "eintr_handler: signal number wrong\n", 35);
-      _exit (1);
-    }
-  write (STDOUT_FILENO, ".", 1);
-}
-
-
-static void *
-eintr_source (void *arg)
-{
-  struct timespec ts = { .tv_sec = 0, .tv_nsec = 500000 };
-
-  if (arg == NULL)
-    {
-      sigset_t ss;
-      sigemptyset (&ss);
-      sigaddset (&ss, the_sig);
-      pthread_sigmask (SIG_BLOCK, &ss, NULL);
-    }
-
-  while (1)
-    {
-      if (arg != NULL)
-	pthread_kill (*(pthread_t *) arg, the_sig);
-      else
-	kill (getpid (), the_sig);
-
-      nanosleep (&ts, NULL);
-    }
-
-  /* NOTREACHED */
-  return NULL;
-}
-
-
-static void
-setup_eintr (int sig, pthread_t *thp)
-{
-  struct sigaction sa;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-  sa.sa_handler = eintr_handler;
-  if (sigaction (sig, &sa, NULL) != 0)
-    {
-      puts ("setup_eintr: sigaction failed");
-      exit (1);
-    }
-  the_sig = sig;
-
-  /* Create the thread which will fire off the signals.  */
-  pthread_t th;
-  if (pthread_create (&th, NULL, eintr_source, thp) != 0)
-    {
-      puts ("setup_eintr: pthread_create failed");
-      exit (1);
-    }
-}
diff --git a/nptl/elision-conf.h b/nptl/elision-conf.h
deleted file mode 100644
index 40a8c178f1..0000000000
--- a/nptl/elision-conf.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/nptl/errno-loc.c b/nptl/errno-loc.c
deleted file mode 100644
index 712b2b119c..0000000000
--- a/nptl/errno-loc.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../csu/errno-loc.c"
diff --git a/nptl/events.c b/nptl/events.c
deleted file mode 100644
index 9938aa0b88..0000000000
--- a/nptl/events.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Event functions used while debugging.
-   Copyright (C) 1999-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-/* The functions contained here do nothing, they just return.  */
-
-#include "pthreadP.h"
-
-void
-__nptl_create_event (void)
-{
-}
-hidden_def (__nptl_create_event)
-
-void
-__nptl_death_event (void)
-{
-}
-hidden_def (__nptl_death_event)
diff --git a/nptl/forward.c b/nptl/forward.c
deleted file mode 100644
index ac96765f29..0000000000
--- a/nptl/forward.c
+++ /dev/null
@@ -1,210 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <dlfcn.h>
-#include <pthreadP.h>
-#include <signal.h>
-#include <stdlib.h>
-
-#include <shlib-compat.h>
-#include <atomic.h>
-#include <safe-fatal.h>
-
-
-/* Pointers to the libc functions.  */
-struct pthread_functions __libc_pthread_functions attribute_hidden;
-int __libc_pthread_functions_init attribute_hidden;
-
-
-#define FORWARD2(name, rettype, decl, params, defaction) \
-rettype									      \
-name decl								      \
-{									      \
-  if (!__libc_pthread_functions_init)					      \
-    defaction;								      \
-									      \
-  return PTHFCT_CALL (ptr_##name, params);				      \
-}
-
-/* Same as FORWARD2, only without return.  */
-#define FORWARD_NORETURN(name, rettype, decl, params, defaction) \
-rettype									      \
-name decl								      \
-{									      \
-  if (!__libc_pthread_functions_init)					      \
-    defaction;								      \
-									      \
-  PTHFCT_CALL (ptr_##name, params);					      \
-}
-
-#define FORWARD(name, decl, params, defretval) \
-  FORWARD2 (name, int, decl, params, return defretval)
-
-
-FORWARD (pthread_attr_destroy, (pthread_attr_t *attr), (attr), 0)
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_1)
-FORWARD (__pthread_attr_init_2_0, (pthread_attr_t *attr), (attr), 0)
-compat_symbol (libc, __pthread_attr_init_2_0, pthread_attr_init, GLIBC_2_0);
-#endif
-
-FORWARD (__pthread_attr_init_2_1, (pthread_attr_t *attr), (attr), 0)
-versioned_symbol (libc, __pthread_attr_init_2_1, pthread_attr_init, GLIBC_2_1);
-
-FORWARD (pthread_attr_getdetachstate,
-	 (const pthread_attr_t *attr, int *detachstate), (attr, detachstate),
-	 0)
-FORWARD (pthread_attr_setdetachstate, (pthread_attr_t *attr, int detachstate),
-	 (attr, detachstate), 0)
-
-FORWARD (pthread_attr_getinheritsched,
-	 (const pthread_attr_t *attr, int *inherit), (attr, inherit), 0)
-FORWARD (pthread_attr_setinheritsched, (pthread_attr_t *attr, int inherit),
-	 (attr, inherit), 0)
-
-FORWARD (pthread_attr_getschedparam,
-	 (const pthread_attr_t *attr, struct sched_param *param),
-	 (attr, param), 0)
-FORWARD (pthread_attr_setschedparam,
-	 (pthread_attr_t *attr, const struct sched_param *param),
-	 (attr, param), 0)
-
-FORWARD (pthread_attr_getschedpolicy,
-	 (const pthread_attr_t *attr, int *policy), (attr, policy), 0)
-FORWARD (pthread_attr_setschedpolicy, (pthread_attr_t *attr, int policy),
-	 (attr, policy), 0)
-
-FORWARD (pthread_attr_getscope,
-	 (const pthread_attr_t *attr, int *scope), (attr, scope), 0)
-FORWARD (pthread_attr_setscope, (pthread_attr_t *attr, int scope),
-	 (attr, scope), 0)
-
-
-FORWARD (pthread_condattr_destroy, (pthread_condattr_t *attr), (attr), 0)
-FORWARD (pthread_condattr_init, (pthread_condattr_t *attr), (attr), 0)
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
-FORWARD2 (__pthread_cond_broadcast_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond), (cond), return 0)
-compat_symbol (libc, __pthread_cond_broadcast_2_0, pthread_cond_broadcast,
-	       GLIBC_2_0);
-#endif
-FORWARD (__pthread_cond_broadcast, (pthread_cond_t *cond), (cond), 0)
-versioned_symbol (libc, __pthread_cond_broadcast, pthread_cond_broadcast,
-		  GLIBC_2_3_2);
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
-FORWARD2 (__pthread_cond_destroy_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond), (cond), return 0)
-compat_symbol (libc, __pthread_cond_destroy_2_0, pthread_cond_destroy,
-	       GLIBC_2_0);
-#endif
-FORWARD (__pthread_cond_destroy, (pthread_cond_t *cond), (cond), 0)
-versioned_symbol (libc, __pthread_cond_destroy, pthread_cond_destroy,
-		  GLIBC_2_3_2);
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
-FORWARD2 (__pthread_cond_init_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond, const pthread_condattr_t *cond_attr),
-	  (cond, cond_attr), return 0)
-compat_symbol (libc, __pthread_cond_init_2_0, pthread_cond_init, GLIBC_2_0);
-#endif
-FORWARD (__pthread_cond_init,
-	 (pthread_cond_t *cond, const pthread_condattr_t *cond_attr),
-	 (cond, cond_attr), 0)
-versioned_symbol (libc, __pthread_cond_init, pthread_cond_init, GLIBC_2_3_2);
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
-FORWARD2 (__pthread_cond_signal_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond), (cond), return 0)
-compat_symbol (libc, __pthread_cond_signal_2_0, pthread_cond_signal,
-	       GLIBC_2_0);
-#endif
-FORWARD (__pthread_cond_signal, (pthread_cond_t *cond), (cond), 0)
-versioned_symbol (libc, __pthread_cond_signal, pthread_cond_signal,
-		  GLIBC_2_3_2);
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
-FORWARD2 (__pthread_cond_wait_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex), (cond, mutex),
-	  return 0)
-compat_symbol (libc, __pthread_cond_wait_2_0, pthread_cond_wait,
-	       GLIBC_2_0);
-#endif
-FORWARD (__pthread_cond_wait, (pthread_cond_t *cond, pthread_mutex_t *mutex),
-	 (cond, mutex), 0)
-versioned_symbol (libc, __pthread_cond_wait, pthread_cond_wait,
-		  GLIBC_2_3_2);
-
-#if SHLIB_COMPAT(libc, GLIBC_2_0, GLIBC_2_3_2)
-FORWARD2 (__pthread_cond_timedwait_2_0, int attribute_compat_text_section,
-	  (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex,
-	   const struct timespec *abstime), (cond, mutex, abstime),
-	  return 0)
-compat_symbol (libc, __pthread_cond_timedwait_2_0, pthread_cond_timedwait,
-	       GLIBC_2_0);
-#endif
-FORWARD (__pthread_cond_timedwait,
-	 (pthread_cond_t *cond, pthread_mutex_t *mutex,
-	  const struct timespec *abstime), (cond, mutex, abstime), 0)
-versioned_symbol (libc, __pthread_cond_timedwait, pthread_cond_timedwait,
-		  GLIBC_2_3_2);
-
-
-FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
-	 (thread1, thread2), 1)
-
-
-FORWARD_NORETURN (__pthread_exit, void, (void *retval), (retval),
-		  exit (EXIT_SUCCESS))
-strong_alias (__pthread_exit, pthread_exit);
-
-
-FORWARD (pthread_getschedparam,
-	 (pthread_t target_thread, int *policy, struct sched_param *param),
-	 (target_thread, policy, param), 0)
-FORWARD (pthread_setschedparam,
-	 (pthread_t target_thread, int policy,
-	  const struct sched_param *param), (target_thread, policy, param), 0)
-
-
-FORWARD (pthread_mutex_destroy, (pthread_mutex_t *mutex), (mutex), 0)
-
-FORWARD (pthread_mutex_init,
-	 (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr),
-	 (mutex, mutexattr), 0)
-
-FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0)
-
-FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0)
-
-
-FORWARD2 (pthread_self, pthread_t, (void), (), return 0)
-
-
-FORWARD (__pthread_setcancelstate, (int state, int *oldstate),
-	 (state, oldstate), 0)
-strong_alias (__pthread_setcancelstate, pthread_setcancelstate)
-
-FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
-
-FORWARD_NORETURN (__pthread_unwind,
-                  void attribute_hidden __attribute ((noreturn))
-                  __cleanup_fct_attribute attribute_compat_text_section,
-                  (__pthread_unwind_buf_t *buf), (buf),
-                  __safe_fatal ())
diff --git a/nptl/herrno.c b/nptl/herrno.c
deleted file mode 100644
index 824ac45d8c..0000000000
--- a/nptl/herrno.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <features.h>
-#include <netdb.h>
-#undef h_errno
-
-#include <tls.h>
-
-/* We need to have the error status variable of the resolver
-   accessible in the libc.  */
-extern __thread int __h_errno;
-
-
-/* When threaded, h_errno may be a per-thread variable.  */
-int *
-__h_errno_location (void)
-{
-  return &__h_errno;
-}
diff --git a/nptl/libc-cancellation.c b/nptl/libc-cancellation.c
deleted file mode 100644
index cb675ce732..0000000000
--- a/nptl/libc-cancellation.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-#define __pthread_enable_asynccancel __libc_enable_asynccancel
-#define __pthread_disable_asynccancel __libc_disable_asynccancel
-#include <nptl/cancellation.c>
diff --git a/nptl/libc-cleanup.c b/nptl/libc-cleanup.c
deleted file mode 100644
index fc19e683dd..0000000000
--- a/nptl/libc-cleanup.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-void
-__libc_cleanup_routine (struct __pthread_cleanup_frame *f)
-{
-  if (f->__do_it)
-    f->__cancel_routine (f->__cancel_arg);
-}
diff --git a/nptl/libc-lowlevellock.c b/nptl/libc-lowlevellock.c
deleted file mode 100644
index 94855525f0..0000000000
--- a/nptl/libc-lowlevellock.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* No difference to lowlevellock.c, except we lose a couple of functions.  */
-#include <lowlevellock.c>
diff --git a/nptl/libc_multiple_threads.c b/nptl/libc_multiple_threads.c
deleted file mode 100644
index ef6a4be183..0000000000
--- a/nptl/libc_multiple_threads.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-#if IS_IN (libc)
-# ifndef TLS_MULTIPLE_THREADS_IN_TCB
-/* Variable set to a nonzero value either if more than one thread runs or ran,
-   or if a single-threaded process is trying to cancel itself.  See
-   nptl/descr.h for more context on the single-threaded process case.  */
-int __libc_multiple_threads attribute_hidden;
-# endif
-#endif
diff --git a/nptl/libc_pthread_init.c b/nptl/libc_pthread_init.c
deleted file mode 100644
index 0db7a10893..0000000000
--- a/nptl/libc_pthread_init.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <unistd.h>
-#include <list.h>
-#include <fork.h>
-#include <dl-sysdep.h>
-#include <tls.h>
-#include <string.h>
-#include <pthreadP.h>
-#include <libc-lock.h>
-#include <sysdep.h>
-#include <ldsodefs.h>
-
-
-unsigned long int *__fork_generation_pointer;
-
-
-#ifdef TLS_MULTIPLE_THREADS_IN_TCB
-void
-#else
-extern int __libc_multiple_threads attribute_hidden;
-
-int *
-#endif
-internal_function
-__libc_pthread_init (unsigned long int *ptr, void (*reclaim) (void),
-		     const struct pthread_functions *functions)
-{
-  /* Remember the pointer to the generation counter in libpthread.  */
-  __fork_generation_pointer = ptr;
-
-  /* Called by a child after fork.  */
-  __register_atfork (NULL, NULL, reclaim, NULL);
-
-#ifdef SHARED
-  /* Copy the function pointers into an array in libc.  This enables
-     access with just one memory reference but moreso, it prevents
-     hijacking the function pointers with just one pointer change.  We
-     "encrypt" the function pointers since we cannot write-protect the
-     array easily enough.  */
-  union ptrhack
-  {
-    struct pthread_functions pf;
-# define NPTRS (sizeof (struct pthread_functions) / sizeof (void *))
-    void *parr[NPTRS];
-  } __attribute__ ((may_alias)) const *src;
-  union ptrhack *dest;
-
-  src = (const void *) functions;
-  dest = (void *) &__libc_pthread_functions;
-
-  for (size_t cnt = 0; cnt < NPTRS; ++cnt)
-    {
-      void *p = src->parr[cnt];
-      PTR_MANGLE (p);
-      dest->parr[cnt] = p;
-    }
-  __libc_pthread_functions_init = 1;
-#endif
-
-#ifndef TLS_MULTIPLE_THREADS_IN_TCB
-  return &__libc_multiple_threads;
-#endif
-}
-
-#ifdef SHARED
-libc_freeres_fn (freeres_libptread)
-{
-  if (__libc_pthread_functions_init)
-    PTHFCT_CALL (ptr_freeres, ());
-}
-#endif
diff --git a/nptl/lll_timedlock_wait.c b/nptl/lll_timedlock_wait.c
deleted file mode 100644
index 604953c04c..0000000000
--- a/nptl/lll_timedlock_wait.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Timed low level locking for pthread library.  Generic futex-using version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <atomic.h>
-#include <errno.h>
-#include <lowlevellock.h>
-#include <sys/time.h>
-
-
-int
-__lll_timedlock_wait (int *futex, const struct timespec *abstime, int private)
-{
-  /* Reject invalid timeouts.  */
-  if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-    return EINVAL;
-
-  /* Try locking.  */
-  while (atomic_exchange_acq (futex, 2) != 0)
-    {
-      struct timeval tv;
-
-      /* Get the current time.  */
-      (void) __gettimeofday (&tv, NULL);
-
-      /* Compute relative timeout.  */
-      struct timespec rt;
-      rt.tv_sec = abstime->tv_sec - tv.tv_sec;
-      rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
-      if (rt.tv_nsec < 0)
-        {
-          rt.tv_nsec += 1000000000;
-          --rt.tv_sec;
-        }
-
-      if (rt.tv_sec < 0)
-        return ETIMEDOUT;
-
-      /* If *futex == 2, wait until woken or timeout.  */
-      lll_futex_timed_wait (futex, 2, &rt, private);
-    }
-
-  return 0;
-}
diff --git a/nptl/lll_timedwait_tid.c b/nptl/lll_timedwait_tid.c
deleted file mode 100644
index e4c8de0f99..0000000000
--- a/nptl/lll_timedwait_tid.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Timed waiting for thread death.  Generic futex-using version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <atomic.h>
-#include <errno.h>
-#include <lowlevellock.h>
-#include <sys/time.h>
-
-
-/* The kernel notifies a process which uses CLONE_CHILD_CLEARTID via futex
-   wake-up when the clone terminates.  The memory location contains the
-   thread ID while the clone is running and is reset to zero by the kernel
-   afterwards.  The kernel up to version 3.16.3 does not use the private futex
-   operations for futex wake-up when the clone terminates.  */
-int
-__lll_timedwait_tid (int *tidp, const struct timespec *abstime)
-{
-  int tid;
-
-  if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-    return EINVAL;
-
-  /* Repeat until thread terminated.  */
-  while ((tid = *tidp) != 0)
-    {
-      struct timeval tv;
-      struct timespec rt;
-
-      /* Get the current time.  */
-      (void) __gettimeofday (&tv, NULL);
-
-      /* Compute relative timeout.  */
-      rt.tv_sec = abstime->tv_sec - tv.tv_sec;
-      rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
-      if (rt.tv_nsec < 0)
-        {
-          rt.tv_nsec += 1000000000;
-          --rt.tv_sec;
-        }
-
-      /* Already timed out?  */
-      if (rt.tv_sec < 0)
-        return ETIMEDOUT;
-
-      /* If *tidp == tid, wait until thread terminates or the wait times out.
-         The kernel up to version 3.16.3 does not use the private futex
-         operations for futex wake-up when the clone terminates.
-      */
-      if (lll_futex_timed_wait (tidp, tid, &rt, LLL_SHARED) == -ETIMEDOUT)
-        return ETIMEDOUT;
-    }
-
-  return 0;
-}
diff --git a/nptl/lowlevellock.c b/nptl/lowlevellock.c
deleted file mode 100644
index fc938768a5..0000000000
--- a/nptl/lowlevellock.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* low level locking for pthread library.  Generic futex-using version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <sysdep.h>
-#include <lowlevellock.h>
-#include <sys/time.h>
-#include <atomic.h>
-
-void
-__lll_lock_wait_private (int *futex)
-{
-  if (*futex == 2)
-    lll_futex_wait (futex, 2, LLL_PRIVATE); /* Wait if *futex == 2.  */
-
-  while (atomic_exchange_acq (futex, 2) != 0)
-    lll_futex_wait (futex, 2, LLL_PRIVATE); /* Wait if *futex == 2.  */
-}
-
-
-/* This function doesn't get included in libc.  */
-#if IS_IN (libpthread)
-void
-__lll_lock_wait (int *futex, int private)
-{
-  if (*futex == 2)
-    lll_futex_wait (futex, 2, private); /* Wait if *futex == 2.  */
-
-  while (atomic_exchange_acq (futex, 2) != 0)
-    lll_futex_wait (futex, 2, private); /* Wait if *futex == 2.  */
-}
-#endif
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
deleted file mode 100644
index 29216077a2..0000000000
--- a/nptl/nptl-init.c
+++ /dev/null
@@ -1,480 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <limits.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/resource.h>
-#include <pthreadP.h>
-#include <atomic.h>
-#include <ldsodefs.h>
-#include <tls.h>
-#include <list.h>
-#include <fork.h>
-#include <version.h>
-#include <shlib-compat.h>
-#include <smp.h>
-#include <lowlevellock.h>
-#include <futex-internal.h>
-#include <kernel-features.h>
-#include <libc-pointer-arith.h>
-#include <pthread-pids.h>
-
-#ifndef TLS_MULTIPLE_THREADS_IN_TCB
-/* Pointer to the corresponding variable in libc.  */
-int *__libc_multiple_threads_ptr attribute_hidden;
-#endif
-
-/* Size and alignment of static TLS block.  */
-size_t __static_tls_size;
-size_t __static_tls_align_m1;
-
-#ifndef __ASSUME_SET_ROBUST_LIST
-/* Negative if we do not have the system call and we can use it.  */
-int __set_robust_list_avail;
-# define set_robust_list_not_avail() \
-  __set_robust_list_avail = -1
-#else
-# define set_robust_list_not_avail() do { } while (0)
-#endif
-
-#ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-/* Nonzero if we do not have FUTEX_CLOCK_REALTIME.  */
-int __have_futex_clock_realtime;
-# define __set_futex_clock_realtime() \
-  __have_futex_clock_realtime = 1
-#else
-#define __set_futex_clock_realtime() do { } while (0)
-#endif
-
-/* Version of the library, used in libthread_db to detect mismatches.  */
-static const char nptl_version[] __attribute_used__ = VERSION;
-
-
-#ifdef SHARED
-static
-#else
-extern
-#endif
-void __nptl_set_robust (struct pthread *);
-
-#ifdef SHARED
-static void nptl_freeres (void);
-
-
-static const struct pthread_functions pthread_functions =
-  {
-    .ptr_pthread_attr_destroy = __pthread_attr_destroy,
-# if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-    .ptr___pthread_attr_init_2_0 = __pthread_attr_init_2_0,
-# endif
-    .ptr___pthread_attr_init_2_1 = __pthread_attr_init_2_1,
-    .ptr_pthread_attr_getdetachstate = __pthread_attr_getdetachstate,
-    .ptr_pthread_attr_setdetachstate = __pthread_attr_setdetachstate,
-    .ptr_pthread_attr_getinheritsched = __pthread_attr_getinheritsched,
-    .ptr_pthread_attr_setinheritsched = __pthread_attr_setinheritsched,
-    .ptr_pthread_attr_getschedparam = __pthread_attr_getschedparam,
-    .ptr_pthread_attr_setschedparam = __pthread_attr_setschedparam,
-    .ptr_pthread_attr_getschedpolicy = __pthread_attr_getschedpolicy,
-    .ptr_pthread_attr_setschedpolicy = __pthread_attr_setschedpolicy,
-    .ptr_pthread_attr_getscope = __pthread_attr_getscope,
-    .ptr_pthread_attr_setscope = __pthread_attr_setscope,
-    .ptr_pthread_condattr_destroy = __pthread_condattr_destroy,
-    .ptr_pthread_condattr_init = __pthread_condattr_init,
-    .ptr___pthread_cond_broadcast = __pthread_cond_broadcast,
-    .ptr___pthread_cond_destroy = __pthread_cond_destroy,
-    .ptr___pthread_cond_init = __pthread_cond_init,
-    .ptr___pthread_cond_signal = __pthread_cond_signal,
-    .ptr___pthread_cond_wait = __pthread_cond_wait,
-    .ptr___pthread_cond_timedwait = __pthread_cond_timedwait,
-# if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
-    .ptr___pthread_cond_broadcast_2_0 = __pthread_cond_broadcast_2_0,
-    .ptr___pthread_cond_destroy_2_0 = __pthread_cond_destroy_2_0,
-    .ptr___pthread_cond_init_2_0 = __pthread_cond_init_2_0,
-    .ptr___pthread_cond_signal_2_0 = __pthread_cond_signal_2_0,
-    .ptr___pthread_cond_wait_2_0 = __pthread_cond_wait_2_0,
-    .ptr___pthread_cond_timedwait_2_0 = __pthread_cond_timedwait_2_0,
-# endif
-    .ptr_pthread_equal = __pthread_equal,
-    .ptr___pthread_exit = __pthread_exit,
-    .ptr_pthread_getschedparam = __pthread_getschedparam,
-    .ptr_pthread_setschedparam = __pthread_setschedparam,
-    .ptr_pthread_mutex_destroy = __pthread_mutex_destroy,
-    .ptr_pthread_mutex_init = __pthread_mutex_init,
-    .ptr_pthread_mutex_lock = __pthread_mutex_lock,
-    .ptr_pthread_mutex_unlock = __pthread_mutex_unlock,
-    .ptr_pthread_self = __pthread_self,
-    .ptr___pthread_setcancelstate = __pthread_setcancelstate,
-    .ptr_pthread_setcanceltype = __pthread_setcanceltype,
-    .ptr___pthread_cleanup_upto = __pthread_cleanup_upto,
-    .ptr___pthread_once = __pthread_once,
-    .ptr___pthread_rwlock_rdlock = __pthread_rwlock_rdlock,
-    .ptr___pthread_rwlock_wrlock = __pthread_rwlock_wrlock,
-    .ptr___pthread_rwlock_unlock = __pthread_rwlock_unlock,
-    .ptr___pthread_key_create = __pthread_key_create,
-    .ptr___pthread_getspecific = __pthread_getspecific,
-    .ptr___pthread_setspecific = __pthread_setspecific,
-    .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
-    .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
-    .ptr_nthreads = &__nptl_nthreads,
-    .ptr___pthread_unwind = &__pthread_unwind,
-    .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
-# ifdef SIGSETXID
-    .ptr__nptl_setxid = __nptl_setxid,
-# endif
-    /* For now only the stack cache needs to be freed.  */
-    .ptr_freeres = nptl_freeres,
-    .ptr_set_robust = __nptl_set_robust
-  };
-# define ptr_pthread_functions &pthread_functions
-#else
-# define ptr_pthread_functions NULL
-#endif
-
-
-#ifdef SHARED
-/* This function is called indirectly from the freeres code in libc.  */
-static void
-__libc_freeres_fn_section
-nptl_freeres (void)
-{
-  __unwind_freeres ();
-  __free_stacks (0);
-}
-
-
-static
-#endif
-void
-__nptl_set_robust (struct pthread *self)
-{
-#ifdef __NR_set_robust_list
-  INTERNAL_SYSCALL_DECL (err);
-  INTERNAL_SYSCALL (set_robust_list, err, 2, &self->robust_head,
-		    sizeof (struct robust_list_head));
-#endif
-}
-
-
-#ifdef SIGCANCEL
-/* For asynchronous cancellation we use a signal.  This is the handler.  */
-static void
-sigcancel_handler (int sig, siginfo_t *si, void *ctx)
-{
-  /* Safety check.  It would be possible to call this function for
-     other signals and send a signal from another process.  This is not
-     correct and might even be a security problem.  Try to catch as
-     many incorrect invocations as possible.  */
-  if (sig != SIGCANCEL
-      || si->si_pid != __getpid()
-      || si->si_code != SI_TKILL)
-    return;
-
-  struct pthread *self = THREAD_SELF;
-
-  int oldval = THREAD_GETMEM (self, cancelhandling);
-  while (1)
-    {
-      /* We are canceled now.  When canceled by another thread this flag
-	 is already set but if the signal is directly send (internally or
-	 from another process) is has to be done here.  */
-      int newval = oldval | CANCELING_BITMASK | CANCELED_BITMASK;
-
-      if (oldval == newval || (oldval & EXITING_BITMASK) != 0)
-	/* Already canceled or exiting.  */
-	break;
-
-      int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval,
-					      oldval);
-      if (curval == oldval)
-	{
-	  /* Set the return value.  */
-	  THREAD_SETMEM (self, result, PTHREAD_CANCELED);
-
-	  /* Make sure asynchronous cancellation is still enabled.  */
-	  if ((newval & CANCELTYPE_BITMASK) != 0)
-	    /* Run the registered destructors and terminate the thread.  */
-	    __do_cancel ();
-
-	  break;
-	}
-
-      oldval = curval;
-    }
-}
-#endif
-
-
-#ifdef SIGSETXID
-struct xid_command *__xidcmd attribute_hidden;
-
-/* We use the SIGSETXID signal in the setuid, setgid, etc. implementations to
-   tell each thread to call the respective setxid syscall on itself.  This is
-   the handler.  */
-static void
-sighandler_setxid (int sig, siginfo_t *si, void *ctx)
-{
-  int result;
-
-  /* Safety check.  It would be possible to call this function for
-     other signals and send a signal from another process.  This is not
-     correct and might even be a security problem.  Try to catch as
-     many incorrect invocations as possible.  */
-  if (sig != SIGSETXID
-      || si->si_pid != __getpid ()
-      || si->si_code != SI_TKILL)
-    return;
-
-  INTERNAL_SYSCALL_DECL (err);
-  result = INTERNAL_SYSCALL_NCS (__xidcmd->syscall_no, err, 3, __xidcmd->id[0],
-				 __xidcmd->id[1], __xidcmd->id[2]);
-  int error = 0;
-  if (__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (result, err)))
-    error = INTERNAL_SYSCALL_ERRNO (result, err);
-  __nptl_setxid_error (__xidcmd, error);
-
-  /* Reset the SETXID flag.  */
-  struct pthread *self = THREAD_SELF;
-  int flags, newval;
-  do
-    {
-      flags = THREAD_GETMEM (self, cancelhandling);
-      newval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling,
-					  flags & ~SETXID_BITMASK, flags);
-    }
-  while (flags != newval);
-
-  /* And release the futex.  */
-  self->setxid_futex = 1;
-  futex_wake (&self->setxid_futex, 1, FUTEX_PRIVATE);
-
-  if (atomic_decrement_val (&__xidcmd->cntr) == 0)
-    futex_wake ((unsigned int *) &__xidcmd->cntr, 1, FUTEX_PRIVATE);
-}
-#endif
-
-
-/* When using __thread for this, we do it in libc so as not
-   to give libpthread its own TLS segment just for this.  */
-extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
-
-
-/* This can be set by the debugger before initialization is complete.  */
-static bool __nptl_initial_report_events __attribute_used__;
-
-void
-__pthread_initialize_minimal_internal (void)
-{
-  /* Minimal initialization of the thread descriptor.  */
-  struct pthread *pd = THREAD_SELF;
-  __pthread_initialize_pids (pd);
-  THREAD_SETMEM (pd, specific[0], &pd->specific_1stblock[0]);
-  THREAD_SETMEM (pd, user_stack, true);
-  if (LLL_LOCK_INITIALIZER != 0)
-    THREAD_SETMEM (pd, lock, LLL_LOCK_INITIALIZER);
-#if HP_TIMING_AVAIL
-  THREAD_SETMEM (pd, cpuclock_offset, GL(dl_cpuclock_offset));
-#endif
-
-  /* Initialize the robust mutex data.  */
-  {
-#ifdef __PTHREAD_MUTEX_HAVE_PREV
-    pd->robust_prev = &pd->robust_head;
-#endif
-    pd->robust_head.list = &pd->robust_head;
-#ifdef __NR_set_robust_list
-    pd->robust_head.futex_offset = (offsetof (pthread_mutex_t, __data.__lock)
-				    - offsetof (pthread_mutex_t,
-						__data.__list.__next));
-    INTERNAL_SYSCALL_DECL (err);
-    int res = INTERNAL_SYSCALL (set_robust_list, err, 2, &pd->robust_head,
-				sizeof (struct robust_list_head));
-    if (INTERNAL_SYSCALL_ERROR_P (res, err))
-#endif
-      set_robust_list_not_avail ();
-  }
-
-#ifdef __NR_futex
-# ifndef __ASSUME_PRIVATE_FUTEX
-  /* Private futexes are always used (at least internally) so that
-     doing the test once this early is beneficial.  */
-  {
-    int word = 0;
-    INTERNAL_SYSCALL_DECL (err);
-    word = INTERNAL_SYSCALL (futex, err, 3, &word,
-			    FUTEX_WAKE | FUTEX_PRIVATE_FLAG, 1);
-    if (!INTERNAL_SYSCALL_ERROR_P (word, err))
-      THREAD_SETMEM (pd, header.private_futex, FUTEX_PRIVATE_FLAG);
-  }
-
-  /* Private futexes have been introduced earlier than the
-     FUTEX_CLOCK_REALTIME flag.  We don't have to run the test if we
-     know the former are not supported.  This also means we know the
-     kernel will return ENOSYS for unknown operations.  */
-  if (THREAD_GETMEM (pd, header.private_futex) != 0)
-# endif
-# ifndef __ASSUME_FUTEX_CLOCK_REALTIME
-    {
-      int word = 0;
-      /* NB: the syscall actually takes six parameters.  The last is the
-	 bit mask.  But since we will not actually wait at all the value
-	 is irrelevant.  Given that passing six parameters is difficult
-	 on some architectures we just pass whatever random value the
-	 calling convention calls for to the kernel.  It causes no harm.  */
-      INTERNAL_SYSCALL_DECL (err);
-      word = INTERNAL_SYSCALL (futex, err, 5, &word,
-			       FUTEX_WAIT_BITSET | FUTEX_CLOCK_REALTIME
-			       | FUTEX_PRIVATE_FLAG, 1, NULL, 0);
-      assert (INTERNAL_SYSCALL_ERROR_P (word, err));
-      if (INTERNAL_SYSCALL_ERRNO (word, err) != ENOSYS)
-	__set_futex_clock_realtime ();
-    }
-# endif
-#endif
-
-  /* Set initial thread's stack block from 0 up to __libc_stack_end.
-     It will be bigger than it actually is, but for unwind.c/pt-longjmp.c
-     purposes this is good enough.  */
-  THREAD_SETMEM (pd, stackblock_size, (size_t) __libc_stack_end);
-
-  /* Initialize the list of all running threads with the main thread.  */
-  INIT_LIST_HEAD (&__stack_user);
-  list_add (&pd->list, &__stack_user);
-
-  /* Before initializing __stack_user, the debugger could not find us and
-     had to set __nptl_initial_report_events.  Propagate its setting.  */
-  THREAD_SETMEM (pd, report_events, __nptl_initial_report_events);
-
-#if defined SIGCANCEL || defined SIGSETXID
-  struct sigaction sa;
-  __sigemptyset (&sa.sa_mask);
-
-# ifdef SIGCANCEL
-  /* Install the cancellation signal handler.  If for some reason we
-     cannot install the handler we do not abort.  Maybe we should, but
-     it is only asynchronous cancellation which is affected.  */
-  sa.sa_sigaction = sigcancel_handler;
-  sa.sa_flags = SA_SIGINFO;
-  (void) __libc_sigaction (SIGCANCEL, &sa, NULL);
-# endif
-
-# ifdef SIGSETXID
-  /* Install the handle to change the threads' uid/gid.  */
-  sa.sa_sigaction = sighandler_setxid;
-  sa.sa_flags = SA_SIGINFO | SA_RESTART;
-  (void) __libc_sigaction (SIGSETXID, &sa, NULL);
-# endif
-
-  /* The parent process might have left the signals blocked.  Just in
-     case, unblock it.  We reuse the signal mask in the sigaction
-     structure.  It is already cleared.  */
-# ifdef SIGCANCEL
-  __sigaddset (&sa.sa_mask, SIGCANCEL);
-# endif
-# ifdef SIGSETXID
-  __sigaddset (&sa.sa_mask, SIGSETXID);
-# endif
-  {
-    INTERNAL_SYSCALL_DECL (err);
-    (void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_UNBLOCK, &sa.sa_mask,
-			     NULL, _NSIG / 8);
-  }
-#endif
-
-  /* Get the size of the static and alignment requirements for the TLS
-     block.  */
-  size_t static_tls_align;
-  _dl_get_tls_static_info (&__static_tls_size, &static_tls_align);
-
-  /* Make sure the size takes all the alignments into account.  */
-  if (STACK_ALIGN > static_tls_align)
-    static_tls_align = STACK_ALIGN;
-  __static_tls_align_m1 = static_tls_align - 1;
-
-  __static_tls_size = roundup (__static_tls_size, static_tls_align);
-
-  /* Determine the default allowed stack size.  This is the size used
-     in case the user does not specify one.  */
-  struct rlimit limit;
-  if (__getrlimit (RLIMIT_STACK, &limit) != 0
-      || limit.rlim_cur == RLIM_INFINITY)
-    /* The system limit is not usable.  Use an architecture-specific
-       default.  */
-    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
-  else if (limit.rlim_cur < PTHREAD_STACK_MIN)
-    /* The system limit is unusably small.
-       Use the minimal size acceptable.  */
-    limit.rlim_cur = PTHREAD_STACK_MIN;
-
-  /* Make sure it meets the minimum size that allocate_stack
-     (allocatestack.c) will demand, which depends on the page size.  */
-  const uintptr_t pagesz = GLRO(dl_pagesize);
-  const size_t minstack = pagesz + __static_tls_size + MINIMAL_REST_STACK;
-  if (limit.rlim_cur < minstack)
-    limit.rlim_cur = minstack;
-
-  /* Round the resource limit up to page size.  */
-  limit.rlim_cur = ALIGN_UP (limit.rlim_cur, pagesz);
-  lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
-  __default_pthread_attr.stacksize = limit.rlim_cur;
-  __default_pthread_attr.guardsize = GLRO (dl_pagesize);
-  lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
-
-#ifdef SHARED
-  /* Make __rtld_lock_{,un}lock_recursive use pthread_mutex_{,un}lock,
-     keep the lock count from the ld.so implementation.  */
-  GL(dl_rtld_lock_recursive) = (void *) __pthread_mutex_lock;
-  GL(dl_rtld_unlock_recursive) = (void *) __pthread_mutex_unlock;
-  unsigned int rtld_lock_count = GL(dl_load_lock).mutex.__data.__count;
-  GL(dl_load_lock).mutex.__data.__count = 0;
-  while (rtld_lock_count-- > 0)
-    __pthread_mutex_lock (&GL(dl_load_lock).mutex);
-
-  GL(dl_make_stack_executable_hook) = &__make_stacks_executable;
-#endif
-
-  GL(dl_init_static_tls) = &__pthread_init_static_tls;
-
-  GL(dl_wait_lookup_done) = &__wait_lookup_done;
-
-  /* Register the fork generation counter with the libc.  */
-#ifndef TLS_MULTIPLE_THREADS_IN_TCB
-  __libc_multiple_threads_ptr =
-#endif
-    __libc_pthread_init (&__fork_generation, __reclaim_stacks,
-			 ptr_pthread_functions);
-
-  /* Determine whether the machine is SMP or not.  */
-  __is_smp = is_smp_system ();
-}
-strong_alias (__pthread_initialize_minimal_internal,
-	      __pthread_initialize_minimal)
-
-
-size_t
-__pthread_get_minstack (const pthread_attr_t *attr)
-{
-  struct pthread_attr *iattr = (struct pthread_attr *) attr;
-
-  return (GLRO(dl_pagesize) + __static_tls_size + PTHREAD_STACK_MIN
-	  + iattr->guardsize);
-}
diff --git a/nptl/nptl-printers.py b/nptl/nptl-printers.py
deleted file mode 100644
index 572a25c32e..0000000000
--- a/nptl/nptl-printers.py
+++ /dev/null
@@ -1,594 +0,0 @@
-# Pretty printers for the NPTL lock types.
-#
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-"""This file contains the gdb pretty printers for the following types:
-
-    * pthread_mutex_t
-    * pthread_mutexattr_t
-    * pthread_cond_t
-    * pthread_condattr_t
-    * pthread_rwlock_t
-    * pthread_rwlockattr_t
-
-You can check which printers are registered and enabled by issuing the
-'info pretty-printer' gdb command.  Printers should trigger automatically when
-trying to print a variable of one of the types mentioned above.
-"""
-
-from __future__ import print_function
-
-import gdb
-import gdb.printing
-from nptl_lock_constants import *
-
-MUTEX_TYPES = {
-    PTHREAD_MUTEX_NORMAL: ('Type', 'Normal'),
-    PTHREAD_MUTEX_RECURSIVE: ('Type', 'Recursive'),
-    PTHREAD_MUTEX_ERRORCHECK: ('Type', 'Error check'),
-    PTHREAD_MUTEX_ADAPTIVE_NP: ('Type', 'Adaptive')
-}
-
-class MutexPrinter(object):
-    """Pretty printer for pthread_mutex_t."""
-
-    def __init__(self, mutex):
-        """Initialize the printer's internal data structures.
-
-        Args:
-            mutex: A gdb.value representing a pthread_mutex_t.
-        """
-
-        data = mutex['__data']
-        self.lock = data['__lock']
-        self.count = data['__count']
-        self.owner = data['__owner']
-        self.kind = data['__kind']
-        self.values = []
-        self.read_values()
-
-    def to_string(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_mutex_t.
-        """
-
-        return 'pthread_mutex_t'
-
-    def children(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_mutex_t.
-        """
-
-        return self.values
-
-    def read_values(self):
-        """Read the mutex's info and store it in self.values.
-
-        The data contained in self.values will be returned by the Iterator
-        created in self.children.
-        """
-
-        self.read_type()
-        self.read_status()
-        self.read_attributes()
-        self.read_misc_info()
-
-    def read_type(self):
-        """Read the mutex's type."""
-
-        mutex_type = self.kind & PTHREAD_MUTEX_KIND_MASK
-
-        # mutex_type must be casted to int because it's a gdb.Value
-        self.values.append(MUTEX_TYPES[int(mutex_type)])
-
-    def read_status(self):
-        """Read the mutex's status.
-
-        Architectures that support lock elision might not record the mutex owner
-        ID in the __owner field.  In that case, the owner will be reported as
-        "Unknown".
-        """
-
-        if self.kind == PTHREAD_MUTEX_DESTROYED:
-            self.values.append(('Status', 'Destroyed'))
-        elif self.kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP:
-            self.read_status_robust()
-        else:
-            self.read_status_no_robust()
-
-    def read_status_robust(self):
-        """Read the status of a robust mutex.
-
-        In glibc robust mutexes are implemented in a very different way than
-        non-robust ones.  This method reads their locking status,
-        whether it may have waiters, their registered owner (if any),
-        whether the owner is alive or not, and the status of the state
-        they're protecting.
-        """
-
-        if self.lock == PTHREAD_MUTEX_UNLOCKED:
-            self.values.append(('Status', 'Not acquired'))
-        else:
-            if self.lock & FUTEX_WAITERS:
-                self.values.append(('Status',
-                                    'Acquired, possibly with waiters'))
-            else:
-                self.values.append(('Status',
-                                    'Acquired, possibly with no waiters'))
-
-            if self.lock & FUTEX_OWNER_DIED:
-                self.values.append(('Owner ID', '%d (dead)' % self.owner))
-            else:
-                self.values.append(('Owner ID', self.lock & FUTEX_TID_MASK))
-
-        if self.owner == PTHREAD_MUTEX_INCONSISTENT:
-            self.values.append(('State protected by this mutex',
-                                'Inconsistent'))
-        elif self.owner == PTHREAD_MUTEX_NOTRECOVERABLE:
-            self.values.append(('State protected by this mutex',
-                                'Not recoverable'))
-
-    def read_status_no_robust(self):
-        """Read the status of a non-robust mutex.
-
-        Read info on whether the mutex is acquired, if it may have waiters
-        and its owner (if any).
-        """
-
-        lock_value = self.lock
-
-        if self.kind & PTHREAD_MUTEX_PRIO_PROTECT_NP:
-            lock_value &= ~(PTHREAD_MUTEX_PRIO_CEILING_MASK)
-
-        if lock_value == PTHREAD_MUTEX_UNLOCKED:
-            self.values.append(('Status', 'Not acquired'))
-        else:
-            if self.kind & PTHREAD_MUTEX_PRIO_INHERIT_NP:
-                waiters = self.lock & FUTEX_WAITERS
-                owner = self.lock & FUTEX_TID_MASK
-            else:
-                # Mutex protocol is PP or none
-                waiters = (self.lock != PTHREAD_MUTEX_LOCKED_NO_WAITERS)
-                owner = self.owner
-
-            if waiters:
-                self.values.append(('Status',
-                                    'Acquired, possibly with waiters'))
-            else:
-                self.values.append(('Status',
-                                    'Acquired, possibly with no waiters'))
-
-            if self.owner != 0:
-                self.values.append(('Owner ID', owner))
-            else:
-                # Owner isn't recorded, probably because lock elision
-                # is enabled.
-                self.values.append(('Owner ID', 'Unknown'))
-
-    def read_attributes(self):
-        """Read the mutex's attributes."""
-
-        if self.kind != PTHREAD_MUTEX_DESTROYED:
-            if self.kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP:
-                self.values.append(('Robust', 'Yes'))
-            else:
-                self.values.append(('Robust', 'No'))
-
-            # In glibc, robust mutexes always have their pshared flag set to
-            # 'shared' regardless of what the pshared flag of their
-            # mutexattr was.  Therefore a robust mutex will act as shared
-            # even if it was initialized with a 'private' mutexattr.
-            if self.kind & PTHREAD_MUTEX_PSHARED_BIT:
-                self.values.append(('Shared', 'Yes'))
-            else:
-                self.values.append(('Shared', 'No'))
-
-            if self.kind & PTHREAD_MUTEX_PRIO_INHERIT_NP:
-                self.values.append(('Protocol', 'Priority inherit'))
-            elif self.kind & PTHREAD_MUTEX_PRIO_PROTECT_NP:
-                prio_ceiling = ((self.lock & PTHREAD_MUTEX_PRIO_CEILING_MASK)
-                                >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT)
-
-                self.values.append(('Protocol', 'Priority protect'))
-                self.values.append(('Priority ceiling', prio_ceiling))
-            else:
-                # PTHREAD_PRIO_NONE
-                self.values.append(('Protocol', 'None'))
-
-    def read_misc_info(self):
-        """Read miscellaneous info on the mutex.
-
-        For now this reads the number of times a recursive mutex was acquired
-        by the same thread.
-        """
-
-        mutex_type = self.kind & PTHREAD_MUTEX_KIND_MASK
-
-        if mutex_type == PTHREAD_MUTEX_RECURSIVE and self.count > 1:
-            self.values.append(('Times acquired by the owner', self.count))
-
-class MutexAttributesPrinter(object):
-    """Pretty printer for pthread_mutexattr_t.
-
-    In the NPTL this is a type that's always casted to struct pthread_mutexattr
-    which has a single 'mutexkind' field containing the actual attributes.
-    """
-
-    def __init__(self, mutexattr):
-        """Initialize the printer's internal data structures.
-
-        Args:
-            mutexattr: A gdb.value representing a pthread_mutexattr_t.
-        """
-
-        self.values = []
-
-        try:
-            mutexattr_struct = gdb.lookup_type('struct pthread_mutexattr')
-            self.mutexattr = mutexattr.cast(mutexattr_struct)['mutexkind']
-            self.read_values()
-        except gdb.error:
-            # libpthread doesn't have debug symbols, thus we can't find the
-            # real struct type.  Just print the union members.
-            self.values.append(('__size', mutexattr['__size']))
-            self.values.append(('__align', mutexattr['__align']))
-
-    def to_string(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_mutexattr_t.
-        """
-
-        return 'pthread_mutexattr_t'
-
-    def children(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_mutexattr_t.
-        """
-
-        return self.values
-
-    def read_values(self):
-        """Read the mutexattr's info and store it in self.values.
-
-        The data contained in self.values will be returned by the Iterator
-        created in self.children.
-        """
-
-        mutexattr_type = (self.mutexattr
-                          & ~PTHREAD_MUTEXATTR_FLAG_BITS
-                          & ~PTHREAD_MUTEX_NO_ELISION_NP)
-
-        # mutexattr_type must be casted to int because it's a gdb.Value
-        self.values.append(MUTEX_TYPES[int(mutexattr_type)])
-
-        if self.mutexattr & PTHREAD_MUTEXATTR_FLAG_ROBUST:
-            self.values.append(('Robust', 'Yes'))
-        else:
-            self.values.append(('Robust', 'No'))
-
-        if self.mutexattr & PTHREAD_MUTEXATTR_FLAG_PSHARED:
-            self.values.append(('Shared', 'Yes'))
-        else:
-            self.values.append(('Shared', 'No'))
-
-        protocol = ((self.mutexattr & PTHREAD_MUTEXATTR_PROTOCOL_MASK) >>
-                    PTHREAD_MUTEXATTR_PROTOCOL_SHIFT)
-
-        if protocol == PTHREAD_PRIO_NONE:
-            self.values.append(('Protocol', 'None'))
-        elif protocol == PTHREAD_PRIO_INHERIT:
-            self.values.append(('Protocol', 'Priority inherit'))
-        elif protocol == PTHREAD_PRIO_PROTECT:
-            self.values.append(('Protocol', 'Priority protect'))
-
-class ConditionVariablePrinter(object):
-    """Pretty printer for pthread_cond_t."""
-
-    def __init__(self, cond):
-        """Initialize the printer's internal data structures.
-
-        Args:
-            cond: A gdb.value representing a pthread_cond_t.
-        """
-
-        data = cond['__data']
-        self.wrefs = data['__wrefs']
-        self.values = []
-
-        self.read_values()
-
-    def to_string(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_cond_t.
-        """
-
-        return 'pthread_cond_t'
-
-    def children(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_cond_t.
-        """
-
-        return self.values
-
-    def read_values(self):
-        """Read the condvar's info and store it in self.values.
-
-        The data contained in self.values will be returned by the Iterator
-        created in self.children.
-        """
-
-        self.read_status()
-        self.read_attributes()
-
-    def read_status(self):
-        """Read the status of the condvar.
-
-        This method reads whether the condvar is destroyed and how many threads
-        are waiting for it.
-        """
-
-        self.values.append(('Threads known to still execute a wait function',
-                            self.wrefs >> PTHREAD_COND_WREFS_SHIFT))
-
-    def read_attributes(self):
-        """Read the condvar's attributes."""
-
-        if (self.wrefs & PTHREAD_COND_CLOCK_MONOTONIC_MASK) != 0:
-            self.values.append(('Clock ID', 'CLOCK_MONOTONIC'))
-        else:
-            self.values.append(('Clock ID', 'CLOCK_REALTIME'))
-
-        if (self.wrefs & PTHREAD_COND_SHARED_MASK) != 0:
-            self.values.append(('Shared', 'Yes'))
-        else:
-            self.values.append(('Shared', 'No'))
-
-class ConditionVariableAttributesPrinter(object):
-    """Pretty printer for pthread_condattr_t.
-
-    In the NPTL this is a type that's always casted to struct pthread_condattr,
-    which has a single 'value' field containing the actual attributes.
-    """
-
-    def __init__(self, condattr):
-        """Initialize the printer's internal data structures.
-
-        Args:
-            condattr: A gdb.value representing a pthread_condattr_t.
-        """
-
-        self.values = []
-
-        try:
-            condattr_struct = gdb.lookup_type('struct pthread_condattr')
-            self.condattr = condattr.cast(condattr_struct)['value']
-            self.read_values()
-        except gdb.error:
-            # libpthread doesn't have debug symbols, thus we can't find the
-            # real struct type.  Just print the union members.
-            self.values.append(('__size', condattr['__size']))
-            self.values.append(('__align', condattr['__align']))
-
-    def to_string(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_condattr_t.
-        """
-
-        return 'pthread_condattr_t'
-
-    def children(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_condattr_t.
-        """
-
-        return self.values
-
-    def read_values(self):
-        """Read the condattr's info and store it in self.values.
-
-        The data contained in self.values will be returned by the Iterator
-        created in self.children.
-        """
-
-        clock_id = (self.condattr >> 1) & ((1 << COND_CLOCK_BITS) - 1)
-
-        if clock_id != 0:
-            self.values.append(('Clock ID', 'CLOCK_MONOTONIC'))
-        else:
-            self.values.append(('Clock ID', 'CLOCK_REALTIME'))
-
-        if self.condattr & 1:
-            self.values.append(('Shared', 'Yes'))
-        else:
-            self.values.append(('Shared', 'No'))
-
-class RWLockPrinter(object):
-    """Pretty printer for pthread_rwlock_t."""
-
-    def __init__(self, rwlock):
-        """Initialize the printer's internal data structures.
-
-        Args:
-            rwlock: A gdb.value representing a pthread_rwlock_t.
-        """
-
-        data = rwlock['__data']
-        self.readers = data['__readers']
-        self.cur_writer = data['__cur_writer']
-        self.shared = data['__shared']
-        self.flags = data['__flags']
-        self.values = []
-        self.read_values()
-
-    def to_string(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_rwlock_t.
-        """
-
-        return 'pthread_rwlock_t'
-
-    def children(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_rwlock_t.
-        """
-
-        return self.values
-
-    def read_values(self):
-        """Read the rwlock's info and store it in self.values.
-
-        The data contained in self.values will be returned by the Iterator
-        created in self.children.
-        """
-
-        self.read_status()
-        self.read_attributes()
-
-    def read_status(self):
-        """Read the status of the rwlock."""
-
-        if self.readers & PTHREAD_RWLOCK_WRPHASE:
-            if self.readers & PTHREAD_RWLOCK_WRLOCKED:
-                self.values.append(('Status', 'Acquired (Write)'))
-                self.values.append(('Writer ID', self.cur_writer))
-            else:
-                self.values.append(('Status', 'Not acquired'))
-        else:
-            r = self.readers >> PTHREAD_RWLOCK_READER_SHIFT
-            if r > 0:
-                self.values.append(('Status', 'Acquired (Read)'))
-                self.values.append(('Readers', r))
-            else:
-                self.values.append(('Status', 'Not acquired'))
-
-    def read_attributes(self):
-        """Read the attributes of the rwlock."""
-
-        if self.shared:
-            self.values.append(('Shared', 'Yes'))
-        else:
-            self.values.append(('Shared', 'No'))
-
-        if self.flags == PTHREAD_RWLOCK_PREFER_READER_NP:
-            self.values.append(('Prefers', 'Readers'))
-        elif self.flags == PTHREAD_RWLOCK_PREFER_WRITER_NP:
-            self.values.append(('Prefers', 'Writers'))
-        else:
-            self.values.append(('Prefers', 'Writers no recursive readers'))
-
-class RWLockAttributesPrinter(object):
-    """Pretty printer for pthread_rwlockattr_t.
-
-    In the NPTL this is a type that's always casted to
-    struct pthread_rwlockattr, which has two fields ('lockkind' and 'pshared')
-    containing the actual attributes.
-    """
-
-    def __init__(self, rwlockattr):
-        """Initialize the printer's internal data structures.
-
-        Args:
-            rwlockattr: A gdb.value representing a pthread_rwlockattr_t.
-        """
-
-        self.values = []
-
-        try:
-            rwlockattr_struct = gdb.lookup_type('struct pthread_rwlockattr')
-            self.rwlockattr = rwlockattr.cast(rwlockattr_struct)
-            self.read_values()
-        except gdb.error:
-            # libpthread doesn't have debug symbols, thus we can't find the
-            # real struct type.  Just print the union members.
-            self.values.append(('__size', rwlockattr['__size']))
-            self.values.append(('__align', rwlockattr['__align']))
-
-    def to_string(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_rwlockattr_t.
-        """
-
-        return 'pthread_rwlockattr_t'
-
-    def children(self):
-        """gdb API function.
-
-        This is called from gdb when we try to print a pthread_rwlockattr_t.
-        """
-
-        return self.values
-
-    def read_values(self):
-        """Read the rwlockattr's info and store it in self.values.
-
-        The data contained in self.values will be returned by the Iterator
-        created in self.children.
-        """
-
-        rwlock_type = self.rwlockattr['lockkind']
-        shared = self.rwlockattr['pshared']
-
-        if shared == PTHREAD_PROCESS_SHARED:
-            self.values.append(('Shared', 'Yes'))
-        else:
-            # PTHREAD_PROCESS_PRIVATE
-            self.values.append(('Shared', 'No'))
-
-        if rwlock_type == PTHREAD_RWLOCK_PREFER_READER_NP:
-            self.values.append(('Prefers', 'Readers'))
-        elif rwlock_type == PTHREAD_RWLOCK_PREFER_WRITER_NP:
-            self.values.append(('Prefers', 'Writers'))
-        else:
-            self.values.append(('Prefers', 'Writers no recursive readers'))
-
-def register(objfile):
-    """Register the pretty printers within the given objfile."""
-
-    printer = gdb.printing.RegexpCollectionPrettyPrinter('glibc-pthread-locks')
-
-    printer.add_printer('pthread_mutex_t', r'^pthread_mutex_t$',
-                        MutexPrinter)
-    printer.add_printer('pthread_mutexattr_t', r'^pthread_mutexattr_t$',
-                        MutexAttributesPrinter)
-    printer.add_printer('pthread_cond_t', r'^pthread_cond_t$',
-                        ConditionVariablePrinter)
-    printer.add_printer('pthread_condattr_t', r'^pthread_condattr_t$',
-                        ConditionVariableAttributesPrinter)
-    printer.add_printer('pthread_rwlock_t', r'^pthread_rwlock_t$',
-                        RWLockPrinter)
-    printer.add_printer('pthread_rwlockattr_t', r'^pthread_rwlockattr_t$',
-                        RWLockAttributesPrinter)
-
-    if objfile == None:
-        objfile = gdb
-
-    gdb.printing.register_pretty_printer(objfile, printer)
-
-register(gdb.current_objfile())
diff --git a/nptl/nptl_lock_constants.pysym b/nptl/nptl_lock_constants.pysym
deleted file mode 100644
index ade4398e0c..0000000000
--- a/nptl/nptl_lock_constants.pysym
+++ /dev/null
@@ -1,67 +0,0 @@
-#include <pthreadP.h>
-
--- Mutex types
-PTHREAD_MUTEX_KIND_MASK          PTHREAD_MUTEX_KIND_MASK_NP
-PTHREAD_MUTEX_NORMAL
-PTHREAD_MUTEX_RECURSIVE          PTHREAD_MUTEX_RECURSIVE_NP
-PTHREAD_MUTEX_ERRORCHECK         PTHREAD_MUTEX_ERRORCHECK_NP
-PTHREAD_MUTEX_ADAPTIVE_NP
-
--- Mutex status
--- These are hardcoded all over the code; there are no enums/macros for them.
-PTHREAD_MUTEX_DESTROYED         -1
-PTHREAD_MUTEX_UNLOCKED           0
-PTHREAD_MUTEX_LOCKED_NO_WAITERS  1
-
--- For robust mutexes
-PTHREAD_MUTEX_INCONSISTENT
-PTHREAD_MUTEX_NOTRECOVERABLE
-FUTEX_OWNER_DIED
-
--- For robust and PI mutexes
-FUTEX_WAITERS
-FUTEX_TID_MASK
-
--- Mutex attributes
-PTHREAD_MUTEX_ROBUST_NORMAL_NP
-PTHREAD_MUTEX_PRIO_INHERIT_NP
-PTHREAD_MUTEX_PRIO_PROTECT_NP
-PTHREAD_MUTEX_PSHARED_BIT
-PTHREAD_MUTEX_PRIO_CEILING_SHIFT
-PTHREAD_MUTEX_PRIO_CEILING_MASK
-
--- Mutex attribute flags
-PTHREAD_MUTEXATTR_PROTOCOL_SHIFT
-PTHREAD_MUTEXATTR_PROTOCOL_MASK
-PTHREAD_MUTEXATTR_PRIO_CEILING_MASK
-PTHREAD_MUTEXATTR_FLAG_ROBUST
-PTHREAD_MUTEXATTR_FLAG_PSHARED
-PTHREAD_MUTEXATTR_FLAG_BITS
-PTHREAD_MUTEX_NO_ELISION_NP
-
--- Priority protocols
-PTHREAD_PRIO_NONE
-PTHREAD_PRIO_INHERIT
-PTHREAD_PRIO_PROTECT
-
--- Condition variable
--- FIXME Why do macros prefixed with __ cannot be used directly?
-PTHREAD_COND_SHARED_MASK          __PTHREAD_COND_SHARED_MASK
-PTHREAD_COND_CLOCK_MONOTONIC_MASK __PTHREAD_COND_CLOCK_MONOTONIC_MASK
-COND_CLOCK_BITS
--- These values are hardcoded:
-PTHREAD_COND_WREFS_SHIFT          3
-
--- Rwlock attributes
-PTHREAD_RWLOCK_PREFER_READER_NP
-PTHREAD_RWLOCK_PREFER_WRITER_NP
-PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
-
--- Rwlock
-PTHREAD_RWLOCK_WRPHASE
-PTHREAD_RWLOCK_WRLOCKED
-PTHREAD_RWLOCK_READER_SHIFT
-
--- 'Shared' attribute values
-PTHREAD_PROCESS_PRIVATE
-PTHREAD_PROCESS_SHARED
diff --git a/nptl/old_pthread_atfork.c b/nptl/old_pthread_atfork.c
deleted file mode 100644
index 23c8056eff..0000000000
--- a/nptl/old_pthread_atfork.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <shlib-compat.h>
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_3)
-# define __pthread_atfork __dyn_pthread_atfork
-# include "pthread_atfork.c"
-# undef __pthread_atfork
-compat_symbol (libpthread, __dyn_pthread_atfork, pthread_atfork, GLIBC_2_0);
-#endif
diff --git a/nptl/old_pthread_cond_broadcast.c b/nptl/old_pthread_cond_broadcast.c
deleted file mode 100644
index 751ecfcd06..0000000000
--- a/nptl/old_pthread_cond_broadcast.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <shlib-compat.h>
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
-int
-__pthread_cond_broadcast_2_0 (pthread_cond_2_0_t *cond)
-{
-  if (cond->cond == NULL)
-    {
-      pthread_cond_t *newcond;
-
-#if LLL_LOCK_INITIALIZER == 0
-      newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1);
-      if (newcond == NULL)
-	return ENOMEM;
-#else
-      newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t));
-      if (newcond == NULL)
-	return ENOMEM;
-
-      /* Initialize the condvar.  */
-      (void) pthread_cond_init (newcond, NULL);
-#endif
-
-      if (atomic_compare_and_exchange_bool_acq (&cond->cond, newcond, NULL))
-	/* Somebody else just initialized the condvar.  */
-	free (newcond);
-    }
-
-  return __pthread_cond_broadcast (cond->cond);
-}
-compat_symbol (libpthread, __pthread_cond_broadcast_2_0,
-	       pthread_cond_broadcast, GLIBC_2_0);
-#endif
diff --git a/nptl/old_pthread_cond_destroy.c b/nptl/old_pthread_cond_destroy.c
deleted file mode 100644
index d955c488c5..0000000000
--- a/nptl/old_pthread_cond_destroy.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <shlib-compat.h>
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
-int
-__pthread_cond_destroy_2_0 (pthread_cond_2_0_t *cond)
-{
-  /* Free the memory which was eventually allocated.  */
-  free (cond->cond);
-
-  return 0;
-}
-compat_symbol (libpthread, __pthread_cond_destroy_2_0, pthread_cond_destroy,
-	       GLIBC_2_0);
-#endif
diff --git a/nptl/old_pthread_cond_init.c b/nptl/old_pthread_cond_init.c
deleted file mode 100644
index fe7f5c640b..0000000000
--- a/nptl/old_pthread_cond_init.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <shlib-compat.h>
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
-int
-__pthread_cond_init_2_0 (pthread_cond_2_0_t *cond,
-			 const pthread_condattr_t *cond_attr)
-{
-  struct pthread_condattr *icond_attr = (struct pthread_condattr *) cond_attr;
-
-  /* The type of the first argument is actually that of the old, too
-     small pthread_cond_t.  We use only the first word of it, as a
-     pointer.  */
-  cond->cond = NULL;
-
-  /* We can't support PSHARED condvars in the old pthread_cond_*
-     functions and neither clocks other than CLOCK_REALTIME.  */
-  if (icond_attr != NULL && icond_attr->value)
-    return EINVAL;
-
-  return 0;
-}
-compat_symbol (libpthread, __pthread_cond_init_2_0, pthread_cond_init,
-	       GLIBC_2_0);
-#endif
diff --git a/nptl/old_pthread_cond_signal.c b/nptl/old_pthread_cond_signal.c
deleted file mode 100644
index ae49f7ebe2..0000000000
--- a/nptl/old_pthread_cond_signal.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <shlib-compat.h>
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
-int
-__pthread_cond_signal_2_0 (pthread_cond_2_0_t *cond)
-{
-  if (cond->cond == NULL)
-    {
-      pthread_cond_t *newcond;
-
-#if LLL_LOCK_INITIALIZER == 0
-      newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1);
-      if (newcond == NULL)
-	return ENOMEM;
-#else
-      newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t));
-      if (newcond == NULL)
-	return ENOMEM;
-
-      /* Initialize the condvar.  */
-      (void) pthread_cond_init (newcond, NULL);
-#endif
-
-      if (atomic_compare_and_exchange_bool_acq (&cond->cond, newcond, NULL))
-	/* Somebody else just initialized the condvar.  */
-	free (newcond);
-    }
-
-  return __pthread_cond_signal (cond->cond);
-}
-compat_symbol (libpthread, __pthread_cond_signal_2_0, pthread_cond_signal,
-	       GLIBC_2_0);
-#endif
diff --git a/nptl/old_pthread_cond_timedwait.c b/nptl/old_pthread_cond_timedwait.c
deleted file mode 100644
index 43e8c8d4fe..0000000000
--- a/nptl/old_pthread_cond_timedwait.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <shlib-compat.h>
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
-int
-__pthread_cond_timedwait_2_0 (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex,
-			      const struct timespec *abstime)
-{
-  if (cond->cond == NULL)
-    {
-      pthread_cond_t *newcond;
-
-#if LLL_LOCK_INITIALIZER == 0
-      newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1);
-      if (newcond == NULL)
-	return ENOMEM;
-#else
-      newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t));
-      if (newcond == NULL)
-	return ENOMEM;
-
-      /* Initialize the condvar.  */
-      (void) pthread_cond_init (newcond, NULL);
-#endif
-
-      if (atomic_compare_and_exchange_bool_acq (&cond->cond, newcond, NULL))
-	/* Somebody else just initialized the condvar.  */
-	free (newcond);
-    }
-
-  return __pthread_cond_timedwait (cond->cond, mutex, abstime);
-}
-compat_symbol (libpthread, __pthread_cond_timedwait_2_0,
-	       pthread_cond_timedwait, GLIBC_2_0);
-#endif
diff --git a/nptl/old_pthread_cond_wait.c b/nptl/old_pthread_cond_wait.c
deleted file mode 100644
index 2e7d10e0c8..0000000000
--- a/nptl/old_pthread_cond_wait.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <shlib-compat.h>
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_3_2)
-int
-__pthread_cond_wait_2_0 (pthread_cond_2_0_t *cond, pthread_mutex_t *mutex)
-{
-  if (cond->cond == NULL)
-    {
-      pthread_cond_t *newcond;
-
-#if LLL_LOCK_INITIALIZER == 0
-      newcond = (pthread_cond_t *) calloc (sizeof (pthread_cond_t), 1);
-      if (newcond == NULL)
-	return ENOMEM;
-#else
-      newcond = (pthread_cond_t *) malloc (sizeof (pthread_cond_t));
-      if (newcond == NULL)
-	return ENOMEM;
-
-      /* Initialize the condvar.  */
-      (void) pthread_cond_init (newcond, NULL);
-#endif
-
-      if (atomic_compare_and_exchange_bool_acq (&cond->cond, newcond, NULL))
-	/* Somebody else just initialized the condvar.  */
-	free (newcond);
-    }
-
-  return __pthread_cond_wait (cond->cond, mutex);
-}
-compat_symbol (libpthread, __pthread_cond_wait_2_0, pthread_cond_wait,
-	       GLIBC_2_0);
-#endif
diff --git a/nptl/perf.c b/nptl/perf.c
deleted file mode 100644
index 79c6a527d9..0000000000
--- a/nptl/perf.c
+++ /dev/null
@@ -1,759 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define _GNU_SOURCE	1
-#include <argp.h>
-#include <error.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <limits.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/types.h>
-
-#ifndef MAX_THREADS
-# define MAX_THREADS		100000
-#endif
-#ifndef DEFAULT_THREADS
-# define DEFAULT_THREADS	50
-#endif
-
-
-#define OPT_TO_THREAD		300
-#define OPT_TO_PROCESS		301
-#define OPT_SYNC_SIGNAL		302
-#define OPT_SYNC_JOIN		303
-#define OPT_TOPLEVEL		304
-
-
-static const struct argp_option options[] =
-  {
-    { NULL, 0, NULL, 0, "\
-This is a test for threads so we allow ther user to selection the number of \
-threads which are used at any one time.  Independently the total number of \
-rounds can be selected.  This is the total number of threads which will have \
-run when the process terminates:" },
-    { "threads", 't', "NUMBER", 0, "Number of threads used at once" },
-    { "starts", 's', "NUMBER", 0, "Total number of working threads" },
-    { "toplevel", OPT_TOPLEVEL, "NUMBER", 0,
-      "Number of toplevel threads which start the other threads; this \
-implies --sync-join" },
-
-    { NULL, 0, NULL, 0, "\
-Each thread can do one of two things: sleep or do work.  The latter is 100% \
-CPU bound.  The work load is the probability a thread does work.  All values \
-from zero to 100 (inclusive) are valid.  How often each thread repeats this \
-can be determined by the number of rounds.  The work cost determines how long \
-each work session (not sleeping) takes.  If it is zero a thread would \
-effectively nothing.  By setting the number of rounds to zero the thread \
-does no work at all and pure thread creation times can be measured." },
-    { "workload", 'w', "PERCENT", 0, "Percentage of time spent working" },
-    { "workcost", 'c', "NUMBER", 0,
-      "Factor in the cost of each round of working" },
-    { "rounds", 'r', "NUMBER", 0, "Number of rounds each thread runs" },
-
-    { NULL, 0, NULL, 0, "\
-There are a number of different methods how thread creation can be \
-synchronized.  Synchronization is necessary since the number of concurrently \
-running threads is limited." },
-    { "sync-signal", OPT_SYNC_SIGNAL, NULL, 0,
-      "Synchronize using a signal (default)" },
-    { "sync-join", OPT_SYNC_JOIN, NULL, 0, "Synchronize using pthread_join" },
-
-    { NULL, 0, NULL, 0, "\
-One parameter for each threads execution is the size of the stack.  If this \
-parameter is not used the system's default stack size is used.  If many \
-threads are used the stack size should be chosen quite small." },
-    { "stacksize", 'S', "BYTES", 0, "Size of threads stack" },
-    { "guardsize", 'g', "BYTES", 0,
-      "Size of stack guard area; must fit into the stack" },
-
-    { NULL, 0, NULL, 0, "Signal options:" },
-    { "to-thread", OPT_TO_THREAD, NULL, 0, "Send signal to main thread" },
-    { "to-process", OPT_TO_PROCESS, NULL, 0,
-      "Send signal to process (default)" },
-
-    { NULL, 0, NULL, 0, "Administrative options:" },
-    { "progress", 'p', NULL, 0, "Show signs of progress" },
-    { "timing", 'T', NULL, 0,
-      "Measure time from startup to the last thread finishing" },
-    { NULL, 0, NULL, 0, NULL }
-  };
-
-/* Prototype for option handler.  */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Data structure to communicate with argp functions.  */
-static struct argp argp =
-{
-  options, parse_opt
-};
-
-
-static unsigned long int threads = DEFAULT_THREADS;
-static unsigned long int workload = 75;
-static unsigned long int workcost = 20;
-static unsigned long int rounds = 10;
-static long int starts = 5000;
-static unsigned long int stacksize;
-static long int guardsize = -1;
-static bool progress;
-static bool timing;
-static bool to_thread;
-static unsigned long int toplevel = 1;
-
-
-static long int running;
-static pthread_mutex_t running_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-static pid_t pid;
-static pthread_t tmain;
-
-static clockid_t cl;
-static struct timespec start_time;
-
-
-static pthread_mutex_t sum_mutex = PTHREAD_MUTEX_INITIALIZER;
-unsigned int sum;
-
-static enum
-  {
-    sync_signal,
-    sync_join
-  }
-sync_method;
-
-
-/* We use 64bit values for the times.  */
-typedef unsigned long long int hp_timing_t;
-
-
-/* Attributes for all created threads.  */
-static pthread_attr_t attr;
-
-
-static void *
-work (void *arg)
-{
-  unsigned long int i;
-  unsigned int state = (unsigned long int) arg;
-
-  for (i = 0; i < rounds; ++i)
-    {
-      /* Determine what to do.  */
-      unsigned int rnum;
-
-      /* Uniform distribution.  */
-      do
-	rnum = rand_r (&state);
-      while (rnum >= UINT_MAX - (UINT_MAX % 100));
-
-      rnum %= 100;
-
-      if (rnum < workload)
-	{
-	  int j;
-	  int a[4] = { i, rnum, i + rnum, rnum - i };
-
-	  if (progress)
-	    write (STDERR_FILENO, "c", 1);
-
-	  for (j = 0; j < workcost; ++j)
-	    {
-	      a[0] += a[3] >> 12;
-	      a[1] += a[2] >> 20;
-	      a[2] += a[1] ^ 0x3423423;
-	      a[3] += a[0] - a[1];
-	    }
-
-	  pthread_mutex_lock (&sum_mutex);
-	  sum += a[0] + a[1] + a[2] + a[3];
-	  pthread_mutex_unlock (&sum_mutex);
-	}
-      else
-	{
-	  /* Just sleep.  */
-	  struct timespec tv;
-
-	  tv.tv_sec = 0;
-	  tv.tv_nsec = 10000000;
-
-	  if (progress)
-	    write (STDERR_FILENO, "w", 1);
-
-	  nanosleep (&tv, NULL);
-	}
-    }
-
-  return NULL;
-}
-
-
-static void *
-thread_function (void *arg)
-{
-  work (arg);
-
-  pthread_mutex_lock (&running_mutex);
-  if (--running <= 0 && starts <= 0)
-    {
-      /* We are done.  */
-      if (progress)
-	write (STDERR_FILENO, "\n", 1);
-
-      if (timing)
-	{
-	  struct timespec end_time;
-
-	  if (clock_gettime (cl, &end_time) == 0)
-	    {
-	      end_time.tv_sec -= start_time.tv_sec;
-	      end_time.tv_nsec -= start_time.tv_nsec;
-	      if (end_time.tv_nsec < 0)
-		{
-		  end_time.tv_nsec += 1000000000;
-		  --end_time.tv_sec;
-		}
-
-	      printf ("\nRuntime: %lu.%09lu seconds\n",
-		      (unsigned long int) end_time.tv_sec,
-		      (unsigned long int) end_time.tv_nsec);
-	    }
-	}
-
-      printf ("Result: %08x\n", sum);
-
-      exit (0);
-    }
-  pthread_mutex_unlock (&running_mutex);
-
-  if (sync_method == sync_signal)
-    {
-      if (to_thread)
-	/* This code sends a signal to the main thread.  */
-	pthread_kill (tmain, SIGUSR1);
-      else
-	/* Use this code to test sending a signal to the process.  */
-	kill (pid, SIGUSR1);
-    }
-
-  if (progress)
-    write (STDERR_FILENO, "f", 1);
-
-  return NULL;
-}
-
-
-struct start_info
-{
-  unsigned int starts;
-  unsigned int threads;
-};
-
-
-static void *
-start_threads (void *arg)
-{
-  struct start_info *si = arg;
-  unsigned int starts = si->starts;
-  pthread_t ths[si->threads];
-  unsigned int state = starts;
-  unsigned int n;
-  unsigned int i = 0;
-  int err;
-
-  if (progress)
-    write (STDERR_FILENO, "T", 1);
-
-  memset (ths, '\0', sizeof (pthread_t) * si->threads);
-
-  while (starts-- > 0)
-    {
-      if (ths[i] != 0)
-	{
-	  /* Wait for the threads in the order they were created.  */
-	  err = pthread_join (ths[i], NULL);
-	  if (err != 0)
-	    error (EXIT_FAILURE, err, "cannot join thread");
-
-	  if (progress)
-	    write (STDERR_FILENO, "f", 1);
-	}
-
-      err = pthread_create (&ths[i], &attr, work,
-			    (void *) (long) (rand_r (&state) + starts + i));
-
-      if (err != 0)
-	error (EXIT_FAILURE, err, "cannot start thread");
-
-      if (progress)
-	write (STDERR_FILENO, "t", 1);
-
-      if (++i == si->threads)
-	i = 0;
-    }
-
-  n = i;
-  do
-    {
-      if (ths[i] != 0)
-	{
-	  err = pthread_join (ths[i], NULL);
-	  if (err != 0)
-	    error (EXIT_FAILURE, err, "cannot join thread");
-
-	  if (progress)
-	    write (STDERR_FILENO, "f", 1);
-	}
-
-      if (++i == si->threads)
-	i = 0;
-    }
-  while (i != n);
-
-  if (progress)
-    write (STDERR_FILENO, "F", 1);
-
-  return NULL;
-}
-
-
-int
-main (int argc, char *argv[])
-{
-  int remaining;
-  sigset_t ss;
-  pthread_t th;
-  pthread_t *ths = NULL;
-  int empty = 0;
-  int last;
-  bool cont = true;
-
-  /* Parse and process arguments.  */
-  argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
-  if (sync_method == sync_join)
-    {
-      ths = (pthread_t *) calloc (threads, sizeof (pthread_t));
-      if (ths == NULL)
-	error (EXIT_FAILURE, errno,
-	       "cannot allocate memory for thread descriptor array");
-
-      last = threads;
-    }
-  else
-    {
-      ths = &th;
-      last = 1;
-    }
-
-  if (toplevel > threads)
-    {
-      printf ("resetting number of toplevel threads to %lu to not surpass number to concurrent threads\n",
-	      threads);
-      toplevel = threads;
-    }
-
-  if (timing)
-    {
-      if (clock_getcpuclockid (0, &cl) != 0
-	  || clock_gettime (cl, &start_time) != 0)
-	timing = false;
-    }
-
-  /* We need this later.  */
-  pid = getpid ();
-  tmain = pthread_self ();
-
-  /* We use signal SIGUSR1 for communication between the threads and
-     the main thread.  We only want sychronous notification.  */
-  if (sync_method == sync_signal)
-    {
-      sigemptyset (&ss);
-      sigaddset (&ss, SIGUSR1);
-      if (sigprocmask (SIG_BLOCK, &ss, NULL) != 0)
-	error (EXIT_FAILURE, errno, "cannot set signal mask");
-    }
-
-  /* Create the thread attributes.  */
-  pthread_attr_init (&attr);
-
-  /* If the user provided a stack size use it.  */
-  if (stacksize != 0
-      && pthread_attr_setstacksize (&attr, stacksize) != 0)
-    puts ("could not set stack size; will use default");
-  /* And stack guard size.  */
-  if (guardsize != -1
-      && pthread_attr_setguardsize (&attr, guardsize) != 0)
-    puts ("invalid stack guard size; will use default");
-
-  /* All threads are created detached if we are not using pthread_join
-     to synchronize.  */
-  if (sync_method != sync_join)
-    pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
-
-  if (sync_method == sync_signal)
-    {
-      while (1)
-	{
-	  int err;
-	  bool do_wait = false;
-
-	  pthread_mutex_lock (&running_mutex);
-	  if (starts-- < 0)
-	    cont = false;
-	  else
-	    do_wait = ++running >= threads && starts > 0;
-
-	  pthread_mutex_unlock (&running_mutex);
-
-	  if (! cont)
-	    break;
-
-	  if (progress)
-	    write (STDERR_FILENO, "t", 1);
-
-	  err = pthread_create (&ths[empty], &attr, thread_function,
-				(void *) starts);
-	  if (err != 0)
-	    error (EXIT_FAILURE, err, "cannot start thread %lu", starts);
-
-	  if (++empty == last)
-	    empty = 0;
-
-	  if (do_wait)
-	    sigwaitinfo (&ss, NULL);
-	}
-
-      /* Do nothing anymore.  On of the threads will terminate the program.  */
-      sigfillset (&ss);
-      sigdelset (&ss, SIGINT);
-      while (1)
-	sigsuspend (&ss);
-    }
-  else
-    {
-      pthread_t ths[toplevel];
-      struct start_info si[toplevel];
-      unsigned int i;
-
-      for (i = 0; i < toplevel; ++i)
-	{
-	  unsigned int child_starts = starts / (toplevel - i);
-	  unsigned int child_threads = threads / (toplevel - i);
-	  int err;
-
-	  si[i].starts = child_starts;
-	  si[i].threads = child_threads;
-
-	  err = pthread_create (&ths[i], &attr, start_threads, &si[i]);
-	  if (err != 0)
-	    error (EXIT_FAILURE, err, "cannot start thread");
-
-	  starts -= child_starts;
-	  threads -= child_threads;
-	}
-
-      for (i = 0; i < toplevel; ++i)
-	{
-	  int err = pthread_join (ths[i], NULL);
-
-	  if (err != 0)
-	    error (EXIT_FAILURE, err, "cannot join thread");
-	}
-
-      /* We are done.  */
-      if (progress)
-	write (STDERR_FILENO, "\n", 1);
-
-      if (timing)
-	{
-	  struct timespec end_time;
-
-	  if (clock_gettime (cl, &end_time) == 0)
-	    {
-	      end_time.tv_sec -= start_time.tv_sec;
-	      end_time.tv_nsec -= start_time.tv_nsec;
-	      if (end_time.tv_nsec < 0)
-		{
-		  end_time.tv_nsec += 1000000000;
-		  --end_time.tv_sec;
-		}
-
-	      printf ("\nRuntime: %lu.%09lu seconds\n",
-		      (unsigned long int) end_time.tv_sec,
-		      (unsigned long int) end_time.tv_nsec);
-	    }
-	}
-
-      printf ("Result: %08x\n", sum);
-
-      exit (0);
-    }
-
-  /* NOTREACHED */
-  return 0;
-}
-
-
-/* Handle program arguments.  */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
-  unsigned long int num;
-  long int snum;
-
-  switch (key)
-    {
-    case 't':
-      num = strtoul (arg, NULL, 0);
-      if (num <= MAX_THREADS)
-	threads = num;
-      else
-	printf ("\
-number of threads limited to %u; recompile with a higher limit if necessary",
-		MAX_THREADS);
-      break;
-
-    case 'w':
-      num = strtoul (arg, NULL, 0);
-      if (num <= 100)
-	workload = num;
-      else
-	puts ("workload must be between 0 and 100 percent");
-      break;
-
-    case 'c':
-      workcost = strtoul (arg, NULL, 0);
-      break;
-
-    case 'r':
-      rounds = strtoul (arg, NULL, 0);
-      break;
-
-    case 's':
-      starts = strtoul (arg, NULL, 0);
-      break;
-
-    case 'S':
-      num = strtoul (arg, NULL, 0);
-      if (num >= PTHREAD_STACK_MIN)
-	stacksize = num;
-      else
-	printf ("minimum stack size is %d\n", PTHREAD_STACK_MIN);
-      break;
-
-    case 'g':
-      snum = strtol (arg, NULL, 0);
-      if (snum < 0)
-	printf ("invalid guard size %s\n", arg);
-      else
-	guardsize = snum;
-      break;
-
-    case 'p':
-      progress = true;
-      break;
-
-    case 'T':
-      timing = true;
-      break;
-
-    case OPT_TO_THREAD:
-      to_thread = true;
-      break;
-
-    case OPT_TO_PROCESS:
-      to_thread = false;
-      break;
-
-    case OPT_SYNC_SIGNAL:
-      sync_method = sync_signal;
-      break;
-
-    case OPT_SYNC_JOIN:
-      sync_method = sync_join;
-      break;
-
-    case OPT_TOPLEVEL:
-      num = strtoul (arg, NULL, 0);
-      if (num < MAX_THREADS)
-	toplevel = num;
-      else
-	printf ("\
-number of threads limited to %u; recompile with a higher limit if necessary",
-		MAX_THREADS);
-      sync_method = sync_join;
-      break;
-
-    default:
-      return ARGP_ERR_UNKNOWN;
-    }
-
-  return 0;
-}
-
-
-static hp_timing_t
-get_clockfreq (void)
-{
-  /* We read the information from the /proc filesystem.  It contains at
-     least one line like
-	cpu MHz         : 497.840237
-     or also
-	cpu MHz         : 497.841
-     We search for this line and convert the number in an integer.  */
-  static hp_timing_t result;
-  int fd;
-
-  /* If this function was called before, we know the result.  */
-  if (result != 0)
-    return result;
-
-  fd = open ("/proc/cpuinfo", O_RDONLY);
-  if (__glibc_likely (fd != -1))
-    {
-      /* XXX AFAIK the /proc filesystem can generate "files" only up
-         to a size of 4096 bytes.  */
-      char buf[4096];
-      ssize_t n;
-
-      n = read (fd, buf, sizeof buf);
-      if (__builtin_expect (n, 1) > 0)
-	{
-	  char *mhz = memmem (buf, n, "cpu MHz", 7);
-
-	  if (__glibc_likely (mhz != NULL))
-	    {
-	      char *endp = buf + n;
-	      int seen_decpoint = 0;
-	      int ndigits = 0;
-
-	      /* Search for the beginning of the string.  */
-	      while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
-		++mhz;
-
-	      while (mhz < endp && *mhz != '\n')
-		{
-		  if (*mhz >= '0' && *mhz <= '9')
-		    {
-		      result *= 10;
-		      result += *mhz - '0';
-		      if (seen_decpoint)
-			++ndigits;
-		    }
-		  else if (*mhz == '.')
-		    seen_decpoint = 1;
-
-		  ++mhz;
-		}
-
-	      /* Compensate for missing digits at the end.  */
-	      while (ndigits++ < 6)
-		result *= 10;
-	    }
-	}
-
-      close (fd);
-    }
-
-  return result;
-}
-
-
-int
-clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
-{
-  /* We don't allow any process ID but our own.  */
-  if (pid != 0 && pid != getpid ())
-    return EPERM;
-
-#ifdef CLOCK_PROCESS_CPUTIME_ID
-  /* Store the number.  */
-  *clock_id = CLOCK_PROCESS_CPUTIME_ID;
-
-  return 0;
-#else
-  /* We don't have a timer for that.  */
-  return ENOENT;
-#endif
-}
-
-
-#ifdef i386
-#define HP_TIMING_NOW(Var)	__asm__ __volatile__ ("rdtsc" : "=A" (Var))
-#elif defined __x86_64__
-# define HP_TIMING_NOW(Var) \
-  ({ unsigned int _hi, _lo; \
-     asm volatile ("rdtsc" : "=a" (_lo), "=d" (_hi)); \
-     (Var) = ((unsigned long long int) _hi << 32) | _lo; })
-#elif defined __ia64__
-#define HP_TIMING_NOW(Var)	__asm__ __volatile__ ("mov %0=ar.itc" : "=r" (Var) : : "memory")
-#else
-#error "HP_TIMING_NOW missing"
-#endif
-
-/* Get current value of CLOCK and store it in TP.  */
-int
-clock_gettime (clockid_t clock_id, struct timespec *tp)
-{
-  int retval = -1;
-
-  switch (clock_id)
-    {
-    case CLOCK_PROCESS_CPUTIME_ID:
-      {
-
-	static hp_timing_t freq;
-	hp_timing_t tsc;
-
-	/* Get the current counter.  */
-	HP_TIMING_NOW (tsc);
-
-	if (freq == 0)
-	  {
-	    freq = get_clockfreq ();
-	    if (freq == 0)
-	      return EINVAL;
-	  }
-
-	/* Compute the seconds.  */
-	tp->tv_sec = tsc / freq;
-
-	/* And the nanoseconds.  This computation should be stable until
-	   we get machines with about 16GHz frequency.  */
-	tp->tv_nsec = ((tsc % freq) * UINT64_C (1000000000)) / freq;
-
-	retval = 0;
-      }
-    break;
-
-    default:
-      errno = EINVAL;
-      break;
-    }
-
-  return retval;
-}
diff --git a/nptl/pt-allocrtsig.c b/nptl/pt-allocrtsig.c
deleted file mode 100644
index e8861a8610..0000000000
--- a/nptl/pt-allocrtsig.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <signal.h>
-
-
-/* These are defined in libc.  We want to have only one definition
-   so we "forward" the calls.  */
-extern int __libc_current_sigrtmin_private (void);
-extern int __libc_current_sigrtmax_private (void);
-extern int __libc_allocate_rtsig_private (int high);
-
-
-/* We reserve __SIGRTMIN for use as the cancellation signal and
-   __SIGRTMIN+1 to handle setuid et.al.  These signals are used
-   internally.  */
-int
-__libc_current_sigrtmin (void)
-{
-  return __libc_current_sigrtmin_private ();
-}
-
-
-int
-__libc_current_sigrtmax (void)
-{
-  return __libc_current_sigrtmax_private ();
-}
-
-
-int
-__libc_allocate_rtsig (int high)
-{
-  return __libc_allocate_rtsig_private (high);
-}
diff --git a/nptl/pt-cleanup.c b/nptl/pt-cleanup.c
deleted file mode 100644
index ce2889df0a..0000000000
--- a/nptl/pt-cleanup.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <setjmp.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <jmpbuf-unwind.h>
-
-void
-__pthread_cleanup_upto (__jmp_buf target, char *targetframe)
-{
-  struct pthread *self = THREAD_SELF;
-  struct _pthread_cleanup_buffer *cbuf;
-
-  /* Adjust all pointers used in comparisons, so that top of thread's
-     stack is at the top of address space.  Without that, things break
-     if stack is allocated above the main stack.  */
-  uintptr_t adj = (uintptr_t) self->stackblock + self->stackblock_size;
-  uintptr_t targetframe_adj = (uintptr_t) targetframe - adj;
-
-  for (cbuf = THREAD_GETMEM (self, cleanup);
-       cbuf != NULL && _JMPBUF_UNWINDS_ADJ (target, cbuf, adj);
-       cbuf = cbuf->__prev)
-    {
-#if _STACK_GROWS_DOWN
-      if ((uintptr_t) cbuf - adj <= targetframe_adj)
-        {
-          cbuf = NULL;
-          break;
-        }
-#elif _STACK_GROWS_UP
-      if ((uintptr_t) cbuf - adj >= targetframe_adj)
-        {
-          cbuf = NULL;
-          break;
-        }
-#else
-# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
-#endif
-
-      /* Call the cleanup code.  */
-      cbuf->__routine (cbuf->__arg);
-    }
-
-  THREAD_SETMEM (self, cleanup, cbuf);
-}
-hidden_def (__pthread_cleanup_upto)
diff --git a/nptl/pt-crti.S b/nptl/pt-crti.S
deleted file mode 100644
index d2371bc6ff..0000000000
--- a/nptl/pt-crti.S
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Special .init and .fini section support for libpthread.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file with other
-   programs, and to distribute those programs without any restriction
-   coming from the use of this file. (The GNU Lesser General Public
-   License restrictions do apply in other respects; for example, they
-   cover modification of the file, and distribution when not linked
-   into another program.)
-
-   Note that people who make modified versions of this file are not
-   obligated to grant this special exception for their modified
-   versions; it is their choice whether to do so. The GNU Lesser
-   General Public License gives permission to release a modified
-   version without this exception; this exception also makes it
-   possible to release a modified version which carries forward this
-   exception.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Arrange for __pthread_initialize_minimal_internal to be called at
-   libpthread startup, instead of conditionally calling
-   __gmon_start__.  */
-
-#define PREINIT_FUNCTION __pthread_initialize_minimal_internal
-#define PREINIT_FUNCTION_WEAK 0
-
-#include <crti.S>
diff --git a/nptl/pt-fork.c b/nptl/pt-fork.c
deleted file mode 100644
index a1493a0159..0000000000
--- a/nptl/pt-fork.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* ABI compatibility for 'fork' symbol in libpthread ABI.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <unistd.h>
-#include <shlib-compat.h>
-
-/* libpthread once had its own fork, though there was no apparent reason
-   for it.  There is no use in having a separate symbol in libpthread, but
-   the historical ABI requires it.  For static linking, there is no need to
-   provide anything here--the libc version will be linked in.  For shared
-   library ABI compatibility, there must be __fork and fork symbols in
-   libpthread.so.
-
-   With an IFUNC resolver, it would be possible to avoid the
-   indirection, but the IFUNC resolver might run before the
-   __libc_fork symbol has been relocated, in which case the IFUNC
-   resolver would not be able to provide the correct address.  */
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
-
-static pid_t __attribute__ ((used))
-fork_compat (void)
-{
-  return __libc_fork ();
-}
-
-strong_alias (fork_compat, fork_alias)
-compat_symbol (libpthread, fork_alias, fork, GLIBC_2_0);
-
-strong_alias (fork_compat, __fork_alias)
-compat_symbol (libpthread, __fork_alias, __fork, GLIBC_2_0);
-
-#endif
diff --git a/nptl/pt-interp.c b/nptl/pt-interp.c
deleted file mode 100644
index ecf1fe70df..0000000000
--- a/nptl/pt-interp.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <elf/interp.c>
diff --git a/nptl/pt-longjmp.c b/nptl/pt-longjmp.c
deleted file mode 100644
index 2ef757e687..0000000000
--- a/nptl/pt-longjmp.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* ABI compatibility for 'longjmp' and 'siglongjmp' symbols in libpthread ABI.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <setjmp.h>
-#include <shlib-compat.h>
-
-/* libpthread once had its own longjmp (and siglongjmp alias), though there
-   was no apparent reason for it.  There is no use in having a separate
-   symbol in libpthread, but the historical ABI requires it.  For static
-   linking, there is no need to provide anything here--the libc version
-   will be linked in.  For shared library ABI compatibility, there must be
-   longjmp and siglongjmp symbols in libpthread.so; so we define them using
-   IFUNC to redirect to the libc function.  */
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
-
-# if HAVE_IFUNC
-
-#  undef INIT_ARCH
-#  define INIT_ARCH()
-#  define DEFINE_LONGJMP(name) libc_ifunc (name, &__libc_longjmp)
-
-extern __typeof(longjmp) longjmp_ifunc;
-extern __typeof(siglongjmp) siglongjmp_ifunc;
-
-# else  /* !HAVE_IFUNC */
-
-static void __attribute__ ((noreturn, used))
-longjmp_compat (jmp_buf env, int val)
-{
-  __libc_longjmp (env, val);
-}
-
-# define DEFINE_LONGJMP(name) strong_alias (longjmp_compat, name)
-
-# endif  /* HAVE_IFUNC */
-
-DEFINE_LONGJMP (longjmp_ifunc)
-compat_symbol (libpthread, longjmp_ifunc, longjmp, GLIBC_2_0);
-
-strong_alias (longjmp_ifunc, siglongjmp_ifunc)
-compat_symbol (libpthread, siglongjmp_ifunc, siglongjmp, GLIBC_2_0);
-
-#endif
diff --git a/nptl/pt-raise.c b/nptl/pt-raise.c
deleted file mode 100644
index 3a197051fe..0000000000
--- a/nptl/pt-raise.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* ISO C raise function for libpthread.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-
-
-int
-raise (int sig)
-{
-  /* This is what POSIX says must happen.  */
-  return pthread_kill (pthread_self (), sig);
-}
diff --git a/nptl/pt-system.c b/nptl/pt-system.c
deleted file mode 100644
index f8ca6ba0d9..0000000000
--- a/nptl/pt-system.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* ABI compatibility for 'system' symbol in libpthread ABI.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdlib.h>
-#include <shlib-compat.h>
-
-/* libpthread once had its own 'system', though there was no apparent
-   reason for it.  There is no use in having a separate symbol in
-   libpthread, but the historical ABI requires it.  For static linking,
-   there is no need to provide anything here--the libc version will be
-   linked in.  For shared library ABI compatibility, there must be a
-   'system' symbol in libpthread.so; so we define it using IFUNC to
-   redirect to the libc function.  */
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_22)
-
-# if HAVE_IFUNC
-
-extern __typeof(system) system_ifunc;
-#  undef INIT_ARCH
-#  define INIT_ARCH()
-libc_ifunc (system_ifunc, &__libc_system)
-
-# else  /* !HAVE_IFUNC */
-
-static int __attribute__ ((used))
-system_compat (const char *line)
-{
-  return __libc_system (line);
-}
-strong_alias (system_compat, system_ifunc)
-
-# endif  /* HAVE_IFUNC */
-
-compat_symbol (libpthread, system_ifunc, system, GLIBC_2_0);
-
-#endif
diff --git a/nptl/pt-vfork.c b/nptl/pt-vfork.c
deleted file mode 100644
index 0e82330858..0000000000
--- a/nptl/pt-vfork.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* vfork ABI-compatibility entry points for libpthread.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <unistd.h>
-#include <shlib-compat.h>
-
-/* libpthread used to have its own vfork implementation that differed
-   from libc's only in having a pointless micro-optimization.  There
-   is no longer any use to having a separate copy in libpthread, but
-   the historical ABI requires it.  For static linking, there is no
-   need to provide anything here--the libc version will be linked in.
-   For shared library ABI compatibility, there must be __vfork and
-   vfork symbols in libpthread.so; so we define them using IFUNC to
-   redirect to the libc function.  */
-
-/* Note! If the architecture doesn't support IFUNC, then we need an
-   alternate target-specific mechanism to implement this.  So we just
-   assume IFUNC here and require that the target override this file
-   if necessary.
-
-   If the architecture can assume all supported versions of gcc will
-   produce a tail-call to __libc_vfork, consider including the version
-   in sysdeps/unix/sysv/linux/aarch64/pt-vfork.c.  */
-
-#if !HAVE_IFUNC
-# error "must write pt-vfork for this machine or get IFUNC support"
-#endif
-
-#if (SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20) \
-     || SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20))
-
-extern __typeof (vfork) __libc_vfork;   /* Defined in libc.  */
-
-# undef INIT_ARCH
-# define INIT_ARCH()
-# define DEFINE_VFORK(name) libc_ifunc (name, &__libc_vfork)
-
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_20)
-extern __typeof(vfork) vfork_ifunc;
-DEFINE_VFORK (vfork_ifunc)
-compat_symbol (libpthread, vfork_ifunc, vfork, GLIBC_2_0);
-#endif
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_1_2, GLIBC_2_20)
-extern __typeof(vfork) __vfork_ifunc;
-DEFINE_VFORK (__vfork_ifunc)
-compat_symbol (libpthread, __vfork_ifunc, __vfork, GLIBC_2_1_2);
-#endif
diff --git a/nptl/pthread-errnos.sym b/nptl/pthread-errnos.sym
deleted file mode 100644
index 0975b7a373..0000000000
--- a/nptl/pthread-errnos.sym
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <errno.h>
-
--- These errno codes are used by some assembly code.
-
-EAGAIN		EAGAIN
-EBUSY		EBUSY
-EDEADLK		EDEADLK
-EINTR		EINTR
-EINVAL		EINVAL
-ENOSYS		ENOSYS
-EOVERFLOW	EOVERFLOW
-ETIMEDOUT	ETIMEDOUT
-EWOULDBLOCK	EWOULDBLOCK
diff --git a/nptl/pthread-pi-defines.sym b/nptl/pthread-pi-defines.sym
deleted file mode 100644
index 0ac51dba98..0000000000
--- a/nptl/pthread-pi-defines.sym
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <pthreadP.h>
-
--- These PI macros are used by assembly code.
-
-MUTEX_KIND	offsetof (pthread_mutex_t, __data.__kind)
-ROBUST_BIT	PTHREAD_MUTEX_ROBUST_NORMAL_NP
-PI_BIT		PTHREAD_MUTEX_PRIO_INHERIT_NP
-PS_BIT		PTHREAD_MUTEX_PSHARED_BIT
-TID_MASK	FUTEX_TID_MASK
diff --git a/nptl/pthread-pids.h b/nptl/pthread-pids.h
deleted file mode 100644
index a67575b016..0000000000
--- a/nptl/pthread-pids.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Initialize pid and tid fields of struct pthread.  Stub version.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-/* Initialize PD->pid and PD->tid for the initial thread.  If there is
-   setup required to arrange that __exit_thread causes PD->tid to be
-   cleared and futex-woken, then this function should do that as well.  */
-static inline void
-__pthread_initialize_pids (struct pthread *pd)
-{
-#error "sysdeps pthread-pids.h file required"
-  pd->pid = pd->tid = -1;
-}
diff --git a/nptl/pthreadP.h b/nptl/pthreadP.h
deleted file mode 100644
index 7fc1e50f78..0000000000
--- a/nptl/pthreadP.h
+++ /dev/null
@@ -1,641 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _PTHREADP_H
-#define _PTHREADP_H	1
-
-#include <pthread.h>
-#include <setjmp.h>
-#include <stdbool.h>
-#include <sys/syscall.h>
-#include "descr.h"
-#include <tls.h>
-#include <lowlevellock.h>
-#include <stackinfo.h>
-#include <internaltypes.h>
-#include <pthread-functions.h>
-#include <atomic.h>
-#include <kernel-features.h>
-#include <errno.h>
-#include <nptl-signals.h>
-
-
-/* Atomic operations on TLS memory.  */
-#ifndef THREAD_ATOMIC_CMPXCHG_VAL
-# define THREAD_ATOMIC_CMPXCHG_VAL(descr, member, new, old) \
-  atomic_compare_and_exchange_val_acq (&(descr)->member, new, old)
-#endif
-
-#ifndef THREAD_ATOMIC_BIT_SET
-# define THREAD_ATOMIC_BIT_SET(descr, member, bit) \
-  atomic_bit_set (&(descr)->member, bit)
-#endif
-
-
-/* Adaptive mutex definitions.  */
-#ifndef MAX_ADAPTIVE_COUNT
-# define MAX_ADAPTIVE_COUNT 100
-#endif
-
-
-/* Magic cookie representing robust mutex with dead owner.  */
-#define PTHREAD_MUTEX_INCONSISTENT	INT_MAX
-/* Magic cookie representing not recoverable robust mutex.  */
-#define PTHREAD_MUTEX_NOTRECOVERABLE	(INT_MAX - 1)
-
-
-/* Internal mutex type value.  */
-enum
-{
-  PTHREAD_MUTEX_KIND_MASK_NP = 3,
-
-  PTHREAD_MUTEX_ELISION_NP    = 256,
-  PTHREAD_MUTEX_NO_ELISION_NP = 512,
-
-  PTHREAD_MUTEX_ROBUST_NORMAL_NP = 16,
-  PTHREAD_MUTEX_ROBUST_RECURSIVE_NP
-  = PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP
-  = PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP
-  = PTHREAD_MUTEX_ROBUST_NORMAL_NP | PTHREAD_MUTEX_ADAPTIVE_NP,
-  PTHREAD_MUTEX_PRIO_INHERIT_NP = 32,
-  PTHREAD_MUTEX_PI_NORMAL_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_NORMAL,
-  PTHREAD_MUTEX_PI_RECURSIVE_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_PI_ERRORCHECK_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_PI_ADAPTIVE_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ADAPTIVE_NP,
-  PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_NORMAL_NP,
-  PTHREAD_MUTEX_PI_ROBUST_RECURSIVE_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_RECURSIVE_NP,
-  PTHREAD_MUTEX_PI_ROBUST_ERRORCHECK_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP,
-  PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP
-  = PTHREAD_MUTEX_PRIO_INHERIT_NP | PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP,
-  PTHREAD_MUTEX_PRIO_PROTECT_NP = 64,
-  PTHREAD_MUTEX_PP_NORMAL_NP
-  = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_NORMAL,
-  PTHREAD_MUTEX_PP_RECURSIVE_NP
-  = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_PP_ERRORCHECK_NP
-  = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_PP_ADAPTIVE_NP
-  = PTHREAD_MUTEX_PRIO_PROTECT_NP | PTHREAD_MUTEX_ADAPTIVE_NP,
-  PTHREAD_MUTEX_ELISION_FLAGS_NP
-  = PTHREAD_MUTEX_ELISION_NP | PTHREAD_MUTEX_NO_ELISION_NP,
-
-  PTHREAD_MUTEX_TIMED_ELISION_NP =
-	  PTHREAD_MUTEX_TIMED_NP | PTHREAD_MUTEX_ELISION_NP,
-  PTHREAD_MUTEX_TIMED_NO_ELISION_NP =
-	  PTHREAD_MUTEX_TIMED_NP | PTHREAD_MUTEX_NO_ELISION_NP,
-};
-#define PTHREAD_MUTEX_PSHARED_BIT 128
-
-#define PTHREAD_MUTEX_TYPE(m) \
-  ((m)->__data.__kind & 127)
-/* Don't include NO_ELISION, as that type is always the same
-   as the underlying lock type.  */
-#define PTHREAD_MUTEX_TYPE_ELISION(m) \
-  ((m)->__data.__kind & (127|PTHREAD_MUTEX_ELISION_NP))
-
-#if LLL_PRIVATE == 0 && LLL_SHARED == 128
-# define PTHREAD_MUTEX_PSHARED(m) \
-  ((m)->__data.__kind & 128)
-#else
-# define PTHREAD_MUTEX_PSHARED(m) \
-  (((m)->__data.__kind & 128) ? LLL_SHARED : LLL_PRIVATE)
-#endif
-
-/* The kernel when waking robust mutexes on exit never uses
-   FUTEX_PRIVATE_FLAG FUTEX_WAKE.  */
-#define PTHREAD_ROBUST_MUTEX_PSHARED(m) LLL_SHARED
-
-/* Ceiling in __data.__lock.  __data.__lock is signed, so don't
-   use the MSB bit in there, but in the mask also include that bit,
-   so that the compiler can optimize & PTHREAD_MUTEX_PRIO_CEILING_MASK
-   masking if the value is then shifted down by
-   PTHREAD_MUTEX_PRIO_CEILING_SHIFT.  */
-#define PTHREAD_MUTEX_PRIO_CEILING_SHIFT	19
-#define PTHREAD_MUTEX_PRIO_CEILING_MASK		0xfff80000
-
-
-/* Flags in mutex attr.  */
-#define PTHREAD_MUTEXATTR_PROTOCOL_SHIFT	28
-#define PTHREAD_MUTEXATTR_PROTOCOL_MASK		0x30000000
-#define PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT	12
-#define PTHREAD_MUTEXATTR_PRIO_CEILING_MASK	0x00fff000
-#define PTHREAD_MUTEXATTR_FLAG_ROBUST		0x40000000
-#define PTHREAD_MUTEXATTR_FLAG_PSHARED		0x80000000
-#define PTHREAD_MUTEXATTR_FLAG_BITS \
-  (PTHREAD_MUTEXATTR_FLAG_ROBUST | PTHREAD_MUTEXATTR_FLAG_PSHARED \
-   | PTHREAD_MUTEXATTR_PROTOCOL_MASK | PTHREAD_MUTEXATTR_PRIO_CEILING_MASK)
-
-
-/* For the following, see pthread_rwlock_common.c.  */
-#define PTHREAD_RWLOCK_WRPHASE		1
-#define PTHREAD_RWLOCK_WRLOCKED		2
-#define PTHREAD_RWLOCK_RWAITING		4
-#define PTHREAD_RWLOCK_READER_SHIFT	3
-#define PTHREAD_RWLOCK_READER_OVERFLOW	((unsigned int) 1 \
-					 << (sizeof (unsigned int) * 8 - 1))
-#define PTHREAD_RWLOCK_WRHANDOVER	((unsigned int) 1 \
-					 << (sizeof (unsigned int) * 8 - 1))
-#define PTHREAD_RWLOCK_FUTEX_USED	2
-
-
-/* Bits used in robust mutex implementation.  */
-#define FUTEX_WAITERS		0x80000000
-#define FUTEX_OWNER_DIED	0x40000000
-#define FUTEX_TID_MASK		0x3fffffff
-
-
-/* pthread_once definitions.  See __pthread_once for how these are used.  */
-#define __PTHREAD_ONCE_INPROGRESS	1
-#define __PTHREAD_ONCE_DONE		2
-#define __PTHREAD_ONCE_FORK_GEN_INCR	4
-
-
-/* Condition variable definitions.  See __pthread_cond_wait_common.
-   Need to be defined here so there is one place from which
-   nptl_lock_constants can grab them.  */
-#define __PTHREAD_COND_CLOCK_MONOTONIC_MASK 2
-#define __PTHREAD_COND_SHARED_MASK 1
-
-
-/* Internal variables.  */
-
-
-/* Default pthread attributes.  */
-extern struct pthread_attr __default_pthread_attr attribute_hidden;
-extern int __default_pthread_attr_lock attribute_hidden;
-
-/* Size and alignment of static TLS block.  */
-extern size_t __static_tls_size attribute_hidden;
-extern size_t __static_tls_align_m1 attribute_hidden;
-
-/* Flag whether the machine is SMP or not.  */
-extern int __is_smp attribute_hidden;
-
-/* Thread descriptor handling.  */
-extern list_t __stack_user;
-hidden_proto (__stack_user)
-
-/* Attribute handling.  */
-extern struct pthread_attr *__attr_list attribute_hidden;
-extern int __attr_list_lock attribute_hidden;
-
-/* Concurrency handling.  */
-extern int __concurrency_level attribute_hidden;
-
-/* Thread-local data key handling.  */
-extern struct pthread_key_struct __pthread_keys[PTHREAD_KEYS_MAX];
-hidden_proto (__pthread_keys)
-
-/* Number of threads running.  */
-extern unsigned int __nptl_nthreads attribute_hidden;
-
-#ifndef __ASSUME_SET_ROBUST_LIST
-/* Negative if we do not have the system call and we can use it.  */
-extern int __set_robust_list_avail attribute_hidden;
-#endif
-
-/* Thread Priority Protection.  */
-extern int __sched_fifo_min_prio attribute_hidden;
-extern int __sched_fifo_max_prio attribute_hidden;
-extern void __init_sched_fifo_prio (void) attribute_hidden;
-extern int __pthread_tpp_change_priority (int prev_prio, int new_prio)
-     attribute_hidden;
-extern int __pthread_current_priority (void) attribute_hidden;
-
-/* The library can run in debugging mode where it performs a lot more
-   tests.  */
-extern int __pthread_debug attribute_hidden;
-/** For now disable debugging support.  */
-#if 0
-# define DEBUGGING_P __builtin_expect (__pthread_debug, 0)
-# define INVALID_TD_P(pd) (DEBUGGING_P && __find_in_stack_list (pd) == NULL)
-# define INVALID_NOT_TERMINATED_TD_P(pd) INVALID_TD_P (pd)
-#else
-# define DEBUGGING_P 0
-/* Simplified test.  This will not catch all invalid descriptors but
-   is better than nothing.  And if the test triggers the thread
-   descriptor is guaranteed to be invalid.  */
-# define INVALID_TD_P(pd) __builtin_expect ((pd)->tid <= 0, 0)
-# define INVALID_NOT_TERMINATED_TD_P(pd) __builtin_expect ((pd)->tid < 0, 0)
-#endif
-
-
-/* Cancellation test.  */
-#define CANCELLATION_P(self) \
-  do {									      \
-    int cancelhandling = THREAD_GETMEM (self, cancelhandling);		      \
-    if (CANCEL_ENABLED_AND_CANCELED (cancelhandling))			      \
-      {									      \
-	THREAD_SETMEM (self, result, PTHREAD_CANCELED);			      \
-	__do_cancel ();							      \
-      }									      \
-  } while (0)
-
-
-extern void __pthread_unwind (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute __attribute ((__noreturn__))
-#if !defined SHARED && !IS_IN (libpthread)
-     weak_function
-#endif
-     ;
-extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute __attribute ((__noreturn__))
-#ifndef SHARED
-     weak_function
-#endif
-     ;
-extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute;
-extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute;
-#if IS_IN (libpthread)
-hidden_proto (__pthread_unwind)
-hidden_proto (__pthread_unwind_next)
-hidden_proto (__pthread_register_cancel)
-hidden_proto (__pthread_unregister_cancel)
-# ifdef SHARED
-extern void attribute_hidden pthread_cancel_init (void);
-extern void __unwind_freeres (void);
-# endif
-#endif
-
-
-/* Called when a thread reacts on a cancellation request.  */
-static inline void
-__attribute ((noreturn, always_inline))
-__do_cancel (void)
-{
-  struct pthread *self = THREAD_SELF;
-
-  /* Make sure we get no more cancellations.  */
-  THREAD_ATOMIC_BIT_SET (self, cancelhandling, EXITING_BIT);
-
-  __pthread_unwind ((__pthread_unwind_buf_t *)
-		    THREAD_GETMEM (self, cleanup_jmp_buf));
-}
-
-
-/* Set cancellation mode to asynchronous.  */
-#define CANCEL_ASYNC() \
-  __pthread_enable_asynccancel ()
-/* Reset to previous cancellation mode.  */
-#define CANCEL_RESET(oldtype) \
-  __pthread_disable_asynccancel (oldtype)
-
-#if IS_IN (libc)
-/* Same as CANCEL_ASYNC, but for use in libc.so.  */
-# define LIBC_CANCEL_ASYNC() \
-  __libc_enable_asynccancel ()
-/* Same as CANCEL_RESET, but for use in libc.so.  */
-# define LIBC_CANCEL_RESET(oldtype) \
-  __libc_disable_asynccancel (oldtype)
-# define LIBC_CANCEL_HANDLED() \
-  __asm (".globl " __SYMBOL_PREFIX "__libc_enable_asynccancel"); \
-  __asm (".globl " __SYMBOL_PREFIX "__libc_disable_asynccancel")
-#elif IS_IN (libpthread)
-# define LIBC_CANCEL_ASYNC() CANCEL_ASYNC ()
-# define LIBC_CANCEL_RESET(val) CANCEL_RESET (val)
-# define LIBC_CANCEL_HANDLED() \
-  __asm (".globl " __SYMBOL_PREFIX "__pthread_enable_asynccancel"); \
-  __asm (".globl " __SYMBOL_PREFIX "__pthread_disable_asynccancel")
-#elif IS_IN (librt)
-# define LIBC_CANCEL_ASYNC() \
-  __librt_enable_asynccancel ()
-# define LIBC_CANCEL_RESET(val) \
-  __librt_disable_asynccancel (val)
-# define LIBC_CANCEL_HANDLED() \
-  __asm (".globl " __SYMBOL_PREFIX "__librt_enable_asynccancel"); \
-  __asm (".globl " __SYMBOL_PREFIX "__librt_disable_asynccancel")
-#else
-# define LIBC_CANCEL_ASYNC()	0 /* Just a dummy value.  */
-# define LIBC_CANCEL_RESET(val)	((void)(val)) /* Nothing, but evaluate it.  */
-# define LIBC_CANCEL_HANDLED()	/* Nothing.  */
-#endif
-
-
-/* Internal prototypes.  */
-
-/* Thread list handling.  */
-extern struct pthread *__find_in_stack_list (struct pthread *pd)
-     attribute_hidden internal_function;
-
-/* Deallocate a thread's stack after optionally making sure the thread
-   descriptor is still valid.  */
-extern void __free_tcb (struct pthread *pd) attribute_hidden internal_function;
-
-/* Free allocated stack.  */
-extern void __deallocate_stack (struct pthread *pd)
-     attribute_hidden internal_function;
-
-/* Mark all the stacks except for the current one as available.  This
-   function also re-initializes the lock for the stack cache.  */
-extern void __reclaim_stacks (void) attribute_hidden;
-
-/* Make all threads's stacks executable.  */
-extern int __make_stacks_executable (void **stack_endp)
-     internal_function attribute_hidden;
-
-/* longjmp handling.  */
-extern void __pthread_cleanup_upto (__jmp_buf target, char *targetframe);
-#if IS_IN (libpthread)
-hidden_proto (__pthread_cleanup_upto)
-#endif
-
-
-/* Functions with versioned interfaces.  */
-extern int __pthread_create_2_1 (pthread_t *newthread,
-				 const pthread_attr_t *attr,
-				 void *(*start_routine) (void *), void *arg);
-extern int __pthread_create_2_0 (pthread_t *newthread,
-				 const pthread_attr_t *attr,
-				 void *(*start_routine) (void *), void *arg);
-extern int __pthread_attr_init_2_1 (pthread_attr_t *attr);
-extern int __pthread_attr_init_2_0 (pthread_attr_t *attr);
-
-
-/* Event handlers for libthread_db interface.  */
-extern void __nptl_create_event (void);
-extern void __nptl_death_event (void);
-hidden_proto (__nptl_create_event)
-hidden_proto (__nptl_death_event)
-
-/* Register the generation counter in the libpthread with the libc.  */
-#ifdef TLS_MULTIPLE_THREADS_IN_TCB
-extern void __libc_pthread_init (unsigned long int *ptr,
-				 void (*reclaim) (void),
-				 const struct pthread_functions *functions)
-     internal_function;
-#else
-extern int *__libc_pthread_init (unsigned long int *ptr,
-				 void (*reclaim) (void),
-				 const struct pthread_functions *functions)
-     internal_function;
-
-/* Variable set to a nonzero value either if more than one thread runs or ran,
-   or if a single-threaded process is trying to cancel itself.  See
-   nptl/descr.h for more context on the single-threaded process case.  */
-extern int __pthread_multiple_threads attribute_hidden;
-/* Pointer to the corresponding variable in libc.  */
-extern int *__libc_multiple_threads_ptr attribute_hidden;
-#endif
-
-/* Find a thread given its TID.  */
-extern struct pthread *__find_thread_by_id (pid_t tid) attribute_hidden
-#ifdef SHARED
-;
-#else
-weak_function;
-#define __find_thread_by_id(tid) \
-  (__find_thread_by_id ? (__find_thread_by_id) (tid) : (struct pthread *) NULL)
-#endif
-
-extern void __pthread_init_static_tls (struct link_map *) attribute_hidden;
-
-extern size_t __pthread_get_minstack (const pthread_attr_t *attr);
-
-/* Namespace save aliases.  */
-extern int __pthread_getschedparam (pthread_t thread_id, int *policy,
-				    struct sched_param *param);
-extern int __pthread_setschedparam (pthread_t thread_id, int policy,
-				    const struct sched_param *param);
-extern int __pthread_setcancelstate (int state, int *oldstate);
-extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-				 const pthread_mutexattr_t *__mutexattr);
-extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-extern int __pthread_mutex_trylock (pthread_mutex_t *_mutex);
-extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
-extern int __pthread_mutex_cond_lock (pthread_mutex_t *__mutex)
-     attribute_hidden internal_function;
-extern void __pthread_mutex_cond_lock_adjust (pthread_mutex_t *__mutex)
-     attribute_hidden internal_function;
-extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
-extern int __pthread_mutex_unlock_usercnt (pthread_mutex_t *__mutex,
-					   int __decr)
-     attribute_hidden internal_function;
-extern int __pthread_mutexattr_init (pthread_mutexattr_t *attr);
-extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *attr);
-extern int __pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind);
-extern int __pthread_attr_destroy (pthread_attr_t *attr);
-extern int __pthread_attr_getdetachstate (const pthread_attr_t *attr,
-					  int *detachstate);
-extern int __pthread_attr_setdetachstate (pthread_attr_t *attr,
-					  int detachstate);
-extern int __pthread_attr_getinheritsched (const pthread_attr_t *attr,
-					   int *inherit);
-extern int __pthread_attr_setinheritsched (pthread_attr_t *attr, int inherit);
-extern int __pthread_attr_getschedparam (const pthread_attr_t *attr,
-					 struct sched_param *param);
-extern int __pthread_attr_setschedparam (pthread_attr_t *attr,
-					 const struct sched_param *param);
-extern int __pthread_attr_getschedpolicy (const pthread_attr_t *attr,
-					  int *policy);
-extern int __pthread_attr_setschedpolicy (pthread_attr_t *attr, int policy);
-extern int __pthread_attr_getscope (const pthread_attr_t *attr, int *scope);
-extern int __pthread_attr_setscope (pthread_attr_t *attr, int scope);
-extern int __pthread_attr_getstackaddr (const pthread_attr_t *__restrict
-					__attr, void **__restrict __stackaddr);
-extern int __pthread_attr_setstackaddr (pthread_attr_t *__attr,
-					void *__stackaddr);
-extern int __pthread_attr_getstacksize (const pthread_attr_t *__restrict
-					__attr,
-					size_t *__restrict __stacksize);
-extern int __pthread_attr_setstacksize (pthread_attr_t *__attr,
-					size_t __stacksize);
-extern int __pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
-				    void **__restrict __stackaddr,
-				    size_t *__restrict __stacksize);
-extern int __pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
-				    size_t __stacksize);
-extern int __pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
-				  const pthread_rwlockattr_t *__restrict
-				  __attr);
-extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
-extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
-extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
-extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
-extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
-extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
-extern int __pthread_cond_broadcast (pthread_cond_t *cond);
-extern int __pthread_cond_destroy (pthread_cond_t *cond);
-extern int __pthread_cond_init (pthread_cond_t *cond,
-				const pthread_condattr_t *cond_attr);
-extern int __pthread_cond_signal (pthread_cond_t *cond);
-extern int __pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex);
-extern int __pthread_cond_timedwait (pthread_cond_t *cond,
-				     pthread_mutex_t *mutex,
-				     const struct timespec *abstime);
-extern int __pthread_condattr_destroy (pthread_condattr_t *attr);
-extern int __pthread_condattr_init (pthread_condattr_t *attr);
-extern int __pthread_key_create (pthread_key_t *key, void (*destr) (void *));
-extern void *__pthread_getspecific (pthread_key_t key);
-extern int __pthread_setspecific (pthread_key_t key, const void *value);
-extern int __pthread_once (pthread_once_t *once_control,
-			   void (*init_routine) (void));
-extern int __pthread_atfork (void (*prepare) (void), void (*parent) (void),
-			     void (*child) (void));
-extern pthread_t __pthread_self (void);
-extern int __pthread_equal (pthread_t thread1, pthread_t thread2);
-extern int __pthread_kill (pthread_t threadid, int signo);
-extern void __pthread_exit (void *value) __attribute__ ((__noreturn__));
-extern int __pthread_setcanceltype (int type, int *oldtype);
-extern int __pthread_enable_asynccancel (void) attribute_hidden;
-extern void __pthread_disable_asynccancel (int oldtype)
-     internal_function attribute_hidden;
-extern void __pthread_testcancel (void);
-
-#if IS_IN (libpthread)
-hidden_proto (__pthread_mutex_init)
-hidden_proto (__pthread_mutex_destroy)
-hidden_proto (__pthread_mutex_lock)
-hidden_proto (__pthread_mutex_unlock)
-hidden_proto (__pthread_rwlock_rdlock)
-hidden_proto (__pthread_rwlock_wrlock)
-hidden_proto (__pthread_rwlock_unlock)
-hidden_proto (__pthread_key_create)
-hidden_proto (__pthread_getspecific)
-hidden_proto (__pthread_setspecific)
-hidden_proto (__pthread_once)
-hidden_proto (__pthread_setcancelstate)
-hidden_proto (__pthread_testcancel)
-#endif
-
-extern int __pthread_cond_broadcast_2_0 (pthread_cond_2_0_t *cond);
-extern int __pthread_cond_destroy_2_0 (pthread_cond_2_0_t *cond);
-extern int __pthread_cond_init_2_0 (pthread_cond_2_0_t *cond,
-				    const pthread_condattr_t *cond_attr);
-extern int __pthread_cond_signal_2_0 (pthread_cond_2_0_t *cond);
-extern int __pthread_cond_timedwait_2_0 (pthread_cond_2_0_t *cond,
-					 pthread_mutex_t *mutex,
-					 const struct timespec *abstime);
-extern int __pthread_cond_wait_2_0 (pthread_cond_2_0_t *cond,
-				    pthread_mutex_t *mutex);
-
-extern int __pthread_getaffinity_np (pthread_t th, size_t cpusetsize,
-				     cpu_set_t *cpuset);
-
-/* The two functions are in libc.so and not exported.  */
-extern int __libc_enable_asynccancel (void) attribute_hidden;
-extern void __libc_disable_asynccancel (int oldtype)
-     internal_function attribute_hidden;
-
-
-/* The two functions are in librt.so and not exported.  */
-extern int __librt_enable_asynccancel (void) attribute_hidden;
-extern void __librt_disable_asynccancel (int oldtype)
-     internal_function attribute_hidden;
-
-#if IS_IN (libpthread)
-/* Special versions which use non-exported functions.  */
-extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
-				    void (*routine) (void *), void *arg)
-     attribute_hidden;
-
-/* Replace cleanup macros defined in <pthread.h> with internal
-   versions that don't depend on unwind info and better support
-   cancellation.  */
-# undef pthread_cleanup_push
-# define pthread_cleanup_push(routine,arg)              \
-  { struct _pthread_cleanup_buffer _buffer;             \
-  __pthread_cleanup_push (&_buffer, (routine), (arg));
-
-extern void __pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
-				   int execute) attribute_hidden;
-# undef pthread_cleanup_pop
-# define pthread_cleanup_pop(execute)                   \
-  __pthread_cleanup_pop (&_buffer, (execute)); }
-#endif
-
-extern void __pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
-					  void (*routine) (void *), void *arg);
-extern void __pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
-					   int execute);
-
-/* Old cleanup interfaces, still used in libc.so.  */
-extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
-				   void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
-				  int execute);
-extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
-					 void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
-					  int execute);
-
-extern void __nptl_deallocate_tsd (void) attribute_hidden;
-
-extern void __nptl_setxid_error (struct xid_command *cmdp, int error)
-  attribute_hidden;
-extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden;
-#ifndef SHARED
-extern void __nptl_set_robust (struct pthread *self);
-#endif
-
-extern void __free_stacks (size_t limit) attribute_hidden;
-
-extern void __wait_lookup_done (void) attribute_hidden;
-
-#ifdef SHARED
-# define PTHREAD_STATIC_FN_REQUIRE(name)
-#else
-# define PTHREAD_STATIC_FN_REQUIRE(name) __asm (".globl " #name);
-#endif
-
-/* Returns 0 if POL is a valid scheduling policy.  */
-static inline int
-check_sched_policy_attr (int pol)
-{
-  if (pol == SCHED_OTHER || pol == SCHED_FIFO || pol == SCHED_RR)
-    return 0;
-
-  return EINVAL;
-}
-
-/* Returns 0 if PR is within the accepted range of priority values for
-   the scheduling policy POL or EINVAL otherwise.  */
-static inline int
-check_sched_priority_attr (int pr, int pol)
-{
-  int min = __sched_get_priority_min (pol);
-  int max = __sched_get_priority_max (pol);
-
-  if (min >= 0 && max >= 0 && pr >= min && pr <= max)
-    return 0;
-
-  return EINVAL;
-}
-
-/* Returns 0 if ST is a valid stack size for a thread stack and EINVAL
-   otherwise.  */
-static inline int
-check_stacksize_attr (size_t st)
-{
-  if (st >= PTHREAD_STACK_MIN)
-    return 0;
-
-  return EINVAL;
-}
-
-#endif	/* pthreadP.h */
diff --git a/nptl/pthread_atfork.c b/nptl/pthread_atfork.c
deleted file mode 100644
index dc2ea07887..0000000000
--- a/nptl/pthread_atfork.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   In addition to the permissions in the GNU Lesser General Public
-   License, the Free Software Foundation gives you unlimited
-   permission to link the compiled version of this file with other
-   programs, and to distribute those programs without any restriction
-   coming from the use of this file. (The GNU Lesser General Public
-   License restrictions do apply in other respects; for example, they
-   cover modification of the file, and distribution when not linked
-   into another program.)
-
-   Note that people who make modified versions of this file are not
-   obligated to grant this special exception for their modified
-   versions; it is their choice whether to do so. The GNU Lesser
-   General Public License gives permission to release a modified
-   version without this exception; this exception also makes it
-   possible to release a modified version which carries forward this
-   exception.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-#include <fork.h>
-
-/* This is defined by newer gcc version unique for each module.  */
-extern void *__dso_handle __attribute__ ((__weak__,
-					  __visibility__ ("hidden")));
-
-
-/* Hide the symbol so that no definition but the one locally in the
-   executable or DSO is used.  */
-int
-#ifndef __pthread_atfork
-/* Don't mark the compatibility function as hidden.  */
-attribute_hidden
-#endif
-__pthread_atfork (void (*prepare) (void), void (*parent) (void),
-		  void (*child) (void))
-{
-  return __register_atfork (prepare, parent, child,
-			    &__dso_handle == NULL ? NULL : __dso_handle);
-}
-#ifndef __pthread_atfork
-extern int pthread_atfork (void (*prepare) (void), void (*parent) (void),
-			   void (*child) (void)) attribute_hidden;
-strong_alias (__pthread_atfork, pthread_atfork)
-#endif
diff --git a/nptl/pthread_attr_destroy.c b/nptl/pthread_attr_destroy.c
deleted file mode 100644
index a9ce51edd4..0000000000
--- a/nptl/pthread_attr_destroy.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include "pthreadP.h"
-#include <shlib-compat.h>
-
-int
-__pthread_attr_destroy (pthread_attr_t *attr)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-  /* In old struct pthread_attr, neither next nor cpuset are
-     present.  */
-  if (__builtin_expect ((iattr->flags & ATTR_FLAG_OLDATTR), 0) == 0)
-#endif
-    /* The affinity CPU set might be allocated dynamically.  */
-    free (iattr->cpuset);
-
-  return 0;
-}
-strong_alias (__pthread_attr_destroy, pthread_attr_destroy)
diff --git a/nptl/pthread_attr_getaffinity.c b/nptl/pthread_attr_getaffinity.c
deleted file mode 100644
index b9d041ac60..0000000000
--- a/nptl/pthread_attr_getaffinity.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <pthreadP.h>
-#include <string.h>
-#include <sysdep.h>
-#include <sys/types.h>
-#include <sys/param.h>
-#include <shlib-compat.h>
-
-
-int
-__pthread_attr_getaffinity_new (const pthread_attr_t *attr, size_t cpusetsize,
-				cpu_set_t *cpuset)
-{
-  const struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (const struct pthread_attr *) attr;
-
-  if (iattr->cpuset != NULL)
-    {
-      /* Check whether there are any bits set beyond the limits
-	 the user requested.  */
-      for (size_t cnt = cpusetsize; cnt < iattr->cpusetsize; ++cnt)
-	if (((char *) iattr->cpuset)[cnt] != 0)
-	  return EINVAL;
-
-      /* Copy over the cpuset from the thread attribute object.  Limit the copy
-	 to the minimum of the source and destination sizes to prevent a buffer
-	 overrun.  If the destination is larger, fill the remaining space with
-	 zeroes.  */
-      void *p = mempcpy (cpuset, iattr->cpuset,
-			 MIN (iattr->cpusetsize, cpusetsize));
-      if (cpusetsize > iattr->cpusetsize)
-	memset (p, '\0', cpusetsize - iattr->cpusetsize);
-    }
-  else
-    /* We have no information.  */
-    memset (cpuset, -1, cpusetsize);
-
-  return 0;
-}
-versioned_symbol (libpthread, __pthread_attr_getaffinity_new,
-		  pthread_attr_getaffinity_np, GLIBC_2_3_4);
-
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4)
-int
-__pthread_attr_getaffinity_old (const pthread_attr_t *attr, cpu_set_t *cpuset)
-{
-  /* The old interface by default assumed a 1024 processor bitmap.  */
-  return __pthread_attr_getaffinity_new (attr, 128, cpuset);
-}
-compat_symbol (libpthread, __pthread_attr_getaffinity_old,
-	       pthread_attr_getaffinity_np, GLIBC_2_3_3);
-#endif
diff --git a/nptl/pthread_attr_getdetachstate.c b/nptl/pthread_attr_getdetachstate.c
deleted file mode 100644
index 803a553bdc..0000000000
--- a/nptl/pthread_attr_getdetachstate.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_getdetachstate (const pthread_attr_t *attr, int *detachstate)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  *detachstate = (iattr->flags & ATTR_FLAG_DETACHSTATE
-		  ? PTHREAD_CREATE_DETACHED : PTHREAD_CREATE_JOINABLE);
-
-  return 0;
-}
-strong_alias (__pthread_attr_getdetachstate, pthread_attr_getdetachstate)
diff --git a/nptl/pthread_attr_getguardsize.c b/nptl/pthread_attr_getguardsize.c
deleted file mode 100644
index b71be6c74e..0000000000
--- a/nptl/pthread_attr_getguardsize.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include "pthreadP.h"
-
-
-int
-pthread_attr_getguardsize (const pthread_attr_t *attr, size_t *guardsize)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  *guardsize = iattr->guardsize;
-
-  return 0;
-}
diff --git a/nptl/pthread_attr_getinheritsched.c b/nptl/pthread_attr_getinheritsched.c
deleted file mode 100644
index 2dec2302d6..0000000000
--- a/nptl/pthread_attr_getinheritsched.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_getinheritsched (const pthread_attr_t *attr, int *inherit)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Store the current values.  */
-  *inherit = (iattr->flags & ATTR_FLAG_NOTINHERITSCHED
-	      ? PTHREAD_EXPLICIT_SCHED : PTHREAD_INHERIT_SCHED);
-
-  return 0;
-}
-strong_alias (__pthread_attr_getinheritsched, pthread_attr_getinheritsched)
diff --git a/nptl/pthread_attr_getschedparam.c b/nptl/pthread_attr_getschedparam.c
deleted file mode 100644
index 34f94089fe..0000000000
--- a/nptl/pthread_attr_getschedparam.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <string.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_getschedparam (const pthread_attr_t *attr,
-			      struct sched_param *param)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Copy the current values.  */
-  memcpy (param, &iattr->schedparam, sizeof (struct sched_param));
-
-  return 0;
-}
-strong_alias (__pthread_attr_getschedparam, pthread_attr_getschedparam)
diff --git a/nptl/pthread_attr_getschedpolicy.c b/nptl/pthread_attr_getschedpolicy.c
deleted file mode 100644
index 65ed4176c7..0000000000
--- a/nptl/pthread_attr_getschedpolicy.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_getschedpolicy (const pthread_attr_t *attr, int *policy)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Store the current values.  */
-  *policy = iattr->schedpolicy;
-
-  return 0;
-}
-strong_alias (__pthread_attr_getschedpolicy, pthread_attr_getschedpolicy)
diff --git a/nptl/pthread_attr_getscope.c b/nptl/pthread_attr_getscope.c
deleted file mode 100644
index 7b36d6ad64..0000000000
--- a/nptl/pthread_attr_getscope.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_getscope (const pthread_attr_t *attr, int *scope)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Store the current values.  */
-  *scope = (iattr->flags & ATTR_FLAG_SCOPEPROCESS
-	      ? PTHREAD_SCOPE_PROCESS : PTHREAD_SCOPE_SYSTEM);
-
-  return 0;
-}
-strong_alias (__pthread_attr_getscope, pthread_attr_getscope)
diff --git a/nptl/pthread_attr_getstack.c b/nptl/pthread_attr_getstack.c
deleted file mode 100644
index 79c78c63ea..0000000000
--- a/nptl/pthread_attr_getstack.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_getstack (const pthread_attr_t *attr, void **stackaddr,
-			 size_t *stacksize)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Store the result.  */
-#if _STACK_GROWS_DOWN
-  *stackaddr = (char *) iattr->stackaddr - iattr->stacksize;
-#else
-  *stackaddr = (char *) iattr->stackaddr;
-#endif
-  *stacksize = iattr->stacksize;
-
-  return 0;
-}
-strong_alias (__pthread_attr_getstack, pthread_attr_getstack)
diff --git a/nptl/pthread_attr_getstackaddr.c b/nptl/pthread_attr_getstackaddr.c
deleted file mode 100644
index 69f0a7d97e..0000000000
--- a/nptl/pthread_attr_getstackaddr.c
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_getstackaddr (const pthread_attr_t *attr, void **stackaddr)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Some code assumes this function to work even if no stack address
-     has been set.  Let them figure it out for themselves what the
-     value means.  Simply store the result.  */
-  *stackaddr = iattr->stackaddr;
-
-  return 0;
-}
-strong_alias (__pthread_attr_getstackaddr, pthread_attr_getstackaddr)
-
-link_warning (pthread_attr_getstackaddr,
-              "the use of `pthread_attr_getstackaddr' is deprecated, use `pthread_attr_getstack'")
diff --git a/nptl/pthread_attr_getstacksize.c b/nptl/pthread_attr_getstacksize.c
deleted file mode 100644
index 9f24d4df39..0000000000
--- a/nptl/pthread_attr_getstacksize.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_getstacksize (const pthread_attr_t *attr, size_t *stacksize)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  size_t size = iattr->stacksize;
-
-  /* If the user has not set a stack size we return what the system
-     will use as the default.  */
-  if (size == 0)
-    {
-      lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
-      size = __default_pthread_attr.stacksize;
-      lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
-    }
-  *stacksize = size;
-
-  return 0;
-}
-strong_alias (__pthread_attr_getstacksize, pthread_attr_getstacksize)
diff --git a/nptl/pthread_attr_init.c b/nptl/pthread_attr_init.c
deleted file mode 100644
index 77998ea9ac..0000000000
--- a/nptl/pthread_attr_init.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <string.h>
-#include <unistd.h>
-#include "pthreadP.h"
-
-#include <shlib-compat.h>
-
-
-struct pthread_attr *__attr_list;
-int __attr_list_lock = LLL_LOCK_INITIALIZER;
-
-
-int
-__pthread_attr_init_2_1 (pthread_attr_t *attr)
-{
-  struct pthread_attr *iattr;
-
-  /* Many elements are initialized to zero so let us do it all at
-     once.  This also takes care of clearing the bytes which are not
-     internally used.  */
-  memset (attr, '\0', __SIZEOF_PTHREAD_ATTR_T);
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Default guard size specified by the standard.  */
-  iattr->guardsize = __getpagesize ();
-
-  return 0;
-}
-versioned_symbol (libpthread, __pthread_attr_init_2_1, pthread_attr_init,
-		  GLIBC_2_1);
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-__pthread_attr_init_2_0 (pthread_attr_t *attr)
-{
-  /* This code is specific to the old LinuxThread code which has a too
-     small pthread_attr_t definition.  The struct looked like
-     this:  */
-  struct old_attr
-  {
-    int detachstate;
-    int schedpolicy;
-    struct sched_param schedparam;
-    int inheritsched;
-    int scope;
-  };
-  struct pthread_attr *iattr;
-
-  /* Many elements are initialized to zero so let us do it all at
-     once.  This also takes care of clearing the bytes which are not
-     internally used.  */
-  memset (attr, '\0', sizeof (struct old_attr));
-
-  iattr = (struct pthread_attr *) attr;
-  iattr->flags |= ATTR_FLAG_OLDATTR;
-
-  /* We cannot enqueue the attribute because that member is not in the
-     old attribute structure.  */
-  return 0;
-}
-compat_symbol (libpthread, __pthread_attr_init_2_0, pthread_attr_init,
-	       GLIBC_2_0);
-#endif
diff --git a/nptl/pthread_attr_setaffinity.c b/nptl/pthread_attr_setaffinity.c
deleted file mode 100644
index 497512eb9c..0000000000
--- a/nptl/pthread_attr_setaffinity.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <limits.h>
-#include <stdlib.h>
-#include <string.h>
-#include <pthreadP.h>
-#include <shlib-compat.h>
-
-
-int
-__pthread_attr_setaffinity_new (pthread_attr_t *attr, size_t cpusetsize,
-				const cpu_set_t *cpuset)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  if (cpuset == NULL || cpusetsize == 0)
-    {
-      free (iattr->cpuset);
-      iattr->cpuset = NULL;
-      iattr->cpusetsize = 0;
-    }
-  else
-    {
-      if (iattr->cpusetsize != cpusetsize)
-	{
-	  void *newp = (cpu_set_t *) realloc (iattr->cpuset, cpusetsize);
-	  if (newp == NULL)
-	    return ENOMEM;
-
-	  iattr->cpuset = newp;
-	  iattr->cpusetsize = cpusetsize;
-	}
-
-      memcpy (iattr->cpuset, cpuset, cpusetsize);
-    }
-
-  return 0;
-}
-versioned_symbol (libpthread, __pthread_attr_setaffinity_new,
-		  pthread_attr_setaffinity_np, GLIBC_2_3_4);
-
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_3_3, GLIBC_2_3_4)
-int
-__pthread_attr_setaffinity_old (pthread_attr_t *attr, cpu_set_t *cpuset)
-{
-  /* The old interface by default assumed a 1024 processor bitmap.  */
-  return __pthread_attr_setaffinity_new (attr, 128, cpuset);
-}
-compat_symbol (libpthread, __pthread_attr_setaffinity_old,
-	       pthread_attr_setaffinity_np, GLIBC_2_3_3);
-#endif
diff --git a/nptl/pthread_attr_setdetachstate.c b/nptl/pthread_attr_setdetachstate.c
deleted file mode 100644
index c6fb1bfc93..0000000000
--- a/nptl/pthread_attr_setdetachstate.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Catch invalid values.  */
-  if (detachstate != PTHREAD_CREATE_DETACHED
-      && __builtin_expect (detachstate != PTHREAD_CREATE_JOINABLE, 0))
-    return EINVAL;
-
-  /* Set the flag.  It is nonzero if threads are created detached.  */
-  if (detachstate == PTHREAD_CREATE_DETACHED)
-    iattr->flags |= ATTR_FLAG_DETACHSTATE;
-  else
-    iattr->flags &= ~ATTR_FLAG_DETACHSTATE;
-
-  return 0;
-}
-strong_alias (__pthread_attr_setdetachstate, pthread_attr_setdetachstate)
diff --git a/nptl/pthread_attr_setguardsize.c b/nptl/pthread_attr_setguardsize.c
deleted file mode 100644
index 3927793da5..0000000000
--- a/nptl/pthread_attr_setguardsize.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include "pthreadP.h"
-
-
-int
-pthread_attr_setguardsize (pthread_attr_t *attr, size_t guardsize)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Note that we don't round the value here.  The standard requires
-     that subsequent pthread_attr_getguardsize calls return the value
-     set by the user.  */
-  iattr->guardsize = guardsize;
-
-  return 0;
-}
diff --git a/nptl/pthread_attr_setinheritsched.c b/nptl/pthread_attr_setinheritsched.c
deleted file mode 100644
index 69a6335d25..0000000000
--- a/nptl/pthread_attr_setinheritsched.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_setinheritsched (pthread_attr_t *attr, int inherit)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Catch invalid values.  */
-  if (inherit != PTHREAD_INHERIT_SCHED && inherit != PTHREAD_EXPLICIT_SCHED)
-    return EINVAL;
-
-  /* Store the new values.  */
-  if (inherit != PTHREAD_INHERIT_SCHED)
-    iattr->flags |= ATTR_FLAG_NOTINHERITSCHED;
-  else
-    iattr->flags &= ~ATTR_FLAG_NOTINHERITSCHED;
-
-  return 0;
-}
-strong_alias (__pthread_attr_setinheritsched, pthread_attr_setinheritsched)
diff --git a/nptl/pthread_attr_setschedparam.c b/nptl/pthread_attr_setschedparam.c
deleted file mode 100644
index e38d1d8f0c..0000000000
--- a/nptl/pthread_attr_setschedparam.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <string.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_setschedparam (pthread_attr_t *attr,
-			      const struct sched_param *param)
-{
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  struct pthread_attr *iattr = (struct pthread_attr *) attr;
-
-  int ret = check_sched_priority_attr (param->sched_priority,
-				       iattr->schedpolicy);
-  if (ret)
-    return ret;
-
-  /* Copy the new values.  */
-  memcpy (&iattr->schedparam, param, sizeof (struct sched_param));
-
-  /* Remember we set the value.  */
-  iattr->flags |= ATTR_FLAG_SCHED_SET;
-
-  return 0;
-}
-strong_alias (__pthread_attr_setschedparam, pthread_attr_setschedparam)
diff --git a/nptl/pthread_attr_setschedpolicy.c b/nptl/pthread_attr_setschedpolicy.c
deleted file mode 100644
index 868696d950..0000000000
--- a/nptl/pthread_attr_setschedpolicy.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_setschedpolicy (pthread_attr_t *attr, int policy)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Catch invalid values.  */
-  int ret = check_sched_policy_attr (policy);
-  if (ret)
-    return ret;
-
-  /* Store the new values.  */
-  iattr->schedpolicy = policy;
-
-  /* Remember we set the value.  */
-  iattr->flags |= ATTR_FLAG_POLICY_SET;
-
-  return 0;
-}
-strong_alias (__pthread_attr_setschedpolicy, pthread_attr_setschedpolicy)
diff --git a/nptl/pthread_attr_setscope.c b/nptl/pthread_attr_setscope.c
deleted file mode 100644
index e0fd1dd9bd..0000000000
--- a/nptl/pthread_attr_setscope.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_setscope (pthread_attr_t *attr, int scope)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Catch invalid values.  */
-  switch (scope)
-    {
-    case PTHREAD_SCOPE_SYSTEM:
-      iattr->flags &= ~ATTR_FLAG_SCOPEPROCESS;
-      break;
-
-    case PTHREAD_SCOPE_PROCESS:
-      return ENOTSUP;
-
-    default:
-      return EINVAL;
-    }
-
-  return 0;
-}
-strong_alias (__pthread_attr_setscope, pthread_attr_setscope)
diff --git a/nptl/pthread_attr_setstack.c b/nptl/pthread_attr_setstack.c
deleted file mode 100644
index e4f8b2956f..0000000000
--- a/nptl/pthread_attr_setstack.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <limits.h>
-#include "pthreadP.h"
-
-
-#ifndef NEW_VERNUM
-# define NEW_VERNUM GLIBC_2_3_3
-#endif
-
-
-int
-__pthread_attr_setstack (pthread_attr_t *attr, void *stackaddr,
-			 size_t stacksize)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Catch invalid sizes.  */
-  int ret = check_stacksize_attr (stacksize);
-  if (ret)
-    return ret;
-
-#ifdef EXTRA_PARAM_CHECKS
-  EXTRA_PARAM_CHECKS;
-#endif
-
-  iattr->stacksize = stacksize;
-#if _STACK_GROWS_DOWN
-  iattr->stackaddr = (char *) stackaddr + stacksize;
-#else
-  iattr->stackaddr = (char *) stackaddr;
-#endif
-  iattr->flags |= ATTR_FLAG_STACKADDR;
-
-  return 0;
-}
-
-#if PTHREAD_STACK_MIN == 16384
-strong_alias (__pthread_attr_setstack, pthread_attr_setstack)
-#else
-# include <shlib-compat.h>
-versioned_symbol (libpthread, __pthread_attr_setstack, pthread_attr_setstack,
-		  NEW_VERNUM);
-
-# if SHLIB_COMPAT(libpthread, GLIBC_2_2, NEW_VERNUM)
-
-int
-__old_pthread_attr_setstack (pthread_attr_t *attr, void *stackaddr,
-			     size_t stacksize)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Catch invalid sizes.  */
-  if (stacksize < 16384)
-    return EINVAL;
-
-#  ifdef EXTRA_PARAM_CHECKS
-  EXTRA_PARAM_CHECKS;
-#  endif
-
-  iattr->stacksize = stacksize;
-#if _STACK_GROWS_DOWN
-  iattr->stackaddr = (char *) stackaddr + stacksize;
-#else
-  iattr->stackaddr = (char *) stackaddr;
-#endif
-  iattr->flags |= ATTR_FLAG_STACKADDR;
-
-  return 0;
-}
-
-compat_symbol (libpthread, __old_pthread_attr_setstack, pthread_attr_setstack,
-	       GLIBC_2_2);
-# endif
-
-#endif
diff --git a/nptl/pthread_attr_setstackaddr.c b/nptl/pthread_attr_setstackaddr.c
deleted file mode 100644
index ac16f941c6..0000000000
--- a/nptl/pthread_attr_setstackaddr.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_attr_setstackaddr (pthread_attr_t *attr, void *stackaddr)
-{
-  struct pthread_attr *iattr;
-
-#ifdef EXTRA_PARAM_CHECKS
-  EXTRA_PARAM_CHECKS;
-#endif
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  iattr->stackaddr = stackaddr;
-  iattr->flags |= ATTR_FLAG_STACKADDR;
-
-  return 0;
-}
-strong_alias (__pthread_attr_setstackaddr, pthread_attr_setstackaddr)
-
-link_warning (pthread_attr_setstackaddr,
-              "the use of `pthread_attr_setstackaddr' is deprecated, use `pthread_attr_setstack'")
diff --git a/nptl/pthread_attr_setstacksize.c b/nptl/pthread_attr_setstacksize.c
deleted file mode 100644
index 4c0abace90..0000000000
--- a/nptl/pthread_attr_setstacksize.c
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <limits.h>
-#include "pthreadP.h"
-
-#ifndef NEW_VERNUM
-# define NEW_VERNUM GLIBC_2_3_3
-#endif
-
-
-int
-__pthread_attr_setstacksize (pthread_attr_t *attr, size_t stacksize)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Catch invalid sizes.  */
-  int ret = check_stacksize_attr (stacksize);
-  if (ret)
-    return ret;
-
-  iattr->stacksize = stacksize;
-
-  return 0;
-}
-
-#if PTHREAD_STACK_MIN == 16384
-strong_alias (__pthread_attr_setstacksize, pthread_attr_setstacksize)
-#else
-# include <shlib-compat.h>
-versioned_symbol (libpthread, __pthread_attr_setstacksize,
-		  pthread_attr_setstacksize, NEW_VERNUM);
-
-# if SHLIB_COMPAT(libpthread, GLIBC_2_1, NEW_VERNUM)
-
-int
-__old_pthread_attr_setstacksize (pthread_attr_t *attr, size_t stacksize)
-{
-  struct pthread_attr *iattr;
-
-  assert (sizeof (*attr) >= sizeof (struct pthread_attr));
-  iattr = (struct pthread_attr *) attr;
-
-  /* Catch invalid sizes.  */
-  if (stacksize < 16384)
-    return EINVAL;
-
-#  ifdef STACKSIZE_ADJUST
-  STACKSIZE_ADJUST;
-#  endif
-
-  iattr->stacksize = stacksize;
-
-  return 0;
-}
-
-compat_symbol (libpthread, __old_pthread_attr_setstacksize,
-	       pthread_attr_setstacksize, GLIBC_2_1);
-# endif
-
-#endif
diff --git a/nptl/pthread_barrier_destroy.c b/nptl/pthread_barrier_destroy.c
deleted file mode 100644
index e79232bd8f..0000000000
--- a/nptl/pthread_barrier_destroy.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <futex-internal.h>
-
-
-int
-pthread_barrier_destroy (pthread_barrier_t *barrier)
-{
-  struct pthread_barrier *bar = (struct pthread_barrier *) barrier;
-
-  /* Destroying a barrier is only allowed if no thread is blocked on it.
-     Thus, there is no unfinished round, and all modifications to IN will
-     have happened before us (either because the calling thread took part
-     in the most recent round and thus synchronized-with all other threads
-     entering, or the program ensured this through other synchronization).
-     We must wait until all threads that entered so far have confirmed that
-     they have exited as well.  To get the notification, pretend that we have
-     reached the reset threshold.  */
-  unsigned int count = bar->count;
-  unsigned int max_in_before_reset = BARRIER_IN_THRESHOLD
-				   - BARRIER_IN_THRESHOLD % count;
-  /* Relaxed MO sufficient because the program must have ensured that all
-     modifications happen-before this load (see above).  */
-  unsigned int in = atomic_load_relaxed (&bar->in);
-  /* Trigger reset.  The required acquire MO is below.  */
-  if (atomic_fetch_add_relaxed (&bar->out, max_in_before_reset - in) < in)
-    {
-      /* Not all threads confirmed yet that they have exited, so another
-	 thread will perform a reset.  Wait until that has happened.  */
-      while (in != 0)
-	{
-	  futex_wait_simple (&bar->in, in, bar->shared);
-	  in = atomic_load_relaxed (&bar->in);
-	}
-    }
-  /* We must ensure that memory reuse happens after all prior use of the
-     barrier (specifically, synchronize-with the reset of the barrier or the
-     confirmation of threads leaving the barrier).  */
-  atomic_thread_fence_acquire ();
-
-  return 0;
-}
diff --git a/nptl/pthread_barrier_init.c b/nptl/pthread_barrier_init.c
deleted file mode 100644
index 9c851fbb32..0000000000
--- a/nptl/pthread_barrier_init.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <futex-internal.h>
-#include <kernel-features.h>
-
-
-static const struct pthread_barrierattr default_barrierattr =
-  {
-    .pshared = PTHREAD_PROCESS_PRIVATE
-  };
-
-
-int
-__pthread_barrier_init (pthread_barrier_t *barrier,
-			const pthread_barrierattr_t *attr, unsigned int count)
-{
-  struct pthread_barrier *ibarrier;
-
-  /* XXX EINVAL is not specified by POSIX as a possible error code for COUNT
-     being too large.  See pthread_barrier_wait for the reason for the
-     comparison with BARRIER_IN_THRESHOLD.  */
-  if (__glibc_unlikely (count == 0 || count >= BARRIER_IN_THRESHOLD))
-    return EINVAL;
-
-  const struct pthread_barrierattr *iattr
-    = (attr != NULL
-       ? (struct pthread_barrierattr *) attr
-       : &default_barrierattr);
-
-  ibarrier = (struct pthread_barrier *) barrier;
-
-  /* Initialize the individual fields.  */
-  ibarrier->in = 0;
-  ibarrier->out = 0;
-  ibarrier->count = count;
-  ibarrier->current_round = 0;
-  ibarrier->shared = (iattr->pshared == PTHREAD_PROCESS_PRIVATE
-		      ? FUTEX_PRIVATE : FUTEX_SHARED);
-
-  return 0;
-}
-weak_alias (__pthread_barrier_init, pthread_barrier_init)
diff --git a/nptl/pthread_barrier_wait.c b/nptl/pthread_barrier_wait.c
deleted file mode 100644
index 1dcedb4ed5..0000000000
--- a/nptl/pthread_barrier_wait.c
+++ /dev/null
@@ -1,223 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <sysdep.h>
-#include <futex-internal.h>
-#include <pthreadP.h>
-
-
-/* Wait on the barrier.
-
-   In each round, we wait for a fixed number of threads to enter the barrier
-   (COUNT).  Once that has happened, exactly these threads are allowed to
-   leave the barrier.  Note that POSIX does not require that only COUNT
-   threads can attempt to block using the barrier concurrently.
-
-   We count the number of threads that have entered (IN).  Each thread
-   increments IN when entering, thus getting a position in the sequence of
-   threads that are or have been waiting (starting with 1, so the position
-   is the number of threads that have entered so far including the current
-   thread).
-   CURRENT_ROUND designates the most recent thread whose round has been
-   detected as complete.  When a thread detects that enough threads have
-   entered to make a round complete, it finishes this round by effectively
-   adding COUNT to CURRENT_ROUND atomically.  Threads that believe that their
-   round is not complete yet wait until CURRENT_ROUND is not smaller than
-   their position anymore.
-
-   A barrier can be destroyed as soon as no threads are blocked on the
-   barrier.  This is already the case if just one thread from the last round
-   has stopped waiting and returned to the caller; the assumption is that
-   all threads from the round are unblocked atomically, even though they may
-   return at different times from the respective calls to
-   pthread_barrier_wait).  Thus, a valid call to pthread_barrier_destroy can
-   be concurrent with other threads still figuring out that their round has
-   been completed.  Therefore, threads need to confirm that they have left
-   the barrier by incrementing OUT, and pthread_barrier_destroy needs to wait
-   until OUT equals IN.
-
-   To avoid an ABA issue for futex_wait on CURRENT_ROUND and for archs with
-   32b-only atomics, we additionally reset the barrier when IN reaches
-   a threshold to avoid overflow.  We assume that the total number of threads
-   is less than UINT_MAX/2, and set the threshold accordingly so that we can
-   use a simple atomic_fetch_add on IN instead of a CAS when entering.  The
-   threshold is always set to the end of a round, so all threads that have
-   entered are either pre-reset threads or post-reset threads (i.e., have a
-   position larger than the threshold).
-   Pre-reset threads just run the algorithm explained above.  Post-reset
-   threads wait until IN is reset to a pre-threshold value.
-   When the last pre-reset thread leaves the barrier (i.e., OUT equals the
-   threshold), it resets the barrier to its initial state.  Other (post-reset)
-   threads wait for the reset to have finished by waiting until IN is less
-   than the threshold and then restart by trying to enter the barrier again.
-
-   We reuse the reset mechanism in pthread_barrier_destroy to get notified
-   when all threads have left the barrier: We trigger an artificial reset and
-   wait for the last pre-reset thread to finish reset, thus notifying the
-   thread that is about to destroy the barrier.
-
-   Blocking using futexes is straightforward: pre-reset threads wait for
-   completion of their round using CURRENT_ROUND as futex word, and post-reset
-   threads and pthread_barrier_destroy use IN as futex word.
-
-   Further notes:
-   * It is not simple to let some of the post-reset threads help with the
-     reset because of the ABA issues that arise; therefore, we simply make
-     the last thread to leave responsible for the reset.
-   * POSIX leaves it unspecified whether a signal handler running in a thread
-     that has been unblocked (because its round is complete) can stall all
-     other threads and prevent them from returning from the barrier.  In this
-     implementation, other threads will return.  However,
-     pthread_barrier_destroy will of course wait for the signal handler thread
-     to confirm that it left the barrier.
-
-   TODO We should add spinning with back-off.  Once we do that, we could also
-   try to avoid the futex_wake syscall when a round is detected as finished.
-   If we do not spin, it is quite likely that at least some other threads will
-   have called futex_wait already.  */
-int
-__pthread_barrier_wait (pthread_barrier_t *barrier)
-{
-  struct pthread_barrier *bar = (struct pthread_barrier *) barrier;
-
-  /* How many threads entered so far, including ourself.  */
-  unsigned int i;
-
- reset_restart:
-  /* Try to enter the barrier.  We need acquire MO to (1) ensure that if we
-     observe that our round can be completed (see below for our attempt to do
-     so), all pre-barrier-entry effects of all threads in our round happen
-     before us completing the round, and (2) to make our use of the barrier
-     happen after a potential reset.  We need release MO to make sure that our
-     pre-barrier-entry effects happen before threads in this round leaving the
-     barrier.  */
-  i = atomic_fetch_add_acq_rel (&bar->in, 1) + 1;
-  /* These loads are after the fetch_add so that we're less likely to first
-     pull in the cache line as shared.  */
-  unsigned int count = bar->count;
-  /* This is the number of threads that can enter before we need to reset.
-     Always at the end of a round.  */
-  unsigned int max_in_before_reset = BARRIER_IN_THRESHOLD
-				   - BARRIER_IN_THRESHOLD % count;
-
-  if (i > max_in_before_reset)
-    {
-      /* We're in a reset round.  Just wait for a reset to finish; do not
-	 help finishing previous rounds because this could happen
-	 concurrently with a reset.  */
-      while (i > max_in_before_reset)
-	{
-	  futex_wait_simple (&bar->in, i, bar->shared);
-	  /* Relaxed MO is fine here because we just need an indication for
-	     when we should retry to enter (which will use acquire MO, see
-	     above).  */
-	  i = atomic_load_relaxed (&bar->in);
-	}
-      goto reset_restart;
-    }
-
-  /* Look at the current round.  At this point, we are just interested in
-     whether we can complete rounds, based on the information we obtained
-     through our acquire-MO load of IN.  Nonetheless, if we notice that
-     our round has been completed using this load, we use the acquire-MO
-     fence below to make sure that all pre-barrier-entry effects of all
-     threads in our round happen before us leaving the barrier.  Therefore,
-     relaxed MO is sufficient.  */
-  unsigned cr = atomic_load_relaxed (&bar->current_round);
-
-  /* Try to finish previous rounds and/or the current round.  We simply
-     consider just our position here and do not try to do the work of threads
-     that entered more recently.  */
-  while (cr + count <= i)
-    {
-      /* Calculate the new current round based on how many threads entered.
-	 NEWCR must be larger than CR because CR+COUNT ends a round.  */
-      unsigned int newcr = i - i % count;
-      /* Try to complete previous and/or the current round.  We need release
-	 MO to propagate the happens-before that we observed through reading
-	 with acquire MO from IN to other threads.  If the CAS fails, it
-	 is like the relaxed-MO load of CURRENT_ROUND above.  */
-      if (atomic_compare_exchange_weak_release (&bar->current_round, &cr,
-						newcr))
-	{
-	  /* Update CR with the modification we just did.  */
-	  cr = newcr;
-	  /* Wake threads belonging to the rounds we just finished.  We may
-	     wake more threads than necessary if more than COUNT threads try
-	     to block concurrently on the barrier, but this is not a typical
-	     use of barriers.
-	     Note that we can still access SHARED because we haven't yet
-	     confirmed to have left the barrier.  */
-	  futex_wake (&bar->current_round, INT_MAX, bar->shared);
-	  /* We did as much as we could based on our position.  If we advanced
-	     the current round to a round sufficient for us, do not wait for
-	     that to happen and skip the acquire fence (we already
-	     synchronize-with all other threads in our round through the
-	     initial acquire MO fetch_add of IN.  */
-	  if (i <= cr)
-	    goto ready_to_leave;
-	  else
-	    break;
-	}
-    }
-
-  /* Wait until the current round is more recent than the round we are in.  */
-  while (i > cr)
-    {
-      /* Wait for the current round to finish.  */
-      futex_wait_simple (&bar->current_round, cr, bar->shared);
-      /* See the fence below.  */
-      cr = atomic_load_relaxed (&bar->current_round);
-    }
-
-  /* Our round finished.  Use the acquire MO fence to synchronize-with the
-     thread that finished the round, either through the initial load of
-     CURRENT_ROUND above or a failed CAS in the loop above.  */
-  atomic_thread_fence_acquire ();
-
-  /* Now signal that we left.  */
-  unsigned int o;
- ready_to_leave:
-  /* We need release MO here so that our use of the barrier happens before
-     reset or memory reuse after pthread_barrier_destroy.  */
-  o = atomic_fetch_add_release (&bar->out, 1) + 1;
-  if (o == max_in_before_reset)
-    {
-      /* Perform a reset if we are the last pre-reset thread leaving.   All
-	 other threads accessing the barrier are post-reset threads and are
-	 incrementing or spinning on IN.  Thus, resetting IN as the last step
-	 of reset ensures that the reset is not concurrent with actual use of
-	 the barrier.  We need the acquire MO fence so that the reset happens
-	 after use of the barrier by all earlier pre-reset threads.  */
-      atomic_thread_fence_acquire ();
-      atomic_store_relaxed (&bar->current_round, 0);
-      atomic_store_relaxed (&bar->out, 0);
-      /* When destroying the barrier, we wait for a reset to happen.  Thus,
-	 we must load SHARED now so that this happens before the barrier is
-	 destroyed.  */
-      int shared = bar->shared;
-      atomic_store_release (&bar->in, 0);
-      futex_wake (&bar->in, INT_MAX, shared);
-
-    }
-
-  /* Return a special value for exactly one thread per round.  */
-  return i % count == 0 ?  PTHREAD_BARRIER_SERIAL_THREAD : 0;
-}
-weak_alias (__pthread_barrier_wait, pthread_barrier_wait)
diff --git a/nptl/pthread_barrierattr_destroy.c b/nptl/pthread_barrierattr_destroy.c
deleted file mode 100644
index 7da043b35d..0000000000
--- a/nptl/pthread_barrierattr_destroy.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_barrierattr_destroy (pthread_barrierattr_t *attr)
-{
-  /* Nothing to do.  */
-
-  return 0;
-}
diff --git a/nptl/pthread_barrierattr_getpshared.c b/nptl/pthread_barrierattr_getpshared.c
deleted file mode 100644
index 62dc9bf0b0..0000000000
--- a/nptl/pthread_barrierattr_getpshared.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_barrierattr_getpshared (const pthread_barrierattr_t *attr,
-				int *pshared)
-{
-  *pshared = ((const struct pthread_barrierattr *) attr)->pshared;
-
-  return 0;
-}
diff --git a/nptl/pthread_barrierattr_init.c b/nptl/pthread_barrierattr_init.c
deleted file mode 100644
index 796652ebe2..0000000000
--- a/nptl/pthread_barrierattr_init.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_barrierattr_init (pthread_barrierattr_t *attr)
-{
-  ((struct pthread_barrierattr *) attr)->pshared = PTHREAD_PROCESS_PRIVATE;
-
-  return 0;
-}
diff --git a/nptl/pthread_barrierattr_setpshared.c b/nptl/pthread_barrierattr_setpshared.c
deleted file mode 100644
index 19604b4736..0000000000
--- a/nptl/pthread_barrierattr_setpshared.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <futex-internal.h>
-
-
-int
-pthread_barrierattr_setpshared (pthread_barrierattr_t *attr, int pshared)
-{
-  int err = futex_supports_pshared (pshared);
-  if (err != 0)
-    return err;
-
-  ((struct pthread_barrierattr *) attr)->pshared = pshared;
-
-  return 0;
-}
diff --git a/nptl/pthread_cancel.c b/nptl/pthread_cancel.c
deleted file mode 100644
index 231a58df18..0000000000
--- a/nptl/pthread_cancel.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <sysdep.h>
-#include <unistd.h>
-
-int
-pthread_cancel (pthread_t th)
-{
-  volatile struct pthread *pd = (volatile struct pthread *) th;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-#ifdef SHARED
-  pthread_cancel_init ();
-#endif
-  int result = 0;
-  int oldval;
-  int newval;
-  do
-    {
-    again:
-      oldval = pd->cancelhandling;
-      newval = oldval | CANCELING_BITMASK | CANCELED_BITMASK;
-
-      /* Avoid doing unnecessary work.  The atomic operation can
-	 potentially be expensive if the bug has to be locked and
-	 remote cache lines have to be invalidated.  */
-      if (oldval == newval)
-	break;
-
-      /* If the cancellation is handled asynchronously just send a
-	 signal.  We avoid this if possible since it's more
-	 expensive.  */
-      if (CANCEL_ENABLED_AND_CANCELED_AND_ASYNCHRONOUS (newval))
-	{
-	  /* Mark the cancellation as "in progress".  */
-	  if (atomic_compare_and_exchange_bool_acq (&pd->cancelhandling,
-						    oldval | CANCELING_BITMASK,
-						    oldval))
-	    goto again;
-
-#ifdef SIGCANCEL
-	  /* The cancellation handler will take care of marking the
-	     thread as canceled.  */
-	  pid_t pid = getpid ();
-
-	  INTERNAL_SYSCALL_DECL (err);
-	  int val = INTERNAL_SYSCALL_CALL (tgkill, err, pid, pd->tid,
-					   SIGCANCEL);
-	  if (INTERNAL_SYSCALL_ERROR_P (val, err))
-	    result = INTERNAL_SYSCALL_ERRNO (val, err);
-#else
-          /* It should be impossible to get here at all, since
-             pthread_setcanceltype should never have allowed
-             PTHREAD_CANCEL_ASYNCHRONOUS to be set.  */
-          abort ();
-#endif
-
-	  break;
-	}
-
-	/* A single-threaded process should be able to kill itself, since
-	   there is nothing in the POSIX specification that says that it
-	   cannot.  So we set multiple_threads to true so that cancellation
-	   points get executed.  */
-	THREAD_SETMEM (THREAD_SELF, header.multiple_threads, 1);
-#ifndef TLS_MULTIPLE_THREADS_IN_TCB
-	__pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
-#endif
-    }
-  /* Mark the thread as canceled.  This has to be done
-     atomically since other bits could be modified as well.  */
-  while (atomic_compare_and_exchange_bool_acq (&pd->cancelhandling, newval,
-					       oldval));
-
-  return result;
-}
-
-PTHREAD_STATIC_FN_REQUIRE (pthread_create)
diff --git a/nptl/pthread_clock_gettime.c b/nptl/pthread_clock_gettime.c
deleted file mode 100644
index c9abb61540..0000000000
--- a/nptl/pthread_clock_gettime.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <time.h>
-#include "pthreadP.h"
-
-
-#if HP_TIMING_AVAIL
-int
-__pthread_clock_gettime (clockid_t clock_id, hp_timing_t freq,
-			 struct timespec *tp)
-{
-  hp_timing_t tsc;
-
-  /* Get the current counter.  */
-  HP_TIMING_NOW (tsc);
-
-  /* This is the ID of the thread we are looking for.  */
-  pid_t tid = ((unsigned int) clock_id) >> CLOCK_IDFIELD_SIZE;
-
-  /* Compute the offset since the start time of the process.  */
-  if (tid == 0 || tid == THREAD_GETMEM (THREAD_SELF, tid))
-    /* Our own clock.  */
-    tsc -= THREAD_GETMEM (THREAD_SELF, cpuclock_offset);
-  else
-    {
-      /* This is more complicated.  We have to locate the thread based
-	 on the ID.  This means walking the list of existing
-	 threads.  */
-      struct pthread *thread = __find_thread_by_id (tid);
-      if (thread == NULL)
-	{
-	  __set_errno (EINVAL);
-	  return -1;
-	}
-
-      /* There is a race here.  The thread might terminate and the stack
-	 become unusable.  But this is the user's problem.  */
-      tsc -= thread->cpuclock_offset;
-    }
-
-  /* Compute the seconds.  */
-  tp->tv_sec = tsc / freq;
-
-  /* And the nanoseconds.  This computation should be stable until
-     we get machines with about 16GHz frequency.  */
-  tp->tv_nsec = ((tsc % freq) * 1000000000ull) / freq;
-
-  return 0;
-}
-#endif
diff --git a/nptl/pthread_clock_settime.c b/nptl/pthread_clock_settime.c
deleted file mode 100644
index f2722d9635..0000000000
--- a/nptl/pthread_clock_settime.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2001-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <time.h>
-#include "pthreadP.h"
-
-
-#if HP_TIMING_AVAIL
-int
-__pthread_clock_settime (clockid_t clock_id, hp_timing_t offset)
-{
-  /* This is the ID of the thread we are looking for.  */
-  pid_t tid = ((unsigned int) clock_id) >> CLOCK_IDFIELD_SIZE;
-
-  /* Compute the offset since the start time of the process.  */
-  if (tid == 0 || tid == THREAD_GETMEM (THREAD_SELF, tid))
-    /* Our own clock.  */
-    THREAD_SETMEM (THREAD_SELF, cpuclock_offset, offset);
-  else
-    {
-      /* This is more complicated.  We have to locate the thread based
-	 on the ID.  This means walking the list of existing
-	 threads.  */
-      struct pthread *thread = __find_thread_by_id (tid);
-      if (thread == NULL)
-	{
-	  __set_errno (EINVAL);
-	  return -1;
-	}
-
-      /* There is a race here.  The thread might terminate and the stack
-	 become unusable.  But this is the user's problem.  */
-      thread->cpuclock_offset = offset;
-    }
-
-  return 0;
-}
-#endif
diff --git a/nptl/pthread_cond_broadcast.c b/nptl/pthread_cond_broadcast.c
deleted file mode 100644
index be69451767..0000000000
--- a/nptl/pthread_cond_broadcast.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <endian.h>
-#include <errno.h>
-#include <sysdep.h>
-#include <futex-internal.h>
-#include <pthread.h>
-#include <pthreadP.h>
-#include <stap-probe.h>
-#include <atomic.h>
-
-#include <shlib-compat.h>
-
-#include "pthread_cond_common.c"
-
-
-/* We do the following steps from __pthread_cond_signal in one critical
-   section: (1) signal all waiters in G1, (2) close G1 so that it can become
-   the new G2 and make G2 the new G1, and (3) signal all waiters in the new
-   G1.  We don't need to do all these steps if there are no waiters in G1
-   and/or G2.  See __pthread_cond_signal for further details.  */
-int
-__pthread_cond_broadcast (pthread_cond_t *cond)
-{
-  LIBC_PROBE (cond_broadcast, 1, cond);
-
-  unsigned int wrefs = atomic_load_relaxed (&cond->__data.__wrefs);
-  if (wrefs >> 3 == 0)
-    return 0;
-  int private = __condvar_get_private (wrefs);
-
-  __condvar_acquire_lock (cond, private);
-
-  unsigned long long int wseq = __condvar_load_wseq_relaxed (cond);
-  unsigned int g2 = wseq & 1;
-  unsigned int g1 = g2 ^ 1;
-  wseq >>= 1;
-  bool do_futex_wake = false;
-
-  /* Step (1): signal all waiters remaining in G1.  */
-  if (cond->__data.__g_size[g1] != 0)
-    {
-      /* Add as many signals as the remaining size of the group.  */
-      atomic_fetch_add_relaxed (cond->__data.__g_signals + g1,
-				cond->__data.__g_size[g1] << 1);
-      cond->__data.__g_size[g1] = 0;
-
-      /* We need to wake G1 waiters before we quiesce G1 below.  */
-      /* TODO Only set it if there are indeed futex waiters.  We could
-	 also try to move this out of the critical section in cases when
-	 G2 is empty (and we don't need to quiesce).  */
-      futex_wake (cond->__data.__g_signals + g1, INT_MAX, private);
-    }
-
-  /* G1 is complete.  Step (2) is next unless there are no waiters in G2, in
-     which case we can stop.  */
-  if (__condvar_quiesce_and_switch_g1 (cond, wseq, &g1, private))
-    {
-      /* Step (3): Send signals to all waiters in the old G2 / new G1.  */
-      atomic_fetch_add_relaxed (cond->__data.__g_signals + g1,
-				cond->__data.__g_size[g1] << 1);
-      cond->__data.__g_size[g1] = 0;
-      /* TODO Only set it if there are indeed futex waiters.  */
-      do_futex_wake = true;
-    }
-
-  __condvar_release_lock (cond, private);
-
-  if (do_futex_wake)
-    futex_wake (cond->__data.__g_signals + g1, INT_MAX, private);
-
-  return 0;
-}
-
-versioned_symbol (libpthread, __pthread_cond_broadcast, pthread_cond_broadcast,
-		  GLIBC_2_3_2);
diff --git a/nptl/pthread_cond_common.c b/nptl/pthread_cond_common.c
deleted file mode 100644
index ffbbde4106..0000000000
--- a/nptl/pthread_cond_common.c
+++ /dev/null
@@ -1,465 +0,0 @@
-/* pthread_cond_common -- shared code for condition variable.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <atomic.h>
-#include <stdint.h>
-#include <pthread.h>
-
-/* We need 3 least-significant bits on __wrefs for something else.  */
-#define __PTHREAD_COND_MAX_GROUP_SIZE ((unsigned) 1 << 29)
-
-#if __HAVE_64B_ATOMICS == 1
-
-static uint64_t __attribute__ ((unused))
-__condvar_load_wseq_relaxed (pthread_cond_t *cond)
-{
-  return atomic_load_relaxed (&cond->__data.__wseq);
-}
-
-static uint64_t __attribute__ ((unused))
-__condvar_fetch_add_wseq_acquire (pthread_cond_t *cond, unsigned int val)
-{
-  return atomic_fetch_add_acquire (&cond->__data.__wseq, val);
-}
-
-static uint64_t __attribute__ ((unused))
-__condvar_fetch_xor_wseq_release (pthread_cond_t *cond, unsigned int val)
-{
-  return atomic_fetch_xor_release (&cond->__data.__wseq, val);
-}
-
-static uint64_t __attribute__ ((unused))
-__condvar_load_g1_start_relaxed (pthread_cond_t *cond)
-{
-  return atomic_load_relaxed (&cond->__data.__g1_start);
-}
-
-static void __attribute__ ((unused))
-__condvar_add_g1_start_relaxed (pthread_cond_t *cond, unsigned int val)
-{
-  atomic_store_relaxed (&cond->__data.__g1_start,
-      atomic_load_relaxed (&cond->__data.__g1_start) + val);
-}
-
-#else
-
-/* We use two 64b counters: __wseq and __g1_start.  They are monotonically
-   increasing and single-writer-multiple-readers counters, so we can implement
-   load, fetch-and-add, and fetch-and-xor operations even when we just have
-   32b atomics.  Values we add or xor are less than or equal to 1<<31 (*),
-   so we only have to make overflow-and-addition atomic wrt. to concurrent
-   load operations and xor operations.  To do that, we split each counter into
-   two 32b values of which we reserve the MSB of each to represent an
-   overflow from the lower-order half to the higher-order half.
-
-   In the common case, the state is (higher-order / lower-order half, and . is
-   basically concatenation of the bits):
-   0.h     / 0.l  = h.l
-
-   When we add a value of x that overflows (i.e., 0.l + x == 1.L), we run the
-   following steps S1-S4 (the values these represent are on the right-hand
-   side):
-   S1:  0.h     / 1.L == (h+1).L
-   S2:  1.(h+1) / 1.L == (h+1).L
-   S3:  1.(h+1) / 0.L == (h+1).L
-   S4:  0.(h+1) / 0.L == (h+1).L
-   If the LSB of the higher-order half is set, readers will ignore the
-   overflow bit in the lower-order half.
-
-   To get an atomic snapshot in load operations, we exploit that the
-   higher-order half is monotonically increasing; if we load a value V from
-   it, then read the lower-order half, and then read the higher-order half
-   again and see the same value V, we know that both halves have existed in
-   the sequence of values the full counter had.  This is similar to the
-   validated reads in the time-based STMs in GCC's libitm (e.g.,
-   method_ml_wt).
-
-   The xor operation needs to be an atomic read-modify-write.  The write
-   itself is not an issue as it affects just the lower-order half but not bits
-   used in the add operation.  To make the full fetch-and-xor atomic, we
-   exploit that concurrently, the value can increase by at most 1<<31 (*): The
-   xor operation is only called while having acquired the lock, so not more
-   than __PTHREAD_COND_MAX_GROUP_SIZE waiters can enter concurrently and thus
-   increment __wseq.  Therefore, if the xor operation observes a value of
-   __wseq, then the value it applies the modification to later on can be
-   derived (see below).
-
-   One benefit of this scheme is that this makes load operations
-   obstruction-free because unlike if we would just lock the counter, readers
-   can almost always interpret a snapshot of each halves.  Readers can be
-   forced to read a new snapshot when the read is concurrent with an overflow.
-   However, overflows will happen infrequently, so load operations are
-   practically lock-free.
-
-   (*) The highest value we add is __PTHREAD_COND_MAX_GROUP_SIZE << 2 to
-   __g1_start (the two extra bits are for the lock in the two LSBs of
-   __g1_start).  */
-
-typedef struct
-{
-  unsigned int low;
-  unsigned int high;
-} _condvar_lohi;
-
-static uint64_t
-__condvar_fetch_add_64_relaxed (_condvar_lohi *lh, unsigned int op)
-{
-  /* S1. Note that this is an atomic read-modify-write so it extends the
-     release sequence of release MO store at S3.  */
-  unsigned int l = atomic_fetch_add_relaxed (&lh->low, op);
-  unsigned int h = atomic_load_relaxed (&lh->high);
-  uint64_t result = ((uint64_t) h << 31) | l;
-  l += op;
-  if ((l >> 31) > 0)
-    {
-      /* Overflow.  Need to increment higher-order half.  Note that all
-	 add operations are ordered in happens-before.  */
-      h++;
-      /* S2. Release MO to synchronize with the loads of the higher-order half
-	 in the load operation.  See __condvar_load_64_relaxed.  */
-      atomic_store_release (&lh->high, h | ((unsigned int) 1 << 31));
-      l ^= (unsigned int) 1 << 31;
-      /* S3.  See __condvar_load_64_relaxed.  */
-      atomic_store_release (&lh->low, l);
-      /* S4.  Likewise.  */
-      atomic_store_release (&lh->high, h);
-    }
-  return result;
-}
-
-static uint64_t
-__condvar_load_64_relaxed (_condvar_lohi *lh)
-{
-  unsigned int h, l, h2;
-  do
-    {
-      /* This load and the second one below to the same location read from the
-	 stores in the overflow handling of the add operation or the
-	 initializing stores (which is a simple special case because
-	 initialization always completely happens before further use).
-	 Because no two stores to the higher-order half write the same value,
-	 the loop ensures that if we continue to use the snapshot, this load
-	 and the second one read from the same store operation.  All candidate
-	 store operations have release MO.
-	 If we read from S2 in the first load, then we will see the value of
-	 S1 on the next load (because we synchronize with S2), or a value
-	 later in modification order.  We correctly ignore the lower-half's
-	 overflow bit in this case.  If we read from S4, then we will see the
-	 value of S3 in the next load (or a later value), which does not have
-	 the overflow bit set anymore.
-	  */
-      h = atomic_load_acquire (&lh->high);
-      /* This will read from the release sequence of S3 (i.e, either the S3
-	 store or the read-modify-writes at S1 following S3 in modification
-	 order).  Thus, the read synchronizes with S3, and the following load
-	 of the higher-order half will read from the matching S2 (or a later
-	 value).
-	 Thus, if we read a lower-half value here that already overflowed and
-	 belongs to an increased higher-order half value, we will see the
-	 latter and h and h2 will not be equal.  */
-      l = atomic_load_acquire (&lh->low);
-      /* See above.  */
-      h2 = atomic_load_relaxed (&lh->high);
-    }
-  while (h != h2);
-  if (((l >> 31) > 0) && ((h >> 31) > 0))
-    l ^= (unsigned int) 1 << 31;
-  return ((uint64_t) (h & ~((unsigned int) 1 << 31)) << 31) + l;
-}
-
-static uint64_t __attribute__ ((unused))
-__condvar_load_wseq_relaxed (pthread_cond_t *cond)
-{
-  return __condvar_load_64_relaxed ((_condvar_lohi *) &cond->__data.__wseq32);
-}
-
-static uint64_t __attribute__ ((unused))
-__condvar_fetch_add_wseq_acquire (pthread_cond_t *cond, unsigned int val)
-{
-  uint64_t r = __condvar_fetch_add_64_relaxed
-      ((_condvar_lohi *) &cond->__data.__wseq32, val);
-  atomic_thread_fence_acquire ();
-  return r;
-}
-
-static uint64_t __attribute__ ((unused))
-__condvar_fetch_xor_wseq_release (pthread_cond_t *cond, unsigned int val)
-{
-  _condvar_lohi *lh = (_condvar_lohi *) &cond->__data.__wseq32;
-  /* First, get the current value.  See __condvar_load_64_relaxed.  */
-  unsigned int h, l, h2;
-  do
-    {
-      h = atomic_load_acquire (&lh->high);
-      l = atomic_load_acquire (&lh->low);
-      h2 = atomic_load_relaxed (&lh->high);
-    }
-  while (h != h2);
-  if (((l >> 31) > 0) && ((h >> 31) == 0))
-    h++;
-  h &= ~((unsigned int) 1 << 31);
-  l &= ~((unsigned int) 1 << 31);
-
-  /* Now modify.  Due to the coherence rules, the prior load will read a value
-     earlier in modification order than the following fetch-xor.
-     This uses release MO to make the full operation have release semantics
-     (all other operations access the lower-order half).  */
-  unsigned int l2 = atomic_fetch_xor_release (&lh->low, val)
-      & ~((unsigned int) 1 << 31);
-  if (l2 < l)
-    /* The lower-order half overflowed in the meantime.  This happened exactly
-       once due to the limit on concurrent waiters (see above).  */
-    h++;
-  return ((uint64_t) h << 31) + l2;
-}
-
-static uint64_t __attribute__ ((unused))
-__condvar_load_g1_start_relaxed (pthread_cond_t *cond)
-{
-  return __condvar_load_64_relaxed
-      ((_condvar_lohi *) &cond->__data.__g1_start32);
-}
-
-static void __attribute__ ((unused))
-__condvar_add_g1_start_relaxed (pthread_cond_t *cond, unsigned int val)
-{
-  ignore_value (__condvar_fetch_add_64_relaxed
-      ((_condvar_lohi *) &cond->__data.__g1_start32, val));
-}
-
-#endif  /* !__HAVE_64B_ATOMICS  */
-
-
-/* The lock that signalers use.  See pthread_cond_wait_common for uses.
-   The lock is our normal three-state lock: not acquired (0) / acquired (1) /
-   acquired-with-futex_wake-request (2).  However, we need to preserve the
-   other bits in the unsigned int used for the lock, and therefore it is a
-   little more complex.  */
-static void __attribute__ ((unused))
-__condvar_acquire_lock (pthread_cond_t *cond, int private)
-{
-  unsigned int s = atomic_load_relaxed (&cond->__data.__g1_orig_size);
-  while ((s & 3) == 0)
-    {
-      if (atomic_compare_exchange_weak_acquire (&cond->__data.__g1_orig_size,
-	  &s, s | 1))
-	return;
-      /* TODO Spinning and back-off.  */
-    }
-  /* We can't change from not acquired to acquired, so try to change to
-     acquired-with-futex-wake-request and do a futex wait if we cannot change
-     from not acquired.  */
-  while (1)
-    {
-      while ((s & 3) != 2)
-	{
-	  if (atomic_compare_exchange_weak_acquire
-	      (&cond->__data.__g1_orig_size, &s, (s & ~(unsigned int) 3) | 2))
-	    {
-	      if ((s & 3) == 0)
-		return;
-	      break;
-	    }
-	  /* TODO Back off.  */
-	}
-      futex_wait_simple (&cond->__data.__g1_orig_size,
-	  (s & ~(unsigned int) 3) | 2, private);
-      /* Reload so we see a recent value.  */
-      s = atomic_load_relaxed (&cond->__data.__g1_orig_size);
-    }
-}
-
-/* See __condvar_acquire_lock.  */
-static void __attribute__ ((unused))
-__condvar_release_lock (pthread_cond_t *cond, int private)
-{
-  if ((atomic_fetch_and_release (&cond->__data.__g1_orig_size,
-				 ~(unsigned int) 3) & 3)
-      == 2)
-    futex_wake (&cond->__data.__g1_orig_size, 1, private);
-}
-
-/* Only use this when having acquired the lock.  */
-static unsigned int __attribute__ ((unused))
-__condvar_get_orig_size (pthread_cond_t *cond)
-{
-  return atomic_load_relaxed (&cond->__data.__g1_orig_size) >> 2;
-}
-
-/* Only use this when having acquired the lock.  */
-static void __attribute__ ((unused))
-__condvar_set_orig_size (pthread_cond_t *cond, unsigned int size)
-{
-  /* We have acquired the lock, but might get one concurrent update due to a
-     lock state change from acquired to acquired-with-futex_wake-request.
-     The store with relaxed MO is fine because there will be no further
-     changes to the lock bits nor the size, and we will subsequently release
-     the lock with release MO.  */
-  unsigned int s;
-  s = (atomic_load_relaxed (&cond->__data.__g1_orig_size) & 3)
-      | (size << 2);
-  if ((atomic_exchange_relaxed (&cond->__data.__g1_orig_size, s) & 3)
-      != (s & 3))
-    atomic_store_relaxed (&cond->__data.__g1_orig_size, (size << 2) | 2);
-}
-
-/* Returns FUTEX_SHARED or FUTEX_PRIVATE based on the provided __wrefs
-   value.  */
-static int __attribute__ ((unused))
-__condvar_get_private (int flags)
-{
-  if ((flags & __PTHREAD_COND_SHARED_MASK) == 0)
-    return FUTEX_PRIVATE;
-  else
-    return FUTEX_SHARED;
-}
-
-/* This closes G1 (whose index is in G1INDEX), waits for all futex waiters to
-   leave G1, converts G1 into a fresh G2, and then switches group roles so that
-   the former G2 becomes the new G1 ending at the current __wseq value when we
-   eventually make the switch (WSEQ is just an observation of __wseq by the
-   signaler).
-   If G2 is empty, it will not switch groups because then it would create an
-   empty G1 which would require switching groups again on the next signal.
-   Returns false iff groups were not switched because G2 was empty.  */
-static bool __attribute__ ((unused))
-__condvar_quiesce_and_switch_g1 (pthread_cond_t *cond, uint64_t wseq,
-    unsigned int *g1index, int private)
-{
-  const unsigned int maxspin = 0;
-  unsigned int g1 = *g1index;
-
-  /* If there is no waiter in G2, we don't do anything.  The expression may
-     look odd but remember that __g_size might hold a negative value, so
-     putting the expression this way avoids relying on implementation-defined
-     behavior.
-     Note that this works correctly for a zero-initialized condvar too.  */
-  unsigned int old_orig_size = __condvar_get_orig_size (cond);
-  uint64_t old_g1_start = __condvar_load_g1_start_relaxed (cond) >> 1;
-  if (((unsigned) (wseq - old_g1_start - old_orig_size)
-	  + cond->__data.__g_size[g1 ^ 1]) == 0)
-	return false;
-
-  /* Now try to close and quiesce G1.  We have to consider the following kinds
-     of waiters:
-     * Waiters from less recent groups than G1 are not affected because
-       nothing will change for them apart from __g1_start getting larger.
-     * New waiters arriving concurrently with the group switching will all go
-       into G2 until we atomically make the switch.  Waiters existing in G2
-       are not affected.
-     * Waiters in G1 will be closed out immediately by setting a flag in
-       __g_signals, which will prevent waiters from blocking using a futex on
-       __g_signals and also notifies them that the group is closed.  As a
-       result, they will eventually remove their group reference, allowing us
-       to close switch group roles.  */
-
-  /* First, set the closed flag on __g_signals.  This tells waiters that are
-     about to wait that they shouldn't do that anymore.  This basically
-     serves as an advance notificaton of the upcoming change to __g1_start;
-     waiters interpret it as if __g1_start was larger than their waiter
-     sequence position.  This allows us to change __g1_start after waiting
-     for all existing waiters with group references to leave, which in turn
-     makes recovery after stealing a signal simpler because it then can be
-     skipped if __g1_start indicates that the group is closed (otherwise,
-     we would have to recover always because waiters don't know how big their
-     groups are).  Relaxed MO is fine.  */
-  atomic_fetch_or_relaxed (cond->__data.__g_signals + g1, 1);
-
-  /* Wait until there are no group references anymore.  The fetch-or operation
-     injects us into the modification order of __g_refs; release MO ensures
-     that waiters incrementing __g_refs after our fetch-or see the previous
-     changes to __g_signals and to __g1_start that had to happen before we can
-     switch this G1 and alias with an older group (we have two groups, so
-     aliasing requires switching group roles twice).  Note that nobody else
-     can have set the wake-request flag, so we do not have to act upon it.
-
-     Also note that it is harmless if older waiters or waiters from this G1
-     get a group reference after we have quiesced the group because it will
-     remain closed for them either because of the closed flag in __g_signals
-     or the later update to __g1_start.  New waiters will never arrive here
-     but instead continue to go into the still current G2.  */
-  unsigned r = atomic_fetch_or_release (cond->__data.__g_refs + g1, 0);
-  while ((r >> 1) > 0)
-    {
-      for (unsigned int spin = maxspin; ((r >> 1) > 0) && (spin > 0); spin--)
-	{
-	  /* TODO Back off.  */
-	  r = atomic_load_relaxed (cond->__data.__g_refs + g1);
-	}
-      if ((r >> 1) > 0)
-	{
-	  /* There is still a waiter after spinning.  Set the wake-request
-	     flag and block.  Relaxed MO is fine because this is just about
-	     this futex word.  */
-	  r = atomic_fetch_or_relaxed (cond->__data.__g_refs + g1, 1);
-
-	  if ((r >> 1) > 0)
-	    futex_wait_simple (cond->__data.__g_refs + g1, r, private);
-	  /* Reload here so we eventually see the most recent value even if we
-	     do not spin.   */
-	  r = atomic_load_relaxed (cond->__data.__g_refs + g1);
-	}
-    }
-  /* Acquire MO so that we synchronize with the release operation that waiters
-     use to decrement __g_refs and thus happen after the waiters we waited
-     for.  */
-  atomic_thread_fence_acquire ();
-
-  /* Update __g1_start, which finishes closing this group.  The value we add
-     will never be negative because old_orig_size can only be zero when we
-     switch groups the first time after a condvar was initialized, in which
-     case G1 will be at index 1 and we will add a value of 1.  See above for
-     why this takes place after waiting for quiescence of the group.
-     Relaxed MO is fine because the change comes with no additional
-     constraints that others would have to observe.  */
-  __condvar_add_g1_start_relaxed (cond,
-      (old_orig_size << 1) + (g1 == 1 ? 1 : - 1));
-
-  /* Now reopen the group, thus enabling waiters to again block using the
-     futex controlled by __g_signals.  Release MO so that observers that see
-     no signals (and thus can block) also see the write __g1_start and thus
-     that this is now a new group (see __pthread_cond_wait_common for the
-     matching acquire MO loads).  */
-  atomic_store_release (cond->__data.__g_signals + g1, 0);
-
-  /* At this point, the old G1 is now a valid new G2 (but not in use yet).
-     No old waiter can neither grab a signal nor acquire a reference without
-     noticing that __g1_start is larger.
-     We can now publish the group switch by flipping the G2 index in __wseq.
-     Release MO so that this synchronizes with the acquire MO operation
-     waiters use to obtain a position in the waiter sequence.  */
-  wseq = __condvar_fetch_xor_wseq_release (cond, 1) >> 1;
-  g1 ^= 1;
-  *g1index ^= 1;
-
-  /* These values are just observed by signalers, and thus protected by the
-     lock.  */
-  unsigned int orig_size = wseq - (old_g1_start + old_orig_size);
-  __condvar_set_orig_size (cond, orig_size);
-  /* Use and addition to not loose track of cancellations in what was
-     previously G2.  */
-  cond->__data.__g_size[g1] += orig_size;
-
-  /* The new G1's size may be zero because of cancellations during its time
-     as G2.  If this happens, there are no waiters that have to receive a
-     signal, so we do not need to add any and return false.  */
-  if (cond->__data.__g_size[g1] == 0)
-    return false;
-
-  return true;
-}
diff --git a/nptl/pthread_cond_destroy.c b/nptl/pthread_cond_destroy.c
deleted file mode 100644
index fc65dca78c..0000000000
--- a/nptl/pthread_cond_destroy.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <shlib-compat.h>
-#include "pthreadP.h"
-#include <stap-probe.h>
-#include <atomic.h>
-#include <futex-internal.h>
-
-#include "pthread_cond_common.c"
-
-/* See __pthread_cond_wait for a high-level description of the algorithm.
-
-   A correct program must make sure that no waiters are blocked on the condvar
-   when it is destroyed, and that there are no concurrent signals or
-   broadcasts.  To wake waiters reliably, the program must signal or
-   broadcast while holding the mutex or after having held the mutex.  It must
-   also ensure that no signal or broadcast are still pending to unblock
-   waiters; IOW, because waiters can wake up spuriously, the program must
-   effectively ensure that destruction happens after the execution of those
-   signal or broadcast calls.
-   Thus, we can assume that all waiters that are still accessing the condvar
-   have been woken.  We wait until they have confirmed to have woken up by
-   decrementing __wrefs.  */
-int
-__pthread_cond_destroy (pthread_cond_t *cond)
-{
-  LIBC_PROBE (cond_destroy, 1, cond);
-
-  /* Set the wake request flag.  We could also spin, but destruction that is
-     concurrent with still-active waiters is probably neither common nor
-     performance critical.  Acquire MO to synchronize with waiters confirming
-     that they finished.  */
-  unsigned int wrefs = atomic_fetch_or_acquire (&cond->__data.__wrefs, 4);
-  int private = __condvar_get_private (wrefs);
-  while (wrefs >> 3 != 0)
-    {
-      futex_wait_simple (&cond->__data.__wrefs, wrefs, private);
-      /* See above.  */
-      wrefs = atomic_load_acquire (&cond->__data.__wrefs);
-    }
-  /* The memory the condvar occupies can now be reused.  */
-  return 0;
-}
-versioned_symbol (libpthread, __pthread_cond_destroy,
-		  pthread_cond_destroy, GLIBC_2_3_2);
diff --git a/nptl/pthread_cond_init.c b/nptl/pthread_cond_init.c
deleted file mode 100644
index 0387f00ad0..0000000000
--- a/nptl/pthread_cond_init.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <shlib-compat.h>
-#include "pthreadP.h"
-#include <stap-probe.h>
-#include <string.h>
-
-
-/* See __pthread_cond_wait for details.  */
-int
-__pthread_cond_init (pthread_cond_t *cond, const pthread_condattr_t *cond_attr)
-{
-  struct pthread_condattr *icond_attr = (struct pthread_condattr *) cond_attr;
-
-  memset (cond, 0, sizeof (pthread_cond_t));
-
-  /* Update the pretty printers if the internal representation of icond_attr
-     is changed.  */
-
-  /* Iff not equal to ~0l, this is a PTHREAD_PROCESS_PRIVATE condvar.  */
-  if (icond_attr != NULL && (icond_attr->value & 1) != 0)
-    cond->__data.__wrefs |= __PTHREAD_COND_SHARED_MASK;
-  int clockid = (icond_attr != NULL
-		 ? ((icond_attr->value >> 1) & ((1 << COND_CLOCK_BITS) - 1))
-		 : CLOCK_REALTIME);
-  /* If 0, CLOCK_REALTIME is used; CLOCK_MONOTONIC otherwise.  */
-  if (clockid != CLOCK_REALTIME)
-    cond->__data.__wrefs |= __PTHREAD_COND_CLOCK_MONOTONIC_MASK;
-
-  LIBC_PROBE (cond_init, 2, cond, cond_attr);
-
-  return 0;
-}
-versioned_symbol (libpthread, __pthread_cond_init,
-		  pthread_cond_init, GLIBC_2_3_2);
diff --git a/nptl/pthread_cond_signal.c b/nptl/pthread_cond_signal.c
deleted file mode 100644
index db0698c66c..0000000000
--- a/nptl/pthread_cond_signal.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <endian.h>
-#include <errno.h>
-#include <sysdep.h>
-#include <futex-internal.h>
-#include <pthread.h>
-#include <pthreadP.h>
-#include <atomic.h>
-#include <stdint.h>
-
-#include <shlib-compat.h>
-#include <stap-probe.h>
-
-#include "pthread_cond_common.c"
-
-/* See __pthread_cond_wait for a high-level description of the algorithm.  */
-int
-__pthread_cond_signal (pthread_cond_t *cond)
-{
-  LIBC_PROBE (cond_signal, 1, cond);
-
-  /* First check whether there are waiters.  Relaxed MO is fine for that for
-     the same reasons that relaxed MO is fine when observing __wseq (see
-     below).  */
-  unsigned int wrefs = atomic_load_relaxed (&cond->__data.__wrefs);
-  if (wrefs >> 3 == 0)
-    return 0;
-  int private = __condvar_get_private (wrefs);
-
-  __condvar_acquire_lock (cond, private);
-
-  /* Load the waiter sequence number, which represents our relative ordering
-     to any waiters.  Relaxed MO is sufficient for that because:
-     1) We can pick any position that is allowed by external happens-before
-        constraints.  In particular, if another __pthread_cond_wait call
-        happened before us, this waiter must be eligible for being woken by
-        us.  The only way do establish such a happens-before is by signaling
-        while having acquired the mutex associated with the condvar and
-        ensuring that the signal's critical section happens after the waiter.
-        Thus, the mutex ensures that we see that waiter's __wseq increase.
-     2) Once we pick a position, we do not need to communicate this to the
-        program via a happens-before that we set up: First, any wake-up could
-        be a spurious wake-up, so the program must not interpret a wake-up as
-        an indication that the waiter happened before a particular signal;
-        second, a program cannot detect whether a waiter has not yet been
-        woken (i.e., it cannot distinguish between a non-woken waiter and one
-        that has been woken but hasn't resumed execution yet), and thus it
-        cannot try to deduce that a signal happened before a particular
-        waiter.  */
-  unsigned long long int wseq = __condvar_load_wseq_relaxed (cond);
-  unsigned int g1 = (wseq & 1) ^ 1;
-  wseq >>= 1;
-  bool do_futex_wake = false;
-
-  /* If G1 is still receiving signals, we put the signal there.  If not, we
-     check if G2 has waiters, and if so, quiesce and switch G1 to the former
-     G2; if this results in a new G1 with waiters (G2 might have cancellations
-     already, see __condvar_quiesce_and_switch_g1), we put the signal in the
-     new G1.  */
-  if ((cond->__data.__g_size[g1] != 0)
-      || __condvar_quiesce_and_switch_g1 (cond, wseq, &g1, private))
-    {
-      /* Add a signal.  Relaxed MO is fine because signaling does not need to
-	 establish a happens-before relation (see above).  We do not mask the
-	 release-MO store when initializing a group in
-	 __condvar_quiesce_and_switch_g1 because we use an atomic
-	 read-modify-write and thus extend that store's release sequence.  */
-      atomic_fetch_add_relaxed (cond->__data.__g_signals + g1, 2);
-      cond->__data.__g_size[g1]--;
-      /* TODO Only set it if there are indeed futex waiters.  */
-      do_futex_wake = true;
-    }
-
-  __condvar_release_lock (cond, private);
-
-  if (do_futex_wake)
-    futex_wake (cond->__data.__g_signals + g1, 1, private);
-
-  return 0;
-}
-
-versioned_symbol (libpthread, __pthread_cond_signal, pthread_cond_signal,
-		  GLIBC_2_3_2);
diff --git a/nptl/pthread_cond_wait.c b/nptl/pthread_cond_wait.c
deleted file mode 100644
index 7812b94a3a..0000000000
--- a/nptl/pthread_cond_wait.c
+++ /dev/null
@@ -1,673 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <endian.h>
-#include <errno.h>
-#include <sysdep.h>
-#include <futex-internal.h>
-#include <pthread.h>
-#include <pthreadP.h>
-#include <sys/time.h>
-#include <atomic.h>
-#include <stdint.h>
-#include <stdbool.h>
-
-#include <shlib-compat.h>
-#include <stap-probe.h>
-#include <time.h>
-
-#include "pthread_cond_common.c"
-
-
-struct _condvar_cleanup_buffer
-{
-  uint64_t wseq;
-  pthread_cond_t *cond;
-  pthread_mutex_t *mutex;
-  int private;
-};
-
-
-/* Decrease the waiter reference count.  */
-static void
-__condvar_confirm_wakeup (pthread_cond_t *cond, int private)
-{
-  /* If destruction is pending (i.e., the wake-request flag is nonzero) and we
-     are the last waiter (prior value of __wrefs was 1 << 3), then wake any
-     threads waiting in pthread_cond_destroy.  Release MO to synchronize with
-     these threads.  Don't bother clearing the wake-up request flag.  */
-  if ((atomic_fetch_add_release (&cond->__data.__wrefs, -8) >> 2) == 3)
-    futex_wake (&cond->__data.__wrefs, INT_MAX, private);
-}
-
-
-/* Cancel waiting after having registered as a waiter previously.  SEQ is our
-   position and G is our group index.
-   The goal of cancellation is to make our group smaller if that is still
-   possible.  If we are in a closed group, this is not possible anymore; in
-   this case, we need to send a replacement signal for the one we effectively
-   consumed because the signal should have gotten consumed by another waiter
-   instead; we must not both cancel waiting and consume a signal.
-
-   Must not be called while still holding a reference on the group.
-
-   Returns true iff we consumed a signal.
-
-   On some kind of timeouts, we may be able to pretend that a signal we
-   effectively consumed happened before the timeout (i.e., similarly to first
-   spinning on signals before actually checking whether the timeout has
-   passed already).  Doing this would allow us to skip sending a replacement
-   signal, but this case might happen rarely because the end of the timeout
-   must race with someone else sending a signal.  Therefore, we don't bother
-   trying to optimize this.  */
-static void
-__condvar_cancel_waiting (pthread_cond_t *cond, uint64_t seq, unsigned int g,
-			  int private)
-{
-  bool consumed_signal = false;
-
-  /* No deadlock with group switching is possible here because we have do
-     not hold a reference on the group.  */
-  __condvar_acquire_lock (cond, private);
-
-  uint64_t g1_start = __condvar_load_g1_start_relaxed (cond) >> 1;
-  if (g1_start > seq)
-    {
-      /* Our group is closed, so someone provided enough signals for it.
-	 Thus, we effectively consumed a signal.  */
-      consumed_signal = true;
-    }
-  else
-    {
-      if (g1_start + __condvar_get_orig_size (cond) <= seq)
-	{
-	  /* We are in the current G2 and thus cannot have consumed a signal.
-	     Reduce its effective size or handle overflow.  Remember that in
-	     G2, unsigned int size is zero or a negative value.  */
-	  if (cond->__data.__g_size[g] + __PTHREAD_COND_MAX_GROUP_SIZE > 0)
-	    {
-	      cond->__data.__g_size[g]--;
-	    }
-	  else
-	    {
-	      /* Cancellations would overflow the maximum group size.  Just
-		 wake up everyone spuriously to create a clean state.  This
-		 also means we do not consume a signal someone else sent.  */
-	      __condvar_release_lock (cond, private);
-	      __pthread_cond_broadcast (cond);
-	      return;
-	    }
-	}
-      else
-	{
-	  /* We are in current G1.  If the group's size is zero, someone put
-	     a signal in the group that nobody else but us can consume.  */
-	  if (cond->__data.__g_size[g] == 0)
-	    consumed_signal = true;
-	  else
-	    {
-	      /* Otherwise, we decrease the size of the group.  This is
-		 equivalent to atomically putting in a signal just for us and
-		 consuming it right away.  We do not consume a signal sent
-		 by someone else.  We also cannot have consumed a futex
-		 wake-up because if we were cancelled or timed out in a futex
-		 call, the futex will wake another waiter.  */
-	      cond->__data.__g_size[g]--;
-	    }
-	}
-    }
-
-  __condvar_release_lock (cond, private);
-
-  if (consumed_signal)
-    {
-      /* We effectively consumed a signal even though we didn't want to.
-	 Therefore, we need to send a replacement signal.
-	 If we would want to optimize this, we could do what
-	 pthread_cond_signal does right in the critical section above.  */
-      __pthread_cond_signal (cond);
-    }
-}
-
-/* Wake up any signalers that might be waiting.  */
-static void
-__condvar_dec_grefs (pthread_cond_t *cond, unsigned int g, int private)
-{
-  /* Release MO to synchronize-with the acquire load in
-     __condvar_quiesce_and_switch_g1.  */
-  if (atomic_fetch_add_release (cond->__data.__g_refs + g, -2) == 3)
-    {
-      /* Clear the wake-up request flag before waking up.  We do not need more
-	 than relaxed MO and it doesn't matter if we apply this for an aliased
-	 group because we wake all futex waiters right after clearing the
-	 flag.  */
-      atomic_fetch_and_relaxed (cond->__data.__g_refs + g, ~(unsigned int) 1);
-      futex_wake (cond->__data.__g_refs + g, INT_MAX, private);
-    }
-}
-
-/* Clean-up for cancellation of waiters waiting for normal signals.  We cancel
-   our registration as a waiter, confirm we have woken up, and re-acquire the
-   mutex.  */
-static void
-__condvar_cleanup_waiting (void *arg)
-{
-  struct _condvar_cleanup_buffer *cbuffer =
-    (struct _condvar_cleanup_buffer *) arg;
-  pthread_cond_t *cond = cbuffer->cond;
-  unsigned g = cbuffer->wseq & 1;
-
-  __condvar_dec_grefs (cond, g, cbuffer->private);
-
-  __condvar_cancel_waiting (cond, cbuffer->wseq >> 1, g, cbuffer->private);
-  /* FIXME With the current cancellation implementation, it is possible that
-     a thread is cancelled after it has returned from a syscall.  This could
-     result in a cancelled waiter consuming a futex wake-up that is then
-     causing another waiter in the same group to not wake up.  To work around
-     this issue until we have fixed cancellation, just add a futex wake-up
-     conservatively.  */
-  futex_wake (cond->__data.__g_signals + g, 1, cbuffer->private);
-
-  __condvar_confirm_wakeup (cond, cbuffer->private);
-
-  /* XXX If locking the mutex fails, should we just stop execution?  This
-     might be better than silently ignoring the error.  */
-  __pthread_mutex_cond_lock (cbuffer->mutex);
-}
-
-/* This condvar implementation guarantees that all calls to signal and
-   broadcast and all of the three virtually atomic parts of each call to wait
-   (i.e., (1) releasing the mutex and blocking, (2) unblocking, and (3) re-
-   acquiring the mutex) happen in some total order that is consistent with the
-   happens-before relations in the calling program.  However, this order does
-   not necessarily result in additional happens-before relations being
-   established (which aligns well with spurious wake-ups being allowed).
-
-   All waiters acquire a certain position in a 64b waiter sequence (__wseq).
-   This sequence determines which waiters are allowed to consume signals.
-   A broadcast is equal to sending as many signals as are unblocked waiters.
-   When a signal arrives, it samples the current value of __wseq with a
-   relaxed-MO load (i.e., the position the next waiter would get).  (This is
-   sufficient because it is consistent with happens-before; the caller can
-   enforce stronger ordering constraints by calling signal while holding the
-   mutex.)  Only waiters with a position less than the __wseq value observed
-   by the signal are eligible to consume this signal.
-
-   This would be straight-forward to implement if waiters would just spin but
-   we need to let them block using futexes.  Futexes give no guarantee of
-   waking in FIFO order, so we cannot reliably wake eligible waiters if we
-   just use a single futex.  Also, futex words are 32b in size, but we need
-   to distinguish more than 1<<32 states because we need to represent the
-   order of wake-up (and thus which waiters are eligible to consume signals);
-   blocking in a futex is not atomic with a waiter determining its position in
-   the waiter sequence, so we need the futex word to reliably notify waiters
-   that they should not attempt to block anymore because they have been
-   already signaled in the meantime.  While an ABA issue on a 32b value will
-   be rare, ignoring it when we are aware of it is not the right thing to do
-   either.
-
-   Therefore, we use a 64b counter to represent the waiter sequence (on
-   architectures which only support 32b atomics, we use a few bits less).
-   To deal with the blocking using futexes, we maintain two groups of waiters:
-   * Group G1 consists of waiters that are all eligible to consume signals;
-     incoming signals will always signal waiters in this group until all
-     waiters in G1 have been signaled.
-   * Group G2 consists of waiters that arrive when a G1 is present and still
-     contains waiters that have not been signaled.  When all waiters in G1
-     are signaled and a new signal arrives, the new signal will convert G2
-     into the new G1 and create a new G2 for future waiters.
-
-   We cannot allocate new memory because of process-shared condvars, so we
-   have just two slots of groups that change their role between G1 and G2.
-   Each has a separate futex word, a number of signals available for
-   consumption, a size (number of waiters in the group that have not been
-   signaled), and a reference count.
-
-   The group reference count is used to maintain the number of waiters that
-   are using the group's futex.  Before a group can change its role, the
-   reference count must show that no waiters are using the futex anymore; this
-   prevents ABA issues on the futex word.
-
-   To represent which intervals in the waiter sequence the groups cover (and
-   thus also which group slot contains G1 or G2), we use a 64b counter to
-   designate the start position of G1 (inclusive), and a single bit in the
-   waiter sequence counter to represent which group slot currently contains
-   G2.  This allows us to switch group roles atomically wrt. waiters obtaining
-   a position in the waiter sequence.  The G1 start position allows waiters to
-   figure out whether they are in a group that has already been completely
-   signaled (i.e., if the current G1 starts at a later position that the
-   waiter's position).  Waiters cannot determine whether they are currently
-   in G2 or G1 -- but they do not have too because all they are interested in
-   is whether there are available signals, and they always start in G2 (whose
-   group slot they know because of the bit in the waiter sequence.  Signalers
-   will simply fill the right group until it is completely signaled and can
-   be closed (they do not switch group roles until they really have to to
-   decrease the likelihood of having to wait for waiters still holding a
-   reference on the now-closed G1).
-
-   Signalers maintain the initial size of G1 to be able to determine where
-   G2 starts (G2 is always open-ended until it becomes G1).  They track the
-   remaining size of a group; when waiters cancel waiting (due to PThreads
-   cancellation or timeouts), they will decrease this remaining size as well.
-
-   To implement condvar destruction requirements (i.e., that
-   pthread_cond_destroy can be called as soon as all waiters have been
-   signaled), waiters increment a reference count before starting to wait and
-   decrement it after they stopped waiting but right before they acquire the
-   mutex associated with the condvar.
-
-   pthread_cond_t thus consists of the following (bits that are used for
-   flags and are not part of the primary value of each field but necessary
-   to make some things atomic or because there was no space for them
-   elsewhere in the data structure):
-
-   __wseq: Waiter sequence counter
-     * LSB is index of current G2.
-     * Waiters fetch-add while having acquire the mutex associated with the
-       condvar.  Signalers load it and fetch-xor it concurrently.
-   __g1_start: Starting position of G1 (inclusive)
-     * LSB is index of current G2.
-     * Modified by signalers while having acquired the condvar-internal lock
-       and observed concurrently by waiters.
-   __g1_orig_size: Initial size of G1
-     * The two least-significant bits represent the condvar-internal lock.
-     * Only accessed while having acquired the condvar-internal lock.
-   __wrefs: Waiter reference counter.
-     * Bit 2 is true if waiters should run futex_wake when they remove the
-       last reference.  pthread_cond_destroy uses this as futex word.
-     * Bit 1 is the clock ID (0 == CLOCK_REALTIME, 1 == CLOCK_MONOTONIC).
-     * Bit 0 is true iff this is a process-shared condvar.
-     * Simple reference count used by both waiters and pthread_cond_destroy.
-     (If the format of __wrefs is changed, update nptl_lock_constants.pysym
-      and the pretty printers.)
-   For each of the two groups, we have:
-   __g_refs: Futex waiter reference count.
-     * LSB is true if waiters should run futex_wake when they remove the
-       last reference.
-     * Reference count used by waiters concurrently with signalers that have
-       acquired the condvar-internal lock.
-   __g_signals: The number of signals that can still be consumed.
-     * Used as a futex word by waiters.  Used concurrently by waiters and
-       signalers.
-     * LSB is true iff this group has been completely signaled (i.e., it is
-       closed).
-   __g_size: Waiters remaining in this group (i.e., which have not been
-     signaled yet.
-     * Accessed by signalers and waiters that cancel waiting (both do so only
-       when having acquired the condvar-internal lock.
-     * The size of G2 is always zero because it cannot be determined until
-       the group becomes G1.
-     * Although this is of unsigned type, we rely on using unsigned overflow
-       rules to make this hold effectively negative values too (in
-       particular, when waiters in G2 cancel waiting).
-
-   A PTHREAD_COND_INITIALIZER condvar has all fields set to zero, which yields
-   a condvar that has G2 starting at position 0 and a G1 that is closed.
-
-   Because waiters do not claim ownership of a group right when obtaining a
-   position in __wseq but only reference count the group when using futexes
-   to block, it can happen that a group gets closed before a waiter can
-   increment the reference count.  Therefore, waiters have to check whether
-   their group is already closed using __g1_start.  They also have to perform
-   this check when spinning when trying to grab a signal from __g_signals.
-   Note that for these checks, using relaxed MO to load __g1_start is
-   sufficient because if a waiter can see a sufficiently large value, it could
-   have also consume a signal in the waiters group.
-
-   Waiters try to grab a signal from __g_signals without holding a reference
-   count, which can lead to stealing a signal from a more recent group after
-   their own group was already closed.  They cannot always detect whether they
-   in fact did because they do not know when they stole, but they can
-   conservatively add a signal back to the group they stole from; if they
-   did so unnecessarily, all that happens is a spurious wake-up.  To make this
-   even less likely, __g1_start contains the index of the current g2 too,
-   which allows waiters to check if there aliasing on the group slots; if
-   there wasn't, they didn't steal from the current G1, which means that the
-   G1 they stole from must have been already closed and they do not need to
-   fix anything.
-
-   It is essential that the last field in pthread_cond_t is __g_signals[1]:
-   The previous condvar used a pointer-sized field in pthread_cond_t, so a
-   PTHREAD_COND_INITIALIZER from that condvar implementation might only
-   initialize 4 bytes to zero instead of the 8 bytes we need (i.e., 44 bytes
-   in total instead of the 48 we need).  __g_signals[1] is not accessed before
-   the first group switch (G2 starts at index 0), which will set its value to
-   zero after a harmless fetch-or whose return value is ignored.  This
-   effectively completes initialization.
-
-
-   Limitations:
-   * This condvar isn't designed to allow for more than
-     __PTHREAD_COND_MAX_GROUP_SIZE * (1 << 31) calls to __pthread_cond_wait.
-   * More than __PTHREAD_COND_MAX_GROUP_SIZE concurrent waiters are not
-     supported.
-   * Beyond what is allowed as errors by POSIX or documented, we can also
-     return the following errors:
-     * EPERM if MUTEX is a recursive mutex and the caller doesn't own it.
-     * EOWNERDEAD or ENOTRECOVERABLE when using robust mutexes.  Unlike
-       for other errors, this can happen when we re-acquire the mutex; this
-       isn't allowed by POSIX (which requires all errors to virtually happen
-       before we release the mutex or change the condvar state), but there's
-       nothing we can do really.
-     * When using PTHREAD_MUTEX_PP_* mutexes, we can also return all errors
-       returned by __pthread_tpp_change_priority.  We will already have
-       released the mutex in such cases, so the caller cannot expect to own
-       MUTEX.
-
-   Other notes:
-   * Instead of the normal mutex unlock / lock functions, we use
-     __pthread_mutex_unlock_usercnt(m, 0) / __pthread_mutex_cond_lock(m)
-     because those will not change the mutex-internal users count, so that it
-     can be detected when a condvar is still associated with a particular
-     mutex because there is a waiter blocked on this condvar using this mutex.
-*/
-static __always_inline int
-__pthread_cond_wait_common (pthread_cond_t *cond, pthread_mutex_t *mutex,
-    const struct timespec *abstime)
-{
-  const int maxspin = 0;
-  int err;
-  int result = 0;
-
-  LIBC_PROBE (cond_wait, 2, cond, mutex);
-
-  /* Acquire a position (SEQ) in the waiter sequence (WSEQ).  We use an
-     atomic operation because signals and broadcasts may update the group
-     switch without acquiring the mutex.  We do not need release MO here
-     because we do not need to establish any happens-before relation with
-     signalers (see __pthread_cond_signal); modification order alone
-     establishes a total order of waiters/signals.  We do need acquire MO
-     to synchronize with group reinitialization in
-     __condvar_quiesce_and_switch_g1.  */
-  uint64_t wseq = __condvar_fetch_add_wseq_acquire (cond, 2);
-  /* Find our group's index.  We always go into what was G2 when we acquired
-     our position.  */
-  unsigned int g = wseq & 1;
-  uint64_t seq = wseq >> 1;
-
-  /* Increase the waiter reference count.  Relaxed MO is sufficient because
-     we only need to synchronize when decrementing the reference count.  */
-  unsigned int flags = atomic_fetch_add_relaxed (&cond->__data.__wrefs, 8);
-  int private = __condvar_get_private (flags);
-
-  /* Now that we are registered as a waiter, we can release the mutex.
-     Waiting on the condvar must be atomic with releasing the mutex, so if
-     the mutex is used to establish a happens-before relation with any
-     signaler, the waiter must be visible to the latter; thus, we release the
-     mutex after registering as waiter.
-     If releasing the mutex fails, we just cancel our registration as a
-     waiter and confirm that we have woken up.  */
-  err = __pthread_mutex_unlock_usercnt (mutex, 0);
-  if (__glibc_unlikely (err != 0))
-    {
-      __condvar_cancel_waiting (cond, seq, g, private);
-      __condvar_confirm_wakeup (cond, private);
-      return err;
-    }
-
-  /* Now wait until a signal is available in our group or it is closed.
-     Acquire MO so that if we observe a value of zero written after group
-     switching in __condvar_quiesce_and_switch_g1, we synchronize with that
-     store and will see the prior update of __g1_start done while switching
-     groups too.  */
-  unsigned int signals = atomic_load_acquire (cond->__data.__g_signals + g);
-
-  do
-    {
-      while (1)
-	{
-	  /* Spin-wait first.
-	     Note that spinning first without checking whether a timeout
-	     passed might lead to what looks like a spurious wake-up even
-	     though we should return ETIMEDOUT (e.g., if the caller provides
-	     an absolute timeout that is clearly in the past).  However,
-	     (1) spurious wake-ups are allowed, (2) it seems unlikely that a
-	     user will (ab)use pthread_cond_wait as a check for whether a
-	     point in time is in the past, and (3) spinning first without
-	     having to compare against the current time seems to be the right
-	     choice from a performance perspective for most use cases.  */
-	  unsigned int spin = maxspin;
-	  while (signals == 0 && spin > 0)
-	    {
-	      /* Check that we are not spinning on a group that's already
-		 closed.  */
-	      if (seq < (__condvar_load_g1_start_relaxed (cond) >> 1))
-		goto done;
-
-	      /* TODO Back off.  */
-
-	      /* Reload signals.  See above for MO.  */
-	      signals = atomic_load_acquire (cond->__data.__g_signals + g);
-	      spin--;
-	    }
-
-	  /* If our group will be closed as indicated by the flag on signals,
-	     don't bother grabbing a signal.  */
-	  if (signals & 1)
-	    goto done;
-
-	  /* If there is an available signal, don't block.  */
-	  if (signals != 0)
-	    break;
-
-	  /* No signals available after spinning, so prepare to block.
-	     We first acquire a group reference and use acquire MO for that so
-	     that we synchronize with the dummy read-modify-write in
-	     __condvar_quiesce_and_switch_g1 if we read from that.  In turn,
-	     in this case this will make us see the closed flag on __g_signals
-	     that designates a concurrent attempt to reuse the group's slot.
-	     We use acquire MO for the __g_signals check to make the
-	     __g1_start check work (see spinning above).
-	     Note that the group reference acquisition will not mask the
-	     release MO when decrementing the reference count because we use
-	     an atomic read-modify-write operation and thus extend the release
-	     sequence.  */
-	  atomic_fetch_add_acquire (cond->__data.__g_refs + g, 2);
-	  if (((atomic_load_acquire (cond->__data.__g_signals + g) & 1) != 0)
-	      || (seq < (__condvar_load_g1_start_relaxed (cond) >> 1)))
-	    {
-	      /* Our group is closed.  Wake up any signalers that might be
-		 waiting.  */
-	      __condvar_dec_grefs (cond, g, private);
-	      goto done;
-	    }
-
-	  // Now block.
-	  struct _pthread_cleanup_buffer buffer;
-	  struct _condvar_cleanup_buffer cbuffer;
-	  cbuffer.wseq = wseq;
-	  cbuffer.cond = cond;
-	  cbuffer.mutex = mutex;
-	  cbuffer.private = private;
-	  __pthread_cleanup_push (&buffer, __condvar_cleanup_waiting, &cbuffer);
-
-	  if (abstime == NULL)
-	    {
-	      /* Block without a timeout.  */
-	      err = futex_wait_cancelable (
-		  cond->__data.__g_signals + g, 0, private);
-	    }
-	  else
-	    {
-	      /* Block, but with a timeout.
-		 Work around the fact that the kernel rejects negative timeout
-		 values despite them being valid.  */
-	      if (__glibc_unlikely (abstime->tv_sec < 0))
-	        err = ETIMEDOUT;
-
-	      else if ((flags & __PTHREAD_COND_CLOCK_MONOTONIC_MASK) != 0)
-		{
-		  /* CLOCK_MONOTONIC is requested.  */
-		  struct timespec rt;
-		  if (__clock_gettime (CLOCK_MONOTONIC, &rt) != 0)
-		    __libc_fatal ("clock_gettime does not support "
-				  "CLOCK_MONOTONIC");
-		  /* Convert the absolute timeout value to a relative
-		     timeout.  */
-		  rt.tv_sec = abstime->tv_sec - rt.tv_sec;
-		  rt.tv_nsec = abstime->tv_nsec - rt.tv_nsec;
-		  if (rt.tv_nsec < 0)
-		    {
-		      rt.tv_nsec += 1000000000;
-		      --rt.tv_sec;
-		    }
-		  /* Did we already time out?  */
-		  if (__glibc_unlikely (rt.tv_sec < 0))
-		    err = ETIMEDOUT;
-		  else
-		    err = futex_reltimed_wait_cancelable
-			(cond->__data.__g_signals + g, 0, &rt, private);
-		}
-	      else
-		{
-		  /* Use CLOCK_REALTIME.  */
-		  err = futex_abstimed_wait_cancelable
-		      (cond->__data.__g_signals + g, 0, abstime, private);
-		}
-	    }
-
-	  __pthread_cleanup_pop (&buffer, 0);
-
-	  if (__glibc_unlikely (err == ETIMEDOUT))
-	    {
-	      __condvar_dec_grefs (cond, g, private);
-	      /* If we timed out, we effectively cancel waiting.  Note that
-		 we have decremented __g_refs before cancellation, so that a
-		 deadlock between waiting for quiescence of our group in
-		 __condvar_quiesce_and_switch_g1 and us trying to acquire
-		 the lock during cancellation is not possible.  */
-	      __condvar_cancel_waiting (cond, seq, g, private);
-	      result = ETIMEDOUT;
-	      goto done;
-	    }
-	  else
-	    __condvar_dec_grefs (cond, g, private);
-
-	  /* Reload signals.  See above for MO.  */
-	  signals = atomic_load_acquire (cond->__data.__g_signals + g);
-	}
-
-    }
-  /* Try to grab a signal.  Use acquire MO so that we see an up-to-date value
-     of __g1_start below (see spinning above for a similar case).  In
-     particular, if we steal from a more recent group, we will also see a
-     more recent __g1_start below.  */
-  while (!atomic_compare_exchange_weak_acquire (cond->__data.__g_signals + g,
-						&signals, signals - 2));
-
-  /* We consumed a signal but we could have consumed from a more recent group
-     that aliased with ours due to being in the same group slot.  If this
-     might be the case our group must be closed as visible through
-     __g1_start.  */
-  uint64_t g1_start = __condvar_load_g1_start_relaxed (cond);
-  if (seq < (g1_start >> 1))
-    {
-      /* We potentially stole a signal from a more recent group but we do not
-	 know which group we really consumed from.
-	 We do not care about groups older than current G1 because they are
-	 closed; we could have stolen from these, but then we just add a
-	 spurious wake-up for the current groups.
-	 We will never steal a signal from current G2 that was really intended
-	 for G2 because G2 never receives signals (until it becomes G1).  We
-	 could have stolen a signal from G2 that was conservatively added by a
-	 previous waiter that also thought it stole a signal -- but given that
-	 that signal was added unnecessarily, it's not a problem if we steal
-	 it.
-	 Thus, the remaining case is that we could have stolen from the current
-	 G1, where "current" means the __g1_start value we observed.  However,
-	 if the current G1 does not have the same slot index as we do, we did
-	 not steal from it and do not need to undo that.  This is the reason
-	 for putting a bit with G2's index into__g1_start as well.  */
-      if (((g1_start & 1) ^ 1) == g)
-	{
-	  /* We have to conservatively undo our potential mistake of stealing
-	     a signal.  We can stop trying to do that when the current G1
-	     changes because other spinning waiters will notice this too and
-	     __condvar_quiesce_and_switch_g1 has checked that there are no
-	     futex waiters anymore before switching G1.
-	     Relaxed MO is fine for the __g1_start load because we need to
-	     merely be able to observe this fact and not have to observe
-	     something else as well.
-	     ??? Would it help to spin for a little while to see whether the
-	     current G1 gets closed?  This might be worthwhile if the group is
-	     small or close to being closed.  */
-	  unsigned int s = atomic_load_relaxed (cond->__data.__g_signals + g);
-	  while (__condvar_load_g1_start_relaxed (cond) == g1_start)
-	    {
-	      /* Try to add a signal.  We don't need to acquire the lock
-		 because at worst we can cause a spurious wake-up.  If the
-		 group is in the process of being closed (LSB is true), this
-		 has an effect similar to us adding a signal.  */
-	      if (((s & 1) != 0)
-		  || atomic_compare_exchange_weak_relaxed
-		       (cond->__data.__g_signals + g, &s, s + 2))
-		{
-		  /* If we added a signal, we also need to add a wake-up on
-		     the futex.  We also need to do that if we skipped adding
-		     a signal because the group is being closed because
-		     while __condvar_quiesce_and_switch_g1 could have closed
-		     the group, it might stil be waiting for futex waiters to
-		     leave (and one of those waiters might be the one we stole
-		     the signal from, which cause it to block using the
-		     futex).  */
-		  futex_wake (cond->__data.__g_signals + g, 1, private);
-		  break;
-		}
-	      /* TODO Back off.  */
-	    }
-	}
-    }
-
- done:
-
-  /* Confirm that we have been woken.  We do that before acquiring the mutex
-     to allow for execution of pthread_cond_destroy while having acquired the
-     mutex.  */
-  __condvar_confirm_wakeup (cond, private);
-
-  /* Woken up; now re-acquire the mutex.  If this doesn't fail, return RESULT,
-     which is set to ETIMEDOUT if a timeout occured, or zero otherwise.  */
-  err = __pthread_mutex_cond_lock (mutex);
-  /* XXX Abort on errors that are disallowed by POSIX?  */
-  return (err != 0) ? err : result;
-}
-
-
-/* See __pthread_cond_wait_common.  */
-int
-__pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)
-{
-  return __pthread_cond_wait_common (cond, mutex, NULL);
-}
-
-/* See __pthread_cond_wait_common.  */
-int
-__pthread_cond_timedwait (pthread_cond_t *cond, pthread_mutex_t *mutex,
-    const struct timespec *abstime)
-{
-  /* Check parameter validity.  This should also tell the compiler that
-     it can assume that abstime is not NULL.  */
-  if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-    return EINVAL;
-  return __pthread_cond_wait_common (cond, mutex, abstime);
-}
-
-versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
-		  GLIBC_2_3_2);
-versioned_symbol (libpthread, __pthread_cond_timedwait, pthread_cond_timedwait,
-		  GLIBC_2_3_2);
diff --git a/nptl/pthread_condattr_destroy.c b/nptl/pthread_condattr_destroy.c
deleted file mode 100644
index 3dffac1b23..0000000000
--- a/nptl/pthread_condattr_destroy.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-__pthread_condattr_destroy (pthread_condattr_t *attr)
-{
-  /* Nothing to be done.  */
-  return 0;
-}
-strong_alias (__pthread_condattr_destroy, pthread_condattr_destroy)
diff --git a/nptl/pthread_condattr_getclock.c b/nptl/pthread_condattr_getclock.c
deleted file mode 100644
index 96026e8ac5..0000000000
--- a/nptl/pthread_condattr_getclock.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_condattr_getclock (const pthread_condattr_t *attr, clockid_t *clock_id)
-{
-  *clock_id = (((((const struct pthread_condattr *) attr)->value) >> 1)
-	       & ((1 << COND_CLOCK_BITS) - 1));
-  return 0;
-}
diff --git a/nptl/pthread_condattr_getpshared.c b/nptl/pthread_condattr_getpshared.c
deleted file mode 100644
index 00186e0c94..0000000000
--- a/nptl/pthread_condattr_getpshared.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_condattr_getpshared (const pthread_condattr_t *attr, int *pshared)
-{
-  *pshared = (((const struct pthread_condattr *) attr)->value & 1
-	      ? PTHREAD_PROCESS_SHARED : PTHREAD_PROCESS_PRIVATE);
-
-  return 0;
-}
diff --git a/nptl/pthread_condattr_init.c b/nptl/pthread_condattr_init.c
deleted file mode 100644
index 47bcc8bfde..0000000000
--- a/nptl/pthread_condattr_init.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <string.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_condattr_init (pthread_condattr_t *attr)
-{
-  struct pthread_condattr *iattr = (struct pthread_condattr *) attr;
-  /* Default is not pshared and CLOCK_REALTIME.  */
-  iattr-> value = CLOCK_REALTIME << 1;
-
-  return 0;
-}
-strong_alias (__pthread_condattr_init, pthread_condattr_init)
diff --git a/nptl/pthread_condattr_setclock.c b/nptl/pthread_condattr_setclock.c
deleted file mode 100644
index cd94171002..0000000000
--- a/nptl/pthread_condattr_setclock.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <futex-internal.h>
-#include <time.h>
-#include <sysdep.h>
-#include "pthreadP.h"
-
-
-int
-pthread_condattr_setclock (pthread_condattr_t *attr, clockid_t clock_id)
-{
-  /* Only a few clocks are allowed.  */
-  if (clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_REALTIME)
-    /* If more clocks are allowed some day the storing of the clock ID
-       in the pthread_cond_t structure needs to be adjusted.  */
-    return EINVAL;
-
-  /* If we do not support waiting using CLOCK_MONOTONIC, return an error.  */
-  if (clock_id == CLOCK_MONOTONIC
-      && !futex_supports_exact_relative_timeouts())
-    return ENOTSUP;
-
-  /* Make sure the value fits in the bits we reserved.  */
-  assert (clock_id < (1 << COND_CLOCK_BITS));
-
-  int *valuep = &((struct pthread_condattr *) attr)->value;
-
-  *valuep = ((*valuep & ~(((1 << COND_CLOCK_BITS) - 1) << 1))
-	     | (clock_id << 1));
-
-  return 0;
-}
diff --git a/nptl/pthread_condattr_setpshared.c b/nptl/pthread_condattr_setpshared.c
deleted file mode 100644
index 132c356790..0000000000
--- a/nptl/pthread_condattr_setpshared.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-#include <futex-internal.h>
-
-int
-pthread_condattr_setpshared (pthread_condattr_t *attr, int pshared)
-{
-  int err = futex_supports_pshared (pshared);
-  if (err != 0)
-    return err;
-
-  int *valuep = &((struct pthread_condattr *) attr)->value;
-
-  *valuep = (*valuep & ~1) | (pshared != PTHREAD_PROCESS_PRIVATE);
-
-  return 0;
-}
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
deleted file mode 100644
index c7d1b8f413..0000000000
--- a/nptl/pthread_create.c
+++ /dev/null
@@ -1,933 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <ctype.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdint.h>
-#include "pthreadP.h"
-#include <hp-timing.h>
-#include <ldsodefs.h>
-#include <atomic.h>
-#include <libc-internal.h>
-#include <resolv.h>
-#include <kernel-features.h>
-#include <exit-thread.h>
-#include <default-sched.h>
-#include <futex-internal.h>
-
-#include <shlib-compat.h>
-
-#include <stap-probe.h>
-
-
-/* Nozero if debugging mode is enabled.  */
-int __pthread_debug;
-
-/* Globally enabled events.  */
-static td_thr_events_t __nptl_threads_events __attribute_used__;
-
-/* Pointer to descriptor with the last event.  */
-static struct pthread *__nptl_last_event __attribute_used__;
-
-/* Number of threads running.  */
-unsigned int __nptl_nthreads = 1;
-
-
-/* Code to allocate and deallocate a stack.  */
-#include "allocatestack.c"
-
-/* CONCURRENCY NOTES:
-
-   Understanding who is the owner of the 'struct pthread' or 'PD'
-   (refers to the value of the 'struct pthread *pd' function argument)
-   is critically important in determining exactly which operations are
-   allowed and which are not and when, particularly when it comes to the
-   implementation of pthread_create, pthread_join, pthread_detach, and
-   other functions which all operate on PD.
-
-   The owner of PD is responsible for freeing the final resources
-   associated with PD, and may examine the memory underlying PD at any
-   point in time until it frees it back to the OS or to reuse by the
-   runtime.
-
-   The thread which calls pthread_create is called the creating thread.
-   The creating thread begins as the owner of PD.
-
-   During startup the new thread may examine PD in coordination with the
-   owner thread (which may be itself).
-
-   The four cases of ownership transfer are:
-
-   (1) Ownership of PD is released to the process (all threads may use it)
-       after the new thread starts in a joinable state
-       i.e. pthread_create returns a usable pthread_t.
-
-   (2) Ownership of PD is released to the new thread starting in a detached
-       state.
-
-   (3) Ownership of PD is dynamically released to a running thread via
-       pthread_detach.
-
-   (4) Ownership of PD is acquired by the thread which calls pthread_join.
-
-   Implementation notes:
-
-   The PD->stopped_start and thread_ran variables are used to determine
-   exactly which of the four ownership states we are in and therefore
-   what actions can be taken.  For example after (2) we cannot read or
-   write from PD anymore since the thread may no longer exist and the
-   memory may be unmapped.
-
-   It is important to point out that PD->lock is being used both
-   similar to a one-shot semaphore and subsequently as a mutex.  The
-   lock is taken in the parent to force the child to wait, and then the
-   child releases the lock.  However, this semaphore-like effect is used
-   only for synchronizing the parent and child.  After startup the lock
-   is used like a mutex to create a critical section during which a
-   single owner modifies the thread parameters.
-
-   The most complicated cases happen during thread startup:
-
-   (a) If the created thread is in a detached (PTHREAD_CREATE_DETACHED),
-       or joinable (default PTHREAD_CREATE_JOINABLE) state and
-       STOPPED_START is true, then the creating thread has ownership of
-       PD until the PD->lock is released by pthread_create.  If any
-       errors occur we are in states (c), (d), or (e) below.
-
-   (b) If the created thread is in a detached state
-       (PTHREAD_CREATED_DETACHED), and STOPPED_START is false, then the
-       creating thread has ownership of PD until it invokes the OS
-       kernel's thread creation routine.  If this routine returns
-       without error, then the created thread owns PD; otherwise, see
-       (c) and (e) below.
-
-   (c) If the detached thread setup failed and THREAD_RAN is true, then
-       the creating thread releases ownership to the new thread by
-       sending a cancellation signal.  All threads set THREAD_RAN to
-       true as quickly as possible after returning from the OS kernel's
-       thread creation routine.
-
-   (d) If the joinable thread setup failed and THREAD_RAN is true, then
-       then the creating thread retains ownership of PD and must cleanup
-       state.  Ownership cannot be released to the process via the
-       return of pthread_create since a non-zero result entails PD is
-       undefined and therefore cannot be joined to free the resources.
-       We privately call pthread_join on the thread to finish handling
-       the resource shutdown (Or at least we should, see bug 19511).
-
-   (e) If the thread creation failed and THREAD_RAN is false, then the
-       creating thread retains ownership of PD and must cleanup state.
-       No waiting for the new thread is required because it never
-       started.
-
-   The nptl_db interface:
-
-   The interface with nptl_db requires that we enqueue PD into a linked
-   list and then call a function which the debugger will trap.  The PD
-   will then be dequeued and control returned to the thread.  The caller
-   at the time must have ownership of PD and such ownership remains
-   after control returns to thread. The enqueued PD is removed from the
-   linked list by the nptl_db callback td_thr_event_getmsg.  The debugger
-   must ensure that the thread does not resume execution, otherwise
-   ownership of PD may be lost and examining PD will not be possible.
-
-   Note that the GNU Debugger as of (December 10th 2015) commit
-   c2c2a31fdb228d41ce3db62b268efea04bd39c18 no longer uses
-   td_thr_event_getmsg and several other related nptl_db interfaces. The
-   principal reason for this is that nptl_db does not support non-stop
-   mode where other threads can run concurrently and modify runtime
-   structures currently in use by the debugger and the nptl_db
-   interface.
-
-   Axioms:
-
-   * The create_thread function can never set stopped_start to false.
-   * The created thread can read stopped_start but never write to it.
-   * The variable thread_ran is set some time after the OS thread
-     creation routine returns, how much time after the thread is created
-     is unspecified, but it should be as quickly as possible.
-
-*/
-
-/* CREATE THREAD NOTES:
-
-   createthread.c defines the create_thread function, and two macros:
-   START_THREAD_DEFN and START_THREAD_SELF (see below).
-
-   create_thread must initialize PD->stopped_start.  It should be true
-   if the STOPPED_START parameter is true, or if create_thread needs the
-   new thread to synchronize at startup for some other implementation
-   reason.  If STOPPED_START will be true, then create_thread is obliged
-   to lock PD->lock before starting the thread.  Then pthread_create
-   unlocks PD->lock which synchronizes-with START_THREAD_DEFN in the
-   child thread which does an acquire/release of PD->lock as the last
-   action before calling the user entry point.  The goal of all of this
-   is to ensure that the required initial thread attributes are applied
-   (by the creating thread) before the new thread runs user code.  Note
-   that the the functions pthread_getschedparam, pthread_setschedparam,
-   pthread_setschedprio, __pthread_tpp_change_priority, and
-   __pthread_current_priority reuse the same lock, PD->lock, for a
-   similar purpose e.g. synchronizing the setting of similar thread
-   attributes.  These functions are never called before the thread is
-   created, so don't participate in startup syncronization, but given
-   that the lock is present already and in the unlocked state, reusing
-   it saves space.
-
-   The return value is zero for success or an errno code for failure.
-   If the return value is ENOMEM, that will be translated to EAGAIN,
-   so create_thread need not do that.  On failure, *THREAD_RAN should
-   be set to true iff the thread actually started up and then got
-   canceled before calling user code (*PD->start_routine).  */
-static int create_thread (struct pthread *pd, const struct pthread_attr *attr,
-			  bool *stopped_start, STACK_VARIABLES_PARMS,
-			  bool *thread_ran);
-
-#include <createthread.c>
-
-
-struct pthread *
-internal_function
-__find_in_stack_list (struct pthread *pd)
-{
-  list_t *entry;
-  struct pthread *result = NULL;
-
-  lll_lock (stack_cache_lock, LLL_PRIVATE);
-
-  list_for_each (entry, &stack_used)
-    {
-      struct pthread *curp;
-
-      curp = list_entry (entry, struct pthread, list);
-      if (curp == pd)
-	{
-	  result = curp;
-	  break;
-	}
-    }
-
-  if (result == NULL)
-    list_for_each (entry, &__stack_user)
-      {
-	struct pthread *curp;
-
-	curp = list_entry (entry, struct pthread, list);
-	if (curp == pd)
-	  {
-	    result = curp;
-	    break;
-	  }
-      }
-
-  lll_unlock (stack_cache_lock, LLL_PRIVATE);
-
-  return result;
-}
-
-
-/* Deallocate POSIX thread-local-storage.  */
-void
-attribute_hidden
-__nptl_deallocate_tsd (void)
-{
-  struct pthread *self = THREAD_SELF;
-
-  /* Maybe no data was ever allocated.  This happens often so we have
-     a flag for this.  */
-  if (THREAD_GETMEM (self, specific_used))
-    {
-      size_t round;
-      size_t cnt;
-
-      round = 0;
-      do
-	{
-	  size_t idx;
-
-	  /* So far no new nonzero data entry.  */
-	  THREAD_SETMEM (self, specific_used, false);
-
-	  for (cnt = idx = 0; cnt < PTHREAD_KEY_1STLEVEL_SIZE; ++cnt)
-	    {
-	      struct pthread_key_data *level2;
-
-	      level2 = THREAD_GETMEM_NC (self, specific, cnt);
-
-	      if (level2 != NULL)
-		{
-		  size_t inner;
-
-		  for (inner = 0; inner < PTHREAD_KEY_2NDLEVEL_SIZE;
-		       ++inner, ++idx)
-		    {
-		      void *data = level2[inner].data;
-
-		      if (data != NULL)
-			{
-			  /* Always clear the data.  */
-			  level2[inner].data = NULL;
-
-			  /* Make sure the data corresponds to a valid
-			     key.  This test fails if the key was
-			     deallocated and also if it was
-			     re-allocated.  It is the user's
-			     responsibility to free the memory in this
-			     case.  */
-			  if (level2[inner].seq
-			      == __pthread_keys[idx].seq
-			      /* It is not necessary to register a destructor
-				 function.  */
-			      && __pthread_keys[idx].destr != NULL)
-			    /* Call the user-provided destructor.  */
-			    __pthread_keys[idx].destr (data);
-			}
-		    }
-		}
-	      else
-		idx += PTHREAD_KEY_1STLEVEL_SIZE;
-	    }
-
-	  if (THREAD_GETMEM (self, specific_used) == 0)
-	    /* No data has been modified.  */
-	    goto just_free;
-	}
-      /* We only repeat the process a fixed number of times.  */
-      while (__builtin_expect (++round < PTHREAD_DESTRUCTOR_ITERATIONS, 0));
-
-      /* Just clear the memory of the first block for reuse.  */
-      memset (&THREAD_SELF->specific_1stblock, '\0',
-	      sizeof (self->specific_1stblock));
-
-    just_free:
-      /* Free the memory for the other blocks.  */
-      for (cnt = 1; cnt < PTHREAD_KEY_1STLEVEL_SIZE; ++cnt)
-	{
-	  struct pthread_key_data *level2;
-
-	  level2 = THREAD_GETMEM_NC (self, specific, cnt);
-	  if (level2 != NULL)
-	    {
-	      /* The first block is allocated as part of the thread
-		 descriptor.  */
-	      free (level2);
-	      THREAD_SETMEM_NC (self, specific, cnt, NULL);
-	    }
-	}
-
-      THREAD_SETMEM (self, specific_used, false);
-    }
-}
-
-
-/* Deallocate a thread's stack after optionally making sure the thread
-   descriptor is still valid.  */
-void
-internal_function
-__free_tcb (struct pthread *pd)
-{
-  /* The thread is exiting now.  */
-  if (__builtin_expect (atomic_bit_test_set (&pd->cancelhandling,
-					     TERMINATED_BIT) == 0, 1))
-    {
-      /* Remove the descriptor from the list.  */
-      if (DEBUGGING_P && __find_in_stack_list (pd) == NULL)
-	/* Something is really wrong.  The descriptor for a still
-	   running thread is gone.  */
-	abort ();
-
-      /* Free TPP data.  */
-      if (__glibc_unlikely (pd->tpp != NULL))
-	{
-	  struct priority_protection_data *tpp = pd->tpp;
-
-	  pd->tpp = NULL;
-	  free (tpp);
-	}
-
-      /* Queue the stack memory block for reuse and exit the process.  The
-	 kernel will signal via writing to the address returned by
-	 QUEUE-STACK when the stack is available.  */
-      __deallocate_stack (pd);
-    }
-}
-
-
-/* Local function to start thread and handle cleanup.
-   createthread.c defines the macro START_THREAD_DEFN to the
-   declaration that its create_thread function will refer to, and
-   START_THREAD_SELF to the expression to optimally deliver the new
-   thread's THREAD_SELF value.  */
-START_THREAD_DEFN
-{
-  struct pthread *pd = START_THREAD_SELF;
-
-#if HP_TIMING_AVAIL
-  /* Remember the time when the thread was started.  */
-  hp_timing_t now;
-  HP_TIMING_NOW (now);
-  THREAD_SETMEM (pd, cpuclock_offset, now);
-#endif
-
-  /* Initialize resolver state pointer.  */
-  __resp = &pd->res;
-
-  /* Initialize pointers to locale data.  */
-  __ctype_init ();
-
-  /* Allow setxid from now onwards.  */
-  if (__glibc_unlikely (atomic_exchange_acq (&pd->setxid_futex, 0) == -2))
-    futex_wake (&pd->setxid_futex, 1, FUTEX_PRIVATE);
-
-#ifdef __NR_set_robust_list
-# ifndef __ASSUME_SET_ROBUST_LIST
-  if (__set_robust_list_avail >= 0)
-# endif
-    {
-      INTERNAL_SYSCALL_DECL (err);
-      /* This call should never fail because the initial call in init.c
-	 succeeded.  */
-      INTERNAL_SYSCALL (set_robust_list, err, 2, &pd->robust_head,
-			sizeof (struct robust_list_head));
-    }
-#endif
-
-#ifdef SIGCANCEL
-  /* If the parent was running cancellation handlers while creating
-     the thread the new thread inherited the signal mask.  Reset the
-     cancellation signal mask.  */
-  if (__glibc_unlikely (pd->parent_cancelhandling & CANCELING_BITMASK))
-    {
-      INTERNAL_SYSCALL_DECL (err);
-      sigset_t mask;
-      __sigemptyset (&mask);
-      __sigaddset (&mask, SIGCANCEL);
-      (void) INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_UNBLOCK, &mask,
-			       NULL, _NSIG / 8);
-    }
-#endif
-
-  /* This is where the try/finally block should be created.  For
-     compilers without that support we do use setjmp.  */
-  struct pthread_unwind_buf unwind_buf;
-
-  /* No previous handlers.  */
-  unwind_buf.priv.data.prev = NULL;
-  unwind_buf.priv.data.cleanup = NULL;
-
-  int not_first_call;
-  not_first_call = setjmp ((struct __jmp_buf_tag *) unwind_buf.cancel_jmp_buf);
-  if (__glibc_likely (! not_first_call))
-    {
-      /* Store the new cleanup handler info.  */
-      THREAD_SETMEM (pd, cleanup_jmp_buf, &unwind_buf);
-
-      /* We are either in (a) or (b), and in either case we either own
-         PD already (2) or are about to own PD (1), and so our only
-	 restriction would be that we can't free PD until we know we
-	 have ownership (see CONCURRENCY NOTES above).  */
-      if (__glibc_unlikely (pd->stopped_start))
-	{
-	  int oldtype = CANCEL_ASYNC ();
-
-	  /* Get the lock the parent locked to force synchronization.  */
-	  lll_lock (pd->lock, LLL_PRIVATE);
-
-	  /* We have ownership of PD now.  */
-
-	  /* And give it up right away.  */
-	  lll_unlock (pd->lock, LLL_PRIVATE);
-
-	  CANCEL_RESET (oldtype);
-	}
-
-      LIBC_PROBE (pthread_start, 3, (pthread_t) pd, pd->start_routine, pd->arg);
-
-      /* Run the code the user provided.  */
-      THREAD_SETMEM (pd, result, pd->start_routine (pd->arg));
-    }
-
-  /* Call destructors for the thread_local TLS variables.  */
-#ifndef SHARED
-  if (&__call_tls_dtors != NULL)
-#endif
-    __call_tls_dtors ();
-
-  /* Run the destructor for the thread-local data.  */
-  __nptl_deallocate_tsd ();
-
-  /* Clean up any state libc stored in thread-local variables.  */
-  __libc_thread_freeres ();
-
-  /* If this is the last thread we terminate the process now.  We
-     do not notify the debugger, it might just irritate it if there
-     is no thread left.  */
-  if (__glibc_unlikely (atomic_decrement_and_test (&__nptl_nthreads)))
-    /* This was the last thread.  */
-    exit (0);
-
-  /* Report the death of the thread if this is wanted.  */
-  if (__glibc_unlikely (pd->report_events))
-    {
-      /* See whether TD_DEATH is in any of the mask.  */
-      const int idx = __td_eventword (TD_DEATH);
-      const uint32_t mask = __td_eventmask (TD_DEATH);
-
-      if ((mask & (__nptl_threads_events.event_bits[idx]
-		   | pd->eventbuf.eventmask.event_bits[idx])) != 0)
-	{
-	  /* Yep, we have to signal the death.  Add the descriptor to
-	     the list but only if it is not already on it.  */
-	  if (pd->nextevent == NULL)
-	    {
-	      pd->eventbuf.eventnum = TD_DEATH;
-	      pd->eventbuf.eventdata = pd;
-
-	      do
-		pd->nextevent = __nptl_last_event;
-	      while (atomic_compare_and_exchange_bool_acq (&__nptl_last_event,
-							   pd, pd->nextevent));
-	    }
-
-	  /* Now call the function which signals the event.  See
-	     CONCURRENCY NOTES for the nptl_db interface comments.  */
-	  __nptl_death_event ();
-	}
-    }
-
-  /* The thread is exiting now.  Don't set this bit until after we've hit
-     the event-reporting breakpoint, so that td_thr_get_info on us while at
-     the breakpoint reports TD_THR_RUN state rather than TD_THR_ZOMBIE.  */
-  atomic_bit_set (&pd->cancelhandling, EXITING_BIT);
-
-#ifndef __ASSUME_SET_ROBUST_LIST
-  /* If this thread has any robust mutexes locked, handle them now.  */
-# ifdef __PTHREAD_MUTEX_HAVE_PREV
-  void *robust = pd->robust_head.list;
-# else
-  __pthread_slist_t *robust = pd->robust_list.__next;
-# endif
-  /* We let the kernel do the notification if it is able to do so.
-     If we have to do it here there for sure are no PI mutexes involved
-     since the kernel support for them is even more recent.  */
-  if (__set_robust_list_avail < 0
-      && __builtin_expect (robust != (void *) &pd->robust_head, 0))
-    {
-      do
-	{
-	  struct __pthread_mutex_s *this = (struct __pthread_mutex_s *)
-	    ((char *) robust - offsetof (struct __pthread_mutex_s,
-					 __list.__next));
-	  robust = *((void **) robust);
-
-# ifdef __PTHREAD_MUTEX_HAVE_PREV
-	  this->__list.__prev = NULL;
-# endif
-	  this->__list.__next = NULL;
-
-	  atomic_or (&this->__lock, FUTEX_OWNER_DIED);
-	  futex_wake ((unsigned int *) &this->__lock, 1,
-		      /* XYZ */ FUTEX_SHARED);
-	}
-      while (robust != (void *) &pd->robust_head);
-    }
-#endif
-
-  /* Mark the memory of the stack as usable to the kernel.  We free
-     everything except for the space used for the TCB itself.  */
-  size_t pagesize_m1 = __getpagesize () - 1;
-#ifdef _STACK_GROWS_DOWN
-  char *sp = CURRENT_STACK_FRAME;
-  size_t freesize = (sp - (char *) pd->stackblock) & ~pagesize_m1;
-  assert (freesize < pd->stackblock_size);
-  if (freesize > PTHREAD_STACK_MIN)
-    __madvise (pd->stackblock, freesize - PTHREAD_STACK_MIN, MADV_DONTNEED);
-#else
-  /* Page aligned start of memory to free (higher than or equal
-     to current sp plus the minimum stack size).  */
-  void *freeblock = (void*)((size_t)(CURRENT_STACK_FRAME
-				     + PTHREAD_STACK_MIN
-				     + pagesize_m1)
-				    & ~pagesize_m1);
-  char *free_end = (char *) (((uintptr_t) pd - pd->guardsize) & ~pagesize_m1);
-  /* Is there any space to free?  */
-  if (free_end > (char *)freeblock)
-    {
-      size_t freesize = (size_t)(free_end - (char *)freeblock);
-      assert (freesize < pd->stackblock_size);
-      __madvise (freeblock, freesize, MADV_DONTNEED);
-    }
-#endif
-
-  /* If the thread is detached free the TCB.  */
-  if (IS_DETACHED (pd))
-    /* Free the TCB.  */
-    __free_tcb (pd);
-  else if (__glibc_unlikely (pd->cancelhandling & SETXID_BITMASK))
-    {
-      /* Some other thread might call any of the setXid functions and expect
-	 us to reply.  In this case wait until we did that.  */
-      do
-	/* XXX This differs from the typical futex_wait_simple pattern in that
-	   the futex_wait condition (setxid_futex) is different from the
-	   condition used in the surrounding loop (cancelhandling).  We need
-	   to check and document why this is correct.  */
-	futex_wait_simple (&pd->setxid_futex, 0, FUTEX_PRIVATE);
-      while (pd->cancelhandling & SETXID_BITMASK);
-
-      /* Reset the value so that the stack can be reused.  */
-      pd->setxid_futex = 0;
-    }
-
-  /* We cannot call '_exit' here.  '_exit' will terminate the process.
-
-     The 'exit' implementation in the kernel will signal when the
-     process is really dead since 'clone' got passed the CLONE_CHILD_CLEARTID
-     flag.  The 'tid' field in the TCB will be set to zero.
-
-     The exit code is zero since in case all threads exit by calling
-     'pthread_exit' the exit status must be 0 (zero).  */
-  __exit_thread ();
-
-  /* NOTREACHED */
-}
-
-
-/* Return true iff obliged to report TD_CREATE events.  */
-static bool
-report_thread_creation (struct pthread *pd)
-{
-  if (__glibc_unlikely (THREAD_GETMEM (THREAD_SELF, report_events)))
-    {
-      /* The parent thread is supposed to report events.
-	 Check whether the TD_CREATE event is needed, too.  */
-      const size_t idx = __td_eventword (TD_CREATE);
-      const uint32_t mask = __td_eventmask (TD_CREATE);
-
-      return ((mask & (__nptl_threads_events.event_bits[idx]
-		       | pd->eventbuf.eventmask.event_bits[idx])) != 0);
-    }
-  return false;
-}
-
-
-int
-__pthread_create_2_1 (pthread_t *newthread, const pthread_attr_t *attr,
-		      void *(*start_routine) (void *), void *arg)
-{
-  STACK_VARIABLES;
-
-  const struct pthread_attr *iattr = (struct pthread_attr *) attr;
-  struct pthread_attr default_attr;
-  bool free_cpuset = false;
-  if (iattr == NULL)
-    {
-      lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
-      default_attr = __default_pthread_attr;
-      size_t cpusetsize = default_attr.cpusetsize;
-      if (cpusetsize > 0)
-	{
-	  cpu_set_t *cpuset;
-	  if (__glibc_likely (__libc_use_alloca (cpusetsize)))
-	    cpuset = __alloca (cpusetsize);
-	  else
-	    {
-	      cpuset = malloc (cpusetsize);
-	      if (cpuset == NULL)
-		{
-		  lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
-		  return ENOMEM;
-		}
-	      free_cpuset = true;
-	    }
-	  memcpy (cpuset, default_attr.cpuset, cpusetsize);
-	  default_attr.cpuset = cpuset;
-	}
-      lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
-      iattr = &default_attr;
-    }
-
-  struct pthread *pd = NULL;
-  int err = ALLOCATE_STACK (iattr, &pd);
-  int retval = 0;
-
-  if (__glibc_unlikely (err != 0))
-    /* Something went wrong.  Maybe a parameter of the attributes is
-       invalid or we could not allocate memory.  Note we have to
-       translate error codes.  */
-    {
-      retval = err == ENOMEM ? EAGAIN : err;
-      goto out;
-    }
-
-
-  /* Initialize the TCB.  All initializations with zero should be
-     performed in 'get_cached_stack'.  This way we avoid doing this if
-     the stack freshly allocated with 'mmap'.  */
-
-#if TLS_TCB_AT_TP
-  /* Reference to the TCB itself.  */
-  pd->header.self = pd;
-
-  /* Self-reference for TLS.  */
-  pd->header.tcb = pd;
-#endif
-
-  /* Store the address of the start routine and the parameter.  Since
-     we do not start the function directly the stillborn thread will
-     get the information from its thread descriptor.  */
-  pd->start_routine = start_routine;
-  pd->arg = arg;
-
-  /* Copy the thread attribute flags.  */
-  struct pthread *self = THREAD_SELF;
-  pd->flags = ((iattr->flags & ~(ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET))
-	       | (self->flags & (ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET)));
-
-  /* Initialize the field for the ID of the thread which is waiting
-     for us.  This is a self-reference in case the thread is created
-     detached.  */
-  pd->joinid = iattr->flags & ATTR_FLAG_DETACHSTATE ? pd : NULL;
-
-  /* The debug events are inherited from the parent.  */
-  pd->eventbuf = self->eventbuf;
-
-
-  /* Copy the parent's scheduling parameters.  The flags will say what
-     is valid and what is not.  */
-  pd->schedpolicy = self->schedpolicy;
-  pd->schedparam = self->schedparam;
-
-  /* Copy the stack guard canary.  */
-#ifdef THREAD_COPY_STACK_GUARD
-  THREAD_COPY_STACK_GUARD (pd);
-#endif
-
-  /* Copy the pointer guard value.  */
-#ifdef THREAD_COPY_POINTER_GUARD
-  THREAD_COPY_POINTER_GUARD (pd);
-#endif
-
-  /* Verify the sysinfo bits were copied in allocate_stack if needed.  */
-#ifdef NEED_DL_SYSINFO
-  CHECK_THREAD_SYSINFO (pd);
-#endif
-
-  /* Inform start_thread (above) about cancellation state that might
-     translate into inherited signal state.  */
-  pd->parent_cancelhandling = THREAD_GETMEM (THREAD_SELF, cancelhandling);
-
-  /* Determine scheduling parameters for the thread.  */
-  if (__builtin_expect ((iattr->flags & ATTR_FLAG_NOTINHERITSCHED) != 0, 0)
-      && (iattr->flags & (ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET)) != 0)
-    {
-      /* Use the scheduling parameters the user provided.  */
-      if (iattr->flags & ATTR_FLAG_POLICY_SET)
-        {
-          pd->schedpolicy = iattr->schedpolicy;
-          pd->flags |= ATTR_FLAG_POLICY_SET;
-        }
-      if (iattr->flags & ATTR_FLAG_SCHED_SET)
-        {
-          /* The values were validated in pthread_attr_setschedparam.  */
-          pd->schedparam = iattr->schedparam;
-          pd->flags |= ATTR_FLAG_SCHED_SET;
-        }
-
-      if ((pd->flags & (ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET))
-          != (ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET))
-        collect_default_sched (pd);
-    }
-
-  /* Pass the descriptor to the caller.  */
-  *newthread = (pthread_t) pd;
-
-  LIBC_PROBE (pthread_create, 4, newthread, attr, start_routine, arg);
-
-  /* One more thread.  We cannot have the thread do this itself, since it
-     might exist but not have been scheduled yet by the time we've returned
-     and need to check the value to behave correctly.  We must do it before
-     creating the thread, in case it does get scheduled first and then
-     might mistakenly think it was the only thread.  In the failure case,
-     we momentarily store a false value; this doesn't matter because there
-     is no kosher thing a signal handler interrupting us right here can do
-     that cares whether the thread count is correct.  */
-  atomic_increment (&__nptl_nthreads);
-
-  /* Our local value of stopped_start and thread_ran can be accessed at
-     any time. The PD->stopped_start may only be accessed if we have
-     ownership of PD (see CONCURRENCY NOTES above).  */
-  bool stopped_start = false; bool thread_ran = false;
-
-  /* Start the thread.  */
-  if (__glibc_unlikely (report_thread_creation (pd)))
-    {
-      stopped_start = true;
-
-      /* We always create the thread stopped at startup so we can
-	 notify the debugger.  */
-      retval = create_thread (pd, iattr, &stopped_start,
-			      STACK_VARIABLES_ARGS, &thread_ran);
-      if (retval == 0)
-	{
-	  /* We retain ownership of PD until (a) (see CONCURRENCY NOTES
-	     above).  */
-
-	  /* Assert stopped_start is true in both our local copy and the
-	     PD copy.  */
-	  assert (stopped_start);
-	  assert (pd->stopped_start);
-
-	  /* Now fill in the information about the new thread in
-	     the newly created thread's data structure.  We cannot let
-	     the new thread do this since we don't know whether it was
-	     already scheduled when we send the event.  */
-	  pd->eventbuf.eventnum = TD_CREATE;
-	  pd->eventbuf.eventdata = pd;
-
-	  /* Enqueue the descriptor.  */
-	  do
-	    pd->nextevent = __nptl_last_event;
-	  while (atomic_compare_and_exchange_bool_acq (&__nptl_last_event,
-						       pd, pd->nextevent)
-		 != 0);
-
-	  /* Now call the function which signals the event.  See
-	     CONCURRENCY NOTES for the nptl_db interface comments.  */
-	  __nptl_create_event ();
-	}
-    }
-  else
-    retval = create_thread (pd, iattr, &stopped_start,
-			    STACK_VARIABLES_ARGS, &thread_ran);
-
-  if (__glibc_unlikely (retval != 0))
-    {
-      if (thread_ran)
-	/* State (c) or (d) and we may not have PD ownership (see
-	   CONCURRENCY NOTES above).  We can assert that STOPPED_START
-	   must have been true because thread creation didn't fail, but
-	   thread attribute setting did.  */
-	/* See bug 19511 which explains why doing nothing here is a
-	   resource leak for a joinable thread.  */
-	assert (stopped_start);
-      else
-	{
-	  /* State (e) and we have ownership of PD (see CONCURRENCY
-	     NOTES above).  */
-
-	  /* Oops, we lied for a second.  */
-	  atomic_decrement (&__nptl_nthreads);
-
-	  /* Perhaps a thread wants to change the IDs and is waiting for this
-	     stillborn thread.  */
-	  if (__glibc_unlikely (atomic_exchange_acq (&pd->setxid_futex, 0)
-				== -2))
-	    futex_wake (&pd->setxid_futex, 1, FUTEX_PRIVATE);
-
-	  /* Free the resources.  */
-	  __deallocate_stack (pd);
-	}
-
-      /* We have to translate error codes.  */
-      if (retval == ENOMEM)
-	retval = EAGAIN;
-    }
-  else
-    {
-      /* We don't know if we have PD ownership.  Once we check the local
-         stopped_start we'll know if we're in state (a) or (b) (see
-	 CONCURRENCY NOTES above).  */
-      if (stopped_start)
-	/* State (a), we own PD. The thread blocked on this lock either
-	   because we're doing TD_CREATE event reporting, or for some
-	   other reason that create_thread chose.  Now let it run
-	   free.  */
-	lll_unlock (pd->lock, LLL_PRIVATE);
-
-      /* We now have for sure more than one thread.  The main thread might
-	 not yet have the flag set.  No need to set the global variable
-	 again if this is what we use.  */
-      THREAD_SETMEM (THREAD_SELF, header.multiple_threads, 1);
-    }
-
- out:
-  if (__glibc_unlikely (free_cpuset))
-    free (default_attr.cpuset);
-
-  return retval;
-}
-versioned_symbol (libpthread, __pthread_create_2_1, pthread_create, GLIBC_2_1);
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-__pthread_create_2_0 (pthread_t *newthread, const pthread_attr_t *attr,
-		      void *(*start_routine) (void *), void *arg)
-{
-  /* The ATTR attribute is not really of type `pthread_attr_t *'.  It has
-     the old size and access to the new members might crash the program.
-     We convert the struct now.  */
-  struct pthread_attr new_attr;
-
-  if (attr != NULL)
-    {
-      struct pthread_attr *iattr = (struct pthread_attr *) attr;
-      size_t ps = __getpagesize ();
-
-      /* Copy values from the user-provided attributes.  */
-      new_attr.schedparam = iattr->schedparam;
-      new_attr.schedpolicy = iattr->schedpolicy;
-      new_attr.flags = iattr->flags;
-
-      /* Fill in default values for the fields not present in the old
-	 implementation.  */
-      new_attr.guardsize = ps;
-      new_attr.stackaddr = NULL;
-      new_attr.stacksize = 0;
-      new_attr.cpuset = NULL;
-
-      /* We will pass this value on to the real implementation.  */
-      attr = (pthread_attr_t *) &new_attr;
-    }
-
-  return __pthread_create_2_1 (newthread, attr, start_routine, arg);
-}
-compat_symbol (libpthread, __pthread_create_2_0, pthread_create,
-	       GLIBC_2_0);
-#endif
-
-/* Information for libthread_db.  */
-
-#include "../nptl_db/db_info.c"
-
-/* If pthread_create is present, libgcc_eh.a and libsupc++.a expects some other POSIX thread
-   functions to be present as well.  */
-PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_lock)
-PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_trylock)
-PTHREAD_STATIC_FN_REQUIRE (pthread_mutex_unlock)
-
-PTHREAD_STATIC_FN_REQUIRE (pthread_once)
-PTHREAD_STATIC_FN_REQUIRE (pthread_cancel)
-
-PTHREAD_STATIC_FN_REQUIRE (pthread_key_create)
-PTHREAD_STATIC_FN_REQUIRE (pthread_key_delete)
-PTHREAD_STATIC_FN_REQUIRE (pthread_setspecific)
-PTHREAD_STATIC_FN_REQUIRE (pthread_getspecific)
diff --git a/nptl/pthread_detach.c b/nptl/pthread_detach.c
deleted file mode 100644
index 8a2e943523..0000000000
--- a/nptl/pthread_detach.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <atomic.h>
-
-
-int
-pthread_detach (pthread_t th)
-{
-  struct pthread *pd = (struct pthread *) th;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_NOT_TERMINATED_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  int result = 0;
-
-  /* Mark the thread as detached.  */
-  if (atomic_compare_and_exchange_bool_acq (&pd->joinid, pd, NULL))
-    {
-      /* There are two possibilities here.  First, the thread might
-	 already be detached.  In this case we return EINVAL.
-	 Otherwise there might already be a waiter.  The standard does
-	 not mention what happens in this case.  */
-      if (IS_DETACHED (pd))
-	result = EINVAL;
-    }
-  else
-    /* Check whether the thread terminated meanwhile.  In this case we
-       will just free the TCB.  */
-    if ((pd->cancelhandling & EXITING_BITMASK) != 0)
-      /* Note that the code in __free_tcb makes sure each thread
-	 control block is freed only once.  */
-      __free_tcb (pd);
-
-  return result;
-}
diff --git a/nptl/pthread_equal.c b/nptl/pthread_equal.c
deleted file mode 100644
index e304add047..0000000000
--- a/nptl/pthread_equal.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-__pthread_equal (pthread_t thread1, pthread_t thread2)
-{
-  return thread1 == thread2;
-}
-strong_alias (__pthread_equal, pthread_equal)
diff --git a/nptl/pthread_exit.c b/nptl/pthread_exit.c
deleted file mode 100644
index dffab0961a..0000000000
--- a/nptl/pthread_exit.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdlib.h>
-#include "pthreadP.h"
-
-
-void
-__pthread_exit (void *value)
-{
-  THREAD_SETMEM (THREAD_SELF, result, value);
-
-  __do_cancel ();
-}
-strong_alias (__pthread_exit, pthread_exit)
-
-/* After a thread terminates, __libc_start_main decrements
-   __nptl_nthreads defined in pthread_create.c.  */
-PTHREAD_STATIC_FN_REQUIRE (pthread_create)
diff --git a/nptl/pthread_getaffinity.c b/nptl/pthread_getaffinity.c
deleted file mode 100644
index fca4bbc563..0000000000
--- a/nptl/pthread_getaffinity.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Get the processor affinity of a thread.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-int
-__pthread_getaffinity_np (pthread_t th, size_t cpusetsize, cpu_set_t *cpuset)
-{
-  const struct pthread *pd = (const struct pthread *) th;
-
-  if (INVALID_TD_P (pd))
-    return ESRCH;
-
-  return ENOSYS;
-}
-weak_alias (__pthread_getaffinity_np, pthread_getaffinity_np)
-stub_warning (pthread_getaffinity_np)
diff --git a/nptl/pthread_getattr_default_np.c b/nptl/pthread_getattr_default_np.c
deleted file mode 100644
index 771c06b386..0000000000
--- a/nptl/pthread_getattr_default_np.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Get the default attributes used by pthread_create in the process.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <pthreadP.h>
-#include <assert.h>
-
-int
-pthread_getattr_default_np (pthread_attr_t *out)
-{
-  struct pthread_attr *real_out;
-
-  assert (sizeof (*out) >= sizeof (struct pthread_attr));
-  real_out = (struct pthread_attr *) out;
-
-  lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
-  *real_out = __default_pthread_attr;
-  lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
-
-  return 0;
-}
diff --git a/nptl/pthread_getattr_np.c b/nptl/pthread_getattr_np.c
deleted file mode 100644
index 06093b3d92..0000000000
--- a/nptl/pthread_getattr_np.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdio_ext.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/resource.h>
-#include "pthreadP.h"
-#include <lowlevellock.h>
-#include <ldsodefs.h>
-
-
-int
-pthread_getattr_np (pthread_t thread_id, pthread_attr_t *attr)
-{
-  struct pthread *thread = (struct pthread *) thread_id;
-  struct pthread_attr *iattr = (struct pthread_attr *) attr;
-  int ret = 0;
-
-  lll_lock (thread->lock, LLL_PRIVATE);
-
-  /* The thread library is responsible for keeping the values in the
-     thread desriptor up-to-date in case the user changes them.  */
-  memcpy (&iattr->schedparam, &thread->schedparam,
-	  sizeof (struct sched_param));
-  iattr->schedpolicy = thread->schedpolicy;
-
-  /* Clear the flags work.  */
-  iattr->flags = thread->flags;
-
-  /* The thread might be detached by now.  */
-  if (IS_DETACHED (thread))
-    iattr->flags |= ATTR_FLAG_DETACHSTATE;
-
-  /* This is the guardsize after adjusting it.  */
-  iattr->guardsize = thread->reported_guardsize;
-
-  /* The sizes are subject to alignment.  */
-  if (__glibc_likely (thread->stackblock != NULL))
-    {
-      iattr->stacksize = thread->stackblock_size;
-#if _STACK_GROWS_DOWN
-      iattr->stackaddr = (char *) thread->stackblock + iattr->stacksize;
-#else
-      iattr->stackaddr = (char *) thread->stackblock;
-#endif
-    }
-  else
-    {
-      /* No stack information available.  This must be for the initial
-	 thread.  Get the info in some magical way.  */
-
-      /* Stack size limit.  */
-      struct rlimit rl;
-
-      /* The safest way to get the top of the stack is to read
-	 /proc/self/maps and locate the line into which
-	 __libc_stack_end falls.  */
-      FILE *fp = fopen ("/proc/self/maps", "rce");
-      if (fp == NULL)
-	ret = errno;
-      /* We need the limit of the stack in any case.  */
-      else
-	{
-	  if (getrlimit (RLIMIT_STACK, &rl) != 0)
-	    ret = errno;
-	  else
-	    {
-	      /* We consider the main process stack to have ended with
-	         the page containing __libc_stack_end.  There is stuff below
-		 it in the stack too, like the program arguments, environment
-		 variables and auxv info, but we ignore those pages when
-		 returning size so that the output is consistent when the
-		 stack is marked executable due to a loaded DSO requiring
-		 it.  */
-	      void *stack_end = (void *) ((uintptr_t) __libc_stack_end
-					  & -(uintptr_t) GLRO(dl_pagesize));
-#if _STACK_GROWS_DOWN
-	      stack_end += GLRO(dl_pagesize);
-#endif
-	      /* We need no locking.  */
-	      __fsetlocking (fp, FSETLOCKING_BYCALLER);
-
-	      /* Until we found an entry (which should always be the case)
-		 mark the result as a failure.  */
-	      ret = ENOENT;
-
-	      char *line = NULL;
-	      size_t linelen = 0;
-#if _STACK_GROWS_DOWN
-	      uintptr_t last_to = 0;
-#endif
-
-	      while (! feof_unlocked (fp))
-		{
-		  if (__getdelim (&line, &linelen, '\n', fp) <= 0)
-		    break;
-
-		  uintptr_t from;
-		  uintptr_t to;
-		  if (sscanf (line, "%" SCNxPTR "-%" SCNxPTR, &from, &to) != 2)
-		    continue;
-		  if (from <= (uintptr_t) __libc_stack_end
-		      && (uintptr_t) __libc_stack_end < to)
-		    {
-		      /* Found the entry.  Now we have the info we need.  */
-		      iattr->stackaddr = stack_end;
-		      iattr->stacksize =
-		        rl.rlim_cur - (size_t) (to - (uintptr_t) stack_end);
-
-		      /* Cut it down to align it to page size since otherwise we
-		         risk going beyond rlimit when the kernel rounds up the
-		         stack extension request.  */
-		      iattr->stacksize = (iattr->stacksize
-					  & -(intptr_t) GLRO(dl_pagesize));
-#if _STACK_GROWS_DOWN
-		      /* The limit might be too high.  */
-		      if ((size_t) iattr->stacksize
-			  > (size_t) iattr->stackaddr - last_to)
-			iattr->stacksize = (size_t) iattr->stackaddr - last_to;
-#else
-		      /* The limit might be too high.  */
-		      if ((size_t) iattr->stacksize
-			  > to - (size_t) iattr->stackaddr)
-			iattr->stacksize = to - (size_t) iattr->stackaddr;
-#endif
-		      /* We succeed and no need to look further.  */
-		      ret = 0;
-		      break;
-		    }
-#if _STACK_GROWS_DOWN
-		  last_to = to;
-#endif
-		}
-
-	      free (line);
-	    }
-
-	  fclose (fp);
-	}
-    }
-
-  iattr->flags |= ATTR_FLAG_STACKADDR;
-
-  if (ret == 0)
-    {
-      size_t size = 16;
-      cpu_set_t *cpuset = NULL;
-
-      do
-	{
-	  size <<= 1;
-
-	  void *newp = realloc (cpuset, size);
-	  if (newp == NULL)
-	    {
-	      ret = ENOMEM;
-	      break;
-	    }
-	  cpuset = (cpu_set_t *) newp;
-
-	  ret = __pthread_getaffinity_np (thread_id, size, cpuset);
-	}
-      /* Pick some ridiculous upper limit.  Is 8 million CPUs enough?  */
-      while (ret == EINVAL && size < 1024 * 1024);
-
-      if (ret == 0)
-	{
-	  iattr->cpuset = cpuset;
-	  iattr->cpusetsize = size;
-	}
-      else
-	{
-	  free (cpuset);
-	  if (ret == ENOSYS)
-	    {
-	      /* There is no such functionality.  */
-	      ret = 0;
-	      iattr->cpuset = NULL;
-	      iattr->cpusetsize = 0;
-	    }
-	}
-    }
-
-  lll_unlock (thread->lock, LLL_PRIVATE);
-
-  return ret;
-}
diff --git a/nptl/pthread_getconcurrency.c b/nptl/pthread_getconcurrency.c
deleted file mode 100644
index 471ad55ea0..0000000000
--- a/nptl/pthread_getconcurrency.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_getconcurrency (void)
-{
-  return __concurrency_level;
-}
diff --git a/nptl/pthread_getcpuclockid.c b/nptl/pthread_getcpuclockid.c
deleted file mode 100644
index c80835b9ad..0000000000
--- a/nptl/pthread_getcpuclockid.c
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2000-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-#include <sys/time.h>
-#include <tls.h>
-
-
-int
-pthread_getcpuclockid (pthread_t threadid, clockid_t *clockid)
-{
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-#ifdef CLOCK_THREAD_CPUTIME_ID
-  /* We need to store the thread ID in the CLOCKID variable together
-     with a number identifying the clock.  We reserve the low 3 bits
-     for the clock ID and the rest for the thread ID.  This is
-     problematic if the thread ID is too large.  But 29 bits should be
-     fine.
-
-     If some day more clock IDs are needed the ID part can be
-     enlarged.  The IDs are entirely internal.  */
-  if (pd->tid >= 1 << (8 * sizeof (*clockid) - CLOCK_IDFIELD_SIZE))
-    return ERANGE;
-
-  /* Store the number.  */
-  *clockid = CLOCK_THREAD_CPUTIME_ID | (pd->tid << CLOCK_IDFIELD_SIZE);
-
-  return 0;
-#else
-  /* We don't have a timer for that.  */
-  return ENOENT;
-#endif
-}
diff --git a/nptl/pthread_getname.c b/nptl/pthread_getname.c
deleted file mode 100644
index 00ac9ad4a7..0000000000
--- a/nptl/pthread_getname.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* pthread_getname_np -- Get thread name.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-
-int
-pthread_getname_np (pthread_t th, char *buf, size_t len)
-{
-  const struct pthread *pd = (const struct pthread *) th;
-
-  if (INVALID_TD_P (pd))
-    return ESRCH;
-
-  return ENOSYS;
-}
-stub_warning (pthread_getname_np)
diff --git a/nptl/pthread_getschedparam.c b/nptl/pthread_getschedparam.c
deleted file mode 100644
index 9914b9d71f..0000000000
--- a/nptl/pthread_getschedparam.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <string.h>
-#include "pthreadP.h"
-#include <lowlevellock.h>
-
-
-int
-__pthread_getschedparam (pthread_t threadid, int *policy,
-			 struct sched_param *param)
-{
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  int result = 0;
-
-  /* See CREATE THREAD NOTES in nptl/pthread_create.c.  */
-  lll_lock (pd->lock, LLL_PRIVATE);
-
-  /* The library is responsible for maintaining the values at all
-     times.  If the user uses an interface other than
-     pthread_setschedparam to modify the scheduler setting it is not
-     the library's problem.  In case the descriptor's values have
-     not yet been retrieved do it now.  */
-  if ((pd->flags & ATTR_FLAG_SCHED_SET) == 0)
-    {
-      if (__sched_getparam (pd->tid, &pd->schedparam) != 0)
-	result = 1;
-      else
-	pd->flags |= ATTR_FLAG_SCHED_SET;
-    }
-
-  if ((pd->flags & ATTR_FLAG_POLICY_SET) == 0)
-    {
-      pd->schedpolicy = __sched_getscheduler (pd->tid);
-      if (pd->schedpolicy == -1)
-	result = 1;
-      else
-	pd->flags |= ATTR_FLAG_POLICY_SET;
-    }
-
-  if (result == 0)
-    {
-      *policy = pd->schedpolicy;
-      memcpy (param, &pd->schedparam, sizeof (struct sched_param));
-    }
-
-  lll_unlock (pd->lock, LLL_PRIVATE);
-
-  return result;
-}
-strong_alias (__pthread_getschedparam, pthread_getschedparam)
diff --git a/nptl/pthread_getspecific.c b/nptl/pthread_getspecific.c
deleted file mode 100644
index ddedcf2a76..0000000000
--- a/nptl/pthread_getspecific.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdlib.h>
-#include "pthreadP.h"
-
-
-void *
-__pthread_getspecific (pthread_key_t key)
-{
-  struct pthread_key_data *data;
-
-  /* Special case access to the first 2nd-level block.  This is the
-     usual case.  */
-  if (__glibc_likely (key < PTHREAD_KEY_2NDLEVEL_SIZE))
-    data = &THREAD_SELF->specific_1stblock[key];
-  else
-    {
-      /* Verify the key is sane.  */
-      if (key >= PTHREAD_KEYS_MAX)
-	/* Not valid.  */
-	return NULL;
-
-      unsigned int idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE;
-      unsigned int idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE;
-
-      /* If the sequence number doesn't match or the key cannot be defined
-	 for this thread since the second level array is not allocated
-	 return NULL, too.  */
-      struct pthread_key_data *level2 = THREAD_GETMEM_NC (THREAD_SELF,
-							  specific, idx1st);
-      if (level2 == NULL)
-	/* Not allocated, therefore no data.  */
-	return NULL;
-
-      /* There is data.  */
-      data = &level2[idx2nd];
-    }
-
-  void *result = data->data;
-  if (result != NULL)
-    {
-      uintptr_t seq = data->seq;
-
-      if (__glibc_unlikely (seq != __pthread_keys[key].seq))
-	result = data->data = NULL;
-    }
-
-  return result;
-}
-strong_alias (__pthread_getspecific, pthread_getspecific)
-hidden_def (__pthread_getspecific)
diff --git a/nptl/pthread_join.c b/nptl/pthread_join.c
deleted file mode 100644
index 0192f69a55..0000000000
--- a/nptl/pthread_join.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-
-#include <atomic.h>
-#include "pthreadP.h"
-
-#include <stap-probe.h>
-
-
-static void
-cleanup (void *arg)
-{
-  /* If we already changed the waiter ID, reset it.  The call cannot
-     fail for any reason but the thread not having done that yet so
-     there is no reason for a loop.  */
-  (void) atomic_compare_and_exchange_bool_acq ((struct pthread **) arg, NULL,
-					       THREAD_SELF);
-}
-
-
-int
-pthread_join (pthread_t threadid, void **thread_return)
-{
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_NOT_TERMINATED_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  /* Is the thread joinable?.  */
-  if (IS_DETACHED (pd))
-    /* We cannot wait for the thread.  */
-    return EINVAL;
-
-  struct pthread *self = THREAD_SELF;
-  int result = 0;
-
-  LIBC_PROBE (pthread_join, 1, threadid);
-
-  /* During the wait we change to asynchronous cancellation.  If we
-     are canceled the thread we are waiting for must be marked as
-     un-wait-ed for again.  */
-  pthread_cleanup_push (cleanup, &pd->joinid);
-
-  /* Switch to asynchronous cancellation.  */
-  int oldtype = CANCEL_ASYNC ();
-
-  if ((pd == self
-       || (self->joinid == pd
-	   && (pd->cancelhandling
-	       & (CANCELING_BITMASK | CANCELED_BITMASK | EXITING_BITMASK
-		  | TERMINATED_BITMASK)) == 0))
-      && !CANCEL_ENABLED_AND_CANCELED (self->cancelhandling))
-    /* This is a deadlock situation.  The threads are waiting for each
-       other to finish.  Note that this is a "may" error.  To be 100%
-       sure we catch this error we would have to lock the data
-       structures but it is not necessary.  In the unlikely case that
-       two threads are really caught in this situation they will
-       deadlock.  It is the programmer's problem to figure this
-       out.  */
-    result = EDEADLK;
-  /* Wait for the thread to finish.  If it is already locked something
-     is wrong.  There can only be one waiter.  */
-  else if (__builtin_expect (atomic_compare_and_exchange_bool_acq (&pd->joinid,
-								   self,
-								   NULL), 0))
-    /* There is already somebody waiting for the thread.  */
-    result = EINVAL;
-  else
-    /* Wait for the child.  */
-    lll_wait_tid (pd->tid);
-
-
-  /* Restore cancellation mode.  */
-  CANCEL_RESET (oldtype);
-
-  /* Remove the handler.  */
-  pthread_cleanup_pop (0);
-
-
-  if (__glibc_likely (result == 0))
-    {
-      /* We mark the thread as terminated and as joined.  */
-      pd->tid = -1;
-
-      /* Store the return value if the caller is interested.  */
-      if (thread_return != NULL)
-	*thread_return = pd->result;
-
-
-      /* Free the TCB.  */
-      __free_tcb (pd);
-    }
-
-  LIBC_PROBE (pthread_join_ret, 3, threadid, result, pd->result);
-
-  return result;
-}
diff --git a/nptl/pthread_key_create.c b/nptl/pthread_key_create.c
deleted file mode 100644
index 4f51c76767..0000000000
--- a/nptl/pthread_key_create.c
+++ /dev/null
@@ -1,51 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <atomic.h>
-
-
-int
-__pthread_key_create (pthread_key_t *key, void (*destr) (void *))
-{
-  /* Find a slot in __pthread_keys which is unused.  */
-  for (size_t cnt = 0; cnt < PTHREAD_KEYS_MAX; ++cnt)
-    {
-      uintptr_t seq = __pthread_keys[cnt].seq;
-
-      if (KEY_UNUSED (seq) && KEY_USABLE (seq)
-	  /* We found an unused slot.  Try to allocate it.  */
-	  && ! atomic_compare_and_exchange_bool_acq (&__pthread_keys[cnt].seq,
-						     seq + 1, seq))
-	{
-	  /* Remember the destructor.  */
-	  __pthread_keys[cnt].destr = destr;
-
-	  /* Return the key to the caller.  */
-	  *key = cnt;
-
-	  /* The call succeeded.  */
-	  return 0;
-	}
-    }
-
-  return EAGAIN;
-}
-strong_alias (__pthread_key_create, pthread_key_create)
-hidden_def (__pthread_key_create)
diff --git a/nptl/pthread_key_delete.c b/nptl/pthread_key_delete.c
deleted file mode 100644
index 605f93b871..0000000000
--- a/nptl/pthread_key_delete.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <atomic.h>
-
-
-int
-pthread_key_delete (pthread_key_t key)
-{
-  int result = EINVAL;
-
-  if (__glibc_likely (key < PTHREAD_KEYS_MAX))
-    {
-      unsigned int seq = __pthread_keys[key].seq;
-
-      if (__builtin_expect (! KEY_UNUSED (seq), 1)
-	  && ! atomic_compare_and_exchange_bool_acq (&__pthread_keys[key].seq,
-						     seq + 1, seq))
-	/* We deleted a valid key.  */
-	result = 0;
-    }
-
-  return result;
-}
diff --git a/nptl/pthread_kill.c b/nptl/pthread_kill.c
deleted file mode 100644
index c3cc50fd32..0000000000
--- a/nptl/pthread_kill.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Send a signal to a specific pthread.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <pthreadP.h>
-
-
-int
-__pthread_kill (pthread_t threadid, int signo)
-{
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (DEBUGGING_P && INVALID_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  return ENOSYS;
-}
-strong_alias (__pthread_kill, pthread_kill)
-
-stub_warning (pthread_kill)
diff --git a/nptl/pthread_kill_other_threads.c b/nptl/pthread_kill_other_threads.c
deleted file mode 100644
index d342bdb6a1..0000000000
--- a/nptl/pthread_kill_other_threads.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <shlib-compat.h>
-
-
-#ifdef SHARED
-/* This function does not serve a useful purpose in the thread library
-   implementation anymore.  It used to be necessary when then kernel
-   could not shut down "processes" but this is not the case anymore.
-
-   We could theoretically provide an equivalent implementation but
-   this is not necessary since the kernel already does a much better
-   job than we ever could.  */
-void
-__pthread_kill_other_threads_np (void)
-{
-}
-compat_symbol (libpthread, __pthread_kill_other_threads_np,
-	       pthread_kill_other_threads_np, GLIBC_2_0);
-#endif
diff --git a/nptl/pthread_mutex_cond_lock.c b/nptl/pthread_mutex_cond_lock.c
deleted file mode 100644
index bd7149ef1d..0000000000
--- a/nptl/pthread_mutex_cond_lock.c
+++ /dev/null
@@ -1,21 +0,0 @@
-#include <pthreadP.h>
-
-#define LLL_MUTEX_LOCK(mutex) \
-  lll_cond_lock ((mutex)->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex))
-
-/* Not actually elided so far. Needed? */
-#define LLL_MUTEX_LOCK_ELISION(mutex)  \
-  ({ lll_cond_lock ((mutex)->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex)); 0; })
-
-#define LLL_MUTEX_TRYLOCK(mutex) \
-  lll_cond_trylock ((mutex)->__data.__lock)
-#define LLL_MUTEX_TRYLOCK_ELISION(mutex) LLL_MUTEX_TRYLOCK(mutex)
-
-/* We need to assume that there are other threads blocked on the futex.
-   See __pthread_mutex_lock_full for further details.  */
-#define LLL_ROBUST_MUTEX_LOCK_MODIFIER FUTEX_WAITERS
-#define __pthread_mutex_lock internal_function __pthread_mutex_cond_lock
-#define __pthread_mutex_lock_full __pthread_mutex_cond_lock_full
-#define NO_INCR
-
-#include <nptl/pthread_mutex_lock.c>
diff --git a/nptl/pthread_mutex_consistent.c b/nptl/pthread_mutex_consistent.c
deleted file mode 100644
index 859c495524..0000000000
--- a/nptl/pthread_mutex_consistent.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-
-
-int
-pthread_mutex_consistent (pthread_mutex_t *mutex)
-{
-  /* Test whether this is a robust mutex with a dead owner.  */
-  if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
-      || mutex->__data.__owner != PTHREAD_MUTEX_INCONSISTENT)
-    return EINVAL;
-
-  mutex->__data.__owner = THREAD_GETMEM (THREAD_SELF, tid);
-
-  return 0;
-}
-weak_alias (pthread_mutex_consistent, pthread_mutex_consistent_np)
diff --git a/nptl/pthread_mutex_destroy.c b/nptl/pthread_mutex_destroy.c
deleted file mode 100644
index a3008321bd..0000000000
--- a/nptl/pthread_mutex_destroy.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-
-#include <stap-probe.h>
-
-
-int
-__pthread_mutex_destroy (pthread_mutex_t *mutex)
-{
-  LIBC_PROBE (mutex_destroy, 1, mutex);
-
-  if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0
-      && mutex->__data.__nusers != 0)
-    return EBUSY;
-
-  /* Set to an invalid value.  */
-  mutex->__data.__kind = -1;
-
-  return 0;
-}
-strong_alias (__pthread_mutex_destroy, pthread_mutex_destroy)
-hidden_def (__pthread_mutex_destroy)
diff --git a/nptl/pthread_mutex_getprioceiling.c b/nptl/pthread_mutex_getprioceiling.c
deleted file mode 100644
index 44b147f148..0000000000
--- a/nptl/pthread_mutex_getprioceiling.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Get current priority ceiling of pthread_mutex_t.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-
-
-int
-pthread_mutex_getprioceiling (const pthread_mutex_t *mutex, int *prioceiling)
-{
-  if (__builtin_expect ((mutex->__data.__kind
-			 & PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0, 0))
-    return EINVAL;
-
-  *prioceiling = (mutex->__data.__lock & PTHREAD_MUTEX_PRIO_CEILING_MASK)
-		 >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-
-  return 0;
-}
diff --git a/nptl/pthread_mutex_init.c b/nptl/pthread_mutex_init.c
deleted file mode 100644
index 138e144155..0000000000
--- a/nptl/pthread_mutex_init.c
+++ /dev/null
@@ -1,148 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <string.h>
-#include <kernel-features.h>
-#include "pthreadP.h"
-#include <atomic.h>
-
-#include <stap-probe.h>
-
-static const struct pthread_mutexattr default_mutexattr =
-  {
-    /* Default is a normal mutex, not shared between processes.  */
-    .mutexkind = PTHREAD_MUTEX_NORMAL
-  };
-
-
-static bool
-prio_inherit_missing (void)
-{
-#ifdef __NR_futex
-  static int tpi_supported;
-  if (__glibc_unlikely (tpi_supported == 0))
-    {
-      int lock = 0;
-      INTERNAL_SYSCALL_DECL (err);
-      int ret = INTERNAL_SYSCALL (futex, err, 4, &lock, FUTEX_UNLOCK_PI, 0, 0);
-      assert (INTERNAL_SYSCALL_ERROR_P (ret, err));
-      tpi_supported = INTERNAL_SYSCALL_ERRNO (ret, err) == ENOSYS ? -1 : 1;
-    }
-  return __glibc_unlikely (tpi_supported < 0);
-#endif
-  return true;
-}
-
-int
-__pthread_mutex_init (pthread_mutex_t *mutex,
-		      const pthread_mutexattr_t *mutexattr)
-{
-  const struct pthread_mutexattr *imutexattr;
-
-  assert (sizeof (pthread_mutex_t) <= __SIZEOF_PTHREAD_MUTEX_T);
-
-  imutexattr = ((const struct pthread_mutexattr *) mutexattr
-		?: &default_mutexattr);
-
-  /* Sanity checks.  */
-  switch (__builtin_expect (imutexattr->mutexkind
-			    & PTHREAD_MUTEXATTR_PROTOCOL_MASK,
-			    PTHREAD_PRIO_NONE
-			    << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT))
-    {
-    case PTHREAD_PRIO_NONE << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT:
-      break;
-
-    case PTHREAD_PRIO_INHERIT << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT:
-      if (__glibc_unlikely (prio_inherit_missing ()))
-	return ENOTSUP;
-      break;
-
-    default:
-      /* XXX: For now we don't support robust priority protected mutexes.  */
-      if (imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST)
-	return ENOTSUP;
-      break;
-    }
-
-  /* Clear the whole variable.  */
-  memset (mutex, '\0', __SIZEOF_PTHREAD_MUTEX_T);
-
-  /* Copy the values from the attribute.  */
-  mutex->__data.__kind = imutexattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS;
-
-  if ((imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST) != 0)
-    {
-#ifndef __ASSUME_SET_ROBUST_LIST
-      if ((imutexattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_PSHARED) != 0
-	  && __set_robust_list_avail < 0)
-	return ENOTSUP;
-#endif
-
-      mutex->__data.__kind |= PTHREAD_MUTEX_ROBUST_NORMAL_NP;
-    }
-
-  switch (imutexattr->mutexkind & PTHREAD_MUTEXATTR_PROTOCOL_MASK)
-    {
-    case PTHREAD_PRIO_INHERIT << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT:
-      mutex->__data.__kind |= PTHREAD_MUTEX_PRIO_INHERIT_NP;
-      break;
-
-    case PTHREAD_PRIO_PROTECT << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT:
-      mutex->__data.__kind |= PTHREAD_MUTEX_PRIO_PROTECT_NP;
-
-      int ceiling = (imutexattr->mutexkind
-		     & PTHREAD_MUTEXATTR_PRIO_CEILING_MASK)
-		    >> PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT;
-      if (! ceiling)
-	{
-	  /* See __init_sched_fifo_prio.  */
-	  if (atomic_load_relaxed (&__sched_fifo_min_prio) == -1)
-	    __init_sched_fifo_prio ();
-	  if (ceiling < atomic_load_relaxed (&__sched_fifo_min_prio))
-	    ceiling = atomic_load_relaxed (&__sched_fifo_min_prio);
-	}
-      mutex->__data.__lock = ceiling << PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-      break;
-
-    default:
-      break;
-    }
-
-  /* The kernel when waking robust mutexes on exit never uses
-     FUTEX_PRIVATE_FLAG FUTEX_WAKE.  */
-  if ((imutexattr->mutexkind & (PTHREAD_MUTEXATTR_FLAG_PSHARED
-				| PTHREAD_MUTEXATTR_FLAG_ROBUST)) != 0)
-    mutex->__data.__kind |= PTHREAD_MUTEX_PSHARED_BIT;
-
-  /* Default values: mutex not used yet.  */
-  // mutex->__count = 0;	already done by memset
-  // mutex->__owner = 0;	already done by memset
-  // mutex->__nusers = 0;	already done by memset
-  // mutex->__spins = 0;	already done by memset
-  // mutex->__next = NULL;	already done by memset
-
-  LIBC_PROBE (mutex_init, 1, mutex);
-
-  return 0;
-}
-strong_alias (__pthread_mutex_init, pthread_mutex_init)
-hidden_def (__pthread_mutex_init)
diff --git a/nptl/pthread_mutex_lock.c b/nptl/pthread_mutex_lock.c
deleted file mode 100644
index dc9ca4c476..0000000000
--- a/nptl/pthread_mutex_lock.c
+++ /dev/null
@@ -1,621 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <not-cancel.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <lowlevellock.h>
-#include <stap-probe.h>
-
-#ifndef lll_lock_elision
-#define lll_lock_elision(lock, try_lock, private)	({ \
-      lll_lock (lock, private); 0; })
-#endif
-
-#ifndef lll_trylock_elision
-#define lll_trylock_elision(a,t) lll_trylock(a)
-#endif
-
-/* Some of the following definitions differ when pthread_mutex_cond_lock.c
-   includes this file.  */
-#ifndef LLL_MUTEX_LOCK
-# define LLL_MUTEX_LOCK(mutex) \
-  lll_lock ((mutex)->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex))
-# define LLL_MUTEX_TRYLOCK(mutex) \
-  lll_trylock ((mutex)->__data.__lock)
-# define LLL_ROBUST_MUTEX_LOCK_MODIFIER 0
-# define LLL_MUTEX_LOCK_ELISION(mutex) \
-  lll_lock_elision ((mutex)->__data.__lock, (mutex)->__data.__elision, \
-		   PTHREAD_MUTEX_PSHARED (mutex))
-# define LLL_MUTEX_TRYLOCK_ELISION(mutex) \
-  lll_trylock_elision((mutex)->__data.__lock, (mutex)->__data.__elision, \
-		   PTHREAD_MUTEX_PSHARED (mutex))
-#endif
-
-#ifndef FORCE_ELISION
-#define FORCE_ELISION(m, s)
-#endif
-
-static int __pthread_mutex_lock_full (pthread_mutex_t *mutex)
-     __attribute_noinline__;
-
-int
-__pthread_mutex_lock (pthread_mutex_t *mutex)
-{
-  assert (sizeof (mutex->__size) >= sizeof (mutex->__data));
-
-  unsigned int type = PTHREAD_MUTEX_TYPE_ELISION (mutex);
-
-  LIBC_PROBE (mutex_entry, 1, mutex);
-
-  if (__builtin_expect (type & ~(PTHREAD_MUTEX_KIND_MASK_NP
-				 | PTHREAD_MUTEX_ELISION_FLAGS_NP), 0))
-    return __pthread_mutex_lock_full (mutex);
-
-  if (__glibc_likely (type == PTHREAD_MUTEX_TIMED_NP))
-    {
-      FORCE_ELISION (mutex, goto elision);
-    simple:
-      /* Normal mutex.  */
-      LLL_MUTEX_LOCK (mutex);
-      assert (mutex->__data.__owner == 0);
-    }
-#ifdef HAVE_ELISION
-  else if (__glibc_likely (type == PTHREAD_MUTEX_TIMED_ELISION_NP))
-    {
-  elision: __attribute__((unused))
-      /* This case can never happen on a system without elision,
-         as the mutex type initialization functions will not
-	 allow to set the elision flags.  */
-      /* Don't record owner or users for elision case.  This is a
-         tail call.  */
-      return LLL_MUTEX_LOCK_ELISION (mutex);
-    }
-#endif
-  else if (__builtin_expect (PTHREAD_MUTEX_TYPE (mutex)
-			     == PTHREAD_MUTEX_RECURSIVE_NP, 1))
-    {
-      /* Recursive mutex.  */
-      pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
-
-      /* Check whether we already hold the mutex.  */
-      if (mutex->__data.__owner == id)
-	{
-	  /* Just bump the counter.  */
-	  if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-	    /* Overflow of the counter.  */
-	    return EAGAIN;
-
-	  ++mutex->__data.__count;
-
-	  return 0;
-	}
-
-      /* We have to get the mutex.  */
-      LLL_MUTEX_LOCK (mutex);
-
-      assert (mutex->__data.__owner == 0);
-      mutex->__data.__count = 1;
-    }
-  else if (__builtin_expect (PTHREAD_MUTEX_TYPE (mutex)
-			  == PTHREAD_MUTEX_ADAPTIVE_NP, 1))
-    {
-      if (! __is_smp)
-	goto simple;
-
-      if (LLL_MUTEX_TRYLOCK (mutex) != 0)
-	{
-	  int cnt = 0;
-	  int max_cnt = MIN (MAX_ADAPTIVE_COUNT,
-			     mutex->__data.__spins * 2 + 10);
-	  do
-	    {
-	      if (cnt++ >= max_cnt)
-		{
-		  LLL_MUTEX_LOCK (mutex);
-		  break;
-		}
-	      atomic_spin_nop ();
-	    }
-	  while (LLL_MUTEX_TRYLOCK (mutex) != 0);
-
-	  mutex->__data.__spins += (cnt - mutex->__data.__spins) / 8;
-	}
-      assert (mutex->__data.__owner == 0);
-    }
-  else
-    {
-      pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
-      assert (PTHREAD_MUTEX_TYPE (mutex) == PTHREAD_MUTEX_ERRORCHECK_NP);
-      /* Check whether we already hold the mutex.  */
-      if (__glibc_unlikely (mutex->__data.__owner == id))
-	return EDEADLK;
-      goto simple;
-    }
-
-  pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
-
-  /* Record the ownership.  */
-  mutex->__data.__owner = id;
-#ifndef NO_INCR
-  ++mutex->__data.__nusers;
-#endif
-
-  LIBC_PROBE (mutex_acquired, 1, mutex);
-
-  return 0;
-}
-
-static int
-__pthread_mutex_lock_full (pthread_mutex_t *mutex)
-{
-  int oldval;
-  pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
-
-  switch (PTHREAD_MUTEX_TYPE (mutex))
-    {
-    case PTHREAD_MUTEX_ROBUST_RECURSIVE_NP:
-    case PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_ROBUST_NORMAL_NP:
-    case PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP:
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-		     &mutex->__data.__list.__next);
-      /* We need to set op_pending before starting the operation.  Also
-	 see comments at ENQUEUE_MUTEX.  */
-      __asm ("" ::: "memory");
-
-      oldval = mutex->__data.__lock;
-      /* This is set to FUTEX_WAITERS iff we might have shared the
-	 FUTEX_WAITERS flag with other threads, and therefore need to keep it
-	 set to avoid lost wake-ups.  We have the same requirement in the
-	 simple mutex algorithm.
-	 We start with value zero for a normal mutex, and FUTEX_WAITERS if we
-	 are building the special case mutexes for use from within condition
-	 variables.  */
-      unsigned int assume_other_futex_waiters = LLL_ROBUST_MUTEX_LOCK_MODIFIER;
-      while (1)
-	{
-	  /* Try to acquire the lock through a CAS from 0 (not acquired) to
-	     our TID | assume_other_futex_waiters.  */
-	  if (__glibc_likely ((oldval == 0)
-			      && (atomic_compare_and_exchange_bool_acq
-				  (&mutex->__data.__lock,
-				   id | assume_other_futex_waiters, 0) == 0)))
-	      break;
-
-	  if ((oldval & FUTEX_OWNER_DIED) != 0)
-	    {
-	      /* The previous owner died.  Try locking the mutex.  */
-	      int newval = id;
-#ifdef NO_INCR
-	      /* We are not taking assume_other_futex_waiters into accoount
-		 here simply because we'll set FUTEX_WAITERS anyway.  */
-	      newval |= FUTEX_WAITERS;
-#else
-	      newval |= (oldval & FUTEX_WAITERS) | assume_other_futex_waiters;
-#endif
-
-	      newval
-		= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						       newval, oldval);
-
-	      if (newval != oldval)
-		{
-		  oldval = newval;
-		  continue;
-		}
-
-	      /* We got the mutex.  */
-	      mutex->__data.__count = 1;
-	      /* But it is inconsistent unless marked otherwise.  */
-	      mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
-
-	      /* We must not enqueue the mutex before we have acquired it.
-		 Also see comments at ENQUEUE_MUTEX.  */
-	      __asm ("" ::: "memory");
-	      ENQUEUE_MUTEX (mutex);
-	      /* We need to clear op_pending after we enqueue the mutex.  */
-	      __asm ("" ::: "memory");
-	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-	      /* Note that we deliberately exit here.  If we fall
-		 through to the end of the function __nusers would be
-		 incremented which is not correct because the old
-		 owner has to be discounted.  If we are not supposed
-		 to increment __nusers we actually have to decrement
-		 it here.  */
-#ifdef NO_INCR
-	      --mutex->__data.__nusers;
-#endif
-
-	      return EOWNERDEAD;
-	    }
-
-	  /* Check whether we already hold the mutex.  */
-	  if (__glibc_unlikely ((oldval & FUTEX_TID_MASK) == id))
-	    {
-	      int kind = PTHREAD_MUTEX_TYPE (mutex);
-	      if (kind == PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP)
-		{
-		  /* We do not need to ensure ordering wrt another memory
-		     access.  Also see comments at ENQUEUE_MUTEX. */
-		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-				 NULL);
-		  return EDEADLK;
-		}
-
-	      if (kind == PTHREAD_MUTEX_ROBUST_RECURSIVE_NP)
-		{
-		  /* We do not need to ensure ordering wrt another memory
-		     access.  */
-		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-				 NULL);
-
-		  /* Just bump the counter.  */
-		  if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		    /* Overflow of the counter.  */
-		    return EAGAIN;
-
-		  ++mutex->__data.__count;
-
-		  return 0;
-		}
-	    }
-
-	  /* We cannot acquire the mutex nor has its owner died.  Thus, try
-	     to block using futexes.  Set FUTEX_WAITERS if necessary so that
-	     other threads are aware that there are potentially threads
-	     blocked on the futex.  Restart if oldval changed in the
-	     meantime.  */
-	  if ((oldval & FUTEX_WAITERS) == 0)
-	    {
-	      if (atomic_compare_and_exchange_bool_acq (&mutex->__data.__lock,
-							oldval | FUTEX_WAITERS,
-							oldval)
-		  != 0)
-		{
-		  oldval = mutex->__data.__lock;
-		  continue;
-		}
-	      oldval |= FUTEX_WAITERS;
-	    }
-
-	  /* It is now possible that we share the FUTEX_WAITERS flag with
-	     another thread; therefore, update assume_other_futex_waiters so
-	     that we do not forget about this when handling other cases
-	     above and thus do not cause lost wake-ups.  */
-	  assume_other_futex_waiters |= FUTEX_WAITERS;
-
-	  /* Block using the futex and reload current lock value.  */
-	  lll_futex_wait (&mutex->__data.__lock, oldval,
-			  PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
-	  oldval = mutex->__data.__lock;
-	}
-
-      /* We have acquired the mutex; check if it is still consistent.  */
-      if (__builtin_expect (mutex->__data.__owner
-			    == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
-	{
-	  /* This mutex is now not recoverable.  */
-	  mutex->__data.__count = 0;
-	  int private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
-	  lll_unlock (mutex->__data.__lock, private);
-	  /* FIXME This violates the mutex destruction requirements.  See
-	     __pthread_mutex_unlock_full.  */
-	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	  return ENOTRECOVERABLE;
-	}
-
-      mutex->__data.__count = 1;
-      /* We must not enqueue the mutex before we have acquired it.
-	 Also see comments at ENQUEUE_MUTEX.  */
-      __asm ("" ::: "memory");
-      ENQUEUE_MUTEX (mutex);
-      /* We need to clear op_pending after we enqueue the mutex.  */
-      __asm ("" ::: "memory");
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-      break;
-
-    /* The PI support requires the Linux futex system call.  If that's not
-       available, pthread_mutex_init should never have allowed the type to
-       be set.  So it will get the default case for an invalid type.  */
-#ifdef __NR_futex
-    case PTHREAD_MUTEX_PI_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PI_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PI_NORMAL_NP:
-    case PTHREAD_MUTEX_PI_ADAPTIVE_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP:
-      {
-	int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
-	int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
-
-	if (robust)
-	  {
-	    /* Note: robust PI futexes are signaled by setting bit 0.  */
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-			   (void *) (((uintptr_t) &mutex->__data.__list.__next)
-				     | 1));
-	    /* We need to set op_pending before starting the operation.  Also
-	       see comments at ENQUEUE_MUTEX.  */
-	    __asm ("" ::: "memory");
-	  }
-
-	oldval = mutex->__data.__lock;
-
-	/* Check whether we already hold the mutex.  */
-	if (__glibc_unlikely ((oldval & FUTEX_TID_MASK) == id))
-	  {
-	    if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
-	      {
-		/* We do not need to ensure ordering wrt another memory
-		   access.  */
-		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-		return EDEADLK;
-	      }
-
-	    if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
-	      {
-		/* We do not need to ensure ordering wrt another memory
-		   access.  */
-		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-		/* Just bump the counter.  */
-		if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		  /* Overflow of the counter.  */
-		  return EAGAIN;
-
-		++mutex->__data.__count;
-
-		return 0;
-	      }
-	  }
-
-	int newval = id;
-# ifdef NO_INCR
-	newval |= FUTEX_WAITERS;
-# endif
-	oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						      newval, 0);
-
-	if (oldval != 0)
-	  {
-	    /* The mutex is locked.  The kernel will now take care of
-	       everything.  */
-	    int private = (robust
-			   ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
-			   : PTHREAD_MUTEX_PSHARED (mutex));
-	    INTERNAL_SYSCALL_DECL (__err);
-	    int e = INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
-				      __lll_private_flag (FUTEX_LOCK_PI,
-							  private), 1, 0);
-
-	    if (INTERNAL_SYSCALL_ERROR_P (e, __err)
-		&& (INTERNAL_SYSCALL_ERRNO (e, __err) == ESRCH
-		    || INTERNAL_SYSCALL_ERRNO (e, __err) == EDEADLK))
-	      {
-		assert (INTERNAL_SYSCALL_ERRNO (e, __err) != EDEADLK
-			|| (kind != PTHREAD_MUTEX_ERRORCHECK_NP
-			    && kind != PTHREAD_MUTEX_RECURSIVE_NP));
-		/* ESRCH can happen only for non-robust PI mutexes where
-		   the owner of the lock died.  */
-		assert (INTERNAL_SYSCALL_ERRNO (e, __err) != ESRCH || !robust);
-
-		/* Delay the thread indefinitely.  */
-		while (1)
-		  pause_not_cancel ();
-	      }
-
-	    oldval = mutex->__data.__lock;
-
-	    assert (robust || (oldval & FUTEX_OWNER_DIED) == 0);
-	  }
-
-	if (__glibc_unlikely (oldval & FUTEX_OWNER_DIED))
-	  {
-	    atomic_and (&mutex->__data.__lock, ~FUTEX_OWNER_DIED);
-
-	    /* We got the mutex.  */
-	    mutex->__data.__count = 1;
-	    /* But it is inconsistent unless marked otherwise.  */
-	    mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
-
-	    /* We must not enqueue the mutex before we have acquired it.
-	       Also see comments at ENQUEUE_MUTEX.  */
-	    __asm ("" ::: "memory");
-	    ENQUEUE_MUTEX_PI (mutex);
-	    /* We need to clear op_pending after we enqueue the mutex.  */
-	    __asm ("" ::: "memory");
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-	    /* Note that we deliberately exit here.  If we fall
-	       through to the end of the function __nusers would be
-	       incremented which is not correct because the old owner
-	       has to be discounted.  If we are not supposed to
-	       increment __nusers we actually have to decrement it here.  */
-# ifdef NO_INCR
-	    --mutex->__data.__nusers;
-# endif
-
-	    return EOWNERDEAD;
-	  }
-
-	if (robust
-	    && __builtin_expect (mutex->__data.__owner
-				 == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
-	  {
-	    /* This mutex is now not recoverable.  */
-	    mutex->__data.__count = 0;
-
-	    INTERNAL_SYSCALL_DECL (__err);
-	    INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
-			      __lll_private_flag (FUTEX_UNLOCK_PI,
-						  PTHREAD_ROBUST_MUTEX_PSHARED (mutex)),
-			      0, 0);
-
-	    /* To the kernel, this will be visible after the kernel has
-	       acquired the mutex in the syscall.  */
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	    return ENOTRECOVERABLE;
-	  }
-
-	mutex->__data.__count = 1;
-	if (robust)
-	  {
-	    /* We must not enqueue the mutex before we have acquired it.
-	       Also see comments at ENQUEUE_MUTEX.  */
-	    __asm ("" ::: "memory");
-	    ENQUEUE_MUTEX_PI (mutex);
-	    /* We need to clear op_pending after we enqueue the mutex.  */
-	    __asm ("" ::: "memory");
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	  }
-      }
-      break;
-#endif  /* __NR_futex.  */
-
-    case PTHREAD_MUTEX_PP_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PP_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PP_NORMAL_NP:
-    case PTHREAD_MUTEX_PP_ADAPTIVE_NP:
-      {
-	int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
-
-	oldval = mutex->__data.__lock;
-
-	/* Check whether we already hold the mutex.  */
-	if (mutex->__data.__owner == id)
-	  {
-	    if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
-	      return EDEADLK;
-
-	    if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
-	      {
-		/* Just bump the counter.  */
-		if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		  /* Overflow of the counter.  */
-		  return EAGAIN;
-
-		++mutex->__data.__count;
-
-		return 0;
-	      }
-	  }
-
-	int oldprio = -1, ceilval;
-	do
-	  {
-	    int ceiling = (oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK)
-			  >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-
-	    if (__pthread_current_priority () > ceiling)
-	      {
-		if (oldprio != -1)
-		  __pthread_tpp_change_priority (oldprio, -1);
-		return EINVAL;
-	      }
-
-	    int retval = __pthread_tpp_change_priority (oldprio, ceiling);
-	    if (retval)
-	      return retval;
-
-	    ceilval = ceiling << PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-	    oldprio = ceiling;
-
-	    oldval
-	      = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-#ifdef NO_INCR
-						     ceilval | 2,
-#else
-						     ceilval | 1,
-#endif
-						     ceilval);
-
-	    if (oldval == ceilval)
-	      break;
-
-	    do
-	      {
-		oldval
-		  = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-							 ceilval | 2,
-							 ceilval | 1);
-
-		if ((oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK) != ceilval)
-		  break;
-
-		if (oldval != ceilval)
-		  lll_futex_wait (&mutex->__data.__lock, ceilval | 2,
-				  PTHREAD_MUTEX_PSHARED (mutex));
-	      }
-	    while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-							ceilval | 2, ceilval)
-		   != ceilval);
-	  }
-	while ((oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK) != ceilval);
-
-	assert (mutex->__data.__owner == 0);
-	mutex->__data.__count = 1;
-      }
-      break;
-
-    default:
-      /* Correct code cannot set any other type.  */
-      return EINVAL;
-    }
-
-  /* Record the ownership.  */
-  mutex->__data.__owner = id;
-#ifndef NO_INCR
-  ++mutex->__data.__nusers;
-#endif
-
-  LIBC_PROBE (mutex_acquired, 1, mutex);
-
-  return 0;
-}
-#ifndef __pthread_mutex_lock
-strong_alias (__pthread_mutex_lock, pthread_mutex_lock)
-hidden_def (__pthread_mutex_lock)
-#endif
-
-
-#ifdef NO_INCR
-void
-internal_function
-__pthread_mutex_cond_lock_adjust (pthread_mutex_t *mutex)
-{
-  assert ((mutex->__data.__kind & PTHREAD_MUTEX_PRIO_INHERIT_NP) != 0);
-  assert ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) == 0);
-  assert ((mutex->__data.__kind & PTHREAD_MUTEX_PSHARED_BIT) == 0);
-
-  /* Record the ownership.  */
-  pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
-  mutex->__data.__owner = id;
-
-  if (mutex->__data.__kind == PTHREAD_MUTEX_PI_RECURSIVE_NP)
-    ++mutex->__data.__count;
-}
-#endif
diff --git a/nptl/pthread_mutex_setprioceiling.c b/nptl/pthread_mutex_setprioceiling.c
deleted file mode 100644
index 18b0763ba1..0000000000
--- a/nptl/pthread_mutex_setprioceiling.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Set current priority ceiling of pthread_mutex_t.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdbool.h>
-#include <errno.h>
-#include <pthreadP.h>
-#include <atomic.h>
-
-
-int
-pthread_mutex_setprioceiling (pthread_mutex_t *mutex, int prioceiling,
-			      int *old_ceiling)
-{
-  /* The low bits of __kind aren't ever changed after pthread_mutex_init,
-     so we don't need a lock yet.  */
-  if ((mutex->__data.__kind & PTHREAD_MUTEX_PRIO_PROTECT_NP) == 0)
-    return EINVAL;
-
-  /* See __init_sched_fifo_prio.  */
-  if (atomic_load_relaxed (&__sched_fifo_min_prio) == -1
-      || atomic_load_relaxed (&__sched_fifo_max_prio) == -1)
-    __init_sched_fifo_prio ();
-
-  if (__glibc_unlikely (prioceiling
-			< atomic_load_relaxed (&__sched_fifo_min_prio))
-      || __glibc_unlikely (prioceiling
-			   > atomic_load_relaxed (&__sched_fifo_max_prio))
-      || __glibc_unlikely ((prioceiling
-			    & (PTHREAD_MUTEXATTR_PRIO_CEILING_MASK
-			       >> PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT))
-			   != prioceiling))
-    return EINVAL;
-
-  /* Check whether we already hold the mutex.  */
-  bool locked = false;
-  int kind = PTHREAD_MUTEX_TYPE (mutex);
-  if (mutex->__data.__owner == THREAD_GETMEM (THREAD_SELF, tid))
-    {
-      if (kind == PTHREAD_MUTEX_PP_ERRORCHECK_NP)
-	return EDEADLK;
-
-      if (kind == PTHREAD_MUTEX_PP_RECURSIVE_NP)
-	locked = true;
-    }
-
-  int oldval = mutex->__data.__lock;
-  if (! locked)
-    do
-      {
-	/* Need to lock the mutex, but without obeying the priority
-	   protect protocol.  */
-	int ceilval = (oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK);
-
-	oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						      ceilval | 1, ceilval);
-	if (oldval == ceilval)
-	  break;
-
-	do
-	  {
-	    oldval
-	      = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						     ceilval | 2,
-						     ceilval | 1);
-
-	    if ((oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK) != ceilval)
-	      break;
-
-	    if (oldval != ceilval)
-	      lll_futex_wait (&mutex->__data.__lock, ceilval | 2,
-			      PTHREAD_MUTEX_PSHARED (mutex));
-	  }
-	while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						    ceilval | 2, ceilval)
-	       != ceilval);
-
-	if ((oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK) != ceilval)
-	  continue;
-      }
-    while (0);
-
-  int oldprio = (oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK)
-		>> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-  if (locked)
-    {
-      int ret = __pthread_tpp_change_priority (oldprio, prioceiling);
-      if (ret)
-	return ret;
-    }
-
-  if (old_ceiling != NULL)
-    *old_ceiling = oldprio;
-
-  int newlock = 0;
-  if (locked)
-    newlock = (mutex->__data.__lock & ~PTHREAD_MUTEX_PRIO_CEILING_MASK);
-  mutex->__data.__lock = newlock
-			 | (prioceiling << PTHREAD_MUTEX_PRIO_CEILING_SHIFT);
-  atomic_full_barrier ();
-
-  lll_futex_wake (&mutex->__data.__lock, INT_MAX,
-		  PTHREAD_MUTEX_PSHARED (mutex));
-
-  return 0;
-}
diff --git a/nptl/pthread_mutex_timedlock.c b/nptl/pthread_mutex_timedlock.c
deleted file mode 100644
index a4beb7b0dc..0000000000
--- a/nptl/pthread_mutex_timedlock.c
+++ /dev/null
@@ -1,636 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <time.h>
-#include <sys/param.h>
-#include <sys/time.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <lowlevellock.h>
-#include <not-cancel.h>
-
-#include <stap-probe.h>
-
-#ifndef lll_timedlock_elision
-#define lll_timedlock_elision(a,dummy,b,c) lll_timedlock(a, b, c)
-#endif
-
-#ifndef lll_trylock_elision
-#define lll_trylock_elision(a,t) lll_trylock(a)
-#endif
-
-#ifndef FORCE_ELISION
-#define FORCE_ELISION(m, s)
-#endif
-
-int
-pthread_mutex_timedlock (pthread_mutex_t *mutex,
-			 const struct timespec *abstime)
-{
-  int oldval;
-  pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
-  int result = 0;
-
-  LIBC_PROBE (mutex_timedlock_entry, 2, mutex, abstime);
-
-  /* We must not check ABSTIME here.  If the thread does not block
-     abstime must not be checked for a valid value.  */
-
-  switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex),
-			    PTHREAD_MUTEX_TIMED_NP))
-    {
-      /* Recursive mutex.  */
-    case PTHREAD_MUTEX_RECURSIVE_NP|PTHREAD_MUTEX_ELISION_NP:
-    case PTHREAD_MUTEX_RECURSIVE_NP:
-      /* Check whether we already hold the mutex.  */
-      if (mutex->__data.__owner == id)
-	{
-	  /* Just bump the counter.  */
-	  if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-	    /* Overflow of the counter.  */
-	    return EAGAIN;
-
-	  ++mutex->__data.__count;
-
-	  goto out;
-	}
-
-      /* We have to get the mutex.  */
-      result = lll_timedlock (mutex->__data.__lock, abstime,
-			      PTHREAD_MUTEX_PSHARED (mutex));
-
-      if (result != 0)
-	goto out;
-
-      /* Only locked once so far.  */
-      mutex->__data.__count = 1;
-      break;
-
-      /* Error checking mutex.  */
-    case PTHREAD_MUTEX_ERRORCHECK_NP:
-      /* Check whether we already hold the mutex.  */
-      if (__glibc_unlikely (mutex->__data.__owner == id))
-	return EDEADLK;
-
-      /* Don't do lock elision on an error checking mutex.  */
-      goto simple;
-
-    case PTHREAD_MUTEX_TIMED_NP:
-      FORCE_ELISION (mutex, goto elision);
-    simple:
-      /* Normal mutex.  */
-      result = lll_timedlock (mutex->__data.__lock, abstime,
-			      PTHREAD_MUTEX_PSHARED (mutex));
-      break;
-
-    case PTHREAD_MUTEX_TIMED_ELISION_NP:
-    elision: __attribute__((unused))
-      /* Don't record ownership */
-      return lll_timedlock_elision (mutex->__data.__lock,
-				    mutex->__data.__spins,
-				    abstime,
-				    PTHREAD_MUTEX_PSHARED (mutex));
-
-
-    case PTHREAD_MUTEX_ADAPTIVE_NP:
-      if (! __is_smp)
-	goto simple;
-
-      if (lll_trylock (mutex->__data.__lock) != 0)
-	{
-	  int cnt = 0;
-	  int max_cnt = MIN (MAX_ADAPTIVE_COUNT,
-			     mutex->__data.__spins * 2 + 10);
-	  do
-	    {
-	      if (cnt++ >= max_cnt)
-		{
-		  result = lll_timedlock (mutex->__data.__lock, abstime,
-					  PTHREAD_MUTEX_PSHARED (mutex));
-		  break;
-		}
-	      atomic_spin_nop ();
-	    }
-	  while (lll_trylock (mutex->__data.__lock) != 0);
-
-	  mutex->__data.__spins += (cnt - mutex->__data.__spins) / 8;
-	}
-      break;
-
-    case PTHREAD_MUTEX_ROBUST_RECURSIVE_NP:
-    case PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_ROBUST_NORMAL_NP:
-    case PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP:
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-		     &mutex->__data.__list.__next);
-      /* We need to set op_pending before starting the operation.  Also
-	 see comments at ENQUEUE_MUTEX.  */
-      __asm ("" ::: "memory");
-
-      oldval = mutex->__data.__lock;
-      /* This is set to FUTEX_WAITERS iff we might have shared the
-	 FUTEX_WAITERS flag with other threads, and therefore need to keep it
-	 set to avoid lost wake-ups.  We have the same requirement in the
-	 simple mutex algorithm.  */
-      unsigned int assume_other_futex_waiters = 0;
-      while (1)
-	{
-	  /* Try to acquire the lock through a CAS from 0 (not acquired) to
-	     our TID | assume_other_futex_waiters.  */
-	  if (__glibc_likely ((oldval == 0)
-			      && (atomic_compare_and_exchange_bool_acq
-				  (&mutex->__data.__lock,
-				   id | assume_other_futex_waiters, 0) == 0)))
-	      break;
-
-	  if ((oldval & FUTEX_OWNER_DIED) != 0)
-	    {
-	      /* The previous owner died.  Try locking the mutex.  */
-	      int newval = id | (oldval & FUTEX_WAITERS)
-		  | assume_other_futex_waiters;
-
-	      newval
-		= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						       newval, oldval);
-	      if (newval != oldval)
-		{
-		  oldval = newval;
-		  continue;
-		}
-
-	      /* We got the mutex.  */
-	      mutex->__data.__count = 1;
-	      /* But it is inconsistent unless marked otherwise.  */
-	      mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
-
-	      /* We must not enqueue the mutex before we have acquired it.
-		 Also see comments at ENQUEUE_MUTEX.  */
-	      __asm ("" ::: "memory");
-	      ENQUEUE_MUTEX (mutex);
-	      /* We need to clear op_pending after we enqueue the mutex.  */
-	      __asm ("" ::: "memory");
-	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-	      /* Note that we deliberately exit here.  If we fall
-		 through to the end of the function __nusers would be
-		 incremented which is not correct because the old
-		 owner has to be discounted.  */
-	      return EOWNERDEAD;
-	    }
-
-	  /* Check whether we already hold the mutex.  */
-	  if (__glibc_unlikely ((oldval & FUTEX_TID_MASK) == id))
-	    {
-	      int kind = PTHREAD_MUTEX_TYPE (mutex);
-	      if (kind == PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP)
-		{
-		  /* We do not need to ensure ordering wrt another memory
-		     access.  Also see comments at ENQUEUE_MUTEX. */
-		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-				 NULL);
-		  return EDEADLK;
-		}
-
-	      if (kind == PTHREAD_MUTEX_ROBUST_RECURSIVE_NP)
-		{
-		  /* We do not need to ensure ordering wrt another memory
-		     access.  */
-		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-				 NULL);
-
-		  /* Just bump the counter.  */
-		  if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		    /* Overflow of the counter.  */
-		    return EAGAIN;
-
-		  ++mutex->__data.__count;
-
-		  LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
-
-		  return 0;
-		}
-	    }
-
-	  /* We are about to block; check whether the timeout is invalid.  */
-	  if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-	    return EINVAL;
-	  /* Work around the fact that the kernel rejects negative timeout
-	     values despite them being valid.  */
-	  if (__glibc_unlikely (abstime->tv_sec < 0))
-	    return ETIMEDOUT;
-#if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
-     || !defined lll_futex_timed_wait_bitset)
-	  struct timeval tv;
-	  struct timespec rt;
-
-	  /* Get the current time.  */
-	  (void) __gettimeofday (&tv, NULL);
-
-	  /* Compute relative timeout.  */
-	  rt.tv_sec = abstime->tv_sec - tv.tv_sec;
-	  rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
-	  if (rt.tv_nsec < 0)
-	    {
-	      rt.tv_nsec += 1000000000;
-	      --rt.tv_sec;
-	    }
-
-	  /* Already timed out?  */
-	  if (rt.tv_sec < 0)
-	    return ETIMEDOUT;
-#endif
-
-	  /* We cannot acquire the mutex nor has its owner died.  Thus, try
-	     to block using futexes.  Set FUTEX_WAITERS if necessary so that
-	     other threads are aware that there are potentially threads
-	     blocked on the futex.  Restart if oldval changed in the
-	     meantime.  */
-	  if ((oldval & FUTEX_WAITERS) == 0)
-	    {
-	      if (atomic_compare_and_exchange_bool_acq (&mutex->__data.__lock,
-							oldval | FUTEX_WAITERS,
-							oldval)
-		  != 0)
-		{
-		  oldval = mutex->__data.__lock;
-		  continue;
-		}
-	      oldval |= FUTEX_WAITERS;
-	    }
-
-	  /* It is now possible that we share the FUTEX_WAITERS flag with
-	     another thread; therefore, update assume_other_futex_waiters so
-	     that we do not forget about this when handling other cases
-	     above and thus do not cause lost wake-ups.  */
-	  assume_other_futex_waiters |= FUTEX_WAITERS;
-
-	  /* Block using the futex.  */
-#if (!defined __ASSUME_FUTEX_CLOCK_REALTIME \
-     || !defined lll_futex_timed_wait_bitset)
-	  lll_futex_timed wait (&mutex->__data.__lock, oldval,
-				&rt, PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
-#else
-	  int err = lll_futex_timed_wait_bitset (&mutex->__data.__lock,
-	      oldval, abstime, FUTEX_CLOCK_REALTIME,
-	      PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
-	  /* The futex call timed out.  */
-	  if (err == -ETIMEDOUT)
-	    return -err;
-#endif
-	  /* Reload current lock value.  */
-	  oldval = mutex->__data.__lock;
-	}
-
-      /* We have acquired the mutex; check if it is still consistent.  */
-      if (__builtin_expect (mutex->__data.__owner
-			    == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
-	{
-	  /* This mutex is now not recoverable.  */
-	  mutex->__data.__count = 0;
-	  int private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
-	  lll_unlock (mutex->__data.__lock, private);
-	  /* FIXME This violates the mutex destruction requirements.  See
-	     __pthread_mutex_unlock_full.  */
-	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	  return ENOTRECOVERABLE;
-	}
-
-      mutex->__data.__count = 1;
-      /* We must not enqueue the mutex before we have acquired it.
-	 Also see comments at ENQUEUE_MUTEX.  */
-      __asm ("" ::: "memory");
-      ENQUEUE_MUTEX (mutex);
-      /* We need to clear op_pending after we enqueue the mutex.  */
-      __asm ("" ::: "memory");
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-      break;
-
-    /* The PI support requires the Linux futex system call.  If that's not
-       available, pthread_mutex_init should never have allowed the type to
-       be set.  So it will get the default case for an invalid type.  */
-#ifdef __NR_futex
-    case PTHREAD_MUTEX_PI_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PI_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PI_NORMAL_NP:
-    case PTHREAD_MUTEX_PI_ADAPTIVE_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP:
-      {
-	int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
-	int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
-
-	if (robust)
-	  {
-	    /* Note: robust PI futexes are signaled by setting bit 0.  */
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-			   (void *) (((uintptr_t) &mutex->__data.__list.__next)
-				     | 1));
-	    /* We need to set op_pending before starting the operation.  Also
-	       see comments at ENQUEUE_MUTEX.  */
-	    __asm ("" ::: "memory");
-	  }
-
-	oldval = mutex->__data.__lock;
-
-	/* Check whether we already hold the mutex.  */
-	if (__glibc_unlikely ((oldval & FUTEX_TID_MASK) == id))
-	  {
-	    if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
-	      {
-		/* We do not need to ensure ordering wrt another memory
-		   access.  */
-		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-		return EDEADLK;
-	      }
-
-	    if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
-	      {
-		/* We do not need to ensure ordering wrt another memory
-		   access.  */
-		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-		/* Just bump the counter.  */
-		if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		  /* Overflow of the counter.  */
-		  return EAGAIN;
-
-		++mutex->__data.__count;
-
-		LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
-
-		return 0;
-	      }
-	  }
-
-	oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						      id, 0);
-
-	if (oldval != 0)
-	  {
-	    /* The mutex is locked.  The kernel will now take care of
-	       everything.  The timeout value must be a relative value.
-	       Convert it.  */
-	    int private = (robust
-			   ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
-			   : PTHREAD_MUTEX_PSHARED (mutex));
-	    INTERNAL_SYSCALL_DECL (__err);
-
-	    int e = INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
-				      __lll_private_flag (FUTEX_LOCK_PI,
-							  private), 1,
-				      abstime);
-	    if (INTERNAL_SYSCALL_ERROR_P (e, __err))
-	      {
-		if (INTERNAL_SYSCALL_ERRNO (e, __err) == ETIMEDOUT)
-		  return ETIMEDOUT;
-
-		if (INTERNAL_SYSCALL_ERRNO (e, __err) == ESRCH
-		    || INTERNAL_SYSCALL_ERRNO (e, __err) == EDEADLK)
-		  {
-		    assert (INTERNAL_SYSCALL_ERRNO (e, __err) != EDEADLK
-			    || (kind != PTHREAD_MUTEX_ERRORCHECK_NP
-				&& kind != PTHREAD_MUTEX_RECURSIVE_NP));
-		    /* ESRCH can happen only for non-robust PI mutexes where
-		       the owner of the lock died.  */
-		    assert (INTERNAL_SYSCALL_ERRNO (e, __err) != ESRCH
-			    || !robust);
-
-		    /* Delay the thread until the timeout is reached.
-		       Then return ETIMEDOUT.  */
-		    struct timespec reltime;
-		    struct timespec now;
-
-		    INTERNAL_SYSCALL (clock_gettime, __err, 2, CLOCK_REALTIME,
-				      &now);
-		    reltime.tv_sec = abstime->tv_sec - now.tv_sec;
-		    reltime.tv_nsec = abstime->tv_nsec - now.tv_nsec;
-		    if (reltime.tv_nsec < 0)
-		      {
-			reltime.tv_nsec += 1000000000;
-			--reltime.tv_sec;
-		      }
-		    if (reltime.tv_sec >= 0)
-		      while (nanosleep_not_cancel (&reltime, &reltime) != 0)
-			continue;
-
-		    return ETIMEDOUT;
-		  }
-
-		return INTERNAL_SYSCALL_ERRNO (e, __err);
-	      }
-
-	    oldval = mutex->__data.__lock;
-
-	    assert (robust || (oldval & FUTEX_OWNER_DIED) == 0);
-	  }
-
-	if (__glibc_unlikely (oldval & FUTEX_OWNER_DIED))
-	  {
-	    atomic_and (&mutex->__data.__lock, ~FUTEX_OWNER_DIED);
-
-	    /* We got the mutex.  */
-	    mutex->__data.__count = 1;
-	    /* But it is inconsistent unless marked otherwise.  */
-	    mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
-
-	    /* We must not enqueue the mutex before we have acquired it.
-	       Also see comments at ENQUEUE_MUTEX.  */
-	    __asm ("" ::: "memory");
-	    ENQUEUE_MUTEX_PI (mutex);
-	    /* We need to clear op_pending after we enqueue the mutex.  */
-	    __asm ("" ::: "memory");
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-	    /* Note that we deliberately exit here.  If we fall
-	       through to the end of the function __nusers would be
-	       incremented which is not correct because the old owner
-	       has to be discounted.  */
-	    return EOWNERDEAD;
-	  }
-
-	if (robust
-	    && __builtin_expect (mutex->__data.__owner
-				 == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
-	  {
-	    /* This mutex is now not recoverable.  */
-	    mutex->__data.__count = 0;
-
-	    INTERNAL_SYSCALL_DECL (__err);
-	    INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
-			      __lll_private_flag (FUTEX_UNLOCK_PI,
-						  PTHREAD_ROBUST_MUTEX_PSHARED (mutex)),
-			      0, 0);
-
-	    /* To the kernel, this will be visible after the kernel has
-	       acquired the mutex in the syscall.  */
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	    return ENOTRECOVERABLE;
-	  }
-
-	mutex->__data.__count = 1;
-	if (robust)
-	  {
-	    /* We must not enqueue the mutex before we have acquired it.
-	       Also see comments at ENQUEUE_MUTEX.  */
-	    __asm ("" ::: "memory");
-	    ENQUEUE_MUTEX_PI (mutex);
-	    /* We need to clear op_pending after we enqueue the mutex.  */
-	    __asm ("" ::: "memory");
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	  }
-	}
-      break;
-#endif  /* __NR_futex.  */
-
-    case PTHREAD_MUTEX_PP_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PP_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PP_NORMAL_NP:
-    case PTHREAD_MUTEX_PP_ADAPTIVE_NP:
-      {
-	int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
-
-	oldval = mutex->__data.__lock;
-
-	/* Check whether we already hold the mutex.  */
-	if (mutex->__data.__owner == id)
-	  {
-	    if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
-	      return EDEADLK;
-
-	    if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
-	      {
-		/* Just bump the counter.  */
-		if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		  /* Overflow of the counter.  */
-		  return EAGAIN;
-
-		++mutex->__data.__count;
-
-		LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
-
-		return 0;
-	      }
-	  }
-
-	int oldprio = -1, ceilval;
-	do
-	  {
-	    int ceiling = (oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK)
-			  >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-
-	    if (__pthread_current_priority () > ceiling)
-	      {
-		result = EINVAL;
-	      failpp:
-		if (oldprio != -1)
-		  __pthread_tpp_change_priority (oldprio, -1);
-		return result;
-	      }
-
-	    result = __pthread_tpp_change_priority (oldprio, ceiling);
-	    if (result)
-	      return result;
-
-	    ceilval = ceiling << PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-	    oldprio = ceiling;
-
-	    oldval
-	      = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						     ceilval | 1, ceilval);
-
-	    if (oldval == ceilval)
-	      break;
-
-	    do
-	      {
-		oldval
-		  = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-							 ceilval | 2,
-							 ceilval | 1);
-
-		if ((oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK) != ceilval)
-		  break;
-
-		if (oldval != ceilval)
-		  {
-		    /* Reject invalid timeouts.  */
-		    if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-		      {
-			result = EINVAL;
-			goto failpp;
-		      }
-
-		    struct timeval tv;
-		    struct timespec rt;
-
-		    /* Get the current time.  */
-		    (void) __gettimeofday (&tv, NULL);
-
-		    /* Compute relative timeout.  */
-		    rt.tv_sec = abstime->tv_sec - tv.tv_sec;
-		    rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
-		    if (rt.tv_nsec < 0)
-		      {
-			rt.tv_nsec += 1000000000;
-			--rt.tv_sec;
-		      }
-
-		    /* Already timed out?  */
-		    if (rt.tv_sec < 0)
-		      {
-			result = ETIMEDOUT;
-			goto failpp;
-		      }
-
-		    lll_futex_timed_wait (&mutex->__data.__lock,
-					  ceilval | 2, &rt,
-					  PTHREAD_MUTEX_PSHARED (mutex));
-		  }
-	      }
-	    while (atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-							ceilval | 2, ceilval)
-		   != ceilval);
-	  }
-	while ((oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK) != ceilval);
-
-	assert (mutex->__data.__owner == 0);
-	mutex->__data.__count = 1;
-      }
-      break;
-
-    default:
-      /* Correct code cannot set any other type.  */
-      return EINVAL;
-    }
-
-  if (result == 0)
-    {
-      /* Record the ownership.  */
-      mutex->__data.__owner = id;
-      ++mutex->__data.__nusers;
-
-      LIBC_PROBE (mutex_timedlock_acquired, 1, mutex);
-    }
-
- out:
-  return result;
-}
diff --git a/nptl/pthread_mutex_trylock.c b/nptl/pthread_mutex_trylock.c
deleted file mode 100644
index e514997be8..0000000000
--- a/nptl/pthread_mutex_trylock.c
+++ /dev/null
@@ -1,408 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <lowlevellock.h>
-
-#ifndef lll_trylock_elision
-#define lll_trylock_elision(a,t) lll_trylock(a)
-#endif
-
-#ifndef FORCE_ELISION
-#define FORCE_ELISION(m, s)
-#endif
-
-int
-__pthread_mutex_trylock (pthread_mutex_t *mutex)
-{
-  int oldval;
-  pid_t id = THREAD_GETMEM (THREAD_SELF, tid);
-
-  switch (__builtin_expect (PTHREAD_MUTEX_TYPE_ELISION (mutex),
-			    PTHREAD_MUTEX_TIMED_NP))
-    {
-      /* Recursive mutex.  */
-    case PTHREAD_MUTEX_RECURSIVE_NP|PTHREAD_MUTEX_ELISION_NP:
-    case PTHREAD_MUTEX_RECURSIVE_NP:
-      /* Check whether we already hold the mutex.  */
-      if (mutex->__data.__owner == id)
-	{
-	  /* Just bump the counter.  */
-	  if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-	    /* Overflow of the counter.  */
-	    return EAGAIN;
-
-	  ++mutex->__data.__count;
-	  return 0;
-	}
-
-      if (lll_trylock (mutex->__data.__lock) == 0)
-	{
-	  /* Record the ownership.  */
-	  mutex->__data.__owner = id;
-	  mutex->__data.__count = 1;
-	  ++mutex->__data.__nusers;
-	  return 0;
-	}
-      break;
-
-    case PTHREAD_MUTEX_TIMED_ELISION_NP:
-    elision: __attribute__((unused))
-      if (lll_trylock_elision (mutex->__data.__lock,
-			       mutex->__data.__elision) != 0)
-	break;
-      /* Don't record the ownership.  */
-      return 0;
-
-    case PTHREAD_MUTEX_TIMED_NP:
-      FORCE_ELISION (mutex, goto elision);
-      /*FALL THROUGH*/
-    case PTHREAD_MUTEX_ADAPTIVE_NP:
-    case PTHREAD_MUTEX_ERRORCHECK_NP:
-      if (lll_trylock (mutex->__data.__lock) != 0)
-	break;
-
-      /* Record the ownership.  */
-      mutex->__data.__owner = id;
-      ++mutex->__data.__nusers;
-
-      return 0;
-
-    case PTHREAD_MUTEX_ROBUST_RECURSIVE_NP:
-    case PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_ROBUST_NORMAL_NP:
-    case PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP:
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-		     &mutex->__data.__list.__next);
-
-      oldval = mutex->__data.__lock;
-      do
-	{
-	again:
-	  if ((oldval & FUTEX_OWNER_DIED) != 0)
-	    {
-	      /* The previous owner died.  Try locking the mutex.  */
-	      int newval = id | (oldval & FUTEX_WAITERS);
-
-	      newval
-		= atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						       newval, oldval);
-
-	      if (newval != oldval)
-		{
-		  oldval = newval;
-		  goto again;
-		}
-
-	      /* We got the mutex.  */
-	      mutex->__data.__count = 1;
-	      /* But it is inconsistent unless marked otherwise.  */
-	      mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
-
-	      ENQUEUE_MUTEX (mutex);
-	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-	      /* Note that we deliberately exist here.  If we fall
-		 through to the end of the function __nusers would be
-		 incremented which is not correct because the old
-		 owner has to be discounted.  */
-	      return EOWNERDEAD;
-	    }
-
-	  /* Check whether we already hold the mutex.  */
-	  if (__glibc_unlikely ((oldval & FUTEX_TID_MASK) == id))
-	    {
-	      int kind = PTHREAD_MUTEX_TYPE (mutex);
-	      if (kind == PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP)
-		{
-		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-				 NULL);
-		  return EDEADLK;
-		}
-
-	      if (kind == PTHREAD_MUTEX_ROBUST_RECURSIVE_NP)
-		{
-		  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-				 NULL);
-
-		  /* Just bump the counter.  */
-		  if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		    /* Overflow of the counter.  */
-		    return EAGAIN;
-
-		  ++mutex->__data.__count;
-
-		  return 0;
-		}
-	    }
-
-	  oldval = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-							id, 0);
-	  if (oldval != 0 && (oldval & FUTEX_OWNER_DIED) == 0)
-	    {
-	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-	      return EBUSY;
-	    }
-
-	  if (__builtin_expect (mutex->__data.__owner
-				== PTHREAD_MUTEX_NOTRECOVERABLE, 0))
-	    {
-	      /* This mutex is now not recoverable.  */
-	      mutex->__data.__count = 0;
-	      if (oldval == id)
-		lll_unlock (mutex->__data.__lock,
-			    PTHREAD_ROBUST_MUTEX_PSHARED (mutex));
-	      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	      return ENOTRECOVERABLE;
-	    }
-	}
-      while ((oldval & FUTEX_OWNER_DIED) != 0);
-
-      ENQUEUE_MUTEX (mutex);
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-      mutex->__data.__owner = id;
-      ++mutex->__data.__nusers;
-      mutex->__data.__count = 1;
-
-      return 0;
-
-    /* The PI support requires the Linux futex system call.  If that's not
-       available, pthread_mutex_init should never have allowed the type to
-       be set.  So it will get the default case for an invalid type.  */
-#ifdef __NR_futex
-    case PTHREAD_MUTEX_PI_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PI_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PI_NORMAL_NP:
-    case PTHREAD_MUTEX_PI_ADAPTIVE_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP:
-      {
-	int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
-	int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
-
-	if (robust)
-	  /* Note: robust PI futexes are signaled by setting bit 0.  */
-	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-			 (void *) (((uintptr_t) &mutex->__data.__list.__next)
-				   | 1));
-
-	oldval = mutex->__data.__lock;
-
-	/* Check whether we already hold the mutex.  */
-	if (__glibc_unlikely ((oldval & FUTEX_TID_MASK) == id))
-	  {
-	    if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
-	      {
-		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-		return EDEADLK;
-	      }
-
-	    if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
-	      {
-		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-		/* Just bump the counter.  */
-		if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		  /* Overflow of the counter.  */
-		  return EAGAIN;
-
-		++mutex->__data.__count;
-
-		return 0;
-	      }
-	  }
-
-	oldval
-	  = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						 id, 0);
-
-	if (oldval != 0)
-	  {
-	    if ((oldval & FUTEX_OWNER_DIED) == 0)
-	      {
-		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-		return EBUSY;
-	      }
-
-	    assert (robust);
-
-	    /* The mutex owner died.  The kernel will now take care of
-	       everything.  */
-	    int private = (robust
-			   ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
-			   : PTHREAD_MUTEX_PSHARED (mutex));
-	    INTERNAL_SYSCALL_DECL (__err);
-	    int e = INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
-				      __lll_private_flag (FUTEX_TRYLOCK_PI,
-							  private), 0, 0);
-
-	    if (INTERNAL_SYSCALL_ERROR_P (e, __err)
-		&& INTERNAL_SYSCALL_ERRNO (e, __err) == EWOULDBLOCK)
-	      {
-		THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-		return EBUSY;
-	      }
-
-	    oldval = mutex->__data.__lock;
-	  }
-
-	if (__glibc_unlikely (oldval & FUTEX_OWNER_DIED))
-	  {
-	    atomic_and (&mutex->__data.__lock, ~FUTEX_OWNER_DIED);
-
-	    /* We got the mutex.  */
-	    mutex->__data.__count = 1;
-	    /* But it is inconsistent unless marked otherwise.  */
-	    mutex->__data.__owner = PTHREAD_MUTEX_INCONSISTENT;
-
-	    ENQUEUE_MUTEX (mutex);
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-
-	    /* Note that we deliberately exit here.  If we fall
-	       through to the end of the function __nusers would be
-	       incremented which is not correct because the old owner
-	       has to be discounted.  */
-	    return EOWNERDEAD;
-	  }
-
-	if (robust
-	    && __builtin_expect (mutex->__data.__owner
-				 == PTHREAD_MUTEX_NOTRECOVERABLE, 0))
-	  {
-	    /* This mutex is now not recoverable.  */
-	    mutex->__data.__count = 0;
-
-	    INTERNAL_SYSCALL_DECL (__err);
-	    INTERNAL_SYSCALL (futex, __err, 4, &mutex->__data.__lock,
-			      __lll_private_flag (FUTEX_UNLOCK_PI,
-						  PTHREAD_ROBUST_MUTEX_PSHARED (mutex)),
-			      0, 0);
-
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	    return ENOTRECOVERABLE;
-	  }
-
-	if (robust)
-	  {
-	    ENQUEUE_MUTEX_PI (mutex);
-	    THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-	  }
-
-	mutex->__data.__owner = id;
-	++mutex->__data.__nusers;
-	mutex->__data.__count = 1;
-
-	return 0;
-      }
-#endif  /* __NR_futex.  */
-
-    case PTHREAD_MUTEX_PP_RECURSIVE_NP:
-    case PTHREAD_MUTEX_PP_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PP_NORMAL_NP:
-    case PTHREAD_MUTEX_PP_ADAPTIVE_NP:
-      {
-	int kind = mutex->__data.__kind & PTHREAD_MUTEX_KIND_MASK_NP;
-
-	oldval = mutex->__data.__lock;
-
-	/* Check whether we already hold the mutex.  */
-	if (mutex->__data.__owner == id)
-	  {
-	    if (kind == PTHREAD_MUTEX_ERRORCHECK_NP)
-	      return EDEADLK;
-
-	    if (kind == PTHREAD_MUTEX_RECURSIVE_NP)
-	      {
-		/* Just bump the counter.  */
-		if (__glibc_unlikely (mutex->__data.__count + 1 == 0))
-		  /* Overflow of the counter.  */
-		  return EAGAIN;
-
-		++mutex->__data.__count;
-
-		return 0;
-	      }
-	  }
-
-	int oldprio = -1, ceilval;
-	do
-	  {
-	    int ceiling = (oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK)
-			  >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-
-	    if (__pthread_current_priority () > ceiling)
-	      {
-		if (oldprio != -1)
-		  __pthread_tpp_change_priority (oldprio, -1);
-		return EINVAL;
-	      }
-
-	    int retval = __pthread_tpp_change_priority (oldprio, ceiling);
-	    if (retval)
-	      return retval;
-
-	    ceilval = ceiling << PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-	    oldprio = ceiling;
-
-	    oldval
-	      = atomic_compare_and_exchange_val_acq (&mutex->__data.__lock,
-						     ceilval | 1, ceilval);
-
-	    if (oldval == ceilval)
-	      break;
-	  }
-	while ((oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK) != ceilval);
-
-	if (oldval != ceilval)
-	  {
-	    __pthread_tpp_change_priority (oldprio, -1);
-	    break;
-	  }
-
-	assert (mutex->__data.__owner == 0);
-	/* Record the ownership.  */
-	mutex->__data.__owner = id;
-	++mutex->__data.__nusers;
-	mutex->__data.__count = 1;
-
-	return 0;
-      }
-      break;
-
-    default:
-      /* Correct code cannot set any other type.  */
-      return EINVAL;
-    }
-
-  return EBUSY;
-}
-
-#ifndef __pthread_mutex_trylock
-#ifndef pthread_mutex_trylock
-strong_alias (__pthread_mutex_trylock, pthread_mutex_trylock)
-#endif
-#endif
diff --git a/nptl/pthread_mutex_unlock.c b/nptl/pthread_mutex_unlock.c
deleted file mode 100644
index f701d4e274..0000000000
--- a/nptl/pthread_mutex_unlock.c
+++ /dev/null
@@ -1,350 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-#include <lowlevellock.h>
-#include <stap-probe.h>
-
-#ifndef lll_unlock_elision
-#define lll_unlock_elision(a,b,c) ({ lll_unlock (a,c); 0; })
-#endif
-
-static int
-internal_function
-__pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
-     __attribute_noinline__;
-
-int
-internal_function attribute_hidden
-__pthread_mutex_unlock_usercnt (pthread_mutex_t *mutex, int decr)
-{
-  int type = PTHREAD_MUTEX_TYPE_ELISION (mutex);
-  if (__builtin_expect (type &
-		~(PTHREAD_MUTEX_KIND_MASK_NP|PTHREAD_MUTEX_ELISION_FLAGS_NP), 0))
-    return __pthread_mutex_unlock_full (mutex, decr);
-
-  if (__builtin_expect (type, PTHREAD_MUTEX_TIMED_NP)
-      == PTHREAD_MUTEX_TIMED_NP)
-    {
-      /* Always reset the owner field.  */
-    normal:
-      mutex->__data.__owner = 0;
-      if (decr)
-	/* One less user.  */
-	--mutex->__data.__nusers;
-
-      /* Unlock.  */
-      lll_unlock (mutex->__data.__lock, PTHREAD_MUTEX_PSHARED (mutex));
-
-      LIBC_PROBE (mutex_release, 1, mutex);
-
-      return 0;
-    }
-  else if (__glibc_likely (type == PTHREAD_MUTEX_TIMED_ELISION_NP))
-    {
-      /* Don't reset the owner/users fields for elision.  */
-      return lll_unlock_elision (mutex->__data.__lock, mutex->__data.__elision,
-				      PTHREAD_MUTEX_PSHARED (mutex));
-    }
-  else if (__builtin_expect (PTHREAD_MUTEX_TYPE (mutex)
-			      == PTHREAD_MUTEX_RECURSIVE_NP, 1))
-    {
-      /* Recursive mutex.  */
-      if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid))
-	return EPERM;
-
-      if (--mutex->__data.__count != 0)
-	/* We still hold the mutex.  */
-	return 0;
-      goto normal;
-    }
-  else if (__builtin_expect (PTHREAD_MUTEX_TYPE (mutex)
-			      == PTHREAD_MUTEX_ADAPTIVE_NP, 1))
-    goto normal;
-  else
-    {
-      /* Error checking mutex.  */
-      assert (type == PTHREAD_MUTEX_ERRORCHECK_NP);
-      if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid)
-	  || ! lll_islocked (mutex->__data.__lock))
-	return EPERM;
-      goto normal;
-    }
-}
-
-
-static int
-internal_function
-__pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
-{
-  int newowner = 0;
-  int private;
-
-  switch (PTHREAD_MUTEX_TYPE (mutex))
-    {
-    case PTHREAD_MUTEX_ROBUST_RECURSIVE_NP:
-      /* Recursive mutex.  */
-      if ((mutex->__data.__lock & FUTEX_TID_MASK)
-	  == THREAD_GETMEM (THREAD_SELF, tid)
-	  && __builtin_expect (mutex->__data.__owner
-			       == PTHREAD_MUTEX_INCONSISTENT, 0))
-	{
-	  if (--mutex->__data.__count != 0)
-	    /* We still hold the mutex.  */
-	    return ENOTRECOVERABLE;
-
-	  goto notrecoverable;
-	}
-
-      if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid))
-	return EPERM;
-
-      if (--mutex->__data.__count != 0)
-	/* We still hold the mutex.  */
-	return 0;
-
-      goto robust;
-
-    case PTHREAD_MUTEX_ROBUST_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_ROBUST_NORMAL_NP:
-    case PTHREAD_MUTEX_ROBUST_ADAPTIVE_NP:
-      if ((mutex->__data.__lock & FUTEX_TID_MASK)
-	  != THREAD_GETMEM (THREAD_SELF, tid)
-	  || ! lll_islocked (mutex->__data.__lock))
-	return EPERM;
-
-      /* If the previous owner died and the caller did not succeed in
-	 making the state consistent, mark the mutex as unrecoverable
-	 and make all waiters.  */
-      if (__builtin_expect (mutex->__data.__owner
-			    == PTHREAD_MUTEX_INCONSISTENT, 0))
-      notrecoverable:
-	newowner = PTHREAD_MUTEX_NOTRECOVERABLE;
-
-    robust:
-      /* Remove mutex from the list.  */
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-		     &mutex->__data.__list.__next);
-      /* We must set op_pending before we dequeue the mutex.  Also see
-	 comments at ENQUEUE_MUTEX.  */
-      __asm ("" ::: "memory");
-      DEQUEUE_MUTEX (mutex);
-
-      mutex->__data.__owner = newowner;
-      if (decr)
-	/* One less user.  */
-	--mutex->__data.__nusers;
-
-      /* Unlock by setting the lock to 0 (not acquired); if the lock had
-	 FUTEX_WAITERS set previously, then wake any waiters.
-         The unlock operation must be the last access to the mutex to not
-         violate the mutex destruction requirements (see __lll_unlock).  */
-      private = PTHREAD_ROBUST_MUTEX_PSHARED (mutex);
-      if (__glibc_unlikely ((atomic_exchange_rel (&mutex->__data.__lock, 0)
-			     & FUTEX_WAITERS) != 0))
-	lll_futex_wake (&mutex->__data.__lock, 1, private);
-
-      /* We must clear op_pending after we release the mutex.
-	 FIXME However, this violates the mutex destruction requirements
-	 because another thread could acquire the mutex, destroy it, and
-	 reuse the memory for something else; then, if this thread crashes,
-	 and the memory happens to have a value equal to the TID, the kernel
-	 will believe it is still related to the mutex (which has been
-	 destroyed already) and will modify some other random object.  */
-      __asm ("" ::: "memory");
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-      break;
-
-    /* The PI support requires the Linux futex system call.  If that's not
-       available, pthread_mutex_init should never have allowed the type to
-       be set.  So it will get the default case for an invalid type.  */
-#ifdef __NR_futex
-    case PTHREAD_MUTEX_PI_RECURSIVE_NP:
-      /* Recursive mutex.  */
-      if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid))
-	return EPERM;
-
-      if (--mutex->__data.__count != 0)
-	/* We still hold the mutex.  */
-	return 0;
-      goto continue_pi_non_robust;
-
-    case PTHREAD_MUTEX_PI_ROBUST_RECURSIVE_NP:
-      /* Recursive mutex.  */
-      if ((mutex->__data.__lock & FUTEX_TID_MASK)
-	  == THREAD_GETMEM (THREAD_SELF, tid)
-	  && __builtin_expect (mutex->__data.__owner
-			       == PTHREAD_MUTEX_INCONSISTENT, 0))
-	{
-	  if (--mutex->__data.__count != 0)
-	    /* We still hold the mutex.  */
-	    return ENOTRECOVERABLE;
-
-	  goto pi_notrecoverable;
-	}
-
-      if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid))
-	return EPERM;
-
-      if (--mutex->__data.__count != 0)
-	/* We still hold the mutex.  */
-	return 0;
-
-      goto continue_pi_robust;
-
-    case PTHREAD_MUTEX_PI_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PI_NORMAL_NP:
-    case PTHREAD_MUTEX_PI_ADAPTIVE_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_ERRORCHECK_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_NORMAL_NP:
-    case PTHREAD_MUTEX_PI_ROBUST_ADAPTIVE_NP:
-      if ((mutex->__data.__lock & FUTEX_TID_MASK)
-	  != THREAD_GETMEM (THREAD_SELF, tid)
-	  || ! lll_islocked (mutex->__data.__lock))
-	return EPERM;
-
-      /* If the previous owner died and the caller did not succeed in
-	 making the state consistent, mark the mutex as unrecoverable
-	 and make all waiters.  */
-      if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0
-	  && __builtin_expect (mutex->__data.__owner
-			       == PTHREAD_MUTEX_INCONSISTENT, 0))
-      pi_notrecoverable:
-       newowner = PTHREAD_MUTEX_NOTRECOVERABLE;
-
-      if ((mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP) != 0)
-	{
-	continue_pi_robust:
-	  /* Remove mutex from the list.
-	     Note: robust PI futexes are signaled by setting bit 0.  */
-	  THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending,
-			 (void *) (((uintptr_t) &mutex->__data.__list.__next)
-				   | 1));
-	  /* We must set op_pending before we dequeue the mutex.  Also see
-	     comments at ENQUEUE_MUTEX.  */
-	  __asm ("" ::: "memory");
-	  DEQUEUE_MUTEX (mutex);
-	}
-
-    continue_pi_non_robust:
-      mutex->__data.__owner = newowner;
-      if (decr)
-	/* One less user.  */
-	--mutex->__data.__nusers;
-
-      /* Unlock.  Load all necessary mutex data before releasing the mutex
-	 to not violate the mutex destruction requirements (see
-	 lll_unlock).  */
-      int robust = mutex->__data.__kind & PTHREAD_MUTEX_ROBUST_NORMAL_NP;
-      private = (robust
-		 ? PTHREAD_ROBUST_MUTEX_PSHARED (mutex)
-		 : PTHREAD_MUTEX_PSHARED (mutex));
-      /* Unlock the mutex using a CAS unless there are futex waiters or our
-	 TID is not the value of __lock anymore, in which case we let the
-	 kernel take care of the situation.  Use release MO in the CAS to
-	 synchronize with acquire MO in lock acquisitions.  */
-      int l = atomic_load_relaxed (&mutex->__data.__lock);
-      do
-	{
-	  if (((l & FUTEX_WAITERS) != 0)
-	      || (l != THREAD_GETMEM (THREAD_SELF, tid)))
-	    {
-	      INTERNAL_SYSCALL_DECL (__err);
-	      INTERNAL_SYSCALL (futex, __err, 2, &mutex->__data.__lock,
-				__lll_private_flag (FUTEX_UNLOCK_PI, private));
-	      break;
-	    }
-	}
-      while (!atomic_compare_exchange_weak_release (&mutex->__data.__lock,
-						    &l, 0));
-
-      /* This happens after the kernel releases the mutex but violates the
-	 mutex destruction requirements; see comments in the code handling
-	 PTHREAD_MUTEX_ROBUST_NORMAL_NP.  */
-      THREAD_SETMEM (THREAD_SELF, robust_head.list_op_pending, NULL);
-      break;
-#endif  /* __NR_futex.  */
-
-    case PTHREAD_MUTEX_PP_RECURSIVE_NP:
-      /* Recursive mutex.  */
-      if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid))
-	return EPERM;
-
-      if (--mutex->__data.__count != 0)
-	/* We still hold the mutex.  */
-	return 0;
-      goto pp;
-
-    case PTHREAD_MUTEX_PP_ERRORCHECK_NP:
-      /* Error checking mutex.  */
-      if (mutex->__data.__owner != THREAD_GETMEM (THREAD_SELF, tid)
-	  || (mutex->__data.__lock & ~ PTHREAD_MUTEX_PRIO_CEILING_MASK) == 0)
-	return EPERM;
-      /* FALLTHROUGH */
-
-    case PTHREAD_MUTEX_PP_NORMAL_NP:
-    case PTHREAD_MUTEX_PP_ADAPTIVE_NP:
-      /* Always reset the owner field.  */
-    pp:
-      mutex->__data.__owner = 0;
-
-      if (decr)
-	/* One less user.  */
-	--mutex->__data.__nusers;
-
-      /* Unlock.  Use release MO in the CAS to synchronize with acquire MO in
-	 lock acquisitions.  */
-      int newval;
-      int oldval = atomic_load_relaxed (&mutex->__data.__lock);
-      do
-	{
-	  newval = oldval & PTHREAD_MUTEX_PRIO_CEILING_MASK;
-	}
-      while (!atomic_compare_exchange_weak_release (&mutex->__data.__lock,
-						    &oldval, newval));
-
-      if ((oldval & ~PTHREAD_MUTEX_PRIO_CEILING_MASK) > 1)
-	lll_futex_wake (&mutex->__data.__lock, 1,
-			PTHREAD_MUTEX_PSHARED (mutex));
-
-      int oldprio = newval >> PTHREAD_MUTEX_PRIO_CEILING_SHIFT;
-
-      LIBC_PROBE (mutex_release, 1, mutex);
-
-      return __pthread_tpp_change_priority (oldprio, -1);
-
-    default:
-      /* Correct code cannot set any other type.  */
-      return EINVAL;
-    }
-
-  LIBC_PROBE (mutex_release, 1, mutex);
-  return 0;
-}
-
-
-int
-__pthread_mutex_unlock (pthread_mutex_t *mutex)
-{
-  return __pthread_mutex_unlock_usercnt (mutex, 1);
-}
-strong_alias (__pthread_mutex_unlock, pthread_mutex_unlock)
-hidden_def (__pthread_mutex_unlock)
diff --git a/nptl/pthread_mutexattr_destroy.c b/nptl/pthread_mutexattr_destroy.c
deleted file mode 100644
index 3dd2d6c580..0000000000
--- a/nptl/pthread_mutexattr_destroy.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-
-int
-__pthread_mutexattr_destroy (pthread_mutexattr_t *attr)
-{
-  return 0;
-}
-strong_alias (__pthread_mutexattr_destroy, pthread_mutexattr_destroy)
diff --git a/nptl/pthread_mutexattr_getprioceiling.c b/nptl/pthread_mutexattr_getprioceiling.c
deleted file mode 100644
index 7d3944d25f..0000000000
--- a/nptl/pthread_mutexattr_getprioceiling.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Get priority ceiling setting from pthread_mutexattr_t.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-#include <atomic.h>
-
-
-int
-pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *attr,
-				  int *prioceiling)
-{
-  const struct pthread_mutexattr *iattr;
-  int ceiling;
-
-  iattr = (const struct pthread_mutexattr *) attr;
-
-  ceiling = ((iattr->mutexkind & PTHREAD_MUTEXATTR_PRIO_CEILING_MASK)
-	     >> PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT);
-
-  if (! ceiling)
-    {
-      /* See __init_sched_fifo_prio.  */
-      if (atomic_load_relaxed (&__sched_fifo_min_prio) == -1)
-	__init_sched_fifo_prio ();
-      if (ceiling < atomic_load_relaxed (&__sched_fifo_min_prio))
-	ceiling = atomic_load_relaxed (&__sched_fifo_min_prio);
-    }
-
-  *prioceiling = ceiling;
-
-  return 0;
-}
diff --git a/nptl/pthread_mutexattr_getprotocol.c b/nptl/pthread_mutexattr_getprotocol.c
deleted file mode 100644
index d5856ac14f..0000000000
--- a/nptl/pthread_mutexattr_getprotocol.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Get priority protocol setting from pthread_mutexattr_t.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-
-int
-pthread_mutexattr_getprotocol (const pthread_mutexattr_t *attr, int *protocol)
-{
-  const struct pthread_mutexattr *iattr;
-
-  iattr = (const struct pthread_mutexattr *) attr;
-
-  *protocol = ((iattr->mutexkind & PTHREAD_MUTEXATTR_PROTOCOL_MASK)
-	       >> PTHREAD_MUTEXATTR_PROTOCOL_SHIFT);
-
-  return 0;
-}
diff --git a/nptl/pthread_mutexattr_getpshared.c b/nptl/pthread_mutexattr_getpshared.c
deleted file mode 100644
index 793c349cbd..0000000000
--- a/nptl/pthread_mutexattr_getpshared.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-
-int
-pthread_mutexattr_getpshared (const pthread_mutexattr_t *attr, int *pshared)
-{
-  const struct pthread_mutexattr *iattr;
-
-  iattr = (const struct pthread_mutexattr *) attr;
-
-  *pshared = ((iattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_PSHARED) != 0
-	      ? PTHREAD_PROCESS_SHARED : PTHREAD_PROCESS_PRIVATE);
-
-  return 0;
-}
diff --git a/nptl/pthread_mutexattr_getrobust.c b/nptl/pthread_mutexattr_getrobust.c
deleted file mode 100644
index 833dca2206..0000000000
--- a/nptl/pthread_mutexattr_getrobust.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-
-int
-pthread_mutexattr_getrobust (const pthread_mutexattr_t *attr, int *robustness)
-{
-  const struct pthread_mutexattr *iattr;
-
-  iattr = (const struct pthread_mutexattr *) attr;
-
-  *robustness = ((iattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_ROBUST) != 0
-		 ? PTHREAD_MUTEX_ROBUST_NP : PTHREAD_MUTEX_STALLED_NP);
-
-  return 0;
-}
-weak_alias (pthread_mutexattr_getrobust, pthread_mutexattr_getrobust_np)
diff --git a/nptl/pthread_mutexattr_gettype.c b/nptl/pthread_mutexattr_gettype.c
deleted file mode 100644
index 1e915b1c45..0000000000
--- a/nptl/pthread_mutexattr_gettype.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-
-int
-pthread_mutexattr_gettype (const pthread_mutexattr_t *attr, int *kind)
-{
-  const struct pthread_mutexattr *iattr;
-
-  iattr = (const struct pthread_mutexattr *) attr;
-
-  *kind = (iattr->mutexkind & ~PTHREAD_MUTEXATTR_FLAG_BITS
-	   & ~PTHREAD_MUTEX_NO_ELISION_NP);
-
-  return 0;
-}
-weak_alias (pthread_mutexattr_gettype, pthread_mutexattr_getkind_np)
diff --git a/nptl/pthread_mutexattr_init.c b/nptl/pthread_mutexattr_init.c
deleted file mode 100644
index 210d490c44..0000000000
--- a/nptl/pthread_mutexattr_init.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <string.h>
-#include <pthreadP.h>
-
-
-int
-__pthread_mutexattr_init (pthread_mutexattr_t *attr)
-{
-  if (sizeof (struct pthread_mutexattr) != sizeof (pthread_mutexattr_t))
-    memset (attr, '\0', sizeof (*attr));
-
-  /* We use bit 31 to signal whether the mutex is going to be
-     process-shared or not.  By default it is zero, i.e., the mutex is
-     not process-shared.  */
-  ((struct pthread_mutexattr *) attr)->mutexkind = PTHREAD_MUTEX_NORMAL;
-
-  return 0;
-}
-strong_alias (__pthread_mutexattr_init, pthread_mutexattr_init)
diff --git a/nptl/pthread_mutexattr_setprioceiling.c b/nptl/pthread_mutexattr_setprioceiling.c
deleted file mode 100644
index b6edc21648..0000000000
--- a/nptl/pthread_mutexattr_setprioceiling.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Change priority ceiling setting in pthread_mutexattr_t.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-#include <atomic.h>
-
-
-int
-pthread_mutexattr_setprioceiling (pthread_mutexattr_t *attr, int prioceiling)
-{
-  /* See __init_sched_fifo_prio.  */
-  if (atomic_load_relaxed (&__sched_fifo_min_prio) == -1
-      || atomic_load_relaxed (&__sched_fifo_max_prio) == -1)
-    __init_sched_fifo_prio ();
-
-  if (__glibc_unlikely (prioceiling
-			< atomic_load_relaxed (&__sched_fifo_min_prio))
-      || __glibc_unlikely (prioceiling
-			   > atomic_load_relaxed (&__sched_fifo_max_prio))
-      || __glibc_unlikely ((prioceiling
-			    & (PTHREAD_MUTEXATTR_PRIO_CEILING_MASK
-			       >> PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT))
-			   != prioceiling))
-    return EINVAL;
-
-  struct pthread_mutexattr *iattr = (struct pthread_mutexattr *) attr;
-
-  iattr->mutexkind = ((iattr->mutexkind & ~PTHREAD_MUTEXATTR_PRIO_CEILING_MASK)
-		      | (prioceiling << PTHREAD_MUTEXATTR_PRIO_CEILING_SHIFT));
-
-  return 0;
-}
diff --git a/nptl/pthread_mutexattr_setprotocol.c b/nptl/pthread_mutexattr_setprotocol.c
deleted file mode 100644
index 301fd0a4fc..0000000000
--- a/nptl/pthread_mutexattr_setprotocol.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Change priority protocol setting in pthread_mutexattr_t.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-
-
-int
-pthread_mutexattr_setprotocol (pthread_mutexattr_t *attr, int protocol)
-{
-  if (protocol != PTHREAD_PRIO_NONE
-      && protocol != PTHREAD_PRIO_INHERIT
-      && __builtin_expect (protocol != PTHREAD_PRIO_PROTECT, 0))
-    return EINVAL;
-
-  struct pthread_mutexattr *iattr = (struct pthread_mutexattr *) attr;
-
-  iattr->mutexkind = ((iattr->mutexkind & ~PTHREAD_MUTEXATTR_PROTOCOL_MASK)
-		      | (protocol << PTHREAD_MUTEXATTR_PROTOCOL_SHIFT));
-
-  return 0;
-}
diff --git a/nptl/pthread_mutexattr_setpshared.c b/nptl/pthread_mutexattr_setpshared.c
deleted file mode 100644
index a81b7d85ba..0000000000
--- a/nptl/pthread_mutexattr_setpshared.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-#include <futex-internal.h>
-
-
-int
-pthread_mutexattr_setpshared (pthread_mutexattr_t *attr, int pshared)
-{
-  struct pthread_mutexattr *iattr;
-
-  int err = futex_supports_pshared (pshared);
-  if (err != 0)
-    return err;
-
-  iattr = (struct pthread_mutexattr *) attr;
-
-  if (pshared == PTHREAD_PROCESS_PRIVATE)
-    iattr->mutexkind &= ~PTHREAD_MUTEXATTR_FLAG_PSHARED;
-  else
-    iattr->mutexkind |= PTHREAD_MUTEXATTR_FLAG_PSHARED;
-
-  return 0;
-}
diff --git a/nptl/pthread_mutexattr_setrobust.c b/nptl/pthread_mutexattr_setrobust.c
deleted file mode 100644
index a71085297a..0000000000
--- a/nptl/pthread_mutexattr_setrobust.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-
-
-int
-pthread_mutexattr_setrobust (pthread_mutexattr_t *attr, int robustness)
-{
-  if (robustness != PTHREAD_MUTEX_STALLED_NP
-      && __builtin_expect (robustness != PTHREAD_MUTEX_ROBUST_NP, 0))
-    return EINVAL;
-
-  struct pthread_mutexattr *iattr = (struct pthread_mutexattr *) attr;
-
-  /* We use bit 30 to signal whether the mutex is going to be
-     robust or not.  */
-  if (robustness == PTHREAD_MUTEX_STALLED_NP)
-    iattr->mutexkind &= ~PTHREAD_MUTEXATTR_FLAG_ROBUST;
-  else
-    iattr->mutexkind |= PTHREAD_MUTEXATTR_FLAG_ROBUST;
-
-  return 0;
-}
-weak_alias (pthread_mutexattr_setrobust, pthread_mutexattr_setrobust_np)
diff --git a/nptl/pthread_mutexattr_settype.c b/nptl/pthread_mutexattr_settype.c
deleted file mode 100644
index 8c4d11f998..0000000000
--- a/nptl/pthread_mutexattr_settype.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-
-
-int
-__pthread_mutexattr_settype (pthread_mutexattr_t *attr, int kind)
-{
-  struct pthread_mutexattr *iattr;
-
-  if (kind < PTHREAD_MUTEX_NORMAL || kind > PTHREAD_MUTEX_ADAPTIVE_NP)
-    return EINVAL;
-
-  /* Cannot distinguish between DEFAULT and NORMAL. So any settype
-     call disables elision for now.  */
-  if (kind == PTHREAD_MUTEX_NORMAL)
-    kind |= PTHREAD_MUTEX_NO_ELISION_NP;
-
-  iattr = (struct pthread_mutexattr *) attr;
-
-  iattr->mutexkind = (iattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_BITS) | kind;
-
-  return 0;
-}
-weak_alias (__pthread_mutexattr_settype, pthread_mutexattr_setkind_np)
-strong_alias (__pthread_mutexattr_settype, pthread_mutexattr_settype)
diff --git a/nptl/pthread_once.c b/nptl/pthread_once.c
deleted file mode 100644
index fbc51ca0b2..0000000000
--- a/nptl/pthread_once.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-#include <futex-internal.h>
-#include <atomic.h>
-
-
-unsigned long int __fork_generation attribute_hidden;
-
-
-static void
-clear_once_control (void *arg)
-{
-  pthread_once_t *once_control = (pthread_once_t *) arg;
-
-  /* Reset to the uninitialized state here.  We don't need a stronger memory
-     order because we do not need to make any other of our writes visible to
-     other threads that see this value: This function will be called if we
-     get interrupted (see __pthread_once), so all we need to relay to other
-     threads is the state being reset again.  */
-  atomic_store_relaxed (once_control, 0);
-  futex_wake ((unsigned int *) once_control, INT_MAX, FUTEX_PRIVATE);
-}
-
-
-/* This is similar to a lock implementation, but we distinguish between three
-   states: not yet initialized (0), initialization in progress
-   (__fork_generation | __PTHREAD_ONCE_INPROGRESS), and initialization
-   finished (__PTHREAD_ONCE_DONE); __fork_generation does not use the bits
-   that are used for __PTHREAD_ONCE_INPROGRESS and __PTHREAD_ONCE_DONE (which
-   is what __PTHREAD_ONCE_FORK_GEN_INCR is used for).  If in the first state,
-   threads will try to run the initialization by moving to the second state;
-   the first thread to do so via a CAS on once_control runs init_routine,
-   other threads block.
-   When forking the process, some threads can be interrupted during the second
-   state; they won't be present in the forked child, so we need to restart
-   initialization in the child.  To distinguish an in-progress initialization
-   from an interrupted initialization (in which case we need to reclaim the
-   lock), we look at the fork generation that's part of the second state: We
-   can reclaim iff it differs from the current fork generation.
-   XXX: This algorithm has an ABA issue on the fork generation: If an
-   initialization is interrupted, we then fork 2^30 times (30 bits of
-   once_control are used for the fork generation), and try to initialize
-   again, we can deadlock because we can't distinguish the in-progress and
-   interrupted cases anymore.
-   XXX: We split out this slow path because current compilers do not generate
-   as efficient code when the fast path in __pthread_once below is not in a
-   separate function.  */
-static int
-__attribute__ ((noinline))
-__pthread_once_slow (pthread_once_t *once_control, void (*init_routine) (void))
-{
-  while (1)
-    {
-      int val, newval;
-
-      /* We need acquire memory order for this load because if the value
-         signals that initialization has finished, we need to see any
-         data modifications done during initialization.  */
-      val = atomic_load_acquire (once_control);
-      do
-	{
-	  /* Check if the initialization has already been done.  */
-	  if (__glibc_likely ((val & __PTHREAD_ONCE_DONE) != 0))
-	    return 0;
-
-	  /* We try to set the state to in-progress and having the current
-	     fork generation.  We don't need atomic accesses for the fork
-	     generation because it's immutable in a particular process, and
-	     forked child processes start with a single thread that modified
-	     the generation.  */
-	  newval = __fork_generation | __PTHREAD_ONCE_INPROGRESS;
-	  /* We need acquire memory order here for the same reason as for the
-	     load from once_control above.  */
-	}
-      while (__glibc_unlikely (!atomic_compare_exchange_weak_acquire (
-	  once_control, &val, newval)));
-
-      /* Check if another thread already runs the initializer.	*/
-      if ((val & __PTHREAD_ONCE_INPROGRESS) != 0)
-	{
-	  /* Check whether the initializer execution was interrupted by a
-	     fork.  We know that for both values, __PTHREAD_ONCE_INPROGRESS
-	     is set and __PTHREAD_ONCE_DONE is not.  */
-	  if (val == newval)
-	    {
-	      /* Same generation, some other thread was faster.  Wait and
-		 retry.  */
-	      futex_wait_simple ((unsigned int *) once_control,
-				 (unsigned int) newval, FUTEX_PRIVATE);
-	      continue;
-	    }
-	}
-
-      /* This thread is the first here.  Do the initialization.
-	 Register a cleanup handler so that in case the thread gets
-	 interrupted the initialization can be restarted.  */
-      pthread_cleanup_push (clear_once_control, once_control);
-
-      init_routine ();
-
-      pthread_cleanup_pop (0);
-
-
-      /* Mark *once_control as having finished the initialization.  We need
-         release memory order here because we need to synchronize with other
-         threads that want to use the initialized data.  */
-      atomic_store_release (once_control, __PTHREAD_ONCE_DONE);
-
-      /* Wake up all other threads.  */
-      futex_wake ((unsigned int *) once_control, INT_MAX, FUTEX_PRIVATE);
-      break;
-    }
-
-  return 0;
-}
-
-int
-__pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
-{
-  /* Fast path.  See __pthread_once_slow.  */
-  int val;
-  val = atomic_load_acquire (once_control);
-  if (__glibc_likely ((val & __PTHREAD_ONCE_DONE) != 0))
-    return 0;
-  else
-    return __pthread_once_slow (once_control, init_routine);
-}
-weak_alias (__pthread_once, pthread_once)
-hidden_def (__pthread_once)
diff --git a/nptl/pthread_rwlock_common.c b/nptl/pthread_rwlock_common.c
deleted file mode 100644
index 256508ca2a..0000000000
--- a/nptl/pthread_rwlock_common.c
+++ /dev/null
@@ -1,924 +0,0 @@
-/* POSIX reader--writer lock: core parts.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <sysdep.h>
-#include <pthread.h>
-#include <pthreadP.h>
-#include <sys/time.h>
-#include <stap-probe.h>
-#include <atomic.h>
-#include <futex-internal.h>
-
-
-/* A reader--writer lock that fulfills the POSIX requirements (but operations
-   on this lock are not necessarily full barriers, as one may interpret the
-   POSIX requirement about "synchronizing memory").  All critical sections are
-   in a total order, writers synchronize with prior writers and readers, and
-   readers synchronize with prior writers.
-
-   A thread is allowed to acquire a read lock recursively (i.e., have rdlock
-   critical sections that overlap in sequenced-before) unless the kind of the
-   rwlock is set to PTHREAD_RWLOCK_PREFER_WRITERS_NONRECURSIVE_NP.
-
-   This lock is built so that workloads of mostly readers can be executed with
-   low runtime overheads.  This matches that the default kind of the lock is
-   PTHREAD_RWLOCK_PREFER_READER_NP.  Acquiring a read lock requires a single
-   atomic addition if the lock is or was previously acquired by other
-   readers; releasing the lock is a single CAS if there are no concurrent
-   writers.
-   Workloads consisting of mostly writers are of secondary importance.
-   An uncontended write lock acquisition is as fast as for a normal
-   exclusive mutex but writer contention is somewhat more costly due to
-   keeping track of the exact number of writers.  If the rwlock kind requests
-   writers to be preferred (i.e., PTHREAD_RWLOCK_PREFER_WRITERS_NP or the
-   no-recursive-readers variant of it), then writer--to--writer lock ownership
-   hand-over is fairly fast and bypasses lock acquisition attempts by readers.
-   The costs of lock ownership transfer between readers and writers vary.  If
-   the program asserts that there are no recursive readers and writers are
-   preferred, then write lock acquisition attempts will block subsequent read
-   lock acquisition attempts, so that new incoming readers do not prolong a
-   phase in which readers have acquired the lock.
-
-
-   The main components of the rwlock are a writer-only lock that allows only
-   one of the concurrent writers to be the primary writer, and a
-   single-writer-multiple-readers lock that decides between read phases, in
-   which readers have acquired the rwlock, and write phases in which a primary
-   writer or a sequence of different primary writers have acquired the rwlock.
-
-   The single-writer-multiple-readers lock is the central piece of state
-   describing the rwlock and is encoded in the __readers field (see below for
-   a detailed explanation):
-
-   State WP  WL  R   RW  Notes
-   ---------------------------
-   #1    0   0   0   0   Lock is idle (and in a read phase).
-   #2    0   0   >0  0   Readers have acquired the lock.
-   #3    0   1   0   0   Lock is not acquired; a writer is waiting for a write
-			 phase to start or will try to start one.
-   #4    0   1   >0  0   Readers have acquired the lock; a writer is waiting
-			 and explicit hand-over to the writer is required.
-   #4a   0   1   >0  1   Same as #4 except that there are further readers
-			 waiting because the writer is to be preferred.
-   #5    1   0   0   0   Lock is idle (and in a write phase).
-   #6    1   0   >0  0   Write phase; readers are waiting for a read phase to
-			 start or will try to start one.
-   #7    1   1   0   0   Lock is acquired by a writer.
-   #8    1   1   >0  0   Lock acquired by a writer and readers are waiting;
-			 explicit hand-over to the readers is required.
-
-   WP (PTHREAD_RWLOCK_WRPHASE) is true if the lock is in a write phase, so
-   potentially acquired by a primary writer.
-   WL (PTHREAD_RWLOCK_WRLOCKED) is true if there is a primary writer (i.e.,
-   the thread that was able to set this bit from false to true).
-   R (all bits in __readers except the number of least-significant bits
-   denoted in PTHREAD_RWLOCK_READER_SHIFT) is the number of readers that have
-   or are trying to acquired the lock.  There may be more readers waiting if
-   writers are preferred and there will be no recursive readers, in which
-   case RW (PTHREAD_RWLOCK_RWAITING) is true in state #4a.
-
-   We want to block using futexes but using __readers as a futex word directly
-   is not a good solution.  First, we want to wait on different conditions
-   such as waiting for a phase change vs. waiting for the primary writer to
-   release the writer-only lock.  Second, the number of readers could change
-   frequently, which would make it likely that a writer's futex_wait fails
-   frequently too because the expected value does not match the value of
-   __readers anymore.
-   Therefore, we split out the futex words into the __wrphase_futex and
-   __writers_futex fields.  The former tracks the value of the WP bit and is
-   changed after changing WP by the thread that changes WP.  However, because
-   of the POSIX requirements regarding mutex/rwlock destruction (i.e., that
-   destroying a rwlock is allowed as soon as no thread has acquired or will
-   acquire the lock), we have to be careful and hand over lock ownership (via
-   a phase change) carefully to those threads waiting.  Specifically, we must
-   prevent a situation in which we are not quite sure whether we still have
-   to unblock another thread through a change to memory (executing a
-   futex_wake on a former futex word that is now used for something else is
-   fine).
-   The scheme we use for __wrphase_futex is that waiting threads that may
-   use the futex word to block now all have to use the futex word to block; it
-   is not allowed to take the short-cut and spin-wait on __readers because
-   then the waking thread cannot just make one final change to memory to
-   unblock all potentially waiting threads.  If, for example, a reader
-   increments R in states #7 or #8, it has to then block until __wrphase_futex
-   is 0 and it can confirm that the value of 0 was stored by the primary
-   writer; in turn, the primary writer has to change to a read phase too when
-   releasing WL (i.e., to state #2), and it must change __wrphase_futex to 0
-   as the next step.  This ensures that the waiting reader will not be able to
-   acquire, release, and then destroy the lock concurrently with the pending
-   futex unblock operations by the former primary writer.  This scheme is
-   called explicit hand-over in what follows.
-   Note that waiting threads can cancel waiting only if explicit hand-over has
-   not yet started (e.g., if __readers is still in states #7 or #8 in the
-   example above).
-
-   Writers determine the primary writer through WL.  Blocking using futexes
-   is performed using __writers_futex as a futex word; primary writers will
-   enable waiting on this futex by setting it to 1 after they acquired the WL
-   bit and will disable waiting by setting it to 0 before they release WL.
-   This leaves small windows where blocking using futexes is not possible
-   although a primary writer exists, but in turn decreases complexity of the
-   writer--writer synchronization and does not affect correctness.
-   If writers are preferred, writers can hand over WL directly to other
-   waiting writers that registered by incrementing __writers:  If the primary
-   writer can CAS __writers from a non-zero value to the same value with the
-   PTHREAD_RWLOCK_WRHANDOVER bit set, it effectively transfers WL ownership
-   to one of the registered waiting writers and does not reset WL; in turn,
-   a registered writer that can clear PTHREAD_RWLOCK_WRHANDOVER using a CAS
-   then takes over WL.  Note that registered waiting writers can cancel
-   waiting by decrementing __writers, but the last writer to unregister must
-   become the primary writer if PTHREAD_RWLOCK_WRHANDOVER is set.
-   Also note that adding another state/bit to signal potential writer--writer
-   contention (e.g., as done in the normal mutex algorithm) would not be
-   helpful because we would have to conservatively assume that there is in
-   fact no other writer, and wake up readers too.
-
-   To avoid having to call futex_wake when no thread uses __wrphase_futex or
-   __writers_futex, threads will set the PTHREAD_RWLOCK_FUTEX_USED bit in the
-   respective futex words before waiting on it (using a CAS so it will only be
-   set if in a state in which waiting would be possible).  In the case of
-   __writers_futex, we wake only one thread but several threads may share
-   PTHREAD_RWLOCK_FUTEX_USED, so we must assume that there are still others.
-   This is similar to what we do in pthread_mutex_lock.  We do not need to
-   do this for __wrphase_futex because there, we always wake all waiting
-   threads.
-
-   Blocking in the state #4a simply uses __readers as futex word.  This
-   simplifies the algorithm but suffers from some of the drawbacks discussed
-   before, though not to the same extent because R can only decrease in this
-   state, so the number of potentially failing futex_wait attempts will be
-   bounded.  All threads moving from state #4a to another state must wake
-   up threads blocked on the __readers futex.
-
-   The ordering invariants that we have to take care of in the implementation
-   are primarily those necessary for a reader--writer lock; this is rather
-   straightforward and happens during write/read phase switching (potentially
-   through explicit hand-over), and between writers through synchronization
-   involving the PTHREAD_RWLOCK_WRLOCKED or PTHREAD_RWLOCK_WRHANDOVER bits.
-   Additionally, we need to take care that modifications of __writers_futex
-   and __wrphase_futex (e.g., by otherwise unordered readers) take place in
-   the writer critical sections or read/write phases, respectively, and that
-   explicit hand-over observes stores from the previous phase.  How this is
-   done is explained in more detail in comments in the code.
-
-   Many of the accesses to the futex words just need relaxed MO.  This is
-   possible because we essentially drive both the core rwlock synchronization
-   and the futex synchronization in parallel.  For example, an unlock will
-   unlock the rwlock and take part in the futex synchronization (using
-   PTHREAD_RWLOCK_FUTEX_USED, see above); even if they are not tightly
-   ordered in some way, the futex synchronization ensures that there are no
-   lost wake-ups, and woken threads will then eventually see the most recent
-   state of the rwlock.  IOW, waiting threads will always be woken up, while
-   not being able to wait using futexes (which can happen) is harmless; in
-   turn, this means that waiting threads don't need special ordering wrt.
-   waking threads.
-
-   The futex synchronization consists of the three-state futex word:
-   (1) cannot block on it, (2) can block on it, and (3) there might be a
-   thread blocked on it (i.e., with PTHREAD_RWLOCK_FUTEX_USED set).
-   Relaxed-MO atomic read-modify-write operations are sufficient to maintain
-   this (e.g., using a CAS to go from (2) to (3) but not from (1) to (3)),
-   but we need ordering of the futex word modifications by the waking threads
-   so that they collectively make correct state changes between (1)-(3).
-   The futex-internal synchronization (i.e., the conceptual critical sections
-   around futex operations in the kernel) then ensures that even an
-   unconstrained load (i.e., relaxed MO) inside of futex_wait will not lead to
-   lost wake-ups because either the waiting thread will see the change from
-   (3) to (1) when a futex_wake came first, or this futex_wake will wake this
-   waiting thread because the waiting thread came first.
-
-
-   POSIX allows but does not require rwlock acquisitions to be a cancellation
-   point.  We do not support cancellation.
-
-   TODO We do not try to elide any read or write lock acquisitions currently.
-   While this would be possible, it is unclear whether HTM performance is
-   currently predictable enough and our runtime tuning is good enough at
-   deciding when to use elision so that enabling it would lead to consistently
-   better performance.  */
-
-
-static int
-__pthread_rwlock_get_private (pthread_rwlock_t *rwlock)
-{
-  return rwlock->__data.__shared != 0 ? FUTEX_SHARED : FUTEX_PRIVATE;
-}
-
-static __always_inline void
-__pthread_rwlock_rdunlock (pthread_rwlock_t *rwlock)
-{
-  int private = __pthread_rwlock_get_private (rwlock);
-  /* We decrease the number of readers, and if we are the last reader and
-     there is a primary writer, we start a write phase.  We use a CAS to
-     make this atomic so that it is clear whether we must hand over ownership
-     explicitly.  */
-  unsigned int r = atomic_load_relaxed (&rwlock->__data.__readers);
-  unsigned int rnew;
-  for (;;)
-    {
-      rnew = r - (1 << PTHREAD_RWLOCK_READER_SHIFT);
-      /* If we are the last reader, we also need to unblock any readers
-	 that are waiting for a writer to go first (PTHREAD_RWLOCK_RWAITING)
-	 so that they can register while the writer is active.  */
-      if ((rnew >> PTHREAD_RWLOCK_READER_SHIFT) == 0)
-	{
-	  if ((rnew & PTHREAD_RWLOCK_WRLOCKED) != 0)
-	    rnew |= PTHREAD_RWLOCK_WRPHASE;
-	  rnew &= ~(unsigned int) PTHREAD_RWLOCK_RWAITING;
-	}
-      /* We need release MO here for three reasons.  First, so that we
-	 synchronize with subsequent writers.  Second, we might have been the
-	 first reader and set __wrphase_futex to 0, so we need to synchronize
-	 with the last reader that will set it to 1 (note that we will always
-	 change __readers before the last reader, or we are the last reader).
-	 Third, a writer that takes part in explicit hand-over needs to see
-	 the first reader's store to __wrphase_futex (or a later value) if
-	 the writer observes that a write phase has been started.  */
-      if (atomic_compare_exchange_weak_release (&rwlock->__data.__readers,
-	  &r, rnew))
-	break;
-      /* TODO Back-off.  */
-    }
-  if ((rnew & PTHREAD_RWLOCK_WRPHASE) != 0)
-    {
-      /* We need to do explicit hand-over.  We need the acquire MO fence so
-	 that our modification of _wrphase_futex happens after a store by
-	 another reader that started a read phase.  Relaxed MO is sufficient
-	 for the modification of __wrphase_futex because it is just used
-	 to delay acquisition by a writer until all threads are unblocked
-	 irrespective of whether they are looking at __readers or
-	 __wrphase_futex; any other synchronizes-with relations that are
-	 necessary are established through __readers.  */
-      atomic_thread_fence_acquire ();
-      if ((atomic_exchange_relaxed (&rwlock->__data.__wrphase_futex, 1)
-	   & PTHREAD_RWLOCK_FUTEX_USED) != 0)
-	futex_wake (&rwlock->__data.__wrphase_futex, INT_MAX, private);
-    }
-  /* Also wake up waiting readers if we did reset the RWAITING flag.  */
-  if ((r & PTHREAD_RWLOCK_RWAITING) != (rnew & PTHREAD_RWLOCK_RWAITING))
-    futex_wake (&rwlock->__data.__readers, INT_MAX, private);
-}
-
-
-static __always_inline int
-__pthread_rwlock_rdlock_full (pthread_rwlock_t *rwlock,
-    const struct timespec *abstime)
-{
-  unsigned int r;
-
-  /* Make sure we are not holding the rwlock as a writer.  This is a deadlock
-     situation we recognize and report.  */
-  if (__glibc_unlikely (atomic_load_relaxed (&rwlock->__data.__cur_writer)
-      == THREAD_GETMEM (THREAD_SELF, tid)))
-    return EDEADLK;
-
-  /* If we prefer writers, recursive rdlock is disallowed, we are in a read
-     phase, and there are other readers present, we try to wait without
-     extending the read phase.  We will be unblocked by either one of the
-     other active readers, or if the writer gives up WRLOCKED (e.g., on
-     timeout).
-     If there are no other readers, we simply race with any existing primary
-     writer; it would have been a race anyway, and changing the odds slightly
-     will likely not make a big difference.  */
-  if (rwlock->__data.__flags == PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP)
-    {
-      r = atomic_load_relaxed (&rwlock->__data.__readers);
-      while (((r & PTHREAD_RWLOCK_WRPHASE) == 0)
-	      && ((r & PTHREAD_RWLOCK_WRLOCKED) != 0)
-	      && ((r >> PTHREAD_RWLOCK_READER_SHIFT) > 0))
-	{
-	  /* TODO Spin first.  */
-	  /* Try setting the flag signaling that we are waiting without having
-	     incremented the number of readers.  Relaxed MO is fine because
-	     this is just about waiting for a state change in __readers.  */
-	  if (atomic_compare_exchange_weak_relaxed
-	      (&rwlock->__data.__readers, &r, r | PTHREAD_RWLOCK_RWAITING))
-	    {
-	      /* Wait for as long as the flag is set.  An ABA situation is
-		 harmless because the flag is just about the state of
-		 __readers, and all threads set the flag under the same
-		 conditions.  */
-	      while ((atomic_load_relaxed (&rwlock->__data.__readers)
-		  & PTHREAD_RWLOCK_RWAITING) != 0)
-		{
-		  int private = __pthread_rwlock_get_private (rwlock);
-		  int err = futex_abstimed_wait (&rwlock->__data.__readers,
-		      r, abstime, private);
-		  /* We ignore EAGAIN and EINTR.  On time-outs, we can just
-		     return because we don't need to clean up anything.  */
-		  if (err == ETIMEDOUT)
-		    return err;
-		}
-	      /* It makes sense to not break out of the outer loop here
-		 because we might be in the same situation again.  */
-	    }
-	  else
-	    {
-	      /* TODO Back-off.  */
-	    }
-	}
-    }
-  /* Register as a reader, using an add-and-fetch so that R can be used as
-     expected value for future operations.  Acquire MO so we synchronize with
-     prior writers as well as the last reader of the previous read phase (see
-     below).  */
-  r = atomic_fetch_add_acquire (&rwlock->__data.__readers,
-      (1 << PTHREAD_RWLOCK_READER_SHIFT)) + (1 << PTHREAD_RWLOCK_READER_SHIFT);
-
-  /* Check whether there is an overflow in the number of readers.  We assume
-     that the total number of threads is less than half the maximum number
-     of readers that we have bits for in __readers (i.e., with 32-bit int and
-     PTHREAD_RWLOCK_READER_SHIFT of 3, we assume there are less than
-     1 << (32-3-1) concurrent threads).
-     If there is an overflow, we use a CAS to try to decrement the number of
-     readers if there still is an overflow situation.  If so, we return
-     EAGAIN; if not, we are not a thread causing an overflow situation, and so
-     we just continue.  Using a fetch-add instead of the CAS isn't possible
-     because other readers might release the lock concurrently, which could
-     make us the last reader and thus responsible for handing ownership over
-     to writers (which requires a CAS too to make the decrement and ownership
-     transfer indivisible).  */
-  while (__glibc_unlikely (r >= PTHREAD_RWLOCK_READER_OVERFLOW))
-    {
-      /* Relaxed MO is okay because we just want to undo our registration and
-	 cannot have changed the rwlock state substantially if the CAS
-	 succeeds.  */
-      if (atomic_compare_exchange_weak_relaxed (&rwlock->__data.__readers, &r,
-	  r - (1 << PTHREAD_RWLOCK_READER_SHIFT)))
-	return EAGAIN;
-    }
-
-  /* We have registered as a reader, so if we are in a read phase, we have
-     acquired a read lock.  This is also the reader--reader fast-path.
-     Even if there is a primary writer, we just return.  If writers are to
-     be preferred and we are the only active reader, we could try to enter a
-     write phase to let the writer proceed.  This would be okay because we
-     cannot have acquired the lock previously as a reader (which could result
-     in deadlock if we would wait for the primary writer to run).  However,
-     this seems to be a corner case and handling it specially not be worth the
-     complexity.  */
-  if (__glibc_likely ((r & PTHREAD_RWLOCK_WRPHASE) == 0))
-    return 0;
-
-  /* If there is no primary writer but we are in a write phase, we can try
-     to install a read phase ourself.  */
-  while (((r & PTHREAD_RWLOCK_WRPHASE) != 0)
-      && ((r & PTHREAD_RWLOCK_WRLOCKED) == 0))
-    {
-       /* Try to enter a read phase: If the CAS below succeeds, we have
-	 ownership; if it fails, we will simply retry and reassess the
-	 situation.
-	 Acquire MO so we synchronize with prior writers.  */
-      if (atomic_compare_exchange_weak_acquire (&rwlock->__data.__readers, &r,
-	  r ^ PTHREAD_RWLOCK_WRPHASE))
-	{
-	  /* We started the read phase, so we are also responsible for
-	     updating the write-phase futex.  Relaxed MO is sufficient.
-	     Note that there can be no other reader that we have to wake
-	     because all other readers will see the read phase started by us
-	     (or they will try to start it themselves); if a writer started
-	     the read phase, we cannot have started it.  Furthermore, we
-	     cannot discard a PTHREAD_RWLOCK_FUTEX_USED flag because we will
-	     overwrite the value set by the most recent writer (or the readers
-	     before it in case of explicit hand-over) and we know that there
-	     are no waiting readers.  */
-	  atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 0);
-	  return 0;
-	}
-      else
-	{
-	  /* TODO Back off before retrying.  Also see above.  */
-	}
-    }
-
-  if ((r & PTHREAD_RWLOCK_WRPHASE) != 0)
-    {
-      /* We are in a write phase, and there must be a primary writer because
-	 of the previous loop.  Block until the primary writer gives up the
-	 write phase.  This case requires explicit hand-over using
-	 __wrphase_futex.
-	 However, __wrphase_futex might not have been set to 1 yet (either
-	 because explicit hand-over to the writer is still ongoing, or because
-	 the writer has started the write phase but does not yet have updated
-	 __wrphase_futex).  The least recent value of __wrphase_futex we can
-	 read from here is the modification of the last read phase (because
-	 we synchronize with the last reader in this read phase through
-	 __readers; see the use of acquire MO on the fetch_add above).
-	 Therefore, if we observe a value of 0 for __wrphase_futex, we need
-	 to subsequently check that __readers now indicates a read phase; we
-	 need to use acquire MO for this so that if we observe a read phase,
-	 we will also see the modification of __wrphase_futex by the previous
-	 writer.  We then need to load __wrphase_futex again and continue to
-	 wait if it is not 0, so that we do not skip explicit hand-over.
-	 Relaxed MO is sufficient for the load from __wrphase_futex because
-	 we just use it as an indicator for when we can proceed; we use
-	 __readers and the acquire MO accesses to it to eventually read from
-	 the proper stores to __wrphase_futex.  */
-      unsigned int wpf;
-      bool ready = false;
-      for (;;)
-	{
-	  while (((wpf = atomic_load_relaxed (&rwlock->__data.__wrphase_futex))
-	      | PTHREAD_RWLOCK_FUTEX_USED) == (1 | PTHREAD_RWLOCK_FUTEX_USED))
-	    {
-	      int private = __pthread_rwlock_get_private (rwlock);
-	      if (((wpf & PTHREAD_RWLOCK_FUTEX_USED) == 0)
-		  && !atomic_compare_exchange_weak_relaxed
-		      (&rwlock->__data.__wrphase_futex,
-		       &wpf, wpf | PTHREAD_RWLOCK_FUTEX_USED))
-		continue;
-	      int err = futex_abstimed_wait (&rwlock->__data.__wrphase_futex,
-		  1 | PTHREAD_RWLOCK_FUTEX_USED, abstime, private);
-	      if (err == ETIMEDOUT)
-		{
-		  /* If we timed out, we need to unregister.  If no read phase
-		     has been installed while we waited, we can just decrement
-		     the number of readers.  Otherwise, we just acquire the
-		     lock, which is allowed because we give no precise timing
-		     guarantees, and because the timeout is only required to
-		     be in effect if we would have had to wait for other
-		     threads (e.g., if futex_wait would time-out immediately
-		     because the given absolute time is in the past).  */
-		  r = atomic_load_relaxed (&rwlock->__data.__readers);
-		  while ((r & PTHREAD_RWLOCK_WRPHASE) != 0)
-		    {
-		      /* We don't need to make anything else visible to
-			 others besides unregistering, so relaxed MO is
-			 sufficient.  */
-		      if (atomic_compare_exchange_weak_relaxed
-			  (&rwlock->__data.__readers, &r,
-			   r - (1 << PTHREAD_RWLOCK_READER_SHIFT)))
-			return ETIMEDOUT;
-		      /* TODO Back-off.  */
-		    }
-		  /* Use the acquire MO fence to mirror the steps taken in the
-		     non-timeout case.  Note that the read can happen both
-		     in the atomic_load above as well as in the failure case
-		     of the CAS operation.  */
-		  atomic_thread_fence_acquire ();
-		  /* We still need to wait for explicit hand-over, but we must
-		     not use futex_wait anymore because we would just time out
-		     in this case and thus make the spin-waiting we need
-		     unnecessarily expensive.  */
-		  while ((atomic_load_relaxed (&rwlock->__data.__wrphase_futex)
-		      | PTHREAD_RWLOCK_FUTEX_USED)
-		      == (1 | PTHREAD_RWLOCK_FUTEX_USED))
-		    {
-		      /* TODO Back-off?  */
-		    }
-		  ready = true;
-		  break;
-		}
-	      /* If we got interrupted (EINTR) or the futex word does not have the
-		 expected value (EAGAIN), retry.  */
-	    }
-	  if (ready)
-	    /* See below.  */
-	    break;
-	  /* We need acquire MO here so that we synchronize with the lock
-	     release of the writer, and so that we observe a recent value of
-	     __wrphase_futex (see below).  */
-	  if ((atomic_load_acquire (&rwlock->__data.__readers)
-	      & PTHREAD_RWLOCK_WRPHASE) == 0)
-	    /* We are in a read phase now, so the least recent modification of
-	       __wrphase_futex we can read from is the store by the writer
-	       with value 1.  Thus, only now we can assume that if we observe
-	       a value of 0, explicit hand-over is finished. Retry the loop
-	       above one more time.  */
-	    ready = true;
-	}
-    }
-
-  return 0;
-}
-
-
-static __always_inline void
-__pthread_rwlock_wrunlock (pthread_rwlock_t *rwlock)
-{
-  int private = __pthread_rwlock_get_private (rwlock);
-
-  atomic_store_relaxed (&rwlock->__data.__cur_writer, 0);
-  /* Disable waiting by writers.  We will wake up after we decided how to
-     proceed.  */
-  bool wake_writers = ((atomic_exchange_relaxed
-      (&rwlock->__data.__writers_futex, 0) & PTHREAD_RWLOCK_FUTEX_USED) != 0);
-
-  if (rwlock->__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP)
-    {
-      /* First, try to hand over to another writer.  */
-      unsigned int w = atomic_load_relaxed (&rwlock->__data.__writers);
-      while (w != 0)
-	{
-	  /* Release MO so that another writer that gets WRLOCKED from us will
-	     synchronize with us and thus can take over our view of
-	     __readers (including, for example, whether we are in a write
-	     phase or not).  */
-	  if (atomic_compare_exchange_weak_release (&rwlock->__data.__writers,
-	      &w, w | PTHREAD_RWLOCK_WRHANDOVER))
-	    /* Another writer will take over.  */
-	    goto done;
-	  /* TODO Back-off.  */
-	}
-    }
-
-  /* We have done everything we needed to do to prefer writers, so now we
-     either hand over explicitly to readers if there are any, or we simply
-     stay in a write phase.  See pthread_rwlock_rdunlock for more details.  */
-  unsigned int r = atomic_load_relaxed (&rwlock->__data.__readers);
-  /* Release MO so that subsequent readers or writers synchronize with us.  */
-  while (!atomic_compare_exchange_weak_release
-      (&rwlock->__data.__readers, &r, (r ^ PTHREAD_RWLOCK_WRLOCKED)
-	  ^ ((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0 ? 0
-	      : PTHREAD_RWLOCK_WRPHASE)))
-    {
-      /* TODO Back-off.  */
-    }
-  if ((r >> PTHREAD_RWLOCK_READER_SHIFT) != 0)
-    {
-      /* We must hand over explicitly through __wrphase_futex.  Relaxed MO is
-	 sufficient because it is just used to delay acquisition by a writer;
-	 any other synchronizes-with relations that are necessary are
-	 established through __readers.  */
-      if ((atomic_exchange_relaxed (&rwlock->__data.__wrphase_futex, 0)
-	   & PTHREAD_RWLOCK_FUTEX_USED) != 0)
-	futex_wake (&rwlock->__data.__wrphase_futex, INT_MAX, private);
-    }
-
- done:
-  /* We released WRLOCKED in some way, so wake a writer.  */
-  if (wake_writers)
-    futex_wake (&rwlock->__data.__writers_futex, 1, private);
-}
-
-
-static __always_inline int
-__pthread_rwlock_wrlock_full (pthread_rwlock_t *rwlock,
-    const struct timespec *abstime)
-{
-  /* Make sure we are not holding the rwlock as a writer.  This is a deadlock
-     situation we recognize and report.  */
-  if (__glibc_unlikely (atomic_load_relaxed (&rwlock->__data.__cur_writer)
-      == THREAD_GETMEM (THREAD_SELF, tid)))
-    return EDEADLK;
-
-  /* First we try to acquire the role of primary writer by setting WRLOCKED;
-     if it was set before, there already is a primary writer.  Acquire MO so
-     that we synchronize with previous primary writers.
-
-     We do not try to change to a write phase right away using a fetch_or
-     because we would have to reset it again and wake readers if there are
-     readers present (some readers could try to acquire the lock more than
-     once, so setting a write phase in the middle of this could cause
-     deadlock).  Changing to a write phase eagerly would only speed up the
-     transition from a read phase to a write phase in the uncontended case,
-     but it would slow down the contended case if readers are preferred (which
-     is the default).
-     We could try to CAS from a state with no readers to a write phase, but
-     this could be less scalable if readers arrive and leave frequently.  */
-  bool may_share_futex_used_flag = false;
-  unsigned int r = atomic_fetch_or_acquire (&rwlock->__data.__readers,
-      PTHREAD_RWLOCK_WRLOCKED);
-  if (__glibc_unlikely ((r & PTHREAD_RWLOCK_WRLOCKED) != 0))
-    {
-      /* There is another primary writer.  */
-      bool prefer_writer =
-	  (rwlock->__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP);
-      if (prefer_writer)
-	{
-	  /* We register as a waiting writer, so that we can make use of
-	     writer--writer hand-over.  Relaxed MO is fine because we just
-	     want to register.  We assume that the maximum number of threads
-	     is less than the capacity in __writers.  */
-	  atomic_fetch_add_relaxed (&rwlock->__data.__writers, 1);
-	}
-      for (;;)
-	{
-	  /* TODO Spin until WRLOCKED is 0 before trying the CAS below.
-	     But pay attention to not delay trying writer--writer hand-over
-	     for too long (which we must try eventually anyway).  */
-	  if ((r & PTHREAD_RWLOCK_WRLOCKED) == 0)
-	    {
-	      /* Try to become the primary writer or retry.  Acquire MO as in
-		 the fetch_or above.  */
-	      if (atomic_compare_exchange_weak_acquire
-		  (&rwlock->__data.__readers, &r,
-		      r | PTHREAD_RWLOCK_WRLOCKED))
-		{
-		  if (prefer_writer)
-		    {
-		      /* Unregister as a waiting writer.  Note that because we
-			 acquired WRLOCKED, WRHANDOVER will not be set.
-			 Acquire MO on the CAS above ensures that
-			 unregistering happens after the previous writer;
-			 this sorts the accesses to __writers by all
-			 primary writers in a useful way (e.g., any other
-			 primary writer acquiring after us or getting it from
-			 us through WRHANDOVER will see both our changes to
-			 __writers).
-			 ??? Perhaps this is not strictly necessary for
-			 reasons we do not yet know of.  */
-		      atomic_fetch_add_relaxed (&rwlock->__data.__writers,
-			  -1);
-		    }
-		  break;
-		}
-	      /* Retry if the CAS fails (r will have been updated).  */
-	      continue;
-	    }
-	  /* If writer--writer hand-over is available, try to become the
-	     primary writer this way by grabbing the WRHANDOVER token.  If we
-	     succeed, we own WRLOCKED.  */
-	  if (prefer_writer)
-	    {
-	      unsigned int w = atomic_load_relaxed
-		  (&rwlock->__data.__writers);
-	      if ((w & PTHREAD_RWLOCK_WRHANDOVER) != 0)
-		{
-		  /* Acquire MO is required here so that we synchronize with
-		     the writer that handed over WRLOCKED.  We also need this
-		     for the reload of __readers below because our view of
-		     __readers must be at least as recent as the view of the
-		     writer that handed over WRLOCKED; we must avoid an ABA
-		     through WRHANDOVER, which could, for example, lead to us
-		     assuming we are still in a write phase when in fact we
-		     are not.  */
-		  if (atomic_compare_exchange_weak_acquire
-		      (&rwlock->__data.__writers,
-		       &w, (w - PTHREAD_RWLOCK_WRHANDOVER - 1)))
-		    {
-		      /* Reload so our view is consistent with the view of
-			 the previous owner of WRLOCKED.  See above.  */
-		      r = atomic_load_relaxed (&rwlock->__data.__readers);
-		      break;
-		    }
-		  /* We do not need to reload __readers here.  We should try
-		     to perform writer--writer hand-over if possible; if it
-		     is not possible anymore, we will reload __readers
-		     elsewhere in this loop.  */
-		  continue;
-		}
-	    }
-	  /* We did not acquire WRLOCKED nor were able to use writer--writer
-	     hand-over, so we block on __writers_futex.  */
-	  int private = __pthread_rwlock_get_private (rwlock);
-	  unsigned int wf = atomic_load_relaxed
-	      (&rwlock->__data.__writers_futex);
-	  if (((wf & ~(unsigned int) PTHREAD_RWLOCK_FUTEX_USED) != 1)
-	      || ((wf != (1 | PTHREAD_RWLOCK_FUTEX_USED))
-		  && !atomic_compare_exchange_weak_relaxed
-		      (&rwlock->__data.__writers_futex, &wf,
-		       1 | PTHREAD_RWLOCK_FUTEX_USED)))
-	    {
-	      /* If we cannot block on __writers_futex because there is no
-		 primary writer, or we cannot set PTHREAD_RWLOCK_FUTEX_USED,
-		 we retry.  We must reload __readers here in case we cannot
-		 block on __writers_futex so that we can become the primary
-		 writer and are not stuck in a loop that just continuously
-		 fails to block on __writers_futex.  */
-	      r = atomic_load_relaxed (&rwlock->__data.__readers);
-	      continue;
-	    }
-	  /* We set the flag that signals that the futex is used, or we could
-	     have set it if we had been faster than other waiters.  As a
-	     result, we may share the flag with an unknown number of other
-	     writers.  Therefore, we must keep this flag set when we acquire
-	     the lock.  We do not need to do this when we do not reach this
-	     point here because then we are not part of the group that may
-	     share the flag, and another writer will wake one of the writers
-	     in this group.  */
-	  may_share_futex_used_flag = true;
-	  int err = futex_abstimed_wait (&rwlock->__data.__writers_futex,
-	      1 | PTHREAD_RWLOCK_FUTEX_USED, abstime, private);
-	  if (err == ETIMEDOUT)
-	    {
-	      if (prefer_writer)
-		{
-		  /* We need to unregister as a waiting writer.  If we are the
-		     last writer and writer--writer hand-over is available,
-		     we must make use of it because nobody else will reset
-		     WRLOCKED otherwise.  (If we use it, we simply pretend
-		     that this happened before the timeout; see
-		     pthread_rwlock_rdlock_full for the full reasoning.)
-		     Also see the similar code above.  */
-		  unsigned int w = atomic_load_relaxed
-		      (&rwlock->__data.__writers);
-		  while (!atomic_compare_exchange_weak_acquire
-		      (&rwlock->__data.__writers, &w,
-			  (w == PTHREAD_RWLOCK_WRHANDOVER + 1 ? 0 : w - 1)))
-		    {
-		      /* TODO Back-off.  */
-		    }
-		  if (w == PTHREAD_RWLOCK_WRHANDOVER + 1)
-		    {
-		      /* We must continue as primary writer.  See above.  */
-		      r = atomic_load_relaxed (&rwlock->__data.__readers);
-		      break;
-		    }
-		}
-	      /* We cleaned up and cannot have stolen another waiting writer's
-		 futex wake-up, so just return.  */
-	      return ETIMEDOUT;
-	    }
-	  /* If we got interrupted (EINTR) or the futex word does not have the
-	     expected value (EAGAIN), retry after reloading __readers.  */
-	  r = atomic_load_relaxed (&rwlock->__data.__readers);
-	}
-      /* Our snapshot of __readers is up-to-date at this point because we
-	 either set WRLOCKED using a CAS or were handed over WRLOCKED from
-	 another writer whose snapshot of __readers we inherit.  */
-    }
-
-  /* If we are in a read phase and there are no readers, try to start a write
-     phase.  */
-  while (((r & PTHREAD_RWLOCK_WRPHASE) == 0)
-      && ((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0))
-    {
-      /* Acquire MO so that we synchronize with prior writers and do
-	 not interfere with their updates to __writers_futex, as well
-	 as regarding prior readers and their updates to __wrphase_futex,
-	 respectively.  */
-      if (atomic_compare_exchange_weak_acquire (&rwlock->__data.__readers,
-	  &r, r | PTHREAD_RWLOCK_WRPHASE))
-	{
-	  /* We have started a write phase, so need to enable readers to wait.
-	     See the similar case in__pthread_rwlock_rdlock_full.  */
-	  atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 1);
-	  /* Make sure we fall through to the end of the function.  */
-	  r |= PTHREAD_RWLOCK_WRPHASE;
-	  break;
-	}
-      /* TODO Back-off.  */
-    }
-
-  /* We are the primary writer; enable blocking on __writers_futex.  Relaxed
-     MO is sufficient for futex words; acquire MO on the previous
-     modifications of __readers ensures that this store happens after the
-     store of value 0 by the previous primary writer.  */
-  atomic_store_relaxed (&rwlock->__data.__writers_futex,
-      1 | (may_share_futex_used_flag ? PTHREAD_RWLOCK_FUTEX_USED : 0));
-
-  if (__glibc_unlikely ((r & PTHREAD_RWLOCK_WRPHASE) == 0))
-    {
-      /* We are not in a read phase and there are readers (because of the
-	 previous loop).  Thus, we have to wait for explicit hand-over from
-	 one of these readers.
-	 We basically do the same steps as for the similar case in
-	 __pthread_rwlock_rdlock_full, except that we additionally might try
-	 to directly hand over to another writer and need to wake up
-	 other writers or waiting readers (i.e., PTHREAD_RWLOCK_RWAITING).  */
-      unsigned int wpf;
-      bool ready = false;
-      for (;;)
-	{
-	  while (((wpf = atomic_load_relaxed (&rwlock->__data.__wrphase_futex))
-	      | PTHREAD_RWLOCK_FUTEX_USED) == PTHREAD_RWLOCK_FUTEX_USED)
-	    {
-	      int private = __pthread_rwlock_get_private (rwlock);
-	      if (((wpf & PTHREAD_RWLOCK_FUTEX_USED) == 0)
-		  && !atomic_compare_exchange_weak_relaxed
-		      (&rwlock->__data.__wrphase_futex, &wpf,
-		       PTHREAD_RWLOCK_FUTEX_USED))
-		continue;
-	      int err = futex_abstimed_wait (&rwlock->__data.__wrphase_futex,
-		  PTHREAD_RWLOCK_FUTEX_USED, abstime, private);
-	      if (err == ETIMEDOUT)
-		{
-		  if (rwlock->__data.__flags
-		      != PTHREAD_RWLOCK_PREFER_READER_NP)
-		    {
-		      /* We try writer--writer hand-over.  */
-		      unsigned int w = atomic_load_relaxed
-			  (&rwlock->__data.__writers);
-		      if (w != 0)
-			{
-			  /* We are about to hand over WRLOCKED, so we must
-			     release __writers_futex too; otherwise, we'd have
-			     a pending store, which could at least prevent
-			     other threads from waiting using the futex
-			     because it could interleave with the stores
-			     by subsequent writers.  In turn, this means that
-			     we have to clean up when we do not hand over
-			     WRLOCKED.
-			     Release MO so that another writer that gets
-			     WRLOCKED from us can take over our view of
-			     __readers.  */
-			  unsigned int wf = atomic_exchange_relaxed
-			      (&rwlock->__data.__writers_futex, 0);
-			  while (w != 0)
-			    {
-			      if (atomic_compare_exchange_weak_release
-				  (&rwlock->__data.__writers, &w,
-				      w | PTHREAD_RWLOCK_WRHANDOVER))
-				{
-				  /* Wake other writers.  */
-				  if ((wf & PTHREAD_RWLOCK_FUTEX_USED) != 0)
-				    futex_wake
-					(&rwlock->__data.__writers_futex, 1,
-					 private);
-				  return ETIMEDOUT;
-				}
-			      /* TODO Back-off.  */
-			    }
-			  /* We still own WRLOCKED and someone else might set
-			     a write phase concurrently, so enable waiting
-			     again.  Make sure we don't loose the flag that
-			     signals whether there are threads waiting on
-			     this futex.  */
-			  atomic_store_relaxed
-			      (&rwlock->__data.__writers_futex, wf);
-			}
-		    }
-		  /* If we timed out and we are not in a write phase, we can
-		     just stop being a primary writer.  Otherwise, we just
-		     acquire the lock.  */
-		  r = atomic_load_relaxed (&rwlock->__data.__readers);
-		  if ((r & PTHREAD_RWLOCK_WRPHASE) == 0)
-		    {
-		      /* We are about to release WRLOCKED, so we must release
-			 __writers_futex too; see the handling of
-			 writer--writer hand-over above.  */
-		      unsigned int wf = atomic_exchange_relaxed
-			  (&rwlock->__data.__writers_futex, 0);
-		      while ((r & PTHREAD_RWLOCK_WRPHASE) == 0)
-			{
-			  /* While we don't need to make anything from a
-			     caller's critical section visible to other
-			     threads, we need to ensure that our changes to
-			     __writers_futex are properly ordered.
-			     Therefore, use release MO to synchronize with
-			     subsequent primary writers.  Also wake up any
-			     waiting readers as they are waiting because of
-			     us.  */
-			  if (atomic_compare_exchange_weak_release
-			      (&rwlock->__data.__readers, &r,
-			       (r ^ PTHREAD_RWLOCK_WRLOCKED)
-			       & ~(unsigned int) PTHREAD_RWLOCK_RWAITING))
-			    {
-			      /* Wake other writers.  */
-			      if ((wf & PTHREAD_RWLOCK_FUTEX_USED) != 0)
-				futex_wake (&rwlock->__data.__writers_futex,
-				    1, private);
-			      /* Wake waiting readers.  */
-			      if ((r & PTHREAD_RWLOCK_RWAITING) != 0)
-				futex_wake (&rwlock->__data.__readers,
-				    INT_MAX, private);
-			      return ETIMEDOUT;
-			    }
-			}
-		      /* We still own WRLOCKED and someone else might set a
-			 write phase concurrently, so enable waiting again.
-			 Make sure we don't loose the flag that signals
-			 whether there are threads waiting on this futex.  */
-		      atomic_store_relaxed (&rwlock->__data.__writers_futex,
-			  wf);
-		    }
-		  /* Use the acquire MO fence to mirror the steps taken in the
-		     non-timeout case.  Note that the read can happen both
-		     in the atomic_load above as well as in the failure case
-		     of the CAS operation.  */
-		  atomic_thread_fence_acquire ();
-		  /* We still need to wait for explicit hand-over, but we must
-		     not use futex_wait anymore.  */
-		  while ((atomic_load_relaxed
-		      (&rwlock->__data.__wrphase_futex)
-		       | PTHREAD_RWLOCK_FUTEX_USED)
-		      == PTHREAD_RWLOCK_FUTEX_USED)
-		    {
-		      /* TODO Back-off.  */
-		    }
-		  ready = true;
-		  break;
-		}
-	      /* If we got interrupted (EINTR) or the futex word does not have
-		 the expected value (EAGAIN), retry.  */
-	    }
-	  /* See pthread_rwlock_rdlock_full.  */
-	  if (ready)
-	    break;
-	  if ((atomic_load_acquire (&rwlock->__data.__readers)
-	      & PTHREAD_RWLOCK_WRPHASE) != 0)
-	    ready = true;
-	}
-    }
-
-  atomic_store_relaxed (&rwlock->__data.__cur_writer,
-      THREAD_GETMEM (THREAD_SELF, tid));
-  return 0;
-}
diff --git a/nptl/pthread_rwlock_destroy.c b/nptl/pthread_rwlock_destroy.c
deleted file mode 100644
index b63ce46420..0000000000
--- a/nptl/pthread_rwlock_destroy.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-#include <stap-probe.h>
-
-
-int
-__pthread_rwlock_destroy (pthread_rwlock_t *rwlock)
-{
-  LIBC_PROBE (rwlock_destroy, 1, rwlock);
-
-  /* Nothing to be done.  For now.  */
-  return 0;
-}
-strong_alias (__pthread_rwlock_destroy, pthread_rwlock_destroy)
diff --git a/nptl/pthread_rwlock_init.c b/nptl/pthread_rwlock_init.c
deleted file mode 100644
index 764ba110fb..0000000000
--- a/nptl/pthread_rwlock_init.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-#include <string.h>
-
-
-static const struct pthread_rwlockattr default_rwlockattr =
-  {
-    .lockkind = PTHREAD_RWLOCK_DEFAULT_NP,
-    .pshared = PTHREAD_PROCESS_PRIVATE
-  };
-
-
-/* See pthread_rwlock_common.c.  */
-int
-__pthread_rwlock_init (pthread_rwlock_t *rwlock,
-		       const pthread_rwlockattr_t *attr)
-{
-  const struct pthread_rwlockattr *iattr;
-
-  iattr = ((const struct pthread_rwlockattr *) attr) ?: &default_rwlockattr;
-
-  memset (rwlock, '\0', sizeof (*rwlock));
-
-  rwlock->__data.__flags = iattr->lockkind;
-
-  /* The value of __SHARED in a private rwlock must be zero.  */
-  rwlock->__data.__shared = (iattr->pshared != PTHREAD_PROCESS_PRIVATE);
-
-  return 0;
-}
-strong_alias (__pthread_rwlock_init, pthread_rwlock_init)
diff --git a/nptl/pthread_rwlock_rdlock.c b/nptl/pthread_rwlock_rdlock.c
deleted file mode 100644
index e07581bbf5..0000000000
--- a/nptl/pthread_rwlock_rdlock.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthread_rwlock_common.c"
-
-/* See pthread_rwlock_common.c.  */
-int
-__pthread_rwlock_rdlock (pthread_rwlock_t *rwlock)
-{
-  LIBC_PROBE (rdlock_entry, 1, rwlock);
-
-  int result = __pthread_rwlock_rdlock_full (rwlock, NULL);
-  LIBC_PROBE (rdlock_acquire_read, 1, rwlock);
-  return result;
-}
-
-weak_alias (__pthread_rwlock_rdlock, pthread_rwlock_rdlock)
-hidden_def (__pthread_rwlock_rdlock)
diff --git a/nptl/pthread_rwlock_timedrdlock.c b/nptl/pthread_rwlock_timedrdlock.c
deleted file mode 100644
index 9f084f8c34..0000000000
--- a/nptl/pthread_rwlock_timedrdlock.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthread_rwlock_common.c"
-
-/* See pthread_rwlock_common.c.  */
-int
-pthread_rwlock_timedrdlock (pthread_rwlock_t *rwlock,
-    const struct timespec *abstime)
-{
-  /* Make sure the passed in timeout value is valid.  Note that the previous
-     implementation assumed that this check *must* not be performed if there
-     would in fact be no blocking; however, POSIX only requires that "the
-     validity of the abstime parameter need not be checked if the lock can be
-     immediately acquired" (i.e., we need not but may check it).  */
-  /* ??? Just move this to __pthread_rwlock_rdlock_full?  */
-  if (__glibc_unlikely (abstime->tv_nsec >= 1000000000
-      || abstime->tv_nsec < 0))
-    return EINVAL;
-
-  return __pthread_rwlock_rdlock_full (rwlock, abstime);
-}
diff --git a/nptl/pthread_rwlock_timedwrlock.c b/nptl/pthread_rwlock_timedwrlock.c
deleted file mode 100644
index 5626505d2c..0000000000
--- a/nptl/pthread_rwlock_timedwrlock.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthread_rwlock_common.c"
-
-/* See pthread_rwlock_common.c.  */
-int
-pthread_rwlock_timedwrlock (pthread_rwlock_t *rwlock,
-    const struct timespec *abstime)
-{
-  /* Make sure the passed in timeout value is valid.  Note that the previous
-     implementation assumed that this check *must* not be performed if there
-     would in fact be no blocking; however, POSIX only requires that "the
-     validity of the abstime parameter need not be checked if the lock can be
-     immediately acquired" (i.e., we need not but may check it).  */
-  /* ??? Just move this to __pthread_rwlock_wrlock_full?  */
-  if (__glibc_unlikely (abstime->tv_nsec >= 1000000000
-      || abstime->tv_nsec < 0))
-    return EINVAL;
-
-  return __pthread_rwlock_wrlock_full (rwlock, abstime);
-}
diff --git a/nptl/pthread_rwlock_tryrdlock.c b/nptl/pthread_rwlock_tryrdlock.c
deleted file mode 100644
index 6c3014ce53..0000000000
--- a/nptl/pthread_rwlock_tryrdlock.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <atomic.h>
-#include <stdbool.h>
-#include "pthread_rwlock_common.c"
-
-
-/* See pthread_rwlock_common.c for an overview.  */
-int
-__pthread_rwlock_tryrdlock (pthread_rwlock_t *rwlock)
-{
-  /* For tryrdlock, we could speculate that we will succeed and go ahead and
-     register as a reader.  However, if we misspeculate, we have to do the
-     same steps as a timed-out rdlock, which will increase contention.
-     Therefore, there is a trade-off between being able to use a combinable
-     read-modify-write operation and a CAS loop as used below; we pick the
-     latter because it simplifies the code, and should perform better when
-     tryrdlock is used in cases where writers are infrequent.
-     Because POSIX does not require a failed trylock to "synchronize memory",
-     relaxed MO is sufficient here and on the failure path of the CAS
-     below.  */
-  unsigned int r = atomic_load_relaxed (&rwlock->__data.__readers);
-  unsigned int rnew;
-  do
-    {
-      if ((r & PTHREAD_RWLOCK_WRPHASE) == 0)
-	{
-	  /* If we are in a read phase, try to acquire unless there is a
-	     primary writer and we prefer writers and there will be no
-	     recursive read locks.  */
-	  if (((r & PTHREAD_RWLOCK_WRLOCKED) != 0)
-	      && (rwlock->__data.__flags
-		  == PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP))
-	    return EBUSY;
-	  rnew = r + (1 << PTHREAD_RWLOCK_READER_SHIFT);
-	}
-      else
-	{
-	  /* If there is a writer that has acquired the lock and we are in
-	     a write phase, fail.  */
-	  if ((r & PTHREAD_RWLOCK_WRLOCKED) != 0)
-	    return EBUSY;
-	  else
-	    {
-	      /* If we do not care about potentially waiting writers, just
-		 try to acquire.  */
-	      rnew = (r + (1 << PTHREAD_RWLOCK_READER_SHIFT))
-		  ^ PTHREAD_RWLOCK_WRPHASE;
-	    }
-	}
-      /* If we could have caused an overflow or take effect during an
-	 overflow, we just can / need to return EAGAIN.  There is no need to
-	 have actually modified the number of readers because we could have
-	 done that and cleaned up immediately.  */
-      if (rnew >= PTHREAD_RWLOCK_READER_OVERFLOW)
-	return EAGAIN;
-    }
-  /* If the CAS fails, we retry; this prevents that tryrdlock fails spuriously
-     (i.e., fails to acquire the lock although there is no writer), which is
-     fine for C++14 but not currently allowed by POSIX.
-     However, because tryrdlock must not appear to block, we should avoid
-     starving this CAS loop due to constant changes to __readers:
-     While normal rdlock readers that won't be able to acquire will just block
-     (and we expect timeouts on timedrdlock to be longer than one retry of the
-     CAS loop), we can have concurrently failing tryrdlock calls due to
-     readers or writers that acquire and release in the meantime.  Using
-     randomized exponential back-off to make a live-lock unlikely should be
-     sufficient.
-     TODO Back-off.
-     Acquire MO so we synchronize with prior writers.  */
-  while (!atomic_compare_exchange_weak_acquire (&rwlock->__data.__readers,
-      &r, rnew));
-
-  if ((r & PTHREAD_RWLOCK_WRPHASE) != 0)
-    {
-      /* Same as in __pthread_rwlock_rdlock_full:
-	 We started the read phase, so we are also responsible for
-	 updating the write-phase futex.  Relaxed MO is sufficient.
-	 Note that there can be no other reader that we have to wake
-	 because all other readers will see the read phase started by us
-	 (or they will try to start it themselves); if a writer started
-	 the read phase, we cannot have started it.  Furthermore, we
-	 cannot discard a PTHREAD_RWLOCK_FUTEX_USED flag because we will
-	 overwrite the value set by the most recent writer (or the readers
-	 before it in case of explicit hand-over) and we know that there
-	 are no waiting readers.  */
-      atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 0);
-    }
-
-  return 0;
-
-
-}
-strong_alias (__pthread_rwlock_tryrdlock, pthread_rwlock_tryrdlock)
diff --git a/nptl/pthread_rwlock_trywrlock.c b/nptl/pthread_rwlock_trywrlock.c
deleted file mode 100644
index 0d9ccaf79c..0000000000
--- a/nptl/pthread_rwlock_trywrlock.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <atomic.h>
-
-/* See pthread_rwlock_common.c for an overview.  */
-int
-__pthread_rwlock_trywrlock (pthread_rwlock_t *rwlock)
-{
-  /* When in a trywrlock, we can acquire the write lock if it is in states
-     #1 (idle and read phase) and #5 (idle and write phase), and also in #6
-     (readers waiting, write phase) if we prefer writers.
-     If we observe any other state, we are allowed to fail and do not need to
-     "synchronize memory" as specified by POSIX (hence relaxed MO is
-     sufficient for the first load and the CAS failure path).
-     We face a similar issue as in tryrdlock in that we need to both avoid
-     live-locks / starvation and must not fail spuriously (see there for
-     further comments) -- and thus must loop until we get a definitive
-     observation or state change.  */
-  unsigned int r = atomic_load_relaxed (&rwlock->__data.__readers);
-  bool prefer_writer =
-      (rwlock->__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP);
-  while (((r & PTHREAD_RWLOCK_WRLOCKED) == 0)
-      && (((r >> PTHREAD_RWLOCK_READER_SHIFT) == 0)
-	  || (prefer_writer && ((r & PTHREAD_RWLOCK_WRPHASE) != 0))))
-    {
-      /* Try to transition to states #7 or #8 (i.e., acquire the lock).  */
-      if (atomic_compare_exchange_weak_acquire (
-	  &rwlock->__data.__readers, &r,
-	  r | PTHREAD_RWLOCK_WRPHASE | PTHREAD_RWLOCK_WRLOCKED))
-	{
-	  atomic_store_relaxed (&rwlock->__data.__writers_futex, 1);
-	  atomic_store_relaxed (&rwlock->__data.__wrphase_futex, 1);
-	  atomic_store_relaxed (&rwlock->__data.__cur_writer,
-	      THREAD_GETMEM (THREAD_SELF, tid));
-	  return 0;
-	}
-      /* TODO Back-off.  */
-      /* See above.  */
-    }
-  return EBUSY;
-}
-
-strong_alias (__pthread_rwlock_trywrlock, pthread_rwlock_trywrlock)
diff --git a/nptl/pthread_rwlock_unlock.c b/nptl/pthread_rwlock_unlock.c
deleted file mode 100644
index ef46e88263..0000000000
--- a/nptl/pthread_rwlock_unlock.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <sysdep.h>
-#include <futex-internal.h>
-#include <pthread.h>
-#include <pthreadP.h>
-#include <stap-probe.h>
-
-#include "pthread_rwlock_common.c"
-
-/* See pthread_rwlock_common.c for an overview.  */
-int
-__pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
-{
-  LIBC_PROBE (rwlock_unlock, 1, rwlock);
-
-  /* We distinguish between having acquired a read vs. a write lock by looking
-     at the writer TID.  If it's equal to our TID, we must be the writer
-     because nobody else can have stored this value.  Also, if we are a
-     reader, we will read from the wrunlock store with value 0 by the most
-     recent writer because that writer happens-before us.  */
-  if (atomic_load_relaxed (&rwlock->__data.__cur_writer)
-      == THREAD_GETMEM (THREAD_SELF, tid))
-      __pthread_rwlock_wrunlock (rwlock);
-  else
-    __pthread_rwlock_rdunlock (rwlock);
-  return 0;
-}
-
-weak_alias (__pthread_rwlock_unlock, pthread_rwlock_unlock)
-hidden_def (__pthread_rwlock_unlock)
diff --git a/nptl/pthread_rwlock_wrlock.c b/nptl/pthread_rwlock_wrlock.c
deleted file mode 100644
index 335fcd18cc..0000000000
--- a/nptl/pthread_rwlock_wrlock.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Martin Schwidefsky <schwidefsky@de.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthread_rwlock_common.c"
-
-/* See pthread_rwlock_common.c.  */
-int
-__pthread_rwlock_wrlock (pthread_rwlock_t *rwlock)
-{
-  LIBC_PROBE (wrlock_entry, 1, rwlock);
-
-  int result = __pthread_rwlock_wrlock_full (rwlock, NULL);
-  LIBC_PROBE (wrlock_acquire_write, 1, rwlock);
-  return result;
-}
-
-weak_alias (__pthread_rwlock_wrlock, pthread_rwlock_wrlock)
-hidden_def (__pthread_rwlock_wrlock)
diff --git a/nptl/pthread_rwlockattr_destroy.c b/nptl/pthread_rwlockattr_destroy.c
deleted file mode 100644
index 73dd36cc9f..0000000000
--- a/nptl/pthread_rwlockattr_destroy.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_rwlockattr_destroy (pthread_rwlockattr_t *attr)
-{
-  /* Nothing to do.  For now.  */
-
-  return 0;
-}
diff --git a/nptl/pthread_rwlockattr_getkind_np.c b/nptl/pthread_rwlockattr_getkind_np.c
deleted file mode 100644
index 273aa70fbc..0000000000
--- a/nptl/pthread_rwlockattr_getkind_np.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *attr, int *pref)
-{
-  *pref = ((const struct pthread_rwlockattr *) attr)->lockkind;
-
-  return 0;
-}
diff --git a/nptl/pthread_rwlockattr_getpshared.c b/nptl/pthread_rwlockattr_getpshared.c
deleted file mode 100644
index 564d7ef9e9..0000000000
--- a/nptl/pthread_rwlockattr_getpshared.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *attr, int *pshared)
-{
-  *pshared = ((const struct pthread_rwlockattr *) attr)->pshared;
-
-  return 0;
-}
diff --git a/nptl/pthread_rwlockattr_init.c b/nptl/pthread_rwlockattr_init.c
deleted file mode 100644
index 8d90647db0..0000000000
--- a/nptl/pthread_rwlockattr_init.c
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_rwlockattr_init (pthread_rwlockattr_t *attr)
-{
-  struct pthread_rwlockattr *iattr;
-
-  iattr = (struct pthread_rwlockattr *) attr;
-
-  iattr->lockkind = PTHREAD_RWLOCK_DEFAULT_NP;
-  iattr->pshared = PTHREAD_PROCESS_PRIVATE;
-
-  return 0;
-}
diff --git a/nptl/pthread_rwlockattr_setkind_np.c b/nptl/pthread_rwlockattr_setkind_np.c
deleted file mode 100644
index b3cdc7fb65..0000000000
--- a/nptl/pthread_rwlockattr_setkind_np.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-
-
-int
-pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *attr, int pref)
-{
-  struct pthread_rwlockattr *iattr;
-
-  if (pref != PTHREAD_RWLOCK_PREFER_READER_NP
-      && pref != PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
-      && __builtin_expect  (pref != PTHREAD_RWLOCK_PREFER_WRITER_NP, 0))
-    return EINVAL;
-
-  iattr = (struct pthread_rwlockattr *) attr;
-
-  iattr->lockkind = pref;
-
-  return 0;
-}
diff --git a/nptl/pthread_rwlockattr_setpshared.c b/nptl/pthread_rwlockattr_setpshared.c
deleted file mode 100644
index 450e3af593..0000000000
--- a/nptl/pthread_rwlockattr_setpshared.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <futex-internal.h>
-
-
-int
-pthread_rwlockattr_setpshared (pthread_rwlockattr_t *attr, int pshared)
-{
-  struct pthread_rwlockattr *iattr;
-
-  int err = futex_supports_pshared (pshared);
-  if (err != 0)
-    return err;
-
-  iattr = (struct pthread_rwlockattr *) attr;
-
-  iattr->pshared = pshared;
-
-  return 0;
-}
diff --git a/nptl/pthread_self.c b/nptl/pthread_self.c
deleted file mode 100644
index 4c978e1cfa..0000000000
--- a/nptl/pthread_self.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-#include <tls.h>
-
-
-pthread_t
-__pthread_self (void)
-{
-  return (pthread_t) THREAD_SELF;
-}
-strong_alias (__pthread_self, pthread_self)
diff --git a/nptl/pthread_setaffinity.c b/nptl/pthread_setaffinity.c
deleted file mode 100644
index ea9cf6f395..0000000000
--- a/nptl/pthread_setaffinity.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Set the processor affinity of a thread.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-
-int
-pthread_setaffinity_np (pthread_t th,
-                        size_t cpusetsize, const cpu_set_t *cpuset)
-{
-  const struct pthread *pd = (const struct pthread *) th;
-
-  if (INVALID_TD_P (pd))
-    return ESRCH;
-
-  return ENOSYS;
-}
-stub_warning (pthread_setaffinity_np)
diff --git a/nptl/pthread_setattr_default_np.c b/nptl/pthread_setattr_default_np.c
deleted file mode 100644
index dd1b6fc915..0000000000
--- a/nptl/pthread_setattr_default_np.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Set the default attributes to be used by pthread_create in the process.
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <pthreadP.h>
-#include <assert.h>
-#include <string.h>
-
-
-int
-pthread_setattr_default_np (const pthread_attr_t *in)
-{
-  const struct pthread_attr *real_in;
-  struct pthread_attr attrs;
-  int ret;
-
-  assert (sizeof (*in) >= sizeof (struct pthread_attr));
-  real_in = (struct pthread_attr *) in;
-
-  /* Catch invalid values.  */
-  int policy = real_in->schedpolicy;
-  ret = check_sched_policy_attr (policy);
-  if (ret)
-    return ret;
-
-  const struct sched_param *param = &real_in->schedparam;
-  if (param->sched_priority > 0)
-    {
-      ret = check_sched_priority_attr (param->sched_priority, policy);
-      if (ret)
-	return ret;
-    }
-
-  /* stacksize == 0 is fine.  It means that we don't change the current
-     value.  */
-  if (real_in->stacksize != 0)
-    {
-      ret = check_stacksize_attr (real_in->stacksize);
-      if (ret)
-	return ret;
-    }
-
-  /* Having a default stack address is wrong.  */
-  if (real_in->flags & ATTR_FLAG_STACKADDR)
-    return EINVAL;
-
-  attrs = *real_in;
-
-  /* Now take the lock because we start writing into
-     __default_pthread_attr.  */
-  lll_lock (__default_pthread_attr_lock, LLL_PRIVATE);
-
-  /* Free the cpuset if the input is 0.  Otherwise copy in the cpuset
-     contents.  */
-  size_t cpusetsize = attrs.cpusetsize;
-  if (cpusetsize == 0)
-    {
-      free (__default_pthread_attr.cpuset);
-      __default_pthread_attr.cpuset = NULL;
-    }
-  else if (cpusetsize == __default_pthread_attr.cpusetsize)
-    {
-      attrs.cpuset = __default_pthread_attr.cpuset;
-      memcpy (attrs.cpuset, real_in->cpuset, cpusetsize);
-    }
-  else
-    {
-      /* This may look wrong at first sight, but it isn't.  We're freeing
-	 __default_pthread_attr.cpuset and allocating to attrs.cpuset because
-	 we'll copy over all of attr to __default_pthread_attr later.  */
-      cpu_set_t *newp = realloc (__default_pthread_attr.cpuset,
-				 cpusetsize);
-
-      if (newp == NULL)
-	{
-	  ret = ENOMEM;
-	  goto out;
-	}
-
-      attrs.cpuset = newp;
-      memcpy (attrs.cpuset, real_in->cpuset, cpusetsize);
-    }
-
-  /* We don't want to accidentally set the default stacksize to zero.  */
-  if (attrs.stacksize == 0)
-    attrs.stacksize = __default_pthread_attr.stacksize;
-  __default_pthread_attr = attrs;
-
- out:
-  lll_unlock (__default_pthread_attr_lock, LLL_PRIVATE);
-  return ret;
-}
diff --git a/nptl/pthread_setcancelstate.c b/nptl/pthread_setcancelstate.c
deleted file mode 100644
index 8a1cb9ac3f..0000000000
--- a/nptl/pthread_setcancelstate.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <atomic.h>
-
-
-int
-__pthread_setcancelstate (int state, int *oldstate)
-{
-  volatile struct pthread *self;
-
-  if (state < PTHREAD_CANCEL_ENABLE || state > PTHREAD_CANCEL_DISABLE)
-    return EINVAL;
-
-  self = THREAD_SELF;
-
-  int oldval = THREAD_GETMEM (self, cancelhandling);
-  while (1)
-    {
-      int newval = (state == PTHREAD_CANCEL_DISABLE
-		    ? oldval | CANCELSTATE_BITMASK
-		    : oldval & ~CANCELSTATE_BITMASK);
-
-      /* Store the old value.  */
-      if (oldstate != NULL)
-	*oldstate = ((oldval & CANCELSTATE_BITMASK)
-		     ? PTHREAD_CANCEL_DISABLE : PTHREAD_CANCEL_ENABLE);
-
-      /* Avoid doing unnecessary work.  The atomic operation can
-	 potentially be expensive if the memory has to be locked and
-	 remote cache lines have to be invalidated.  */
-      if (oldval == newval)
-	break;
-
-      /* Update the cancel handling word.  This has to be done
-	 atomically since other bits could be modified as well.  */
-      int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval,
-					      oldval);
-      if (__glibc_likely (curval == oldval))
-	{
-	  if (CANCEL_ENABLED_AND_CANCELED_AND_ASYNCHRONOUS (newval))
-	    __do_cancel ();
-
-	  break;
-	}
-
-      /* Prepare for the next round.  */
-      oldval = curval;
-    }
-
-  return 0;
-}
-strong_alias (__pthread_setcancelstate, pthread_setcancelstate)
-hidden_def (__pthread_setcancelstate)
diff --git a/nptl/pthread_setcanceltype.c b/nptl/pthread_setcanceltype.c
deleted file mode 100644
index dd1f374849..0000000000
--- a/nptl/pthread_setcanceltype.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-#include <atomic.h>
-
-
-int
-__pthread_setcanceltype (int type, int *oldtype)
-{
-  if (type < PTHREAD_CANCEL_DEFERRED || type > PTHREAD_CANCEL_ASYNCHRONOUS)
-    return EINVAL;
-
-#ifndef SIGCANCEL
-  if (type == PTHREAD_CANCEL_ASYNCHRONOUS)
-    return ENOTSUP;
-#endif
-
-  volatile struct pthread *self = THREAD_SELF;
-
-  int oldval = THREAD_GETMEM (self, cancelhandling);
-  while (1)
-    {
-      int newval = (type == PTHREAD_CANCEL_ASYNCHRONOUS
-		    ? oldval | CANCELTYPE_BITMASK
-		    : oldval & ~CANCELTYPE_BITMASK);
-
-      /* Store the old value.  */
-      if (oldtype != NULL)
-	*oldtype = ((oldval & CANCELTYPE_BITMASK)
-		    ? PTHREAD_CANCEL_ASYNCHRONOUS : PTHREAD_CANCEL_DEFERRED);
-
-      /* Avoid doing unnecessary work.  The atomic operation can
-	 potentially be expensive if the memory has to be locked and
-	 remote cache lines have to be invalidated.  */
-      if (oldval == newval)
-	break;
-
-      /* Update the cancel handling word.  This has to be done
-	 atomically since other bits could be modified as well.  */
-      int curval = THREAD_ATOMIC_CMPXCHG_VAL (self, cancelhandling, newval,
-					      oldval);
-      if (__glibc_likely (curval == oldval))
-	{
-	  if (CANCEL_ENABLED_AND_CANCELED_AND_ASYNCHRONOUS (newval))
-	    {
-	      THREAD_SETMEM (self, result, PTHREAD_CANCELED);
-	      __do_cancel ();
-	    }
-
-	  break;
-	}
-
-      /* Prepare for the next round.  */
-      oldval = curval;
-    }
-
-  return 0;
-}
-strong_alias (__pthread_setcanceltype, pthread_setcanceltype)
diff --git a/nptl/pthread_setconcurrency.c b/nptl/pthread_setconcurrency.c
deleted file mode 100644
index 2a78e15f85..0000000000
--- a/nptl/pthread_setconcurrency.c
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include "pthreadP.h"
-
-
-/* Global definition.  Needed in pthread_getconcurrency as well.  */
-int __concurrency_level;
-
-
-int
-pthread_setconcurrency (int level)
-{
-  if (level < 0)
-    return EINVAL;
-
-  __concurrency_level = level;
-
-  /* XXX For ports which actually need to handle the concurrency level
-     some more code is probably needed here.  */
-
-  return 0;
-}
diff --git a/nptl/pthread_setegid.c b/nptl/pthread_setegid.c
deleted file mode 100644
index 9252dfac7d..0000000000
--- a/nptl/pthread_setegid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define setegid pthread_setegid_np
-#include <setegid.c>
diff --git a/nptl/pthread_seteuid.c b/nptl/pthread_seteuid.c
deleted file mode 100644
index 47bb698025..0000000000
--- a/nptl/pthread_seteuid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define seteuid pthread_seteuid_np
-#include <seteuid.c>
diff --git a/nptl/pthread_setgid.c b/nptl/pthread_setgid.c
deleted file mode 100644
index b06bffbf32..0000000000
--- a/nptl/pthread_setgid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define __setgid pthread_setgid_np
-#include <setgid.c>
diff --git a/nptl/pthread_setname.c b/nptl/pthread_setname.c
deleted file mode 100644
index e8a0d483a5..0000000000
--- a/nptl/pthread_setname.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* pthread_setname_np -- Set thread name.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-
-int
-pthread_setname_np (pthread_t th, const char *name)
-{
-  const struct pthread *pd = (const struct pthread *) th;
-
-  if (INVALID_TD_P (pd))
-    return ESRCH;
-
-  return ENOSYS;
-}
-stub_warning (pthread_setname_np)
diff --git a/nptl/pthread_setregid.c b/nptl/pthread_setregid.c
deleted file mode 100644
index 7461d2b7fd..0000000000
--- a/nptl/pthread_setregid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define __setregid pthread_setregid_np
-#include <setregid.c>
diff --git a/nptl/pthread_setresgid.c b/nptl/pthread_setresgid.c
deleted file mode 100644
index 369fae2672..0000000000
--- a/nptl/pthread_setresgid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define __setresgid pthread_setresgid_np
-#include <setresgid.c>
diff --git a/nptl/pthread_setresuid.c b/nptl/pthread_setresuid.c
deleted file mode 100644
index ac57c0fa8d..0000000000
--- a/nptl/pthread_setresuid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define __setresuid pthread_setresuid_np
-#include <setresuid.c>
diff --git a/nptl/pthread_setreuid.c b/nptl/pthread_setreuid.c
deleted file mode 100644
index aa804ab01d..0000000000
--- a/nptl/pthread_setreuid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define __setreuid pthread_setreuid_np
-#include <setreuid.c>
diff --git a/nptl/pthread_setschedparam.c b/nptl/pthread_setschedparam.c
deleted file mode 100644
index a6539b3ee1..0000000000
--- a/nptl/pthread_setschedparam.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <sched.h>
-#include <string.h>
-#include "pthreadP.h"
-#include <lowlevellock.h>
-
-
-int
-__pthread_setschedparam (pthread_t threadid, int policy,
-			 const struct sched_param *param)
-{
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  int result = 0;
-
-  /* See CREATE THREAD NOTES in nptl/pthread_create.c.  */
-  lll_lock (pd->lock, LLL_PRIVATE);
-
-  struct sched_param p;
-  const struct sched_param *orig_param = param;
-
-  /* If the thread should have higher priority because of some
-     PTHREAD_PRIO_PROTECT mutexes it holds, adjust the priority.  */
-  if (__builtin_expect (pd->tpp != NULL, 0)
-      && pd->tpp->priomax > param->sched_priority)
-    {
-      p = *param;
-      p.sched_priority = pd->tpp->priomax;
-      param = &p;
-    }
-
-  /* Try to set the scheduler information.  */
-  if (__builtin_expect (__sched_setscheduler (pd->tid, policy,
-					      param) == -1, 0))
-    result = errno;
-  else
-    {
-      /* We succeeded changing the kernel information.  Reflect this
-	 change in the thread descriptor.  */
-      pd->schedpolicy = policy;
-      memcpy (&pd->schedparam, orig_param, sizeof (struct sched_param));
-      pd->flags |= ATTR_FLAG_SCHED_SET | ATTR_FLAG_POLICY_SET;
-    }
-
-  lll_unlock (pd->lock, LLL_PRIVATE);
-
-  return result;
-}
-strong_alias (__pthread_setschedparam, pthread_setschedparam)
diff --git a/nptl/pthread_setschedprio.c b/nptl/pthread_setschedprio.c
deleted file mode 100644
index b83d2fba43..0000000000
--- a/nptl/pthread_setschedprio.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <sched.h>
-#include <string.h>
-#include <sched.h>
-#include "pthreadP.h"
-#include <lowlevellock.h>
-
-
-int
-pthread_setschedprio (pthread_t threadid, int prio)
-{
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  int result = 0;
-  struct sched_param param;
-  param.sched_priority = prio;
-
-  /* See CREATE THREAD NOTES in nptl/pthread_create.c.  */
-  lll_lock (pd->lock, LLL_PRIVATE);
-
-  /* If the thread should have higher priority because of some
-     PTHREAD_PRIO_PROTECT mutexes it holds, adjust the priority.  */
-  if (__builtin_expect (pd->tpp != NULL, 0) && pd->tpp->priomax > prio)
-    param.sched_priority = pd->tpp->priomax;
-
-  /* Try to set the scheduler information.  */
-  if (__glibc_unlikely (sched_setparam (pd->tid, &param) == -1))
-    result = errno;
-  else
-    {
-      /* We succeeded changing the kernel information.  Reflect this
-	 change in the thread descriptor.  */
-      param.sched_priority = prio;
-      memcpy (&pd->schedparam, &param, sizeof (struct sched_param));
-      pd->flags |= ATTR_FLAG_SCHED_SET;
-    }
-
-  lll_unlock (pd->lock, LLL_PRIVATE);
-
-  return result;
-}
diff --git a/nptl/pthread_setspecific.c b/nptl/pthread_setspecific.c
deleted file mode 100644
index c5416a5ae0..0000000000
--- a/nptl/pthread_setspecific.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include "pthreadP.h"
-
-
-int
-__pthread_setspecific (pthread_key_t key, const void *value)
-{
-  struct pthread *self;
-  unsigned int idx1st;
-  unsigned int idx2nd;
-  struct pthread_key_data *level2;
-  unsigned int seq;
-
-  self = THREAD_SELF;
-
-  /* Special case access to the first 2nd-level block.  This is the
-     usual case.  */
-  if (__glibc_likely (key < PTHREAD_KEY_2NDLEVEL_SIZE))
-    {
-      /* Verify the key is sane.  */
-      if (KEY_UNUSED ((seq = __pthread_keys[key].seq)))
-	/* Not valid.  */
-	return EINVAL;
-
-      level2 = &self->specific_1stblock[key];
-
-      /* Remember that we stored at least one set of data.  */
-      if (value != NULL)
-	THREAD_SETMEM (self, specific_used, true);
-    }
-  else
-    {
-      if (key >= PTHREAD_KEYS_MAX
-	  || KEY_UNUSED ((seq = __pthread_keys[key].seq)))
-	/* Not valid.  */
-	return EINVAL;
-
-      idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE;
-      idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE;
-
-      /* This is the second level array.  Allocate it if necessary.  */
-      level2 = THREAD_GETMEM_NC (self, specific, idx1st);
-      if (level2 == NULL)
-	{
-	  if (value == NULL)
-	    /* We don't have to do anything.  The value would in any case
-	       be NULL.  We can save the memory allocation.  */
-	    return 0;
-
-	  level2
-	    = (struct pthread_key_data *) calloc (PTHREAD_KEY_2NDLEVEL_SIZE,
-						  sizeof (*level2));
-	  if (level2 == NULL)
-	    return ENOMEM;
-
-	  THREAD_SETMEM_NC (self, specific, idx1st, level2);
-	}
-
-      /* Pointer to the right array element.  */
-      level2 = &level2[idx2nd];
-
-      /* Remember that we stored at least one set of data.  */
-      THREAD_SETMEM (self, specific_used, true);
-    }
-
-  /* Store the data and the sequence number so that we can recognize
-     stale data.  */
-  level2->seq = seq;
-  level2->data = (void *) value;
-
-  return 0;
-}
-strong_alias (__pthread_setspecific, pthread_setspecific)
-hidden_def (__pthread_setspecific)
diff --git a/nptl/pthread_setuid.c b/nptl/pthread_setuid.c
deleted file mode 100644
index ff949c850f..0000000000
--- a/nptl/pthread_setuid.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define SINGLE_THREAD
-#define __setuid pthread_setuid_np
-#include <setuid.c>
diff --git a/nptl/pthread_sigmask.c b/nptl/pthread_sigmask.c
deleted file mode 100644
index 56a0ecc396..0000000000
--- a/nptl/pthread_sigmask.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Examine and change blocked signals for a thread.  Generic POSIX version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <pthreadP.h>
-
-#if defined SIGCANCEL || defined SIGTIMER || defined SIGSETXID
-# error "This implementation assumes no internal-only signal numbers."
-#endif
-
-int
-pthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask)
-{
-  /* Here we assume that sigprocmask actually does everything right.
-     The only difference is the return value protocol.  */
-  int result = sigprocmask (how, newmask, oldmask);
-  if (result < 0)
-    result = errno;
-  return result;
-}
diff --git a/nptl/pthread_sigqueue.c b/nptl/pthread_sigqueue.c
deleted file mode 100644
index 09b686f4ce..0000000000
--- a/nptl/pthread_sigqueue.c
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Queue a signal (with value) for a specific pthread.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <pthreadP.h>
-
-
-int
-pthread_sigqueue (pthread_t threadid, int signo, const union sigval value)
-{
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (DEBUGGING_P && INVALID_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  return ENOSYS;
-}
-
-stub_warning (pthread_sigqueue)
diff --git a/nptl/pthread_spin_destroy.c b/nptl/pthread_spin_destroy.c
deleted file mode 100644
index 2eca129155..0000000000
--- a/nptl/pthread_spin_destroy.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-int
-pthread_spin_destroy (pthread_spinlock_t *lock)
-{
-  /* Nothing to do.  */
-  return 0;
-}
diff --git a/nptl/pthread_spin_init.c b/nptl/pthread_spin_init.c
deleted file mode 100644
index fe3091377e..0000000000
--- a/nptl/pthread_spin_init.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* pthread_spin_init -- initialize a spin lock.  Generic version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-int
-pthread_spin_init (pthread_spinlock_t *lock, int pshared)
-{
-  /* Relaxed MO is fine because this is an initializing store.  */
-  atomic_store_relaxed (lock, 0);
-  return 0;
-}
diff --git a/nptl/pthread_spin_lock.c b/nptl/pthread_spin_lock.c
deleted file mode 100644
index 682af80240..0000000000
--- a/nptl/pthread_spin_lock.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* pthread_spin_lock -- lock a spin lock.  Generic version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <atomic.h>
-#include "pthreadP.h"
-
-int
-pthread_spin_lock (pthread_spinlock_t *lock)
-{
-  int val = 0;
-
-  /* We assume that the first try mostly will be successful, thus we use
-     atomic_exchange if it is not implemented by a CAS loop (we also assume
-     that atomic_exchange can be faster if it succeeds, see
-     ATOMIC_EXCHANGE_USES_CAS).  Otherwise, we use a weak CAS and not an
-     exchange so we bail out after the first failed attempt to change the
-     state.  For the subsequent attempts we use atomic_compare_and_exchange
-     after we observe that the lock is not acquired.
-     See also comment in pthread_spin_trylock.
-     We use acquire MO to synchronize-with the release MO store in
-     pthread_spin_unlock, and thus ensure that prior critical sections
-     happen-before this critical section.  */
-#if ! ATOMIC_EXCHANGE_USES_CAS
-  /* Try to acquire the lock with an exchange instruction as this architecture
-     has such an instruction and we assume it is faster than a CAS.
-     The acquisition succeeds if the lock is not in an acquired state.  */
-  if (__glibc_likely (atomic_exchange_acquire (lock, 1) == 0))
-    return 0;
-#else
-  /* Try to acquire the lock with a CAS instruction as this architecture
-     has no exchange instruction.  The acquisition succeeds if the lock is not
-     acquired.  */
-  if (__glibc_likely (atomic_compare_exchange_weak_acquire (lock, &val, 1)))
-    return 0;
-#endif
-
-  do
-    {
-      /* The lock is contended and we need to wait.  Going straight back
-	 to cmpxchg is not a good idea on many targets as that will force
-	 expensive memory synchronizations among processors and penalize other
-	 running threads.
-	 There is no technical reason for throwing in a CAS every now and then,
-	 and so far we have no evidence that it can improve performance.
-	 If that would be the case, we have to adjust other spin-waiting loops
-	 elsewhere, too!
-	 Thus we use relaxed MO reads until we observe the lock to not be
-	 acquired anymore.  */
-      do
-	{
-	  /* TODO Back-off.  */
-
-	  atomic_spin_nop ();
-
-	  val = atomic_load_relaxed (lock);
-	}
-      while (val != 0);
-
-      /* We need acquire memory order here for the same reason as mentioned
-	 for the first try to lock the spinlock.  */
-    }
-  while (!atomic_compare_exchange_weak_acquire (lock, &val, 1));
-
-  return 0;
-}
diff --git a/nptl/pthread_spin_trylock.c b/nptl/pthread_spin_trylock.c
deleted file mode 100644
index 83921b06b8..0000000000
--- a/nptl/pthread_spin_trylock.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* pthread_spin_trylock -- trylock a spin lock.  Generic version.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <atomic.h>
-#include "pthreadP.h"
-
-int
-pthread_spin_trylock (pthread_spinlock_t *lock)
-{
-  /* For the spin try lock, we have the following possibilities:
-
-     1) If we assume that trylock will most likely succeed in practice:
-     * We just do an exchange.
-
-     2) If we want to bias towards cases where trylock succeeds, but don't
-     rule out contention:
-     * If exchange is not implemented by a CAS loop, and exchange is faster
-     than CAS, do an exchange.
-     * If exchange is implemented by a CAS loop, use a weak CAS and not an
-     exchange so we bail out after the first failed attempt to change the state.
-
-     3) If we expect contention to be likely:
-     * If CAS always brings the cache line into an exclusive state even if the
-     spinlock is already acquired, then load the value first with
-     atomic_load_relaxed and test if lock is not acquired. Then do 2).
-
-     We assume that 2) is the common case, and that this won't be slower than
-     1) in the common case.
-
-     We use acquire MO to synchronize-with the release MO store in
-     pthread_spin_unlock, and thus ensure that prior critical sections
-     happen-before this critical section.  */
-#if ! ATOMIC_EXCHANGE_USES_CAS
-  /* Try to acquire the lock with an exchange instruction as this architecture
-     has such an instruction and we assume it is faster than a CAS.
-     The acquisition succeeds if the lock is not in an acquired state.  */
-  if (atomic_exchange_acquire (lock, 1) == 0)
-    return 0;
-#else
-  /* Try to acquire the lock with a CAS instruction as this architecture
-     has no exchange instruction.  The acquisition succeeds if the lock is not
-     acquired.  */
-  do
-    {
-      int val = 0;
-      if (atomic_compare_exchange_weak_acquire (lock, &val, 1))
-	return 0;
-    }
-  /* atomic_compare_exchange_weak_acquire can fail spuriously.  Whereas
-     C++11 and C11 make it clear that trylock operations can fail spuriously,
-     POSIX does not explicitly specify this; it only specifies that failing
-     synchronization operations do not need to have synchronization effects
-     themselves, but a spurious failure is something that could contradict a
-     happens-before established earlier (e.g., that we need to observe that
-     the lock is acquired).  Therefore, we emulate a strong CAS by simply
-     checking with a relaxed MO load that the lock is really acquired before
-     returning EBUSY; the additional overhead this may cause is on the slow
-     path.  */
-  while (atomic_load_relaxed (lock) == 0);
-#endif
-
-  return EBUSY;
-}
diff --git a/nptl/pthread_spin_unlock.c b/nptl/pthread_spin_unlock.c
deleted file mode 100644
index f83b69639a..0000000000
--- a/nptl/pthread_spin_unlock.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* pthread_spin_unlock -- unlock a spin lock.  Generic version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-#include <atomic.h>
-
-int
-pthread_spin_unlock (pthread_spinlock_t *lock)
-{
-  /* The atomic_store_release synchronizes-with the atomic_exchange_acquire
-     or atomic_compare_exchange_weak_acquire in pthread_spin_lock /
-     pthread_spin_trylock.  */
-  atomic_store_release (lock, 0);
-  return 0;
-}
diff --git a/nptl/pthread_testcancel.c b/nptl/pthread_testcancel.c
deleted file mode 100644
index 38b343fbd9..0000000000
--- a/nptl/pthread_testcancel.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdlib.h>
-#include "pthreadP.h"
-
-
-void
-__pthread_testcancel (void)
-{
-  CANCELLATION_P (THREAD_SELF);
-}
-strong_alias (__pthread_testcancel, pthread_testcancel)
-hidden_def (__pthread_testcancel)
diff --git a/nptl/pthread_timedjoin.c b/nptl/pthread_timedjoin.c
deleted file mode 100644
index 567c171133..0000000000
--- a/nptl/pthread_timedjoin.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <atomic.h>
-#include "pthreadP.h"
-
-
-static void
-cleanup (void *arg)
-{
-  *(void **) arg = NULL;
-}
-
-
-int
-pthread_timedjoin_np (pthread_t threadid, void **thread_return,
-		      const struct timespec *abstime)
-{
-  struct pthread *self;
-  struct pthread *pd = (struct pthread *) threadid;
-  int result;
-
-  /* Make sure the descriptor is valid.  */
-  if (INVALID_NOT_TERMINATED_TD_P (pd))
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  /* Is the thread joinable?.  */
-  if (IS_DETACHED (pd))
-    /* We cannot wait for the thread.  */
-    return EINVAL;
-
-  self = THREAD_SELF;
-  if (pd == self || self->joinid == pd)
-    /* This is a deadlock situation.  The threads are waiting for each
-       other to finish.  Note that this is a "may" error.  To be 100%
-       sure we catch this error we would have to lock the data
-       structures but it is not necessary.  In the unlikely case that
-       two threads are really caught in this situation they will
-       deadlock.  It is the programmer's problem to figure this
-       out.  */
-    return EDEADLK;
-
-  /* Wait for the thread to finish.  If it is already locked something
-     is wrong.  There can only be one waiter.  */
-  if (__builtin_expect (atomic_compare_and_exchange_bool_acq (&pd->joinid,
-							      self, NULL), 0))
-    /* There is already somebody waiting for the thread.  */
-    return EINVAL;
-
-
-  /* During the wait we change to asynchronous cancellation.  If we
-     are cancelled the thread we are waiting for must be marked as
-     un-wait-ed for again.  */
-  pthread_cleanup_push (cleanup, &pd->joinid);
-
-  /* Switch to asynchronous cancellation.  */
-  int oldtype = CANCEL_ASYNC ();
-
-
-  /* Wait for the child.  */
-  result = lll_timedwait_tid (pd->tid, abstime);
-
-
-  /* Restore cancellation mode.  */
-  CANCEL_RESET (oldtype);
-
-  /* Remove the handler.  */
-  pthread_cleanup_pop (0);
-
-
-  /* We might have timed out.  */
-  if (result == 0)
-    {
-      /* Store the return value if the caller is interested.  */
-      if (thread_return != NULL)
-	*thread_return = pd->result;
-
-
-      /* Free the TCB.  */
-      __free_tcb (pd);
-    }
-  else
-    pd->joinid = NULL;
-
-  return result;
-}
diff --git a/nptl/pthread_tryjoin.c b/nptl/pthread_tryjoin.c
deleted file mode 100644
index 6a3b62e409..0000000000
--- a/nptl/pthread_tryjoin.c
+++ /dev/null
@@ -1,72 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-
-#include <atomic.h>
-#include "pthreadP.h"
-
-
-int
-pthread_tryjoin_np (pthread_t threadid, void **thread_return)
-{
-  struct pthread *self;
-  struct pthread *pd = (struct pthread *) threadid;
-
-  /* Make sure the descriptor is valid.  */
-  if (DEBUGGING_P && __find_in_stack_list (pd) == NULL)
-    /* Not a valid thread handle.  */
-    return ESRCH;
-
-  /* Is the thread joinable?.  */
-  if (IS_DETACHED (pd))
-    /* We cannot wait for the thread.  */
-    return EINVAL;
-
-  self = THREAD_SELF;
-  if (pd == self || self->joinid == pd)
-    /* This is a deadlock situation.  The threads are waiting for each
-       other to finish.  Note that this is a "may" error.  To be 100%
-       sure we catch this error we would have to lock the data
-       structures but it is not necessary.  In the unlikely case that
-       two threads are really caught in this situation they will
-       deadlock.  It is the programmer's problem to figure this
-       out.  */
-    return EDEADLK;
-
-  /* Return right away if the thread hasn't terminated yet.  */
-  if (pd->tid != 0)
-    return EBUSY;
-
-  /* Wait for the thread to finish.  If it is already locked something
-     is wrong.  There can only be one waiter.  */
-  if (atomic_compare_and_exchange_bool_acq (&pd->joinid, self, NULL))
-    /* There is already somebody waiting for the thread.  */
-    return EINVAL;
-
-  /* Store the return value if the caller is interested.  */
-  if (thread_return != NULL)
-    *thread_return = pd->result;
-
-
-  /* Free the TCB.  */
-  __free_tcb (pd);
-
-  return 0;
-}
diff --git a/nptl/pthread_yield.c b/nptl/pthread_yield.c
deleted file mode 100644
index 9a6d3f12b2..0000000000
--- a/nptl/pthread_yield.c
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <sched.h>
-
-
-/* With the 1-on-1 model we implement this function is equivalent to
-   the 'sched_yield' function.  */
-int
-pthread_yield (void)
-{
-  return sched_yield ();
-}
diff --git a/nptl/register-atfork.c b/nptl/register-atfork.c
deleted file mode 100644
index e6a62b84b5..0000000000
--- a/nptl/register-atfork.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <string.h>
-#include <fork.h>
-#include <atomic.h>
-
-
-struct fork_handler *__fork_handlers;
-
-/* Lock to protect allocation and deallocation of fork handlers.  */
-int __fork_lock = LLL_LOCK_INITIALIZER;
-
-
-/* Number of pre-allocated handler entries.  */
-#define NHANDLER 48
-
-/* Memory pool for fork handler structures.  */
-static struct fork_handler_pool
-{
-  struct fork_handler_pool *next;
-  struct fork_handler mem[NHANDLER];
-} fork_handler_pool;
-
-
-static struct fork_handler *
-fork_handler_alloc (void)
-{
-  struct fork_handler_pool *runp = &fork_handler_pool;
-  struct fork_handler *result = NULL;
-  unsigned int i;
-
-  do
-    {
-      /* Search for an empty entry.  */
-      for (i = 0; i < NHANDLER; ++i)
-	if (runp->mem[i].refcntr == 0)
-	  goto found;
-    }
-  while ((runp = runp->next) != NULL);
-
-  /* We have to allocate a new entry.  */
-  runp = (struct fork_handler_pool *) calloc (1, sizeof (*runp));
-  if (runp != NULL)
-    {
-      /* Enqueue the new memory pool into the list.  */
-      runp->next = fork_handler_pool.next;
-      fork_handler_pool.next = runp;
-
-      /* We use the last entry on the page.  This means when we start
-	 searching from the front the next time we will find the first
-	 entry unused.  */
-      i = NHANDLER - 1;
-
-    found:
-      result = &runp->mem[i];
-      result->refcntr = 1;
-      result->need_signal = 0;
-    }
-
-  return result;
-}
-
-
-int
-__register_atfork (void (*prepare) (void), void (*parent) (void),
-		   void (*child) (void), void *dso_handle)
-{
-  /* Get the lock to not conflict with other allocations.  */
-  lll_lock (__fork_lock, LLL_PRIVATE);
-
-  struct fork_handler *newp = fork_handler_alloc ();
-
-  if (newp != NULL)
-    {
-      /* Initialize the new record.  */
-      newp->prepare_handler = prepare;
-      newp->parent_handler = parent;
-      newp->child_handler = child;
-      newp->dso_handle = dso_handle;
-
-      __linkin_atfork (newp);
-    }
-
-  /* Release the lock.  */
-  lll_unlock (__fork_lock, LLL_PRIVATE);
-
-  return newp == NULL ? ENOMEM : 0;
-}
-libc_hidden_def (__register_atfork)
-
-
-void
-attribute_hidden
-__linkin_atfork (struct fork_handler *newp)
-{
-  do
-    newp->next = __fork_handlers;
-  while (catomic_compare_and_exchange_bool_acq (&__fork_handlers,
-						newp, newp->next) != 0);
-}
-
-
-libc_freeres_fn (free_mem)
-{
-  /* Get the lock to not conflict with running forks.  */
-  lll_lock (__fork_lock, LLL_PRIVATE);
-
-  /* No more fork handlers.  */
-  __fork_handlers = NULL;
-
-  /* Free eventually allocated memory blocks for the object pool.  */
-  struct fork_handler_pool *runp = fork_handler_pool.next;
-
-  memset (&fork_handler_pool, '\0', sizeof (fork_handler_pool));
-
-  /* Release the lock.  */
-  lll_unlock (__fork_lock, LLL_PRIVATE);
-
-  /* We can free the memory after releasing the lock.  */
-  while (runp != NULL)
-    {
-      struct fork_handler_pool *oldp = runp;
-      runp = runp->next;
-      free (oldp);
-    }
-}
diff --git a/nptl/res.c b/nptl/res.c
deleted file mode 100644
index bb08bc768f..0000000000
--- a/nptl/res.c
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <features.h>
-#include <resolv.h>
-#include <tls.h>
-
-struct __res_state *
-__res_state (void)
-{
-  return __resp;
-}
diff --git a/nptl/sem_close.c b/nptl/sem_close.c
deleted file mode 100644
index 5049eadb1f..0000000000
--- a/nptl/sem_close.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <search.h>
-#include <sys/mman.h>
-#include "semaphoreP.h"
-
-
-/* Global variables to parametrize the walk function.  This works
-   since we always have to use locks.  And we have to use the twalk
-   function since the entries are not sorted wrt the mapping
-   address.  */
-static sem_t *the_sem;
-static struct inuse_sem *rec;
-
-static void
-walker (const void *inodep, const VISIT which, const int depth)
-{
-  struct inuse_sem *nodep = *(struct inuse_sem **) inodep;
-
-  if (nodep->sem == the_sem)
-    rec = nodep;
-}
-
-
-int
-sem_close (sem_t *sem)
-{
-  int result = 0;
-
-  /* Get the lock.  */
-  lll_lock (__sem_mappings_lock, LLL_PRIVATE);
-
-  /* Locate the entry for the mapping the caller provided.  */
-  rec = NULL;
-  the_sem = sem;
-  __twalk (__sem_mappings, walker);
-  if  (rec != NULL)
-    {
-      /* Check the reference counter.  If it is going to be zero, free
-	 all the resources.  */
-      if (--rec->refcnt == 0)
-	{
-	  /* Remove the record from the tree.  */
-	  (void) __tdelete (rec, &__sem_mappings, __sem_search);
-
-	  result = munmap (rec->sem, sizeof (sem_t));
-
-	  free (rec);
-	}
-    }
-  else
-    {
-      /* This is no valid semaphore.  */
-      result = -1;
-      __set_errno (EINVAL);
-    }
-
-  /* Release the lock.  */
-  lll_unlock (__sem_mappings_lock, LLL_PRIVATE);
-
-  return result;
-}
diff --git a/nptl/sem_destroy.c b/nptl/sem_destroy.c
deleted file mode 100644
index 5e3a0d5272..0000000000
--- a/nptl/sem_destroy.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <semaphore.h>
-#include <shlib-compat.h>
-#include "semaphoreP.h"
-
-
-int
-__new_sem_destroy (sem_t *sem)
-{
-  /* XXX Check for valid parameter.  */
-
-  /* Nothing to do.  */
-  return 0;
-}
-versioned_symbol (libpthread, __new_sem_destroy, sem_destroy, GLIBC_2_1);
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-strong_alias (__new_sem_destroy, __old_sem_destroy)
-compat_symbol (libpthread, __old_sem_destroy, sem_destroy, GLIBC_2_0);
-#endif
diff --git a/nptl/sem_getvalue.c b/nptl/sem_getvalue.c
deleted file mode 100644
index 8dfc1cde41..0000000000
--- a/nptl/sem_getvalue.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <semaphore.h>
-#include <shlib-compat.h>
-#include "semaphoreP.h"
-#include <atomic.h>
-
-
-int
-__new_sem_getvalue (sem_t *sem, int *sval)
-{
-  struct new_sem *isem = (struct new_sem *) sem;
-
-  /* XXX Check for valid SEM parameter.  */
-  /* FIXME This uses relaxed MO, even though POSIX specifies that this function
-     should be linearizable.  However, its debatable whether linearizability
-     is the right requirement.  We need to follow up with POSIX and, if
-     necessary, use a stronger MO here and elsewhere (e.g., potentially
-     release MO in all places where we consume a token).  */
-
-#if __HAVE_64B_ATOMICS
-  *sval = atomic_load_relaxed (&isem->data) & SEM_VALUE_MASK;
-#else
-  *sval = atomic_load_relaxed (&isem->value) >> SEM_VALUE_SHIFT;
-#endif
-
-  return 0;
-}
-versioned_symbol (libpthread, __new_sem_getvalue, sem_getvalue, GLIBC_2_1);
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-__old_sem_getvalue (sem_t *sem, int *sval)
-{
-  struct old_sem *isem = (struct old_sem *) sem;
-  *sval = isem->value;
-  return 0;
-}
-compat_symbol (libpthread, __old_sem_getvalue, sem_getvalue, GLIBC_2_0);
-#endif
diff --git a/nptl/sem_init.c b/nptl/sem_init.c
deleted file mode 100644
index b9b839cd64..0000000000
--- a/nptl/sem_init.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <shlib-compat.h>
-#include "semaphoreP.h"
-#include <kernel-features.h>
-#include <futex-internal.h>
-
-
-int
-__new_sem_init (sem_t *sem, int pshared, unsigned int value)
-{
-  /* Parameter sanity check.  */
-  if (__glibc_unlikely (value > SEM_VALUE_MAX))
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-  pshared = pshared != 0 ? PTHREAD_PROCESS_SHARED : PTHREAD_PROCESS_PRIVATE;
-  int err = futex_supports_pshared (pshared);
-  if (err != 0)
-    {
-      __set_errno (err);
-      return -1;
-    }
-
-  /* Map to the internal type.  */
-  struct new_sem *isem = (struct new_sem *) sem;
-
-  /* Use the values the caller provided.  */
-#if __HAVE_64B_ATOMICS
-  isem->data = value;
-#else
-  isem->value = value << SEM_VALUE_SHIFT;
-  /* pad is used as a mutex on pre-v9 sparc and ignored otherwise.  */
-  isem->pad = 0;
-  isem->nwaiters = 0;
-#endif
-
-  isem->private = (pshared == PTHREAD_PROCESS_PRIVATE
-		   ? FUTEX_PRIVATE : FUTEX_SHARED);
-
-  return 0;
-}
-versioned_symbol (libpthread, __new_sem_init, sem_init, GLIBC_2_1);
-
-
-
-#if SHLIB_COMPAT(libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-attribute_compat_text_section
-__old_sem_init (sem_t *sem, int pshared, unsigned int value)
-{
-  /* Parameter sanity check.  */
-  if (__glibc_unlikely (value > SEM_VALUE_MAX))
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  /* Map to the internal type.  */
-  struct old_sem *isem = (struct old_sem *) sem;
-
-  /* Use the value the user provided.  */
-  isem->value = value;
-
-  /* We cannot store the PSHARED attribute.  So we always use the
-     operations needed for shared semaphores.  */
-
-  return 0;
-}
-compat_symbol (libpthread, __old_sem_init, sem_init, GLIBC_2_0);
-#endif
diff --git a/nptl/sem_open.c b/nptl/sem_open.c
deleted file mode 100644
index a80e5b8e9b..0000000000
--- a/nptl/sem_open.c
+++ /dev/null
@@ -1,329 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <search.h>
-#include <semaphore.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include "semaphoreP.h"
-#include <shm-directory.h>
-#include <futex-internal.h>
-#include <libc-lock.h>
-
-/* Comparison function for search of existing mapping.  */
-int
-attribute_hidden
-__sem_search (const void *a, const void *b)
-{
-  const struct inuse_sem *as = (const struct inuse_sem *) a;
-  const struct inuse_sem *bs = (const struct inuse_sem *) b;
-
-  if (as->ino != bs->ino)
-    /* Cannot return the difference the type is larger than int.  */
-    return as->ino < bs->ino ? -1 : (as->ino == bs->ino ? 0 : 1);
-
-  if (as->dev != bs->dev)
-    /* Cannot return the difference the type is larger than int.  */
-    return as->dev < bs->dev ? -1 : (as->dev == bs->dev ? 0 : 1);
-
-  return strcmp (as->name, bs->name);
-}
-
-
-/* The search tree for existing mappings.  */
-void *__sem_mappings attribute_hidden;
-
-/* Lock to protect the search tree.  */
-int __sem_mappings_lock attribute_hidden = LLL_LOCK_INITIALIZER;
-
-
-/* Search for existing mapping and if possible add the one provided.  */
-static sem_t *
-check_add_mapping (const char *name, size_t namelen, int fd, sem_t *existing)
-{
-  sem_t *result = SEM_FAILED;
-
-  /* Get the information about the file.  */
-  struct stat64 st;
-  if (__fxstat64 (_STAT_VER, fd, &st) == 0)
-    {
-      /* Get the lock.  */
-      lll_lock (__sem_mappings_lock, LLL_PRIVATE);
-
-      /* Search for an existing mapping given the information we have.  */
-      struct inuse_sem *fake;
-      fake = (struct inuse_sem *) alloca (sizeof (*fake) + namelen);
-      memcpy (fake->name, name, namelen);
-      fake->dev = st.st_dev;
-      fake->ino = st.st_ino;
-
-      struct inuse_sem **foundp = __tfind (fake, &__sem_mappings,
-					   __sem_search);
-      if (foundp != NULL)
-	{
-	  /* There is already a mapping.  Use it.  */
-	  result = (*foundp)->sem;
-	  ++(*foundp)->refcnt;
-	}
-      else
-	{
-	  /* We haven't found a mapping.  Install ione.  */
-	  struct inuse_sem *newp;
-
-	  newp = (struct inuse_sem *) malloc (sizeof (*newp) + namelen);
-	  if (newp != NULL)
-	    {
-	      /* If the caller hasn't provided any map it now.  */
-	      if (existing == SEM_FAILED)
-		existing = (sem_t *) mmap (NULL, sizeof (sem_t),
-					   PROT_READ | PROT_WRITE, MAP_SHARED,
-					   fd, 0);
-
-	      newp->dev = st.st_dev;
-	      newp->ino = st.st_ino;
-	      newp->refcnt = 1;
-	      newp->sem = existing;
-	      memcpy (newp->name, name, namelen);
-
-	      /* Insert the new value.  */
-	      if (existing != MAP_FAILED
-		  && __tsearch (newp, &__sem_mappings, __sem_search) != NULL)
-		/* Successful.  */
-		result = existing;
-	      else
-		/* Something went wrong while inserting the new
-		   value.  We fail completely.  */
-		free (newp);
-	    }
-	}
-
-      /* Release the lock.  */
-      lll_unlock (__sem_mappings_lock, LLL_PRIVATE);
-    }
-
-  if (result != existing && existing != SEM_FAILED && existing != MAP_FAILED)
-    {
-      /* Do not disturb errno.  */
-      int save = errno;
-      munmap (existing, sizeof (sem_t));
-      errno = save;
-    }
-
-  return result;
-}
-
-
-sem_t *
-sem_open (const char *name, int oflag, ...)
-{
-  int fd;
-  sem_t *result;
-
-  /* Check that shared futexes are supported.  */
-  int err = futex_supports_pshared (PTHREAD_PROCESS_SHARED);
-  if (err != 0)
-    {
-      __set_errno (err);
-      return SEM_FAILED;
-    }
-
-  /* Create the name of the final file in local variable SHM_NAME.  */
-  SHM_GET_NAME (EINVAL, SEM_FAILED, SEM_SHM_PREFIX);
-
-  /* Disable asynchronous cancellation.  */
-#ifdef __libc_ptf_call
-  int state;
-  __libc_ptf_call (__pthread_setcancelstate,
-                   (PTHREAD_CANCEL_DISABLE, &state), 0);
-#endif
-
-  /* If the semaphore object has to exist simply open it.  */
-  if ((oflag & O_CREAT) == 0 || (oflag & O_EXCL) == 0)
-    {
-    try_again:
-      fd = __libc_open (shm_name,
-			(oflag & ~(O_CREAT|O_ACCMODE)) | O_NOFOLLOW | O_RDWR);
-
-      if (fd == -1)
-	{
-	  /* If we are supposed to create the file try this next.  */
-	  if ((oflag & O_CREAT) != 0 && errno == ENOENT)
-	    goto try_create;
-
-	  /* Return.  errno is already set.  */
-	}
-      else
-	/* Check whether we already have this semaphore mapped and
-	   create one if necessary.  */
-	result = check_add_mapping (name, namelen, fd, SEM_FAILED);
-    }
-  else
-    {
-      /* We have to open a temporary file first since it must have the
-	 correct form before we can start using it.  */
-      char *tmpfname;
-      mode_t mode;
-      unsigned int value;
-      va_list ap;
-
-    try_create:
-      va_start (ap, oflag);
-
-      mode = va_arg (ap, mode_t);
-      value = va_arg (ap, unsigned int);
-
-      va_end (ap);
-
-      if (value > SEM_VALUE_MAX)
-	{
-	  __set_errno (EINVAL);
-	  result = SEM_FAILED;
-	  goto out;
-	}
-
-      /* Create the initial file content.  */
-      union
-      {
-	sem_t initsem;
-	struct new_sem newsem;
-      } sem;
-
-#if __HAVE_64B_ATOMICS
-      sem.newsem.data = value;
-#else
-      sem.newsem.value = value << SEM_VALUE_SHIFT;
-      /* pad is used as a mutex on pre-v9 sparc and ignored otherwise.  */
-      sem.newsem.pad = 0;
-      sem.newsem.nwaiters = 0;
-#endif
-      /* This always is a shared semaphore.  */
-      sem.newsem.private = FUTEX_SHARED;
-
-      /* Initialize the remaining bytes as well.  */
-      memset ((char *) &sem.initsem + sizeof (struct new_sem), '\0',
-	      sizeof (sem_t) - sizeof (struct new_sem));
-
-      tmpfname = __alloca (shm_dirlen + sizeof SEM_SHM_PREFIX + 6);
-      char *xxxxxx = __mempcpy (tmpfname, shm_dir, shm_dirlen);
-
-      int retries = 0;
-#define NRETRIES 50
-      while (1)
-	{
-	  /* Add the suffix for mktemp.  */
-	  strcpy (xxxxxx, "XXXXXX");
-
-	  /* We really want to use mktemp here.  We cannot use mkstemp
-	     since the file must be opened with a specific mode.  The
-	     mode cannot later be set since then we cannot apply the
-	     file create mask.  */
-	  if (__mktemp (tmpfname) == NULL)
-	    {
-	      result = SEM_FAILED;
-	      goto out;
-	    }
-
-	  /* Open the file.  Make sure we do not overwrite anything.  */
-	  fd = __libc_open (tmpfname, O_RDWR | O_CREAT | O_EXCL, mode);
-	  if (fd == -1)
-	    {
-	      if (errno == EEXIST)
-		{
-		  if (++retries < NRETRIES)
-		    continue;
-
-		  __set_errno (EAGAIN);
-		}
-
-	      result = SEM_FAILED;
-	      goto out;
-	    }
-
-	  /* We got a file.  */
-	  break;
-	}
-
-      if (TEMP_FAILURE_RETRY (__libc_write (fd, &sem.initsem, sizeof (sem_t)))
-	  == sizeof (sem_t)
-	  /* Map the sem_t structure from the file.  */
-	  && (result = (sem_t *) mmap (NULL, sizeof (sem_t),
-				       PROT_READ | PROT_WRITE, MAP_SHARED,
-				       fd, 0)) != MAP_FAILED)
-	{
-	  /* Create the file.  Don't overwrite an existing file.  */
-	  if (link (tmpfname, shm_name) != 0)
-	    {
-	      /* Undo the mapping.  */
-	      (void) munmap (result, sizeof (sem_t));
-
-	      /* Reinitialize 'result'.  */
-	      result = SEM_FAILED;
-
-	      /* This failed.  If O_EXCL is not set and the problem was
-		 that the file exists, try again.  */
-	      if ((oflag & O_EXCL) == 0 && errno == EEXIST)
-		{
-		  /* Remove the file.  */
-		  (void) unlink (tmpfname);
-
-		  /* Close the file.  */
-		  (void) __libc_close (fd);
-
-		  goto try_again;
-		}
-	    }
-	  else
-	    /* Insert the mapping into the search tree.  This also
-	       determines whether another thread sneaked by and already
-	       added such a mapping despite the fact that we created it.  */
-	    result = check_add_mapping (name, namelen, fd, result);
-	}
-
-      /* Now remove the temporary name.  This should never fail.  If
-	 it fails we leak a file name.  Better fix the kernel.  */
-      (void) unlink (tmpfname);
-    }
-
-  /* Map the mmap error to the error we need.  */
-  if (MAP_FAILED != (void *) SEM_FAILED && result == MAP_FAILED)
-    result = SEM_FAILED;
-
-  /* We don't need the file descriptor anymore.  */
-  if (fd != -1)
-    {
-      /* Do not disturb errno.  */
-      int save = errno;
-      __libc_close (fd);
-      errno = save;
-    }
-
-out:
-#ifdef __libc_ptf_call
-  __libc_ptf_call (__pthread_setcancelstate, (state, NULL), 0);
-#endif
-
-  return result;
-}
diff --git a/nptl/sem_post.c b/nptl/sem_post.c
deleted file mode 100644
index bb4f851a6b..0000000000
--- a/nptl/sem_post.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* sem_post -- post to a POSIX semaphore.  Generic futex-using version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <atomic.h>
-#include <errno.h>
-#include <sysdep.h>
-#include <lowlevellock.h>	/* lll_futex* used by the old code.  */
-#include <futex-internal.h>
-#include <internaltypes.h>
-#include <semaphore.h>
-
-#include <shlib-compat.h>
-
-
-/* See sem_wait for an explanation of the algorithm.  */
-int
-__new_sem_post (sem_t *sem)
-{
-  struct new_sem *isem = (struct new_sem *) sem;
-  int private = isem->private;
-
-#if __HAVE_64B_ATOMICS
-  /* Add a token to the semaphore.  We use release MO to make sure that a
-     thread acquiring this token synchronizes with us and other threads that
-     added tokens before (the release sequence includes atomic RMW operations
-     by other threads).  */
-  /* TODO Use atomic_fetch_add to make it scale better than a CAS loop?  */
-  uint64_t d = atomic_load_relaxed (&isem->data);
-  do
-    {
-      if ((d & SEM_VALUE_MASK) == SEM_VALUE_MAX)
-	{
-	  __set_errno (EOVERFLOW);
-	  return -1;
-	}
-    }
-  while (!atomic_compare_exchange_weak_release (&isem->data, &d, d + 1));
-
-  /* If there is any potentially blocked waiter, wake one of them.  */
-  if ((d >> SEM_NWAITERS_SHIFT) > 0)
-    futex_wake (((unsigned int *) &isem->data) + SEM_VALUE_OFFSET, 1, private);
-#else
-  /* Add a token to the semaphore.  Similar to 64b version.  */
-  unsigned int v = atomic_load_relaxed (&isem->value);
-  do
-    {
-      if ((v >> SEM_VALUE_SHIFT) == SEM_VALUE_MAX)
-	{
-	  __set_errno (EOVERFLOW);
-	  return -1;
-	}
-    }
-  while (!atomic_compare_exchange_weak_release
-	 (&isem->value, &v, v + (1 << SEM_VALUE_SHIFT)));
-
-  /* If there is any potentially blocked waiter, wake one of them.  */
-  if ((v & SEM_NWAITERS_MASK) != 0)
-    futex_wake (&isem->value, 1, private);
-#endif
-
-  return 0;
-}
-versioned_symbol (libpthread, __new_sem_post, sem_post, GLIBC_2_1);
-
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-attribute_compat_text_section
-__old_sem_post (sem_t *sem)
-{
-  int *futex = (int *) sem;
-
-  /* We must need to synchronize with consumers of this token, so the atomic
-     increment must have release MO semantics.  */
-  atomic_write_barrier ();
-  (void) atomic_increment_val (futex);
-  /* We always have to assume it is a shared semaphore.  */
-  int err = lll_futex_wake (futex, 1, LLL_SHARED);
-  if (__builtin_expect (err, 0) < 0)
-    {
-      __set_errno (-err);
-      return -1;
-    }
-  return 0;
-}
-compat_symbol (libpthread, __old_sem_post, sem_post, GLIBC_2_0);
-#endif
diff --git a/nptl/sem_timedwait.c b/nptl/sem_timedwait.c
deleted file mode 100644
index 22b0778cc2..0000000000
--- a/nptl/sem_timedwait.c
+++ /dev/null
@@ -1,40 +0,0 @@
-/* sem_timedwait -- wait on a semaphore with timeout.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "sem_waitcommon.c"
-
-/* This is in a separate file because because sem_timedwait is only provided
-   if __USE_XOPEN2K is defined.  */
-int
-sem_timedwait (sem_t *sem, const struct timespec *abstime)
-{
-  if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  /* Check sem_wait.c for a more detailed explanation why it is required.  */
-  __pthread_testcancel ();
-
-  if (__new_sem_wait_fast ((struct new_sem *) sem, 0) == 0)
-    return 0;
-  else
-    return __new_sem_wait_slow((struct new_sem *) sem, abstime);
-}
diff --git a/nptl/sem_unlink.c b/nptl/sem_unlink.c
deleted file mode 100644
index 2ab38ab086..0000000000
--- a/nptl/sem_unlink.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "semaphoreP.h"
-#include <shm-directory.h>
-
-int
-sem_unlink (const char *name)
-{
-  /* Construct the filename.  */
-  SHM_GET_NAME (ENOENT, -1, SEM_SHM_PREFIX);
-
-  /* Now try removing it.  */
-  int ret = unlink (shm_name);
-  if (ret < 0 && errno == EPERM)
-    __set_errno (EACCES);
-  return ret;
-}
diff --git a/nptl/sem_wait.c b/nptl/sem_wait.c
deleted file mode 100644
index 625bf08c83..0000000000
--- a/nptl/sem_wait.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* sem_wait -- wait on a semaphore.  Generic futex-using version.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <lowlevellock.h>	/* lll_futex* used by the old code.  */
-#include "sem_waitcommon.c"
-
-int
-__new_sem_wait (sem_t *sem)
-{
-  /* We need to check whether we need to act upon a cancellation request here
-     because POSIX specifies that cancellation points "shall occur" in
-     sem_wait and sem_timedwait, which also means that they need to check
-     this regardless whether they block or not (unlike "may occur"
-     functions).  See the POSIX Rationale for this requirement: Section
-     "Thread Cancellation Overview" [1] and austin group issue #1076 [2]
-     for thoughs on why this may be a suboptimal design.
-
-     [1] http://pubs.opengroup.org/onlinepubs/9699919799/xrat/V4_xsh_chap02.html
-     [2] http://austingroupbugs.net/view.php?id=1076 for thoughts on why this
-   */
-  __pthread_testcancel ();
-
-  if (__new_sem_wait_fast ((struct new_sem *) sem, 0) == 0)
-    return 0;
-  else
-    return __new_sem_wait_slow((struct new_sem *) sem, NULL);
-}
-versioned_symbol (libpthread, __new_sem_wait, sem_wait, GLIBC_2_1);
-
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-attribute_compat_text_section
-__old_sem_wait (sem_t *sem)
-{
-  int *futex = (int *) sem;
-  int err;
-
-  do
-    {
-      if (atomic_decrement_if_positive (futex) > 0)
-	return 0;
-
-      /* Enable asynchronous cancellation.  Required by the standard.  */
-      int oldtype = __pthread_enable_asynccancel ();
-
-      /* Always assume the semaphore is shared.  */
-      err = lll_futex_wait (futex, 0, LLL_SHARED);
-
-      /* Disable asynchronous cancellation.  */
-      __pthread_disable_asynccancel (oldtype);
-    }
-  while (err == 0 || err == -EWOULDBLOCK);
-
-  __set_errno (-err);
-  return -1;
-}
-
-compat_symbol (libpthread, __old_sem_wait, sem_wait, GLIBC_2_0);
-#endif
-
-int
-__new_sem_trywait (sem_t *sem)
-{
-  /* We must not fail spuriously, so require a definitive result even if this
-     may lead to a long execution time.  */
-  if (__new_sem_wait_fast ((struct new_sem *) sem, 1) == 0)
-    return 0;
-  __set_errno (EAGAIN);
-  return -1;
-}
-versioned_symbol (libpthread, __new_sem_trywait, sem_trywait, GLIBC_2_1);
-#if SHLIB_COMPAT (libpthread, GLIBC_2_0, GLIBC_2_1)
-int
-__old_sem_trywait (sem_t *sem)
-{
-  int *futex = (int *) sem;
-  int val;
-
-  if (*futex > 0)
-    {
-      val = atomic_decrement_if_positive (futex);
-      if (val > 0)
-	return 0;
-    }
-
-  __set_errno (EAGAIN);
-  return -1;
-}
-compat_symbol (libpthread, __old_sem_trywait, sem_trywait, GLIBC_2_0);
-#endif
diff --git a/nptl/sem_waitcommon.c b/nptl/sem_waitcommon.c
deleted file mode 100644
index a3412a0d35..0000000000
--- a/nptl/sem_waitcommon.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/* sem_waitcommon -- wait on a semaphore, shared code.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <kernel-features.h>
-#include <errno.h>
-#include <sysdep.h>
-#include <futex-internal.h>
-#include <internaltypes.h>
-#include <semaphore.h>
-#include <sys/time.h>
-
-#include <pthreadP.h>
-#include <shlib-compat.h>
-#include <atomic.h>
-
-
-/* The semaphore provides two main operations: sem_post adds a token to the
-   semaphore; sem_wait grabs a token from the semaphore, potentially waiting
-   until there is a token available.  A sem_wait needs to synchronize with
-   the sem_post that provided the token, so that whatever lead to the sem_post
-   happens before the code after sem_wait.
-
-   Conceptually, available tokens can simply be counted; let's call that the
-   value of the semaphore.  However, we also want to know whether there might
-   be a sem_wait that is blocked on the value because it was zero (using a
-   futex with the value being the futex variable); if there is no blocked
-   sem_wait, sem_post does not need to execute a futex_wake call.  Therefore,
-   we also need to count the number of potentially blocked sem_wait calls
-   (which we call nwaiters).
-
-   What makes this tricky is that POSIX requires that a semaphore can be
-   destroyed as soon as the last remaining sem_wait has returned, and no
-   other sem_wait or sem_post calls are executing concurrently.  However, the
-   sem_post call whose token was consumed by the last sem_wait is considered
-   to have finished once it provided the token to the sem_wait.
-   Thus, sem_post must not access the semaphore struct anymore after it has
-   made a token available; IOW, it needs to be able to atomically provide
-   a token and check whether any blocked sem_wait calls might exist.
-
-   This is straightforward to do if the architecture provides 64b atomics
-   because we can just put both the value and nwaiters into one variable that
-   we access atomically: This is the data field, the value is in the
-   least-significant 32 bits, and nwaiters in the other bits.  When sem_post
-   makes a value available, it can atomically check nwaiters.
-
-   If we have only 32b atomics available, we cannot put both nwaiters and
-   value into one 32b value because then we might have too few bits for both
-   of those counters.  Therefore, we need to use two distinct fields.
-
-   To allow sem_post to atomically make a token available and check for
-   blocked sem_wait calls, we use one bit in value to indicate whether
-   nwaiters is nonzero.  That allows sem_post to use basically the same
-   algorithm as with 64b atomics, but requires sem_wait to update the bit; it
-   can't do this atomically with another access to nwaiters, but it can compute
-   a conservative value for the bit because it's benign if the bit is set
-   even if nwaiters is zero (all we get is an unnecessary futex wake call by
-   sem_post).
-   Specifically, sem_wait will unset the bit speculatively if it believes that
-   there is no other concurrently executing sem_wait.  If it misspeculated,
-   it will have to clean up by waking any other sem_wait call (i.e., what
-   sem_post would do otherwise).  This does not conflict with the destruction
-   requirement because the semaphore must not be destructed while any sem_wait
-   is still executing.  */
-
-#if !__HAVE_64B_ATOMICS
-static void
-__sem_wait_32_finish (struct new_sem *sem);
-#endif
-
-static void
-__sem_wait_cleanup (void *arg)
-{
-  struct new_sem *sem = (struct new_sem *) arg;
-
-#if __HAVE_64B_ATOMICS
-  /* Stop being registered as a waiter.  See below for MO.  */
-  atomic_fetch_add_relaxed (&sem->data, -((uint64_t) 1 << SEM_NWAITERS_SHIFT));
-#else
-  __sem_wait_32_finish (sem);
-#endif
-}
-
-/* Wait until at least one token is available, possibly with a timeout.
-   This is in a separate function in order to make sure gcc
-   puts the call site into an exception region, and thus the
-   cleanups get properly run.  TODO still necessary?  Other futex_wait
-   users don't seem to need it.  */
-static int
-__attribute__ ((noinline))
-do_futex_wait (struct new_sem *sem, const struct timespec *abstime)
-{
-  int err;
-
-#if __HAVE_64B_ATOMICS
-  err = futex_abstimed_wait_cancelable (
-      (unsigned int *) &sem->data + SEM_VALUE_OFFSET, 0, abstime,
-      sem->private);
-#else
-  err = futex_abstimed_wait_cancelable (&sem->value, SEM_NWAITERS_MASK,
-					abstime, sem->private);
-#endif
-
-  return err;
-}
-
-/* Fast path: Try to grab a token without blocking.  */
-static int
-__new_sem_wait_fast (struct new_sem *sem, int definitive_result)
-{
-  /* We need acquire MO if we actually grab a token, so that this
-     synchronizes with all token providers (i.e., the RMW operation we read
-     from or all those before it in modification order; also see sem_post).
-     We do not need to guarantee any ordering if we observed that there is
-     no token (POSIX leaves it unspecified whether functions that fail
-     synchronize memory); thus, relaxed MO is sufficient for the initial load
-     and the failure path of the CAS.  If the weak CAS fails and we need a
-     definitive result, retry.  */
-#if __HAVE_64B_ATOMICS
-  uint64_t d = atomic_load_relaxed (&sem->data);
-  do
-    {
-      if ((d & SEM_VALUE_MASK) == 0)
-	break;
-      if (atomic_compare_exchange_weak_acquire (&sem->data, &d, d - 1))
-	return 0;
-    }
-  while (definitive_result);
-  return -1;
-#else
-  unsigned int v = atomic_load_relaxed (&sem->value);
-  do
-    {
-      if ((v >> SEM_VALUE_SHIFT) == 0)
-	break;
-      if (atomic_compare_exchange_weak_acquire (&sem->value,
-	  &v, v - (1 << SEM_VALUE_SHIFT)))
-	return 0;
-    }
-  while (definitive_result);
-  return -1;
-#endif
-}
-
-/* Slow path that blocks.  */
-static int
-__attribute__ ((noinline))
-__new_sem_wait_slow (struct new_sem *sem, const struct timespec *abstime)
-{
-  int err = 0;
-
-#if __HAVE_64B_ATOMICS
-  /* Add a waiter.  Relaxed MO is sufficient because we can rely on the
-     ordering provided by the RMW operations we use.  */
-  uint64_t d = atomic_fetch_add_relaxed (&sem->data,
-      (uint64_t) 1 << SEM_NWAITERS_SHIFT);
-
-  pthread_cleanup_push (__sem_wait_cleanup, sem);
-
-  /* Wait for a token to be available.  Retry until we can grab one.  */
-  for (;;)
-    {
-      /* If there is no token available, sleep until there is.  */
-      if ((d & SEM_VALUE_MASK) == 0)
-	{
-	  err = do_futex_wait (sem, abstime);
-	  /* A futex return value of 0 or EAGAIN is due to a real or spurious
-	     wake-up, or due to a change in the number of tokens.  We retry in
-	     these cases.
-	     If we timed out, forward this to the caller.
-	     EINTR is returned if we are interrupted by a signal; we
-	     forward this to the caller.  (See futex_wait and related
-	     documentation.  Before Linux 2.6.22, EINTR was also returned on
-	     spurious wake-ups; we only support more recent Linux versions,
-	     so do not need to consider this here.)  */
-	  if (err == ETIMEDOUT || err == EINTR)
-	    {
-	      __set_errno (err);
-	      err = -1;
-	      /* Stop being registered as a waiter.  */
-	      atomic_fetch_add_relaxed (&sem->data,
-		  -((uint64_t) 1 << SEM_NWAITERS_SHIFT));
-	      break;
-	    }
-	  /* Relaxed MO is sufficient; see below.  */
-	  d = atomic_load_relaxed (&sem->data);
-	}
-      else
-	{
-	  /* Try to grab both a token and stop being a waiter.  We need
-	     acquire MO so this synchronizes with all token providers (i.e.,
-	     the RMW operation we read from or all those before it in
-	     modification order; also see sem_post).  On the failure path,
-	     relaxed MO is sufficient because we only eventually need the
-	     up-to-date value; the futex_wait or the CAS perform the real
-	     work.  */
-	  if (atomic_compare_exchange_weak_acquire (&sem->data,
-	      &d, d - 1 - ((uint64_t) 1 << SEM_NWAITERS_SHIFT)))
-	    {
-	      err = 0;
-	      break;
-	    }
-	}
-    }
-
-  pthread_cleanup_pop (0);
-#else
-  /* The main difference to the 64b-atomics implementation is that we need to
-     access value and nwaiters in separate steps, and that the nwaiters bit
-     in the value can temporarily not be set even if nwaiters is nonzero.
-     We work around incorrectly unsetting the nwaiters bit by letting sem_wait
-     set the bit again and waking the number of waiters that could grab a
-     token.  There are two additional properties we need to ensure:
-     (1) We make sure that whenever unsetting the bit, we see the increment of
-     nwaiters by the other thread that set the bit.  IOW, we will notice if
-     we make a mistake.
-     (2) When setting the nwaiters bit, we make sure that we see the unsetting
-     of the bit by another waiter that happened before us.  This avoids having
-     to blindly set the bit whenever we need to block on it.  We set/unset
-     the bit while having incremented nwaiters (i.e., are a registered
-     waiter), and the problematic case only happens when one waiter indeed
-     followed another (i.e., nwaiters was never larger than 1); thus, this
-     works similarly as with a critical section using nwaiters (see the MOs
-     and related comments below).
-
-     An alternative approach would be to unset the bit after decrementing
-     nwaiters; however, that would result in needing Dekker-like
-     synchronization and thus full memory barriers.  We also would not be able
-     to prevent misspeculation, so this alternative scheme does not seem
-     beneficial.  */
-  unsigned int v;
-
-  /* Add a waiter.  We need acquire MO so this synchronizes with the release
-     MO we use when decrementing nwaiters below; it ensures that if another
-     waiter unset the bit before us, we see that and set it again.  Also see
-     property (2) above.  */
-  atomic_fetch_add_acquire (&sem->nwaiters, 1);
-
-  pthread_cleanup_push (__sem_wait_cleanup, sem);
-
-  /* Wait for a token to be available.  Retry until we can grab one.  */
-  /* We do not need any ordering wrt. to this load's reads-from, so relaxed
-     MO is sufficient.  The acquire MO above ensures that in the problematic
-     case, we do see the unsetting of the bit by another waiter.  */
-  v = atomic_load_relaxed (&sem->value);
-  do
-    {
-      do
-	{
-	  /* We are about to block, so make sure that the nwaiters bit is
-	     set.  We need release MO on the CAS to ensure that when another
-	     waiter unsets the nwaiters bit, it will also observe that we
-	     incremented nwaiters in the meantime (also see the unsetting of
-	     the bit below).  Relaxed MO on CAS failure is sufficient (see
-	     above).  */
-	  do
-	    {
-	      if ((v & SEM_NWAITERS_MASK) != 0)
-		break;
-	    }
-	  while (!atomic_compare_exchange_weak_release (&sem->value,
-	      &v, v | SEM_NWAITERS_MASK));
-	  /* If there is no token, wait.  */
-	  if ((v >> SEM_VALUE_SHIFT) == 0)
-	    {
-	      /* See __HAVE_64B_ATOMICS variant.  */
-	      err = do_futex_wait(sem, abstime);
-	      if (err == ETIMEDOUT || err == EINTR)
-		{
-		  __set_errno (err);
-		  err = -1;
-		  goto error;
-		}
-	      err = 0;
-	      /* We blocked, so there might be a token now.  Relaxed MO is
-		 sufficient (see above).  */
-	      v = atomic_load_relaxed (&sem->value);
-	    }
-	}
-      /* If there is no token, we must not try to grab one.  */
-      while ((v >> SEM_VALUE_SHIFT) == 0);
-    }
-  /* Try to grab a token.  We need acquire MO so this synchronizes with
-     all token providers (i.e., the RMW operation we read from or all those
-     before it in modification order; also see sem_post).  */
-  while (!atomic_compare_exchange_weak_acquire (&sem->value,
-      &v, v - (1 << SEM_VALUE_SHIFT)));
-
-error:
-  pthread_cleanup_pop (0);
-
-  __sem_wait_32_finish (sem);
-#endif
-
-  return err;
-}
-
-/* Stop being a registered waiter (non-64b-atomics code only).  */
-#if !__HAVE_64B_ATOMICS
-static void
-__sem_wait_32_finish (struct new_sem *sem)
-{
-  /* The nwaiters bit is still set, try to unset it now if this seems
-     necessary.  We do this before decrementing nwaiters so that the unsetting
-     is visible to other waiters entering after us.  Relaxed MO is sufficient
-     because we are just speculating here; a stronger MO would not prevent
-     misspeculation.  */
-  unsigned int wguess = atomic_load_relaxed (&sem->nwaiters);
-  if (wguess == 1)
-    /* We might be the last waiter, so unset.  This needs acquire MO so that
-       it syncronizes with the release MO when setting the bit above; if we
-       overwrite someone else that set the bit, we'll read in the following
-       decrement of nwaiters at least from that release sequence, so we'll
-       see if the other waiter is still active or if another writer entered
-       in the meantime (i.e., using the check below).  */
-    atomic_fetch_and_acquire (&sem->value, ~SEM_NWAITERS_MASK);
-
-  /* Now stop being a waiter, and see whether our guess was correct.
-     This needs release MO so that it synchronizes with the acquire MO when
-     a waiter increments nwaiters; this makes sure that newer writers see that
-     we reset the waiters_present bit.  */
-  unsigned int wfinal = atomic_fetch_add_release (&sem->nwaiters, -1);
-  if (wfinal > 1 && wguess == 1)
-    {
-      /* We guessed wrong, and so need to clean up after the mistake and
-         unblock any waiters that could have not been woken.  There is no
-         additional ordering that we need to set up, so relaxed MO is
-         sufficient.  */
-      unsigned int v = atomic_fetch_or_relaxed (&sem->value,
-						SEM_NWAITERS_MASK);
-      /* If there are available tokens, then wake as many waiters.  If there
-         aren't any, then there is no need to wake anyone because there is
-         none to grab for another waiter.  If tokens become available
-         subsequently, then the respective sem_post calls will do the wake-up
-         due to us having set the nwaiters bit again.  */
-      v >>= SEM_VALUE_SHIFT;
-      if (v > 0)
-	futex_wake (&sem->value, v, sem->private);
-    }
-}
-#endif
diff --git a/nptl/semaphoreP.h b/nptl/semaphoreP.h
deleted file mode 100644
index 1bdaeabdfa..0000000000
--- a/nptl/semaphoreP.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <semaphore.h>
-#include "pthreadP.h"
-
-#define SEM_SHM_PREFIX  "sem."
-
-/* Keeping track of currently used mappings.  */
-struct inuse_sem
-{
-  dev_t dev;
-  ino_t ino;
-  int refcnt;
-  sem_t *sem;
-  char name[0];
-};
-
-
-/* The search tree for existing mappings.  */
-extern void *__sem_mappings attribute_hidden;
-
-/* Lock to protect the search tree.  */
-extern int __sem_mappings_lock attribute_hidden;
-
-
-/* Comparison function for search in tree with existing mappings.  */
-extern int __sem_search (const void *a, const void *b) attribute_hidden;
-
-
-/* Prototypes of functions with multiple interfaces.  */
-extern int __new_sem_init (sem_t *sem, int pshared, unsigned int value);
-extern int __old_sem_init (sem_t *sem, int pshared, unsigned int value);
-extern int __new_sem_destroy (sem_t *sem);
-extern int __new_sem_post (sem_t *sem);
-extern int __new_sem_wait (sem_t *sem);
-extern int __old_sem_wait (sem_t *sem);
-extern int __new_sem_trywait (sem_t *sem);
-extern int __new_sem_getvalue (sem_t *sem, int *sval);
diff --git a/nptl/shlib-versions b/nptl/shlib-versions
deleted file mode 100644
index e08931af1a..0000000000
--- a/nptl/shlib-versions
+++ /dev/null
@@ -1 +0,0 @@
-libpthread=0
diff --git a/nptl/sigaction.c b/nptl/sigaction.c
deleted file mode 100644
index 2994fd57e3..0000000000
--- a/nptl/sigaction.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-
-/* This is no complete implementation.  The file is meant to be
-   included in the real implementation to provide the wrapper around
-   __libc_sigaction.  */
-
-#include <nptl/pthreadP.h>
-
-/* We use the libc implementation but we tell it to not allow
-   SIGCANCEL or SIGTIMER to be handled.  */
-#define LIBC_SIGACTION	1
-
-
-int
-__sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
-{
-  if (__glibc_unlikely (sig == SIGCANCEL || sig == SIGSETXID))
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  return __libc_sigaction (sig, act, oact);
-}
-libc_hidden_weak (__sigaction)
-weak_alias (__sigaction, sigaction)
diff --git a/nptl/smp.h b/nptl/smp.h
deleted file mode 100644
index d303a8e3ef..0000000000
--- a/nptl/smp.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Determine whether the host has multiple processors.  Stub version.
-   Copyright (C) 1996-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Library General Public License as
-   published by the Free Software Foundation; either version 2 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Library General Public License for more details.
-
-   You should have received a copy of the GNU Library General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-/* Test whether the machine has more than one processor.  This is not the
-   best test but good enough.  More complicated tests would require `malloc'
-   which is not available at that time.  */
-static inline int
-is_smp_system (void)
-{
-  /* Assume all machines are SMP and/or CMT and/or SMT.  */
-  return 1;
-}
diff --git a/nptl/sockperf.c b/nptl/sockperf.c
deleted file mode 100644
index 2d4b872740..0000000000
--- a/nptl/sockperf.c
+++ /dev/null
@@ -1,593 +0,0 @@
-#define _GNU_SOURCE
-#include <argp.h>
-#include <complex.h>
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <gd.h>
-#include <inttypes.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/param.h>
-#include <sys/poll.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-
-
-#define size_x 320
-#define size_y 240
-
-
-#define PATH "/tmp/s.sockperf"
-
-
-struct thread_param
-{
-  unsigned int from;
-  unsigned int to;
-  unsigned int nserv;
-};
-
-struct coord
-{
-  unsigned int x;
-  unsigned int y;
-  complex double z;
-};
-
-
-/* We use 64bit values for the times.  */
-typedef unsigned long long int hp_timing_t;
-
-
-static unsigned int nclients = 2;
-static unsigned int nservers = 2;
-
-static bool timing;
-static int points;
-
-
-static complex double top_left = -0.7 + 0.2i;
-static complex double bottom_right = -0.5 - 0.0i;
-
-
-static int colors[256];
-static gdImagePtr image;
-static pthread_mutex_t image_lock;
-
-static int sock;
-
-
-static void *
-client (void *arg)
-{
-  struct thread_param *param = arg;
-  unsigned int cnt;
-  unsigned int nserv = param->nserv;
-  struct pollfd servpoll[nserv];
-  struct sockaddr_un servaddr;
-  socklen_t servlen;
-  struct coord c;
-
-  bool new_coord (void)
-    {
-      if (cnt >= param->to)
-	return false;
-
-      unsigned int row = cnt / size_x;
-      unsigned int col = cnt % size_x;
-
-      c.x = col;
-      c.y = row;
-      c.z = (top_left
-	     + ((col
-		 * (creal (bottom_right) - creal (top_left))) / size_x)
-	     + (_Complex_I * (row * (cimag (bottom_right) - cimag (top_left)))
-		/ size_y));
-
-      ++cnt;
-
-      return true;
-    }
-
-
-  for (cnt = 0; cnt < nserv; ++cnt)
-    {
-      servpoll[cnt].fd = socket (AF_UNIX, SOCK_STREAM, 0);
-      if (servpoll[cnt].fd < 0)
-	{
-	  puts ("cannot create socket in client");
-	  return NULL;
-	}
-
-      memset (&servaddr, '\0', sizeof (servaddr));
-      servaddr.sun_family = AF_UNIX;
-      strncpy (servaddr.sun_path, PATH, sizeof (servaddr.sun_path));
-      servlen = offsetof (struct sockaddr_un, sun_path) + strlen (PATH) + 1;
-
-
-      int err;
-      while (1)
-	{
-	  err = TEMP_FAILURE_RETRY (connect (servpoll[cnt].fd, &servaddr,
-					     servlen));
-	  if (err != -1 || errno != ECONNREFUSED)
-	    break;
-
-	  pthread_yield ();
-	}
-
-      if (err == -1)
-	{
-	  printf ("cannot connect: %m (%d)\n", errno);
-	  exit (1);
-	}
-
-      servpoll[cnt].events = POLLOUT;
-      servpoll[cnt].revents = 0;
-    }
-
-  cnt = param->from;
-
-  new_coord ();
-  bool z_valid = true;
-
-  while (1)
-    {
-      int i;
-      int n = poll (servpoll, nserv, -1);
-      if (n == -1)
-	{
-	  puts ("poll returned error");
-	  break;
-	}
-
-      bool cont = false;
-      for (i = 0; i < nserv && n > 0; ++i)
-	if (servpoll[i].revents != 0)
-	  {
-	    if (servpoll[i].revents == POLLIN)
-	      {
-		unsigned int vals[3];
-		if (TEMP_FAILURE_RETRY (read (servpoll[i].fd, &vals,
-					      sizeof (vals)))
-		    != sizeof (vals))
-		  {
-		    puts ("read error in client");
-		    return NULL;
-		  }
-
-		pthread_mutex_lock (&image_lock);
-
-		gdImageSetPixel (image, vals[0], vals[1], vals[2]);
-		++points;
-
-		pthread_mutex_unlock (&image_lock);
-
-		servpoll[i].events = POLLOUT;
-	      }
-	    else
-	      {
-		if (servpoll[i].revents != POLLOUT)
-		  printf ("revents: %hd != POLLOUT ???\n",
-			  servpoll[i].revents);
-
-		if (z_valid)
-		  {
-		    if (TEMP_FAILURE_RETRY (write (servpoll[i].fd, &c,
-						   sizeof (c))) != sizeof (c))
-		      {
-			puts ("write error in client");
-			return NULL;
-		      }
-		    cont = true;
-		    servpoll[i].events = POLLIN;
-
-		    z_valid = new_coord ();
-		    if (! z_valid)
-		      /* No more to do.  Clear the event fields.  */
-		      for (i = 0; i < nserv; ++i)
-			if (servpoll[i].events == POLLOUT)
-			  servpoll[i].events = servpoll[i].revents = 0;
-		  }
-		else
-		  servpoll[i].events = servpoll[i].revents = 0;
-	      }
-
-	    --n;
-	  }
-	else if (servpoll[i].events != 0)
-	  cont = true;
-
-      if (! cont && ! z_valid)
-	break;
-    }
-
-  c.x = 0xffffffff;
-  c.y = 0xffffffff;
-  for (cnt = 0; cnt < nserv; ++cnt)
-    {
-      TEMP_FAILURE_RETRY (write (servpoll[cnt].fd, &c, sizeof (c)));
-      close (servpoll[cnt].fd);
-    }
-
-  return NULL;
-}
-
-
-static void *
-server (void *arg)
-{
-  struct sockaddr_un cliaddr;
-  socklen_t clilen;
-  int clisock = TEMP_FAILURE_RETRY (accept (sock, &cliaddr, &clilen));
-
-  if (clisock == -1)
-    {
-      puts ("accept failed");
-      return NULL;
-    }
-
-  while (1)
-    {
-      struct coord c;
-
-      if (TEMP_FAILURE_RETRY (read (clisock, &c, sizeof (c))) != sizeof (c))
-	{
-	  printf ("server read failed: %m (%d)\n", errno);
-	  break;
-	}
-
-      if (c.x == 0xffffffff && c.y == 0xffffffff)
-	break;
-
-      unsigned int rnds = 0;
-      complex double z = c.z;
-      while (cabs (z) < 4.0)
-	{
-	  z = z * z - 1;
-	  if (++rnds == 255)
-	    break;
-	}
-
-      unsigned int vals[3] = { c.x, c.y, rnds };
-      if (TEMP_FAILURE_RETRY (write (clisock, vals, sizeof (vals)))
-	  != sizeof (vals))
-	{
-	  puts ("server write error");
-	  return NULL;
-	}
-    }
-
-  close (clisock);
-
-  return NULL;
-}
-
-
-static const char *outfilename = "test.png";
-
-
-static const struct argp_option options[] =
-  {
-    { "clients", 'c', "NUMBER", 0, "Number of client threads" },
-    { "servers", 's', "NUMBER", 0, "Number of server threads per client" },
-    { "timing", 'T', NULL, 0,
-      "Measure time from startup to the last thread finishing" },
-    { NULL, 0, NULL, 0, NULL }
-  };
-
-/* Prototype for option handler.  */
-static error_t parse_opt (int key, char *arg, struct argp_state *state);
-
-/* Data structure to communicate with argp functions.  */
-static struct argp argp =
-{
-  options, parse_opt
-};
-
-
-int
-main (int argc, char *argv[])
-{
-  int cnt;
-  FILE *outfile;
-  struct sockaddr_un servaddr;
-  socklen_t servlen;
-  int remaining;
-
-  /* Parse and process arguments.  */
-  argp_parse (&argp, argc, argv, 0, &remaining, NULL);
-
-
-  pthread_t servth[nservers * nclients];
-  pthread_t clntth[nclients];
-  struct thread_param clntparam[nclients];
-
-
-  image = gdImageCreate (size_x, size_y);
-  if (image == NULL)
-    {
-      puts ("gdImageCreate failed");
-      return 1;
-    }
-
-  for (cnt = 0; cnt < 255; ++cnt)
-    colors[cnt] = gdImageColorAllocate (image, 256 - cnt, 256 - cnt,
-					256 - cnt);
-  /* Black.  */
-  colors[cnt] = gdImageColorAllocate (image, 0, 0, 0);
-
-
-  sock = socket (AF_UNIX, SOCK_STREAM, 0);
-  if (sock < 0)
-    error (EXIT_FAILURE, errno, "cannot create socket");
-
-  memset (&servaddr, '\0', sizeof (servaddr));
-  servaddr.sun_family = AF_UNIX;
-  strncpy (servaddr.sun_path, PATH, sizeof (servaddr.sun_path));
-  servlen = offsetof (struct sockaddr_un, sun_path) + strlen (PATH) + 1;
-
-  if (bind (sock, &servaddr, servlen) == -1)
-    error (EXIT_FAILURE, errno, "bind failed");
-
-  listen (sock, SOMAXCONN);
-
-  pthread_mutex_init (&image_lock, NULL);
-
-
-  struct sigaction sa;
-  sa.sa_handler = SIG_IGN;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-
-  clockid_t cl;
-  struct timespec start_time;
-  if (timing)
-    {
-      if (clock_getcpuclockid (0, &cl) != 0
-	  || clock_gettime (cl, &start_time) != 0)
-	timing = false;
-    }
-
-  /* Start the servers.  */
-  for (cnt = 0; cnt < nservers * nclients; ++cnt)
-    {
-      if (pthread_create (&servth[cnt], NULL, server, NULL) != 0)
-	{
-	  puts ("pthread_create for server failed");
-	  exit (1);
-	}
-    }
-
-  for (cnt = 0; cnt < nclients; ++cnt)
-    {
-      clntparam[cnt].from = cnt * (size_x * size_y) / nclients;
-      clntparam[cnt].to = MIN ((cnt + 1) * (size_x * size_y) / nclients,
-			       size_x * size_y);
-      clntparam[cnt].nserv = nservers;
-
-      if (pthread_create (&clntth[cnt], NULL, client, &clntparam[cnt]) != 0)
-	{
-	  puts ("pthread_create for client failed");
-	  exit (1);
-	}
-    }
-
-
-  /* Wait for the clients.  */
-  for (cnt = 0; cnt < nclients; ++cnt)
-    if (pthread_join (clntth[cnt], NULL) != 0)
-      {
-	puts ("client pthread_join failed");
-	exit (1);
-      }
-
-  /* Wait for the servers.  */
-  for (cnt = 0; cnt < nclients * nservers; ++cnt)
-    if (pthread_join (servth[cnt], NULL) != 0)
-      {
-	puts ("server pthread_join failed");
-	exit (1);
-      }
-
-
-  if (timing)
-    {
-      struct timespec end_time;
-
-      if (clock_gettime (cl, &end_time) == 0)
-	{
-	  end_time.tv_sec -= start_time.tv_sec;
-	  end_time.tv_nsec -= start_time.tv_nsec;
-	  if (end_time.tv_nsec < 0)
-	    {
-	      end_time.tv_nsec += 1000000000;
-	      --end_time.tv_sec;
-	    }
-
-	  printf ("\nRuntime: %lu.%09lu seconds\n%d points computed\n",
-		  (unsigned long int) end_time.tv_sec,
-		  (unsigned long int) end_time.tv_nsec,
-		  points);
-	}
-    }
-
-
-  outfile = fopen (outfilename, "w");
-  if (outfile == NULL)
-    error (EXIT_FAILURE, errno, "cannot open output file '%s'", outfilename);
-
-  gdImagePng (image, outfile);
-
-  fclose (outfile);
-
-  unlink (PATH);
-
-  return 0;
-}
-
-
-/* Handle program arguments.  */
-static error_t
-parse_opt (int key, char *arg, struct argp_state *state)
-{
-  switch (key)
-    {
-    case 'c':
-      nclients = strtoul (arg, NULL, 0);
-      break;
-
-    case 's':
-      nservers = strtoul (arg, NULL, 0);
-      break;
-
-    case 'T':
-      timing = true;
-      break;
-
-    default:
-      return ARGP_ERR_UNKNOWN;
-    }
-
-  return 0;
-}
-
-
-static hp_timing_t
-get_clockfreq (void)
-{
-  /* We read the information from the /proc filesystem.  It contains at
-     least one line like
-	cpu MHz         : 497.840237
-     or also
-	cpu MHz         : 497.841
-     We search for this line and convert the number in an integer.  */
-  static hp_timing_t result;
-  int fd;
-
-  /* If this function was called before, we know the result.  */
-  if (result != 0)
-    return result;
-
-  fd = open ("/proc/cpuinfo", O_RDONLY);
-  if (__glibc_likely (fd != -1))
-    {
-      /* XXX AFAIK the /proc filesystem can generate "files" only up
-         to a size of 4096 bytes.  */
-      char buf[4096];
-      ssize_t n;
-
-      n = read (fd, buf, sizeof buf);
-      if (__builtin_expect (n, 1) > 0)
-	{
-	  char *mhz = memmem (buf, n, "cpu MHz", 7);
-
-	  if (__glibc_likely (mhz != NULL))
-	    {
-	      char *endp = buf + n;
-	      int seen_decpoint = 0;
-	      int ndigits = 0;
-
-	      /* Search for the beginning of the string.  */
-	      while (mhz < endp && (*mhz < '0' || *mhz > '9') && *mhz != '\n')
-		++mhz;
-
-	      while (mhz < endp && *mhz != '\n')
-		{
-		  if (*mhz >= '0' && *mhz <= '9')
-		    {
-		      result *= 10;
-		      result += *mhz - '0';
-		      if (seen_decpoint)
-			++ndigits;
-		    }
-		  else if (*mhz == '.')
-		    seen_decpoint = 1;
-
-		  ++mhz;
-		}
-
-	      /* Compensate for missing digits at the end.  */
-	      while (ndigits++ < 6)
-		result *= 10;
-	    }
-	}
-
-      close (fd);
-    }
-
-  return result;
-}
-
-
-int
-clock_getcpuclockid (pid_t pid, clockid_t *clock_id)
-{
-  /* We don't allow any process ID but our own.  */
-  if (pid != 0 && pid != getpid ())
-    return EPERM;
-
-#ifdef CLOCK_PROCESS_CPUTIME_ID
-  /* Store the number.  */
-  *clock_id = CLOCK_PROCESS_CPUTIME_ID;
-
-  return 0;
-#else
-  /* We don't have a timer for that.  */
-  return ENOENT;
-#endif
-}
-
-
-#define HP_TIMING_NOW(Var)	__asm__ __volatile__ ("rdtsc" : "=A" (Var))
-
-/* Get current value of CLOCK and store it in TP.  */
-int
-clock_gettime (clockid_t clock_id, struct timespec *tp)
-{
-  int retval = -1;
-
-  switch (clock_id)
-    {
-    case CLOCK_PROCESS_CPUTIME_ID:
-      {
-
-	static hp_timing_t freq;
-	hp_timing_t tsc;
-
-	/* Get the current counter.  */
-	HP_TIMING_NOW (tsc);
-
-	if (freq == 0)
-	  {
-	    freq = get_clockfreq ();
-	    if (freq == 0)
-	      return EINVAL;
-	  }
-
-	/* Compute the seconds.  */
-	tp->tv_sec = tsc / freq;
-
-	/* And the nanoseconds.  This computation should be stable until
-	   we get machines with about 16GHz frequency.  */
-	tp->tv_nsec = ((tsc % freq) * UINT64_C (1000000000)) / freq;
-
-	retval = 0;
-      }
-    break;
-
-    default:
-      errno = EINVAL;
-      break;
-    }
-
-  return retval;
-}
diff --git a/nptl/stack-aliasing.h b/nptl/stack-aliasing.h
deleted file mode 100644
index 73ee4ded3d..0000000000
--- a/nptl/stack-aliasing.h
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Define macros for stack address aliasing issues for NPTL.  Stub version.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This is a number of bytes that is an alignment that should be avoided
-   when choosing the exact size of a new thread's stack.  If the size
-   chosen is aligned to this, an extra page will be added to render the
-   size off-aligned.  */
-#define MULTI_PAGE_ALIASING     0
diff --git a/nptl/test-cond-printers.c b/nptl/test-cond-printers.c
deleted file mode 100644
index 41e4ac8595..0000000000
--- a/nptl/test-cond-printers.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Helper program for testing the pthread_cond_t pretty printer.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Keep the calls to the pthread_* functions on separate lines to make it easy
-   to advance through the program using the gdb 'next' command.  */
-
-#include <time.h>
-#include <pthread.h>
-
-#define PASS 0
-#define FAIL 1
-
-static int test_status_destroyed (pthread_cond_t *condvar);
-
-int
-main (void)
-{
-  pthread_cond_t condvar;
-  pthread_condattr_t attr;
-  int result = FAIL;
-
-  if (pthread_condattr_init (&attr) == 0
-      && test_status_destroyed (&condvar) == PASS)
-    result = PASS;
-  /* Else, one of the pthread_cond* functions failed.  */
-
-  return result;
-}
-
-/* Initializes CONDVAR, then destroys it.  */
-static int
-test_status_destroyed (pthread_cond_t *condvar)
-{
-  int result = FAIL;
-
-  if (pthread_cond_init (condvar, NULL) == 0
-      && pthread_cond_destroy (condvar) == 0)
-    result = PASS; /* Test status (destroyed).  */
-
-  return result;
-}
diff --git a/nptl/test-cond-printers.py b/nptl/test-cond-printers.py
deleted file mode 100644
index d496b2b9b9..0000000000
--- a/nptl/test-cond-printers.py
+++ /dev/null
@@ -1,50 +0,0 @@
-# Common tests for the ConditionVariablePrinter class.
-#
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-import sys
-
-from test_printers_common import *
-
-test_source = sys.argv[1]
-test_bin = sys.argv[2]
-printer_files = sys.argv[3:]
-printer_names = ['global glibc-pthread-locks']
-
-try:
-    init_test(test_bin, printer_files, printer_names)
-    go_to_main()
-
-    var = 'condvar'
-    to_string = 'pthread_cond_t'
-
-    break_at(test_source, 'Test status (destroyed)')
-    continue_cmd() # Go to test_status_destroyed
-    test_printer(var, to_string, {'Threads known to still execute a wait function': '0'})
-
-    continue_cmd() # Exit
-
-except (NoLineError, pexpect.TIMEOUT) as exception:
-    print('Error: {0}'.format(exception))
-    result = FAIL
-
-else:
-    print('Test succeeded.')
-    result = PASS
-
-exit(result)
diff --git a/nptl/test-condattr-printers.c b/nptl/test-condattr-printers.c
deleted file mode 100644
index 9833d83b77..0000000000
--- a/nptl/test-condattr-printers.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Helper program for testing the pthread_cond_t and pthread_condattr_t
-   pretty printers.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Keep the calls to the pthread_* functions on separate lines to make it easy
-   to advance through the program using the gdb 'next' command.  */
-
-#include <time.h>
-#include <pthread.h>
-
-#define PASS 0
-#define FAIL 1
-
-static int condvar_reinit (pthread_cond_t *condvar,
-			   const pthread_condattr_t *attr);
-static int test_setclock (pthread_cond_t *condvar, pthread_condattr_t *attr);
-static int test_setpshared (pthread_cond_t *condvar, pthread_condattr_t *attr);
-
-/* Need these so we don't have lines longer than 79 chars.  */
-#define SET_SHARED(attr, shared) pthread_condattr_setpshared (attr, shared)
-
-int
-main (void)
-{
-  pthread_cond_t condvar;
-  pthread_condattr_t attr;
-  int result = FAIL;
-
-  if (pthread_condattr_init (&attr) == 0
-      && pthread_cond_init (&condvar, NULL) == 0
-      && test_setclock (&condvar, &attr) == PASS
-      && test_setpshared (&condvar, &attr) == PASS)
-    result = PASS;
-  /* Else, one of the pthread_cond* functions failed.  */
-
-  return result;
-}
-
-/* Destroys CONDVAR and re-initializes it using ATTR.  */
-static int
-condvar_reinit (pthread_cond_t *condvar, const pthread_condattr_t *attr)
-{
-  int result = FAIL;
-
-  if (pthread_cond_destroy (condvar) == 0
-      && pthread_cond_init (condvar, attr) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests setting the clock ID attribute.  */
-__attribute__ ((noinline))
-static int
-test_setclock (pthread_cond_t *condvar, pthread_condattr_t *attr)
-{
-  int result = FAIL;
-
-  if (pthread_condattr_setclock (attr, CLOCK_REALTIME) == 0 /* Set clock.  */
-      && condvar_reinit (condvar, attr) == PASS)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests setting whether the condvar can be shared between processes.  */
-static int
-test_setpshared (pthread_cond_t *condvar, pthread_condattr_t *attr)
-{
-  int result = FAIL;
-
-  if (SET_SHARED (attr, PTHREAD_PROCESS_SHARED) == 0 /* Set shared.  */
-      && condvar_reinit (condvar, attr) == PASS
-      && SET_SHARED (attr, PTHREAD_PROCESS_PRIVATE) == 0
-      && condvar_reinit (condvar, attr) == PASS)
-    result = PASS;
-
-  return result;
-}
diff --git a/nptl/test-condattr-printers.py b/nptl/test-condattr-printers.py
deleted file mode 100644
index df5c995c82..0000000000
--- a/nptl/test-condattr-printers.py
+++ /dev/null
@@ -1,71 +0,0 @@
-# Common tests for the ConditionVariablePrinter and
-# ConditionVariableAttributesPrinter classes.
-#
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-import sys
-
-from test_printers_common import *
-
-test_source = sys.argv[1]
-test_bin = sys.argv[2]
-printer_files = sys.argv[3:]
-printer_names = ['global glibc-pthread-locks']
-
-try:
-    init_test(test_bin, printer_files, printer_names)
-    go_to_main()
-
-    check_debug_symbol('struct pthread_condattr')
-
-    condvar_var = 'condvar'
-    condvar_to_string = 'pthread_cond_t'
-
-    attr_var = 'attr'
-    attr_to_string = 'pthread_condattr_t'
-
-    break_at(test_source, 'Set clock')
-    continue_cmd() # Go to test_setclock
-    next_cmd(2)
-    test_printer(condvar_var, condvar_to_string, {'Clock ID': 'CLOCK_REALTIME'})
-    test_printer(attr_var, attr_to_string, {'Clock ID': 'CLOCK_REALTIME'})
-
-    break_at(test_source, 'Set shared')
-    continue_cmd() # Go to test_setpshared
-    next_cmd(2)
-    test_printer(condvar_var, condvar_to_string, {'Shared': 'Yes'})
-    test_printer(attr_var, attr_to_string, {'Shared': 'Yes'})
-    next_cmd(2)
-    test_printer(condvar_var, condvar_to_string, {'Shared': 'No'})
-    test_printer(attr_var, attr_to_string, {'Shared': 'No'})
-
-    continue_cmd() # Exit
-
-except (NoLineError, pexpect.TIMEOUT) as exception:
-    print('Error: {0}'.format(exception))
-    result = FAIL
-
-except DebugError as exception:
-    print(exception)
-    result = UNSUPPORTED
-
-else:
-    print('Test succeeded.')
-    result = PASS
-
-exit(result)
diff --git a/nptl/test-mutex-printers.c b/nptl/test-mutex-printers.c
deleted file mode 100644
index 4a80ee9053..0000000000
--- a/nptl/test-mutex-printers.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Helper program for testing the pthread_mutex_t pretty printer.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Keep the calls to the pthread_* functions on separate lines to make it easy
-   to advance through the program using the gdb 'next' command.  */
-
-#include <stdlib.h>
-#include <errno.h>
-#include <pthread.h>
-
-#define PASS 0
-#define FAIL 1
-
-static int test_status_destroyed (pthread_mutex_t *mutex);
-static int test_status_no_robust (pthread_mutex_t *mutex,
-				  pthread_mutexattr_t *attr);
-static int test_status_robust (pthread_mutex_t *mutex,
-			       pthread_mutexattr_t *attr);
-static int test_locking_state_robust (pthread_mutex_t *mutex);
-static void *thread_func (void *arg);
-static int test_recursive_locks (pthread_mutex_t *mutex,
-				 pthread_mutexattr_t *attr);
-
-int
-main (void)
-{
-  pthread_mutex_t mutex;
-  pthread_mutexattr_t attr;
-  int result = FAIL;
-
-  if (pthread_mutexattr_init (&attr) == 0
-      && test_status_destroyed (&mutex) == PASS
-      && test_status_no_robust (&mutex, &attr) == PASS
-      && test_status_robust (&mutex, &attr) == PASS
-      && test_recursive_locks (&mutex, &attr) == PASS)
-    result = PASS;
-  /* Else, one of the pthread_mutex* functions failed.  */
-
-  return result;
-}
-
-/* Initializes MUTEX, then destroys it.  */
-static int
-test_status_destroyed (pthread_mutex_t *mutex)
-{
-  int result = FAIL;
-
-  if (pthread_mutex_init (mutex, NULL) == 0
-      && pthread_mutex_destroy (mutex) == 0)
-    result = PASS; /* Test status (destroyed).  */
-
-  return result;
-}
-
-/* Tests locking of non-robust mutexes.  */
-static int
-test_status_no_robust (pthread_mutex_t *mutex, pthread_mutexattr_t *attr)
-{
-  int result = FAIL;
-
-  if (pthread_mutexattr_setrobust (attr, PTHREAD_MUTEX_STALLED) == 0
-      && pthread_mutex_init (mutex, attr) == 0
-      && pthread_mutex_lock (mutex) == 0 /* Test status (non-robust).  */
-      && pthread_mutex_unlock (mutex) == 0
-      && pthread_mutex_destroy (mutex) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests locking of robust mutexes.  */
-static int
-test_status_robust (pthread_mutex_t *mutex, pthread_mutexattr_t *attr)
-{
-  int result = FAIL;
-
-  if (pthread_mutexattr_setrobust (attr, PTHREAD_MUTEX_ROBUST) == 0
-      && pthread_mutex_init (mutex, attr) == 0
-      && test_locking_state_robust (mutex) == PASS /* Test status (robust).  */
-      && pthread_mutex_destroy (mutex) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests locking and state corruption of robust mutexes.  We'll mark it as
-   inconsistent, then not recoverable.  */
-static int
-test_locking_state_robust (pthread_mutex_t *mutex)
-{
-  int result = FAIL;
-  pthread_t thread;
-
-  if (pthread_create (&thread, NULL, thread_func, mutex) == 0 /* Create.  */
-      && pthread_join (thread, NULL) == 0
-      && pthread_mutex_lock (mutex) == EOWNERDEAD /* Test locking (robust).  */
-      && pthread_mutex_unlock (mutex) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Function to be called by the child thread when testing robust mutexes.  */
-static void *
-thread_func (void *arg)
-{
-  pthread_mutex_t *mutex = (pthread_mutex_t *)arg;
-
-  if (pthread_mutex_lock (mutex) != 0) /* Thread function.  */
-    exit (FAIL);
-
-  /* Thread terminates without unlocking the mutex, thus marking it as
-     inconsistent.  */
-  return NULL;
-}
-
-/* Tests locking the mutex multiple times in a row.  */
-static int
-test_recursive_locks (pthread_mutex_t *mutex, pthread_mutexattr_t *attr)
-{
-  int result = FAIL;
-
-  if (pthread_mutexattr_settype (attr, PTHREAD_MUTEX_RECURSIVE) == 0
-      && pthread_mutex_init (mutex, attr) == 0
-      && pthread_mutex_lock (mutex) == 0
-      && pthread_mutex_lock (mutex) == 0
-      && pthread_mutex_lock (mutex) == 0 /* Test recursive locks.  */
-      && pthread_mutex_unlock (mutex) == 0
-      && pthread_mutex_unlock (mutex) == 0
-      && pthread_mutex_unlock (mutex) == 0
-      && pthread_mutex_destroy (mutex) == 0)
-    result = PASS;
-
-  return result;
-}
diff --git a/nptl/test-mutex-printers.py b/nptl/test-mutex-printers.py
deleted file mode 100644
index 687a32c4f7..0000000000
--- a/nptl/test-mutex-printers.py
+++ /dev/null
@@ -1,100 +0,0 @@
-# Tests for the MutexPrinter class.
-#
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-import sys
-
-from test_printers_common import *
-
-test_source = sys.argv[1]
-test_bin = sys.argv[2]
-printer_files = sys.argv[3:]
-printer_names = ['global glibc-pthread-locks']
-
-try:
-    init_test(test_bin, printer_files, printer_names)
-    go_to_main()
-
-    var = 'mutex'
-    to_string = 'pthread_mutex_t'
-
-    break_at(test_source, 'Test status (destroyed)')
-    continue_cmd() # Go to test_status_destroyed
-    test_printer(var, to_string, {'Status': 'Destroyed'})
-
-    break_at(test_source, 'Test status (non-robust)')
-    continue_cmd() # Go to test_status_no_robust
-    test_printer(var, to_string, {'Status': 'Not acquired'})
-    next_cmd()
-    thread_id = get_current_thread_lwpid()
-    # Owner ID might be reported either as the thread ID or as "Unknown"
-    # (if e.g. lock elision is enabled).
-    test_printer(var, to_string,
-                 {'Status': 'Acquired, possibly with no waiters',
-                  'Owner ID': r'({0}|Unknown)'.format(thread_id)})
-
-    break_at(test_source, 'Test status (robust)')
-    continue_cmd() # Go to test_status_robust
-    test_printer(var, to_string, {'Status': 'Not acquired'})
-
-    # We'll now test the robust mutex locking states.  We'll create a new
-    # thread that will lock a robust mutex and exit without unlocking it.
-    break_at(test_source, 'Create')
-    continue_cmd() # Go to test_locking_state_robust
-    # Set a breakpoint for the new thread to hit.
-    break_at(test_source, 'Thread function')
-    continue_cmd()
-    # By now the new thread is created and has hit its breakpoint.
-    set_scheduler_locking(True)
-    parent = 1
-    child = 2
-    select_thread(child)
-    child_id = get_current_thread_lwpid()
-    # We've got the new thread's ID.
-    select_thread(parent)
-    # Make the new thread finish its function while we wait.
-    continue_cmd(thread=child)
-    # The new thread should be dead by now.
-    break_at(test_source, 'Test locking (robust)')
-    continue_cmd()
-    test_printer(var, to_string, {'Owner ID': r'{0} \(dead\)'.format(child_id)})
-    # Try to lock and unlock the mutex.
-    next_cmd()
-    test_printer(var, to_string, {'Owner ID': thread_id,
-                           'State protected by this mutex': 'Inconsistent'})
-    next_cmd()
-    test_printer(var, to_string, {'Status': 'Not acquired',
-                        'State protected by this mutex': 'Not recoverable'})
-    set_scheduler_locking(False)
-
-    break_at(test_source, 'Test recursive locks')
-    continue_cmd() # Go to test_recursive_locks
-    test_printer(var, to_string, {'Times acquired by the owner': '2'})
-    next_cmd()
-    test_printer(var, to_string, {'Times acquired by the owner': '3'})
-    continue_cmd() # Exit
-
-except (NoLineError, pexpect.TIMEOUT) as exception:
-    print('Error: {0}'.format(exception))
-    result = FAIL
-
-else:
-    print('Test succeeded.')
-    result = PASS
-
-exit(result)
diff --git a/nptl/test-mutexattr-printers.c b/nptl/test-mutexattr-printers.c
deleted file mode 100644
index 4893f52cc3..0000000000
--- a/nptl/test-mutexattr-printers.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Helper program for testing the pthread_mutex_t and pthread_mutexattr_t
-   pretty printers.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Keep the calls to the pthread_* functions on separate lines to make it easy
-   to advance through the program using the gdb 'next' command.  */
-
-#include <pthread.h>
-
-#define PASS 0
-#define FAIL 1
-#define PRIOCEILING 42
-
-/* Need these so we don't have lines longer than 79 chars.  */
-#define SET_TYPE(attr, type) pthread_mutexattr_settype (attr, type)
-#define SET_ROBUST(attr, robust) pthread_mutexattr_setrobust (attr, robust)
-#define SET_SHARED(attr, shared) pthread_mutexattr_setpshared (attr, shared)
-#define SET_PROTOCOL(attr, protocol) \
-	pthread_mutexattr_setprotocol (attr, protocol)
-#define SET_PRIOCEILING(mutex, prioceiling, old_ceiling) \
-	pthread_mutex_setprioceiling (mutex, prioceiling, old_ceiling)
-
-static int mutex_reinit (pthread_mutex_t *mutex,
-			 const pthread_mutexattr_t *attr);
-static int test_settype (pthread_mutex_t *mutex, pthread_mutexattr_t *attr);
-static int test_setrobust (pthread_mutex_t *mutex, pthread_mutexattr_t *attr);
-static int test_setpshared (pthread_mutex_t *mutex, pthread_mutexattr_t *attr);
-static int test_setprotocol (pthread_mutex_t *mutex,
-			     pthread_mutexattr_t *attr);
-
-int
-main (void)
-{
-  pthread_mutex_t mutex;
-  pthread_mutexattr_t attr;
-  int result = FAIL;
-
-  if (pthread_mutexattr_init (&attr) == 0
-      && pthread_mutex_init (&mutex, NULL) == 0
-      && test_settype (&mutex, &attr) == PASS
-      && test_setrobust (&mutex, &attr) == PASS
-      && test_setpshared (&mutex, &attr) == PASS
-      && test_setprotocol (&mutex, &attr) == PASS)
-    result = PASS;
-  /* Else, one of the pthread_mutex* functions failed.  */
-
-  return result;
-}
-
-/* Destroys MUTEX and re-initializes it using ATTR.  */
-static int
-mutex_reinit (pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)
-{
-  int result = FAIL;
-
-  if (pthread_mutex_destroy (mutex) == 0
-      && pthread_mutex_init (mutex, attr) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests setting the mutex type.  */
-static int
-test_settype (pthread_mutex_t *mutex, pthread_mutexattr_t *attr)
-{
-  int result = FAIL;
-
-  if (SET_TYPE (attr, PTHREAD_MUTEX_ERRORCHECK) == 0 /* Set type.  */
-      && mutex_reinit (mutex, attr) == 0
-      && SET_TYPE (attr, PTHREAD_MUTEX_RECURSIVE) == 0
-      && mutex_reinit (mutex, attr) == 0
-      && SET_TYPE (attr, PTHREAD_MUTEX_NORMAL) == 0
-      && mutex_reinit (mutex, attr) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests setting whether the mutex is robust.  */
-static int
-test_setrobust (pthread_mutex_t *mutex, pthread_mutexattr_t *attr)
-{
-  int result = FAIL;
-
-  if (SET_ROBUST (attr, PTHREAD_MUTEX_ROBUST) == 0 /* Set robust.  */
-      && mutex_reinit (mutex, attr) == 0
-      && SET_ROBUST (attr, PTHREAD_MUTEX_STALLED) == 0
-      && mutex_reinit (mutex, attr) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests setting whether the mutex can be shared between processes.  */
-static int
-test_setpshared (pthread_mutex_t *mutex, pthread_mutexattr_t *attr)
-{
-  int result = FAIL;
-
-  if (SET_SHARED (attr, PTHREAD_PROCESS_SHARED) == 0 /* Set shared.  */
-      && mutex_reinit (mutex, attr) == 0
-      && SET_SHARED (attr, PTHREAD_PROCESS_PRIVATE) == 0
-      && mutex_reinit (mutex, attr) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests setting the mutex protocol and, for Priority Protect, the Priority
-   Ceiling.  */
-static int
-test_setprotocol (pthread_mutex_t *mutex, pthread_mutexattr_t *attr)
-{
-  int result = FAIL;
-  int old_prioceiling;
-
-  if (SET_PROTOCOL (attr, PTHREAD_PRIO_INHERIT) == 0 /* Set protocol.  */
-      && mutex_reinit (mutex, attr) == 0
-      && SET_PROTOCOL (attr, PTHREAD_PRIO_PROTECT) == 0
-      && mutex_reinit (mutex, attr) == 0
-      && SET_PRIOCEILING(mutex, PRIOCEILING, &old_prioceiling) == 0
-      && SET_PROTOCOL (attr, PTHREAD_PRIO_NONE) == 0
-      && mutex_reinit (mutex, attr) == 0)
-    result = PASS;
-
-  return result;
-}
diff --git a/nptl/test-mutexattr-printers.py b/nptl/test-mutexattr-printers.py
deleted file mode 100644
index db11a20f3a..0000000000
--- a/nptl/test-mutexattr-printers.py
+++ /dev/null
@@ -1,101 +0,0 @@
-# Common tests for the MutexPrinter and MutexAttributesPrinter classes.
-#
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-import sys
-
-from test_printers_common import *
-
-test_source = sys.argv[1]
-test_bin = sys.argv[2]
-printer_files = sys.argv[3:]
-printer_names = ['global glibc-pthread-locks']
-PRIOCEILING = 42
-
-try:
-    init_test(test_bin, printer_files, printer_names)
-    go_to_main()
-
-    check_debug_symbol('struct pthread_mutexattr')
-
-    mutex_var = 'mutex'
-    mutex_to_string = 'pthread_mutex_t'
-
-    attr_var = 'attr'
-    attr_to_string = 'pthread_mutexattr_t'
-
-    break_at(test_source, 'Set type')
-    continue_cmd() # Go to test_settype
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Type': 'Error check'})
-    test_printer(mutex_var, mutex_to_string, {'Type': 'Error check'})
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Type': 'Recursive'})
-    test_printer(mutex_var, mutex_to_string, {'Type': 'Recursive'})
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Type': 'Normal'})
-    test_printer(mutex_var, mutex_to_string, {'Type': 'Normal'})
-
-    break_at(test_source, 'Set robust')
-    continue_cmd() # Go to test_setrobust
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Robust': 'Yes'})
-    test_printer(mutex_var, mutex_to_string, {'Robust': 'Yes'})
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Robust': 'No'})
-    test_printer(mutex_var, mutex_to_string, {'Robust': 'No'})
-
-    break_at(test_source, 'Set shared')
-    continue_cmd() # Go to test_setpshared
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Shared': 'Yes'})
-    test_printer(mutex_var, mutex_to_string, {'Shared': 'Yes'})
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Shared': 'No'})
-    test_printer(mutex_var, mutex_to_string, {'Shared': 'No'})
-
-    break_at(test_source, 'Set protocol')
-    continue_cmd() # Go to test_setprotocol
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Protocol': 'Priority inherit'})
-    test_printer(mutex_var, mutex_to_string, {'Protocol': 'Priority inherit'})
-    next_cmd(2)
-    test_printer(attr_var, attr_to_string, {'Protocol': 'Priority protect'})
-    test_printer(mutex_var, mutex_to_string, {'Protocol': 'Priority protect'})
-    next_cmd(2)
-    test_printer(mutex_var, mutex_to_string, {'Priority ceiling':
-                                              str(PRIOCEILING)})
-    next_cmd()
-    test_printer(attr_var, attr_to_string, {'Protocol': 'None'})
-    test_printer(mutex_var, mutex_to_string, {'Protocol': 'None'})
-
-    continue_cmd() # Exit
-
-except (NoLineError, pexpect.TIMEOUT) as exception:
-    print('Error: {0}'.format(exception))
-    result = FAIL
-
-except DebugError as exception:
-    print(exception)
-    result = UNSUPPORTED
-
-else:
-    print('Test succeeded.')
-    result = PASS
-
-exit(result)
diff --git a/nptl/test-rwlock-printers.c b/nptl/test-rwlock-printers.c
deleted file mode 100644
index 4bd4960552..0000000000
--- a/nptl/test-rwlock-printers.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Helper program for testing the pthread_rwlock_t pretty printer.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Keep the calls to the pthread_* functions on separate lines to make it easy
-   to advance through the program using the gdb 'next' command.  */
-
-#include <pthread.h>
-
-#define PASS 0
-#define FAIL 1
-
-static int test_locking_reader (pthread_rwlock_t *rwlock);
-static int test_locking_writer (pthread_rwlock_t *rwlock);
-
-int
-main (void)
-{
-  pthread_rwlock_t rwlock;
-
-  int result = FAIL;
-
-  if (test_locking_reader (&rwlock) == PASS
-      && test_locking_writer (&rwlock) == PASS)
-    result = PASS;
-  /* Else, one of the pthread_rwlock* functions failed.  */
-
-  return result;
-}
-
-/* Tests locking the rwlock multiple times as a reader.  */
-static int
-test_locking_reader (pthread_rwlock_t *rwlock)
-{
-  int result = FAIL;
-
-  if (pthread_rwlock_init (rwlock, NULL) == 0
-      && pthread_rwlock_rdlock (rwlock) == 0 /* Test locking (reader).  */
-      && pthread_rwlock_rdlock (rwlock) == 0
-      && pthread_rwlock_rdlock (rwlock) == 0
-      && pthread_rwlock_unlock (rwlock) == 0
-      && pthread_rwlock_unlock (rwlock) == 0
-      && pthread_rwlock_unlock (rwlock) == 0
-      && pthread_rwlock_destroy (rwlock) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests locking the rwlock as a writer.  */
-static int
-test_locking_writer (pthread_rwlock_t *rwlock)
-{
-  int result = FAIL;
-
-  if (pthread_rwlock_init (rwlock, NULL) == 0
-      && pthread_rwlock_wrlock (rwlock) == 0 /* Test locking (writer).  */
-      && pthread_rwlock_unlock (rwlock) == 0
-      && pthread_rwlock_destroy (rwlock) == 0)
-    result = PASS;
-
-  return result;
-}
diff --git a/nptl/test-rwlock-printers.py b/nptl/test-rwlock-printers.py
deleted file mode 100644
index c19c92d48f..0000000000
--- a/nptl/test-rwlock-printers.py
+++ /dev/null
@@ -1,64 +0,0 @@
-# Common tests for the RWLockPrinter class.
-#
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-import sys
-
-from test_printers_common import *
-
-test_source = sys.argv[1]
-test_bin = sys.argv[2]
-printer_files = sys.argv[3:]
-printer_names = ['global glibc-pthread-locks']
-
-try:
-    init_test(test_bin, printer_files, printer_names)
-    go_to_main()
-
-    var = 'rwlock'
-    to_string = 'pthread_rwlock_t'
-
-    break_at(test_source, 'Test locking (reader)')
-    continue_cmd() # Go to test_locking_reader
-    test_printer(var, to_string, {'Status': 'Not acquired'})
-    next_cmd()
-    test_printer(var, to_string, {'Status': r'Acquired \(Read\)', 'Readers': '1'})
-    next_cmd()
-    test_printer(var, to_string, {'Readers': '2'})
-    next_cmd()
-    test_printer(var, to_string, {'Readers': '3'})
-
-    break_at(test_source, 'Test locking (writer)')
-    continue_cmd() # Go to test_locking_writer
-    test_printer(var, to_string, {'Status': 'Not acquired'})
-    next_cmd()
-    thread_id = get_current_thread_lwpid()
-    test_printer(var, to_string, {'Status': r'Acquired \(Write\)',
-                                  'Writer ID': thread_id})
-
-    continue_cmd() # Exit
-
-except (NoLineError, pexpect.TIMEOUT) as exception:
-    print('Error: {0}'.format(exception))
-    result = FAIL
-
-else:
-    print('Test succeeded.')
-    result = PASS
-
-exit(result)
diff --git a/nptl/test-rwlockattr-printers.c b/nptl/test-rwlockattr-printers.c
deleted file mode 100644
index b2cfc26b9e..0000000000
--- a/nptl/test-rwlockattr-printers.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Helper program for testing the pthread_rwlock_t and pthread_rwlockattr_t
-   pretty printers.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Keep the calls to the pthread_* functions on separate lines to make it easy
-   to advance through the program using the gdb 'next' command.  */
-
-#include <pthread.h>
-
-#define PASS 0
-#define FAIL 1
-
-/* Need these so we don't have lines longer than 79 chars.  */
-#define SET_KIND(attr, kind) pthread_rwlockattr_setkind_np (attr, kind)
-#define SET_SHARED(attr, shared) pthread_rwlockattr_setpshared (attr, shared)
-
-static int rwlock_reinit (pthread_rwlock_t *rwlock,
-			  const pthread_rwlockattr_t *attr);
-static int test_setkind_np (pthread_rwlock_t *rwlock,
-			    pthread_rwlockattr_t *attr);
-static int test_setpshared (pthread_rwlock_t *rwlock,
-			    pthread_rwlockattr_t *attr);
-
-int
-main (void)
-{
-  pthread_rwlock_t rwlock;
-  pthread_rwlockattr_t attr;
-  int result = FAIL;
-
-  if (pthread_rwlockattr_init (&attr) == 0
-      && pthread_rwlock_init (&rwlock, NULL) == 0
-      && test_setkind_np (&rwlock, &attr) == PASS
-      && test_setpshared (&rwlock, &attr) == PASS)
-    result = PASS;
-  /* Else, one of the pthread_rwlock* functions failed.  */
-
-  return result;
-}
-
-/* Destroys RWLOCK and re-initializes it using ATTR.  */
-static int
-rwlock_reinit (pthread_rwlock_t *rwlock, const pthread_rwlockattr_t *attr)
-{
-  int result = FAIL;
-
-  if (pthread_rwlock_destroy (rwlock) == 0
-      && pthread_rwlock_init (rwlock, attr) == 0)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests setting whether the rwlock prefers readers or writers.  */
-static int
-test_setkind_np (pthread_rwlock_t *rwlock, pthread_rwlockattr_t *attr)
-{
-  int result = FAIL;
-
-  if (SET_KIND (attr, PTHREAD_RWLOCK_PREFER_READER_NP) == 0 /* Set kind.  */
-      && rwlock_reinit (rwlock, attr) == PASS
-      && SET_KIND (attr, PTHREAD_RWLOCK_PREFER_WRITER_NP) == 0
-      && rwlock_reinit (rwlock, attr) == PASS
-      && SET_KIND (attr, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) == 0
-      && rwlock_reinit (rwlock, attr) == PASS)
-    result = PASS;
-
-  return result;
-}
-
-/* Tests setting whether the rwlock can be shared between processes.  */
-static int
-test_setpshared (pthread_rwlock_t *rwlock, pthread_rwlockattr_t *attr)
-{
-  int result = FAIL;
-
-  if (SET_SHARED (attr, PTHREAD_PROCESS_SHARED) == 0 /* Set shared.  */
-      && rwlock_reinit (rwlock, attr) == PASS
-      && SET_SHARED (attr, PTHREAD_PROCESS_PRIVATE) == 0
-      && rwlock_reinit (rwlock, attr) == PASS)
-    result = PASS;
-
-  return result;
-}
diff --git a/nptl/test-rwlockattr-printers.py b/nptl/test-rwlockattr-printers.py
deleted file mode 100644
index e62e5c533f..0000000000
--- a/nptl/test-rwlockattr-printers.py
+++ /dev/null
@@ -1,76 +0,0 @@
-# Common tests for the RWLockPrinter and RWLockAttributesPrinter classes.
-#
-# Copyright (C) 2016-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-#
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-#
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-#
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-import sys
-
-from test_printers_common import *
-
-test_source = sys.argv[1]
-test_bin = sys.argv[2]
-printer_files = sys.argv[3:]
-printer_names = ['global glibc-pthread-locks']
-
-try:
-    init_test(test_bin, printer_files, printer_names)
-    go_to_main()
-
-    check_debug_symbol('struct pthread_rwlockattr')
-
-    rwlock_var = 'rwlock'
-    rwlock_to_string = 'pthread_rwlock_t'
-
-    attr_var = 'attr'
-    attr_to_string = 'pthread_rwlockattr_t'
-
-    break_at(test_source, 'Set kind')
-    continue_cmd() # Go to test_setkind_np
-    next_cmd(2)
-    test_printer(rwlock_var, rwlock_to_string, {'Prefers': 'Readers'})
-    test_printer(attr_var, attr_to_string, {'Prefers': 'Readers'})
-    next_cmd(2)
-    test_printer(rwlock_var, rwlock_to_string, {'Prefers': 'Writers'})
-    test_printer(attr_var, attr_to_string, {'Prefers': 'Writers'})
-    next_cmd(2)
-    test_printer(rwlock_var, rwlock_to_string, {'Prefers': 'Writers no recursive readers'})
-    test_printer(attr_var, attr_to_string, {'Prefers': 'Writers no recursive readers'})
-
-    break_at(test_source, 'Set shared')
-    continue_cmd() # Go to test_setpshared
-    next_cmd(2)
-    test_printer(rwlock_var, rwlock_to_string, {'Shared': 'Yes'})
-    test_printer(attr_var, attr_to_string, {'Shared': 'Yes'})
-    next_cmd(2)
-    test_printer(rwlock_var, rwlock_to_string, {'Shared': 'No'})
-    test_printer(attr_var, attr_to_string, {'Shared': 'No'})
-
-    continue_cmd() # Exit
-
-except (NoLineError, pexpect.TIMEOUT) as exception:
-    print('Error: {0}'.format(exception))
-    result = FAIL
-
-except DebugError as exception:
-    print(exception)
-    result = UNSUPPORTED
-
-else:
-    print('Test succeeded.')
-    result = PASS
-
-exit(result)
diff --git a/nptl/tpp.c b/nptl/tpp.c
deleted file mode 100644
index 57eb026088..0000000000
--- a/nptl/tpp.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* Thread Priority Protect helpers.
-   Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <atomic.h>
-#include <errno.h>
-#include <pthreadP.h>
-#include <sched.h>
-#include <stdlib.h>
-#include <atomic.h>
-
-
-int __sched_fifo_min_prio = -1;
-int __sched_fifo_max_prio = -1;
-
-/* We only want to initialize __sched_fifo_min_prio and __sched_fifo_max_prio
-   once.  The standard solution would be similar to pthread_once, but then
-   readers would need to use an acquire fence.  In this specific case,
-   initialization is comprised of just idempotent writes to two variables
-   that have an initial value of -1.  Therefore, we can treat each variable as
-   a separate, at-least-once initialized value.  This enables using just
-   relaxed MO loads and stores, but requires that consumers check for
-   initialization of each value that is to be used; see
-   __pthread_tpp_change_priority for an example.
- */
-void
-__init_sched_fifo_prio (void)
-{
-  atomic_store_relaxed (&__sched_fifo_max_prio,
-			sched_get_priority_max (SCHED_FIFO));
-  atomic_store_relaxed (&__sched_fifo_min_prio,
-			sched_get_priority_min (SCHED_FIFO));
-}
-
-int
-__pthread_tpp_change_priority (int previous_prio, int new_prio)
-{
-  struct pthread *self = THREAD_SELF;
-  struct priority_protection_data *tpp = THREAD_GETMEM (self, tpp);
-  int fifo_min_prio = atomic_load_relaxed (&__sched_fifo_min_prio);
-  int fifo_max_prio = atomic_load_relaxed (&__sched_fifo_max_prio);
-
-  if (tpp == NULL)
-    {
-      /* See __init_sched_fifo_prio.  We need both the min and max prio,
-         so need to check both, and run initialization if either one is
-         not initialized.  The memory model's write-read coherence rule
-         makes this work.  */
-      if (fifo_min_prio == -1 || fifo_max_prio == -1)
-	{
-	  __init_sched_fifo_prio ();
-	  fifo_min_prio = atomic_load_relaxed (&__sched_fifo_min_prio);
-	  fifo_max_prio = atomic_load_relaxed (&__sched_fifo_max_prio);
-	}
-
-      size_t size = sizeof *tpp;
-      size += (fifo_max_prio - fifo_min_prio + 1)
-	      * sizeof (tpp->priomap[0]);
-      tpp = calloc (size, 1);
-      if (tpp == NULL)
-	return ENOMEM;
-      tpp->priomax = fifo_min_prio - 1;
-      THREAD_SETMEM (self, tpp, tpp);
-    }
-
-  assert (new_prio == -1
-	  || (new_prio >= fifo_min_prio
-	      && new_prio <= fifo_max_prio));
-  assert (previous_prio == -1
-	  || (previous_prio >= fifo_min_prio
-	      && previous_prio <= fifo_max_prio));
-
-  int priomax = tpp->priomax;
-  int newpriomax = priomax;
-  if (new_prio != -1)
-    {
-      if (tpp->priomap[new_prio - fifo_min_prio] + 1 == 0)
-	return EAGAIN;
-      ++tpp->priomap[new_prio - fifo_min_prio];
-      if (new_prio > priomax)
-	newpriomax = new_prio;
-    }
-
-  if (previous_prio != -1)
-    {
-      if (--tpp->priomap[previous_prio - fifo_min_prio] == 0
-	  && priomax == previous_prio
-	  && previous_prio > new_prio)
-	{
-	  int i;
-	  for (i = previous_prio - 1; i >= fifo_min_prio; --i)
-	    if (tpp->priomap[i - fifo_min_prio])
-	      break;
-	  newpriomax = i;
-	}
-    }
-
-  if (priomax == newpriomax)
-    return 0;
-
-  /* See CREATE THREAD NOTES in nptl/pthread_create.c.  */
-  lll_lock (self->lock, LLL_PRIVATE);
-
-  tpp->priomax = newpriomax;
-
-  int result = 0;
-
-  if ((self->flags & ATTR_FLAG_SCHED_SET) == 0)
-    {
-      if (__sched_getparam (self->tid, &self->schedparam) != 0)
-	result = errno;
-      else
-	self->flags |= ATTR_FLAG_SCHED_SET;
-    }
-
-  if ((self->flags & ATTR_FLAG_POLICY_SET) == 0)
-    {
-      self->schedpolicy = __sched_getscheduler (self->tid);
-      if (self->schedpolicy == -1)
-	result = errno;
-      else
-	self->flags |= ATTR_FLAG_POLICY_SET;
-    }
-
-  if (result == 0)
-    {
-      struct sched_param sp = self->schedparam;
-      if (sp.sched_priority < newpriomax || sp.sched_priority < priomax)
-	{
-	  if (sp.sched_priority < newpriomax)
-	    sp.sched_priority = newpriomax;
-
-	  if (__sched_setscheduler (self->tid, self->schedpolicy, &sp) < 0)
-	    result = errno;
-	}
-    }
-
-  lll_unlock (self->lock, LLL_PRIVATE);
-
-  return result;
-}
-
-int
-__pthread_current_priority (void)
-{
-  struct pthread *self = THREAD_SELF;
-  if ((self->flags & (ATTR_FLAG_POLICY_SET | ATTR_FLAG_SCHED_SET))
-      == (ATTR_FLAG_POLICY_SET | ATTR_FLAG_SCHED_SET))
-    return self->schedparam.sched_priority;
-
-  int result = 0;
-
-  /* See CREATE THREAD NOTES in nptl/pthread_create.c.  */
-  lll_lock (self->lock, LLL_PRIVATE);
-
-  if ((self->flags & ATTR_FLAG_SCHED_SET) == 0)
-    {
-      if (__sched_getparam (self->tid, &self->schedparam) != 0)
-	result = -1;
-      else
-	self->flags |= ATTR_FLAG_SCHED_SET;
-    }
-
-  if ((self->flags & ATTR_FLAG_POLICY_SET) == 0)
-    {
-      self->schedpolicy = __sched_getscheduler (self->tid);
-      if (self->schedpolicy == -1)
-	result = -1;
-      else
-	self->flags |= ATTR_FLAG_POLICY_SET;
-    }
-
-  if (result != -1)
-    result = self->schedparam.sched_priority;
-
-  lll_unlock (self->lock, LLL_PRIVATE);
-
-  return result;
-}
diff --git a/nptl/tst-_res1.c b/nptl/tst-_res1.c
deleted file mode 100644
index 75d3d9d8ea..0000000000
--- a/nptl/tst-_res1.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Test whether _res in glibc 2.1.x and earlier (before __res_state()
-   was introduced) works.  Portable programs should never do the
-   dirty things below.  */
-
-#include <pthread.h>
-#include <resolv.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-void *tf (void *resp)
-{
-  if (resp == &_res || resp == __res_state ())
-    abort ();
-  _res.retry = 24;
-  return NULL;
-}
-
-void do_test (struct __res_state *resp)
-{
-  if (resp != &_res || resp != __res_state ())
-    abort ();
-  if (_res.retry != 12)
-    abort ();
-}
-
-int main (void)
-{
-#undef _res
-  extern struct __res_state _res;
-  pthread_t th;
-
-  _res.retry = 12;
-  if (pthread_create (&th, NULL, tf, &_res) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  do_test (&_res);
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  do_test (&_res);
-
-  exit (0);
-}
diff --git a/nptl/tst-_res1mod1.c b/nptl/tst-_res1mod1.c
deleted file mode 100644
index 72a315d124..0000000000
--- a/nptl/tst-_res1mod1.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <resolv.h>
-#undef _res
-
-struct __res_state _res;
diff --git a/nptl/tst-_res1mod2.c b/nptl/tst-_res1mod2.c
deleted file mode 100644
index d2a3509c6d..0000000000
--- a/nptl/tst-_res1mod2.c
+++ /dev/null
@@ -1 +0,0 @@
-/* Nothing.  */
diff --git a/nptl/tst-abstime.c b/nptl/tst-abstime.c
deleted file mode 100644
index 42eac63334..0000000000
--- a/nptl/tst-abstime.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2010-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Andreas Schwab <schwab@redhat.com>, 2010.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
-static pthread_rwlock_t rw1 = PTHREAD_RWLOCK_INITIALIZER;
-static pthread_rwlock_t rw2 = PTHREAD_RWLOCK_INITIALIZER;
-static sem_t sem;
-
-static void *
-th (void *arg)
-{
-  long int res = 0;
-  int r;
-  struct timespec t = { -2, 0 };
-
-  r = pthread_mutex_timedlock (&m1, &t);
-  if (r != ETIMEDOUT)
-    {
-      puts ("pthread_mutex_timedlock did not return ETIMEDOUT");
-      res = 1;
-    }
-  r = pthread_rwlock_timedrdlock (&rw1, &t);
-  if (r != ETIMEDOUT)
-    {
-      puts ("pthread_rwlock_timedrdlock did not return ETIMEDOUT");
-      res = 1;
-    }
-  r = pthread_rwlock_timedwrlock (&rw2, &t);
-  if (r != ETIMEDOUT)
-    {
-      puts ("pthread_rwlock_timedwrlock did not return ETIMEDOUT");
-      res = 1;
-    }
-  return (void *) res;
-}
-
-static int
-do_test (void)
-{
-  int res = 0;
-  int r;
-  struct timespec t = { -2, 0 };
-  pthread_t pth;
-
-  sem_init (&sem, 0, 0);
-  r = sem_timedwait (&sem, &t);
-  if (r != -1 || errno != ETIMEDOUT)
-    {
-      puts ("sem_timedwait did not fail with ETIMEDOUT");
-      res = 1;
-    }
-
-  pthread_mutex_lock (&m1);
-  pthread_rwlock_wrlock (&rw1);
-  pthread_rwlock_rdlock (&rw2);
-  pthread_mutex_lock (&m2);
-  if (pthread_create (&pth, 0, th, 0) != 0)
-    {
-      puts ("cannot create thread");
-      return 1;
-    }
-  r = pthread_cond_timedwait (&c, &m2, &t);
-  if (r != ETIMEDOUT)
-    {
-      puts ("pthread_cond_timedwait did not return ETIMEDOUT");
-      res = 1;
-    }
-  void *thres;
-  pthread_join (pth, &thres);
-  return res | (thres != NULL);
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-align.c b/nptl/tst-align.c
deleted file mode 100644
index 1f44d11a9e..0000000000
--- a/nptl/tst-align.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <tst-stack-align.h>
-
-static void *
-tf (void *arg)
-{
-  bool ok = true;
-
-  puts ("in thread");
-
-  if (TEST_STACK_ALIGN ())
-    ok = false;
-
-  return ok ? NULL : (void *) -1l;
-}
-
-static int
-do_test (void)
-{
-  bool ok = true;
-
-  puts ("in main");
-
-  if (TEST_STACK_ALIGN ())
-    ok = false;
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  void *res;
-  if (pthread_join (th, &res) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (res != NULL)
-    ok = false;
-
-  return ok ? 0 : 1;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-align3.c b/nptl/tst-align3.c
deleted file mode 100644
index ee24557881..0000000000
--- a/nptl/tst-align3.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <tst-stack-align.h>
-
-static bool ok = true;
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static void
-once_test (void)
-{
-  puts ("in once_test");
-
-  if (TEST_STACK_ALIGN ())
-    ok = false;
-}
-
-static int
-do_test (void)
-{
-  puts ("in main");
-
-  if (TEST_STACK_ALIGN ())
-    ok = false;
-
-  if (pthread_once (&once, once_test))
-    {
-      puts ("pthread once failed");
-      return 1;
-    }
-
-  return ok ? 0 : 1;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-atfork1.c b/nptl/tst-atfork1.c
deleted file mode 100644
index 55f46f075b..0000000000
--- a/nptl/tst-atfork1.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static int val;
-
-
-static void
-prepare1 (void)
-{
-  val *= 2;
-}
-
-static void
-prepare2 (void)
-{
-  ++val;
-}
-
-static void
-parent1 (void)
-{
-  val += 4;
-}
-
-static void
-parent2 (void)
-{
-  val *= 4;
-}
-
-static void
-child1 (void)
-{
-  val += 8;
-}
-
-static void
-child2 (void)
-{
-  val *= 8;
-}
-
-
-static int
-do_test (void)
-{
-  pid_t pid;
-  int status = 0;
-
-  if (pthread_atfork (prepare1, parent1, child1) != 0)
-    {
-      puts ("1st atfork failed");
-      exit (1);
-    }
-  if (pthread_atfork (prepare2, parent2, child2) != 0)
-    {
-      puts ("2nd atfork failed");
-      exit (1);
-    }
-
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      exit (1);
-    }
-
-  if (pid != 0)
-    {
-      /* Parent.  */
-      if (val != 24)
-	{
-	  printf ("expected val=%d, got %d\n", 24, val);
-	  exit (1);
-	}
-
-      if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-	{
-	  puts ("waitpid failed");
-	  exit (1);
-	}
-    }
-  else
-    {
-      /* Child.  */
-      if (val != 80)
-	{
-	  printf ("expected val=%d, got %d\n", 80, val);
-	  exit (2);
-	}
-    }
-
-  return status;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-atfork2.c b/nptl/tst-atfork2.c
deleted file mode 100644
index 7b3333e255..0000000000
--- a/nptl/tst-atfork2.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <dlfcn.h>
-#include <errno.h>
-#include <mcheck.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-/* Must be exported.  */
-int val;
-
-static void
-prepare (void)
-{
-  val *= 2;
-}
-
-static void
-parent (void)
-{
-  val += 4;
-}
-
-static void
-child (void)
-{
-  val += 8;
-}
-
-
-static int
-do_test (void)
-{
-  mtrace ();
-
-  if (pthread_atfork (prepare, parent, child) != 0)
-    {
-      puts ("do_test: atfork failed");
-      exit (1);
-    }
-
-  void *h = dlopen ("tst-atfork2mod.so", RTLD_LAZY);
-  if (h == NULL)
-    {
-      printf ("dlopen failed: %s\n", dlerror ());
-      exit (1);
-    }
-
-  /* First trial of fork.  */
-  pid_t pid = fork ();
-  if (pid == -1)
-    {
-      puts ("1st fork failed");
-      exit (1);
-    }
-
-  if (pid == 0)
-    {
-      /* Child.  */
-      if (val != 80)
-	{
-	  printf ("1st: expected val=%d, got %d\n", 80, val);
-	  exit (2);
-	}
-
-      exit (0);
-    }
-
-  /* Parent.  */
-  if (val != 24)
-    {
-      printf ("1st: expected val=%d, got %d\n", 24, val);
-      exit (1);
-    }
-
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-    {
-      puts ("1st waitpid failed");
-      exit (1);
-    }
-
-  if (status != 0)
-    exit (status);
-
-  puts ("unloading now");
-
-  /* Unload the module.  */
-  if (dlclose (h) != 0)
-    {
-      puts ("dlclose failed");
-      exit (1);
-    }
-
-  puts ("2nd fork");
-
-  /* Second fork trial.   */
-  val = 1;
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("2nd fork failed");
-      exit (1);
-    }
-
-  if (pid == 0)
-    {
-      /* Child.  */
-      if (val != 10)
-	{
-	  printf ("2nd: expected val=%d, got %d\n", 10, val);
-	  exit (3);
-	}
-
-      exit (0);
-    }
-
-  /* Parent.  */
-  if (val != 6)
-    {
-      printf ("2nd: expected val=%d, got %d\n", 6, val);
-      exit (1);
-    }
-
-  if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-    {
-      puts ("2nd waitpid failed");
-      exit (1);
-    }
-
-  if (status != 0)
-    exit (status);
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-atfork2mod.c b/nptl/tst-atfork2mod.c
deleted file mode 100644
index fe64046d3c..0000000000
--- a/nptl/tst-atfork2mod.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-extern int val;
-
-
-static void
-prepare (void)
-{
-  ++val;
-}
-
-static void
-parent (void)
-{
-  val *= 4;
-}
-
-static void
-child (void)
-{
-  val *= 8;
-}
-
-static void
-__attribute__ ((constructor))
-init (void)
-{
-  extern void *__dso_handle;
-  printf ("dsohandle = %p\n", __dso_handle);
-
-  if (pthread_atfork (prepare, parent, child) != 0)
-    {
-      puts ("init: atfork failed");
-      exit (1);
-    }
-}
diff --git a/nptl/tst-attr1.c b/nptl/tst-attr1.c
deleted file mode 100644
index 1da7f3ba01..0000000000
--- a/nptl/tst-attr1.c
+++ /dev/null
@@ -1,305 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-int
-do_test (void)
-{
-  int i;
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  pthread_mutexattr_t ma;
-
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("mutexattr_init failed");
-      exit (1);
-    }
-
-  pthread_rwlockattr_t rwa;
-
-  if (pthread_rwlockattr_init (&rwa) != 0)
-    {
-      puts ("rwlockattr_init failed");
-      exit (1);
-    }
-
-  /* XXX Remove if default value is clear.  */
-  pthread_attr_setinheritsched (&a, PTHREAD_INHERIT_SCHED);
-  pthread_attr_setschedpolicy (&a, SCHED_OTHER);
-  pthread_attr_setscope (&a, PTHREAD_SCOPE_SYSTEM);
-
-  for (i = 0; i < 10000; ++i)
-    {
-      long int r = random ();
-
-      if (r != PTHREAD_CREATE_DETACHED && r != PTHREAD_CREATE_JOINABLE)
-	{
-	  int e = pthread_attr_setdetachstate (&a, r);
-
-	  if (e == 0)
-	    {
-	      printf ("attr_setdetachstate with value %ld succeeded\n", r);
-	      exit (1);
-	    }
-	  if (e != EINVAL)
-	    {
-	      puts ("attr_setdetachstate didn't return EINVAL");
-	      exit (1);
-	    }
-
-	  int s;
-	  if (pthread_attr_getdetachstate (&a, &s) != 0)
-	    {
-	      puts ("attr_getdetachstate failed");
-	      exit (1);
-	    }
-
-	  if (s != PTHREAD_CREATE_JOINABLE)
-	    {
-	      printf ("\
-detach state changed to %d by invalid setdetachstate call\n", s);
-	      exit (1);
-	    }
-	}
-
-      if (r != PTHREAD_INHERIT_SCHED && r != PTHREAD_EXPLICIT_SCHED)
-	{
-	  int e = pthread_attr_setinheritsched (&a, r);
-
-	  if (e == 0)
-	    {
-	      printf ("attr_setinheritsched with value %ld succeeded\n", r);
-	      exit (1);
-	    }
-	  if (e != EINVAL)
-	    {
-	      puts ("attr_setinheritsched didn't return EINVAL");
-	      exit (1);
-	    }
-
-	  int s;
-	  if (pthread_attr_getinheritsched (&a, &s) != 0)
-	    {
-	      puts ("attr_getinheritsched failed");
-	      exit (1);
-	    }
-
-	  if (s != PTHREAD_INHERIT_SCHED)
-	    {
-	      printf ("\
-inheritsched changed to %d by invalid setinheritsched call\n", s);
-	      exit (1);
-	    }
-	}
-
-      if (r != SCHED_OTHER && r != SCHED_RR && r != SCHED_FIFO)
-	{
-	  int e = pthread_attr_setschedpolicy (&a, r);
-
-	  if (e == 0)
-	    {
-	      printf ("attr_setschedpolicy with value %ld succeeded\n", r);
-	      exit (1);
-	    }
-	  if (e != EINVAL)
-	    {
-	      puts ("attr_setschedpolicy didn't return EINVAL");
-	      exit (1);
-	    }
-
-	  int s;
-	  if (pthread_attr_getschedpolicy (&a, &s) != 0)
-	    {
-	      puts ("attr_getschedpolicy failed");
-	      exit (1);
-	    }
-
-	  if (s != SCHED_OTHER)
-	    {
-	      printf ("\
-schedpolicy changed to %d by invalid setschedpolicy call\n", s);
-	      exit (1);
-	    }
-	}
-
-      if (r != PTHREAD_SCOPE_SYSTEM && r != PTHREAD_SCOPE_PROCESS)
-	{
-	  int e = pthread_attr_setscope (&a, r);
-
-	  if (e == 0)
-	    {
-	      printf ("attr_setscope with value %ld succeeded\n", r);
-	      exit (1);
-	    }
-	  if (e != EINVAL)
-	    {
-	      puts ("attr_setscope didn't return EINVAL");
-	      exit (1);
-	    }
-
-	  int s;
-	  if (pthread_attr_getscope (&a, &s) != 0)
-	    {
-	      puts ("attr_getscope failed");
-	      exit (1);
-	    }
-
-	  if (s != PTHREAD_SCOPE_SYSTEM)
-	    {
-	      printf ("\
-contentionscope changed to %d by invalid setscope call\n", s);
-	      exit (1);
-	    }
-	}
-
-      if (r != PTHREAD_PROCESS_PRIVATE && r != PTHREAD_PROCESS_SHARED)
-	{
-	  int e = pthread_mutexattr_setpshared (&ma, r);
-
-	  if (e == 0)
-	    {
-	      printf ("mutexattr_setpshared with value %ld succeeded\n", r);
-	      exit (1);
-	    }
-	  if (e != EINVAL)
-	    {
-	      puts ("mutexattr_setpshared didn't return EINVAL");
-	      exit (1);
-	    }
-
-	  int s;
-	  if (pthread_mutexattr_getpshared (&ma, &s) != 0)
-	    {
-	      puts ("mutexattr_getpshared failed");
-	      exit (1);
-	    }
-
-	  if (s != PTHREAD_PROCESS_PRIVATE)
-	    {
-	      printf ("\
-pshared changed to %d by invalid mutexattr_setpshared call\n", s);
-	      exit (1);
-	    }
-
-	  e = pthread_rwlockattr_setpshared (&rwa, r);
-
-	  if (e == 0)
-	    {
-	      printf ("rwlockattr_setpshared with value %ld succeeded\n", r);
-	      exit (1);
-	    }
-	  if (e != EINVAL)
-	    {
-	      puts ("rwlockattr_setpshared didn't return EINVAL");
-	      exit (1);
-	    }
-
-	  if (pthread_rwlockattr_getpshared (&rwa, &s) != 0)
-	    {
-	      puts ("rwlockattr_getpshared failed");
-	      exit (1);
-	    }
-
-	  if (s != PTHREAD_PROCESS_PRIVATE)
-	    {
-	      printf ("\
-pshared changed to %d by invalid rwlockattr_setpshared call\n", s);
-	      exit (1);
-	    }
-	}
-
-      if (r != PTHREAD_CANCEL_ENABLE && r != PTHREAD_CANCEL_DISABLE)
-	{
-	  int e = pthread_setcancelstate (r, NULL);
-
-	  if (e == 0)
-	    {
-	      printf ("setcancelstate with value %ld succeeded\n", r);
-	      exit (1);
-	    }
-
-	  if (e != EINVAL)
-	    {
-	      puts ("setcancelstate didn't return EINVAL");
-	      exit (1);
-	    }
-
-	  int s;
-	  if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, &s) != 0)
-	    {
-	      puts ("setcancelstate failed for PTHREAD_CANCEL_ENABLE");
-	      exit (1);
-	    }
-
-	  if (s != PTHREAD_CANCEL_ENABLE)
-	    {
-	      puts ("invalid setcancelstate changed state");
-	      exit (1);
-	    }
-	}
-
-      if (r != PTHREAD_CANCEL_DEFERRED && r != PTHREAD_CANCEL_ASYNCHRONOUS)
-	{
-	  int e = pthread_setcanceltype (r, NULL);
-
-	  if (e == 0)
-	    {
-	      printf ("setcanceltype with value %ld succeeded\n", r);
-	      exit (1);
-	    }
-
-	  if (e != EINVAL)
-	    {
-	      puts ("setcanceltype didn't return EINVAL");
-	      exit (1);
-	    }
-
-	  int s;
-	  if (pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &s) != 0)
-	    {
-	      puts ("setcanceltype failed for PTHREAD_CANCEL_DEFERRED");
-	      exit (1);
-	    }
-
-	  if (s != PTHREAD_CANCEL_DEFERRED)
-	    {
-	      puts ("invalid setcanceltype changed state");
-	      exit (1);
-	    }
-	}
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-attr2.c b/nptl/tst-attr2.c
deleted file mode 100644
index 9967b69773..0000000000
--- a/nptl/tst-attr2.c
+++ /dev/null
@@ -1,316 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-int
-do_test (void)
-{
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  /* Check default value of detach state.  */
-  int s;
-  if (pthread_attr_getdetachstate (&a, &s) != 0)
-    {
-      puts ("1st attr_getdestachstate failed");
-      exit (1);
-    }
-  if (s != PTHREAD_CREATE_JOINABLE)
-    {
-      printf ("\
-default detach state wrong: %d, expected %d (PTHREAD_CREATE_JOINABLE)\n",
-	      s, PTHREAD_CREATE_JOINABLE);
-      exit (1);
-    }
-
-  int e = pthread_attr_setdetachstate (&a, PTHREAD_CREATE_DETACHED);
-  if (e != 0)
-    {
-      puts ("1st attr_setdetachstate failed");
-      exit (1);
-    }
-  if (pthread_attr_getdetachstate (&a, &s) != 0)
-    {
-      puts ("2nd attr_getdestachstate failed");
-      exit (1);
-    }
-  if (s != PTHREAD_CREATE_DETACHED)
-    {
-      puts ("PTHREAD_CREATE_DETACHED set, but not given back");
-      exit (1);
-    }
-
-  e = pthread_attr_setdetachstate (&a, PTHREAD_CREATE_JOINABLE);
-  if (e != 0)
-    {
-      puts ("2nd attr_setdetachstate failed");
-      exit (1);
-    }
-  if (pthread_attr_getdetachstate (&a, &s) != 0)
-    {
-      puts ("3rd attr_getdestachstate failed");
-      exit (1);
-    }
-  if (s != PTHREAD_CREATE_JOINABLE)
-    {
-      puts ("PTHREAD_CREATE_JOINABLE set, but not given back");
-      exit (1);
-    }
-
-
-  size_t g;
-  if (pthread_attr_getguardsize (&a, &g) != 0)
-    {
-      puts ("1st attr_getguardsize failed");
-      exit (1);
-    }
-  if (g != (size_t) sysconf (_SC_PAGESIZE))
-    {
-      printf ("default guardsize %zu, expected %ld (PAGESIZE)\n",
-	      g, sysconf (_SC_PAGESIZE));
-      exit (1);
-    }
-
-  e = pthread_attr_setguardsize (&a, 0);
-  if (e != 0)
-    {
-      puts ("1st attr_setguardsize failed");
-      exit (1);
-    }
-  if (pthread_attr_getguardsize (&a, &g) != 0)
-    {
-      puts ("2nd attr_getguardsize failed");
-      exit (1);
-    }
-  if (g != 0)
-    {
-      printf ("guardsize set to zero but %zu returned\n", g);
-      exit (1);
-    }
-
-  e = pthread_attr_setguardsize (&a, 1);
-  if (e != 0)
-    {
-      puts ("2nd attr_setguardsize failed");
-      exit (1);
-    }
-  if (pthread_attr_getguardsize (&a, &g) != 0)
-    {
-      puts ("3rd attr_getguardsize failed");
-      exit (1);
-    }
-  if (g != 1)
-    {
-      printf ("guardsize set to 1 but %zu returned\n", g);
-      exit (1);
-    }
-
-
-  if (pthread_attr_getinheritsched (&a, &s) != 0)
-    {
-      puts ("1st attr_getinheritsched failed");
-      exit (1);
-    }
-  /* XXX What is the correct default value.  */
-  if (s != PTHREAD_INHERIT_SCHED && s != PTHREAD_EXPLICIT_SCHED)
-    {
-      puts ("incorrect default value for inheritsched");
-      exit (1);
-    }
-
-  e = pthread_attr_setinheritsched (&a, PTHREAD_EXPLICIT_SCHED);
-  if (e != 0)
-    {
-      puts ("1st attr_setinheritsched failed");
-      exit (1);
-    }
-  if (pthread_attr_getinheritsched (&a, &s) != 0)
-    {
-      puts ("2nd attr_getinheritsched failed");
-      exit (1);
-    }
-  if (s != PTHREAD_EXPLICIT_SCHED)
-    {
-      printf ("inheritsched set to PTHREAD_EXPLICIT_SCHED, but got %d\n", s);
-      exit (1);
-    }
-
-  e = pthread_attr_setinheritsched (&a, PTHREAD_INHERIT_SCHED);
-  if (e != 0)
-    {
-      puts ("2nd attr_setinheritsched failed");
-      exit (1);
-    }
-  if (pthread_attr_getinheritsched (&a, &s) != 0)
-    {
-      puts ("3rd attr_getinheritsched failed");
-      exit (1);
-    }
-  if (s != PTHREAD_INHERIT_SCHED)
-    {
-      printf ("inheritsched set to PTHREAD_INHERIT_SCHED, but got %d\n", s);
-      exit (1);
-    }
-
-
-  if (pthread_attr_getschedpolicy (&a, &s) != 0)
-    {
-      puts ("1st attr_getschedpolicy failed");
-      exit (1);
-    }
-  /* XXX What is the correct default value.  */
-  if (s != SCHED_OTHER && s != SCHED_FIFO && s != SCHED_RR)
-    {
-      puts ("incorrect default value for schedpolicy");
-      exit (1);
-    }
-
-  e = pthread_attr_setschedpolicy (&a, SCHED_RR);
-  if (e != 0)
-    {
-      puts ("1st attr_setschedpolicy failed");
-      exit (1);
-    }
-  if (pthread_attr_getschedpolicy (&a, &s) != 0)
-    {
-      puts ("2nd attr_getschedpolicy failed");
-      exit (1);
-    }
-  if (s != SCHED_RR)
-    {
-      printf ("schedpolicy set to SCHED_RR, but got %d\n", s);
-      exit (1);
-    }
-
-  e = pthread_attr_setschedpolicy (&a, SCHED_FIFO);
-  if (e != 0)
-    {
-      puts ("2nd attr_setschedpolicy failed");
-      exit (1);
-    }
-  if (pthread_attr_getschedpolicy (&a, &s) != 0)
-    {
-      puts ("3rd attr_getschedpolicy failed");
-      exit (1);
-    }
-  if (s != SCHED_FIFO)
-    {
-      printf ("schedpolicy set to SCHED_FIFO, but got %d\n", s);
-      exit (1);
-    }
-
-  e = pthread_attr_setschedpolicy (&a, SCHED_OTHER);
-  if (e != 0)
-    {
-      puts ("3rd attr_setschedpolicy failed");
-      exit (1);
-    }
-  if (pthread_attr_getschedpolicy (&a, &s) != 0)
-    {
-      puts ("4th attr_getschedpolicy failed");
-      exit (1);
-    }
-  if (s != SCHED_OTHER)
-    {
-      printf ("schedpolicy set to SCHED_OTHER, but got %d\n", s);
-      exit (1);
-    }
-
-
-  if (pthread_attr_getscope (&a, &s) != 0)
-    {
-      puts ("1st attr_getscope failed");
-      exit (1);
-    }
-  /* XXX What is the correct default value.  */
-  if (s != PTHREAD_SCOPE_SYSTEM && s != PTHREAD_SCOPE_PROCESS)
-    {
-      puts ("incorrect default value for contentionscope");
-      exit (1);
-    }
-
-  e = pthread_attr_setscope (&a, PTHREAD_SCOPE_PROCESS);
-  if (e != ENOTSUP)
-    {
-      if (e != 0)
-	{
-	  puts ("1st attr_setscope failed");
-	  exit (1);
-	}
-      if (pthread_attr_getscope (&a, &s) != 0)
-	{
-	  puts ("2nd attr_getscope failed");
-	  exit (1);
-	}
-      if (s != PTHREAD_SCOPE_PROCESS)
-	{
-	  printf ("\
-contentionscope set to PTHREAD_SCOPE_PROCESS, but got %d\n", s);
-	  exit (1);
-	}
-    }
-
-  e = pthread_attr_setscope (&a, PTHREAD_SCOPE_SYSTEM);
-  if (e != 0)
-    {
-      puts ("2nd attr_setscope failed");
-      exit (1);
-    }
-  if (pthread_attr_getscope (&a, &s) != 0)
-    {
-      puts ("3rd attr_getscope failed");
-      exit (1);
-    }
-  if (s != PTHREAD_SCOPE_SYSTEM)
-    {
-      printf ("contentionscope set to PTHREAD_SCOPE_SYSTEM, but got %d\n", s);
-      exit (1);
-    }
-
-  char buf[1];
-  e = pthread_attr_setstack (&a, buf, 1);
-  if (e != EINVAL)
-    {
-      puts ("setstack with size 1 did not produce EINVAL");
-      exit (1);
-    }
-
-  e = pthread_attr_setstacksize (&a, 1);
-  if (e != EINVAL)
-    {
-      puts ("setstacksize with size 1 did not produce EINVAL");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-attr3.c b/nptl/tst-attr3.c
deleted file mode 100644
index bc23386daf..0000000000
--- a/nptl/tst-attr3.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/* pthread_getattr_np test.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <stackinfo.h>
-
-static void *
-tf (void *arg)
-{
-  pthread_attr_t a, *ap, a2;
-  int err;
-  void *result = NULL;
-
-  if (arg == NULL)
-    {
-      ap = &a2;
-      err = pthread_attr_init (ap);
-      if (err)
-	{
-	  error (0, err, "pthread_attr_init failed");
-	  return tf;
-	}
-    }
-  else
-    ap = (pthread_attr_t *) arg;
-
-  err = pthread_getattr_np (pthread_self (), &a);
-  if (err)
-    {
-      error (0, err, "pthread_getattr_np failed");
-      result = tf;
-    }
-
-  int detachstate1, detachstate2;
-  err = pthread_attr_getdetachstate (&a, &detachstate1);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getdetachstate failed");
-      result = tf;
-    }
-  else
-    {
-      err = pthread_attr_getdetachstate (ap, &detachstate2);
-      if (err)
-	{
-	  error (0, err, "pthread_attr_getdetachstate failed");
-	  result = tf;
-	}
-      else if (detachstate1 != detachstate2)
-	{
-	  error (0, 0, "detachstate differs %d != %d",
-		 detachstate1, detachstate2);
-	  result = tf;
-	}
-    }
-
-  void *stackaddr;
-  size_t stacksize;
-  err = pthread_attr_getstack (&a, &stackaddr, &stacksize);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getstack failed");
-      result = tf;
-    }
-  else if ((void *) &a < stackaddr
-	   || (void *) &a >= stackaddr + stacksize)
-    {
-      error (0, 0, "pthread_attr_getstack returned range does not cover thread's stack");
-      result = tf;
-    }
-  else
-    printf ("thread stack %p-%p (0x%zx)\n", stackaddr, stackaddr + stacksize,
-	    stacksize);
-
-  size_t guardsize1, guardsize2;
-  err = pthread_attr_getguardsize (&a, &guardsize1);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getguardsize failed");
-      result = tf;
-    }
-  else
-    {
-      err = pthread_attr_getguardsize (ap, &guardsize2);
-      if (err)
-	{
-	  error (0, err, "pthread_attr_getguardsize failed");
-	  result = tf;
-	}
-      else if (guardsize1 != guardsize2)
-	{
-	  error (0, 0, "guardsize differs %zd != %zd",
-		 guardsize1, guardsize2);
-	  result = tf;
-	}
-      else
-	printf ("thread guardsize %zd\n", guardsize1);
-    }
-
-  int scope1, scope2;
-  err = pthread_attr_getscope (&a, &scope1);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getscope failed");
-      result = tf;
-    }
-  else
-    {
-      err = pthread_attr_getscope (ap, &scope2);
-      if (err)
-	{
-	  error (0, err, "pthread_attr_getscope failed");
-	  result = tf;
-	}
-      else if (scope1 != scope2)
-	{
-	  error (0, 0, "scope differs %d != %d",
-		 scope1, scope2);
-	  result = tf;
-	}
-    }
-
-  int inheritsched1, inheritsched2;
-  err = pthread_attr_getinheritsched (&a, &inheritsched1);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getinheritsched failed");
-      result = tf;
-    }
-  else
-    {
-      err = pthread_attr_getinheritsched (ap, &inheritsched2);
-      if (err)
-	{
-	  error (0, err, "pthread_attr_getinheritsched failed");
-	  result = tf;
-	}
-      else if (inheritsched1 != inheritsched2)
-	{
-	  error (0, 0, "inheritsched differs %d != %d",
-		 inheritsched1, inheritsched2);
-	  result = tf;
-	}
-    }
-
-  cpu_set_t c1, c2;
-  err = pthread_getaffinity_np (pthread_self (), sizeof (c1), &c1);
-  if (err == 0)
-    {
-      err = pthread_attr_getaffinity_np (&a, sizeof (c2), &c2);
-      if (err)
-	{
-	  error (0, err, "pthread_attr_getaffinity_np failed");
-	  result = tf;
-	}
-      else if (memcmp (&c1, &c2, sizeof (c1)))
-	{
-	  error (0, 0, "pthread_attr_getaffinity_np returned different CPU mask than pthread_getattr_np");
-	  result = tf;
-	}
-    }
-
-  err = pthread_attr_destroy (&a);
-  if (err)
-    {
-      error (0, err, "pthread_attr_destroy failed");
-      result = tf;
-    }
-
-  if (ap == &a2)
-    {
-      err = pthread_attr_destroy (ap);
-      if (err)
-	{
-	  error (0, err, "pthread_attr_destroy failed");
-	  result = tf;
-	}
-    }
-
-  return result;
-}
-
-
-static int
-do_test (void)
-{
-  int result = 0;
-  pthread_attr_t a;
-  cpu_set_t c1, c2;
-
-  int err = pthread_attr_init (&a);
-  if (err)
-    {
-      error (0, err, "pthread_attr_init failed");
-      result = 1;
-    }
-
-  err = pthread_attr_getaffinity_np (&a, sizeof (c1), &c1);
-  if (err && err != ENOSYS)
-    {
-      error (0, err, "pthread_attr_getaffinity_np failed");
-      result = 1;
-    }
-
-  err = pthread_attr_destroy (&a);
-  if (err)
-    {
-      error (0, err, "pthread_attr_destroy failed");
-      result = 1;
-    }
-
-  err = pthread_getattr_np (pthread_self (), &a);
-  if (err)
-    {
-      error (0, err, "pthread_getattr_np failed");
-      result = 1;
-    }
-
-  int detachstate;
-  err = pthread_attr_getdetachstate (&a, &detachstate);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getdetachstate failed");
-      result = 1;
-    }
-  else if (detachstate != PTHREAD_CREATE_JOINABLE)
-    {
-      error (0, 0, "initial thread not joinable");
-      result = 1;
-    }
-
-  void *stackaddr;
-  size_t stacksize;
-  err = pthread_attr_getstack (&a, &stackaddr, &stacksize);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getstack failed");
-      result = 1;
-    }
-  else if ((void *) &a < stackaddr
-	   || (void *) &a >= stackaddr + stacksize)
-    {
-      error (0, 0, "pthread_attr_getstack returned range does not cover main's stack");
-      result = 1;
-    }
-  else
-    printf ("initial thread stack %p-%p (0x%zx)\n", stackaddr,
-	    stackaddr + stacksize, stacksize);
-
-  size_t guardsize;
-  err = pthread_attr_getguardsize (&a, &guardsize);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getguardsize failed");
-      result = 1;
-    }
-  else if (guardsize != 0)
-    {
-      error (0, 0, "pthread_attr_getguardsize returned %zd != 0",
-	     guardsize);
-      result = 1;
-    }
-
-  int scope;
-  err = pthread_attr_getscope (&a, &scope);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getscope failed");
-      result = 1;
-    }
-  else if (scope != PTHREAD_SCOPE_SYSTEM)
-    {
-      error (0, 0, "pthread_attr_getscope returned %d != PTHREAD_SCOPE_SYSTEM",
-	     scope);
-      result = 1;
-    }
-
-  int inheritsched;
-  err = pthread_attr_getinheritsched (&a, &inheritsched);
-  if (err)
-    {
-      error (0, err, "pthread_attr_getinheritsched failed");
-      result = 1;
-    }
-  else if (inheritsched != PTHREAD_INHERIT_SCHED)
-    {
-      error (0, 0, "pthread_attr_getinheritsched returned %d != PTHREAD_INHERIT_SCHED",
-	     inheritsched);
-      result = 1;
-    }
-
-  err = pthread_getaffinity_np (pthread_self (), sizeof (c1), &c1);
-  if (err == 0)
-    {
-      err = pthread_attr_getaffinity_np (&a, sizeof (c2), &c2);
-      if (err)
-	{
-	  error (0, err, "pthread_attr_getaffinity_np failed");
-	  result = 1;
-	}
-      else if (memcmp (&c1, &c2, sizeof (c1)))
-	{
-	  error (0, 0, "pthread_attr_getaffinity_np returned different CPU mask than pthread_getattr_np");
-	  result = 1;
-	}
-    }
-
-  err = pthread_attr_destroy (&a);
-  if (err)
-    {
-      error (0, err, "pthread_attr_destroy failed");
-      result = 1;
-    }
-
-  pthread_t th;
-  err = pthread_create (&th, NULL, tf, NULL);
-  if (err)
-    {
-      error (0, err, "pthread_create #1 failed");
-      result = 1;
-    }
-  else
-    {
-      void *ret;
-      err = pthread_join (th, &ret);
-      if (err)
-	{
-	  error (0, err, "pthread_join #1 failed");
-	  result = 1;
-	}
-      else if (ret != NULL)
-	result = 1;
-    }
-
-  err = pthread_attr_init (&a);
-  if (err)
-    {
-      error (0, err, "pthread_attr_init failed");
-      result = 1;
-    }
-
-  err = pthread_create (&th, &a, tf, &a);
-  if (err)
-    {
-      error (0, err, "pthread_create #2 failed");
-      result = 1;
-    }
-  else
-    {
-      void *ret;
-      err = pthread_join (th, &ret);
-      if (err)
-	{
-	  error (0, err, "pthread_join #2 failed");
-	  result = 1;
-	}
-      else if (ret != NULL)
-	result = 1;
-    }
-
-  err = pthread_attr_setguardsize (&a, 16 * sysconf (_SC_PAGESIZE));
-  if (err)
-    {
-      error (0, err, "pthread_attr_setguardsize failed");
-      result = 1;
-    }
-
-  err = pthread_create (&th, &a, tf, &a);
-  if (err)
-    {
-      error (0, err, "pthread_create #3 failed");
-      result = 1;
-    }
-  else
-    {
-      void *ret;
-      err = pthread_join (th, &ret);
-      if (err)
-	{
-	  error (0, err, "pthread_join #3 failed");
-	  result = 1;
-	}
-      else if (ret != NULL)
-	result = 1;
-    }
-
-  err = pthread_attr_destroy (&a);
-  if (err)
-    {
-      error (0, err, "pthread_attr_destroy failed");
-      result = 1;
-    }
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-backtrace1.c b/nptl/tst-backtrace1.c
deleted file mode 100644
index e1871628d3..0000000000
--- a/nptl/tst-backtrace1.c
+++ /dev/null
@@ -1,85 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <execinfo.h>
-#include <pthread.h>
-#include <stdio.h>
-
-#define BT_SIZE 64
-void *bt_array[BT_SIZE];
-int bt_cnt;
-
-int
-do_bt (void)
-{
-  bt_cnt = backtrace (bt_array, BT_SIZE);
-  return 56;
-}
-
-int
-call_do_bt (void)
-{
-  return do_bt () + 1;
-}
-
-void *
-tf (void *arg)
-{
-  if (call_do_bt () != 57)
-    return (void *) 1L;
-  return NULL;
-}
-
-int
-do_test (void)
-{
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL))
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  void *res;
-  if (pthread_join (th, &res))
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (res != NULL)
-    {
-      puts ("thread failed");
-      return 1;
-    }
-
-  char **text = backtrace_symbols (bt_array, bt_cnt);
-  if (text == NULL)
-    {
-      puts ("backtrace_symbols failed");
-      return 1;
-    }
-
-  for (int i = 0; i < bt_cnt; ++i)
-    puts (text[i]);
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-bad-schedattr.c b/nptl/tst-bad-schedattr.c
deleted file mode 100644
index 85d541b276..0000000000
--- a/nptl/tst-bad-schedattr.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Test that pthread_create diagnoses invalid scheduling parameters.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-static void *
-thread_function (void *arg)
-{
-  abort ();
-}
-
-
-static int
-do_test (void)
-{
-#if !defined SCHED_FIFO || !defined SCHED_OTHER
-  puts ("SCHED_FIFO or SCHED_OTHER not available at compile time");
-  return 0; /* 77 */
-#else
-
-  int err;
-
-#define TRY(func, arglist)                              \
-  if ((err = func arglist) != 0)                        \
-    {                                                   \
-      printf ("%s: %s\n", #func, strerror (err));       \
-      return 2;                                         \
-    }
-
-  int fifo_max = sched_get_priority_max (SCHED_FIFO);
-  if (fifo_max == -1)
-    {
-      assert (errno == ENOTSUP || errno == ENOSYS);
-      puts ("SCHED_FIFO not supported, cannot test");
-      return 0; /* 77 */
-    }
-
-  int other_max = sched_get_priority_max (SCHED_OTHER);
-  if (other_max == -1)
-    {
-      assert (errno == ENOTSUP || errno == ENOSYS);
-      puts ("SCHED_OTHER not supported, cannot test");
-      return 0; /* 77 */
-    }
-
-  assert (fifo_max > other_max);
-
-  pthread_attr_t attr;
-  TRY (pthread_attr_init, (&attr));
-  TRY (pthread_attr_setinheritsched, (&attr, PTHREAD_EXPLICIT_SCHED));
-  TRY (pthread_attr_setschedpolicy, (&attr, SCHED_FIFO));
-
-  /* This value is chosen so as to be valid for SCHED_FIFO but invalid for
-     SCHED_OTHER.  */
-  struct sched_param param = { .sched_priority = other_max + 1 };
-  TRY (pthread_attr_setschedparam, (&attr, &param));
-
-  TRY (pthread_attr_setschedpolicy, (&attr, SCHED_OTHER));
-
-  /* Now ATTR has a sched_param that is invalid for its policy.  */
-  pthread_t th;
-  err = pthread_create (&th, &attr, &thread_function, NULL);
-  if (err != EINVAL)
-    {
-      printf ("pthread_create returned %d (%s), expected %d (EINVAL: %s)\n",
-              err, strerror (err), EINVAL, strerror (EINVAL));
-      return 1;
-    }
-
-  return 0;
-#endif
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-barrier1.c b/nptl/tst-barrier1.c
deleted file mode 100644
index b0e574fe1d..0000000000
--- a/nptl/tst-barrier1.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Tests barrier initialization.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
-  pthread_barrier_t b;
-  int e;
-  int cnt;
-
-  e = pthread_barrier_init (&b, NULL, 0);
-  if (e == 0)
-    {
-      puts ("barrier_init with count 0 succeeded");
-      return 1;
-    }
-  if (e != EINVAL)
-    {
-      puts ("barrier_init with count 0 didn't return EINVAL");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b, NULL, 1) != 0)
-    {
-      puts ("real barrier_init failed");
-      return 1;
-    }
-
-  for (cnt = 0; cnt < 10; ++cnt)
-    {
-      e = pthread_barrier_wait (&b);
-
-      if (e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("barrier_wait didn't return PTHREAD_BARRIER_SERIAL_THREAD");
-	  return 1;
-	}
-    }
-
-  if (pthread_barrier_destroy (&b) != 0)
-    {
-      puts ("barrier_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-barrier2.c b/nptl/tst-barrier2.c
deleted file mode 100644
index d55f704d78..0000000000
--- a/nptl/tst-barrier2.c
+++ /dev/null
@@ -1,185 +0,0 @@
-/* Tests process-shared barriers.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-barrier2.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  pthread_barrier_t *b;
-  pthread_barrierattr_t a;
-  pid_t pid;
-  int serials = 0;
-  int cnt;
-  int status;
-  int p;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      return 1;
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      return 1;
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      return 1;
-    }
-
-  b = (pthread_barrier_t *) (((uintptr_t) mem + __alignof (pthread_barrier_t))
-			     & ~(__alignof (pthread_barrier_t) - 1));
-
-  if (pthread_barrierattr_init (&a) != 0)
-    {
-      puts ("barrierattr_init failed");
-      return 1;
-    }
-
-  if (pthread_barrierattr_getpshared (&a, &p) != 0)
-    {
-      puts ("1st barrierattr_getpshared failed");
-      return 1;
-    }
-
-  if (p != PTHREAD_PROCESS_PRIVATE)
-    {
-      puts ("default pshared value wrong");
-      return 1;
-    }
-
-  if (pthread_barrierattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("barrierattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_barrierattr_getpshared (&a, &p) != 0)
-    {
-      puts ("2nd barrierattr_getpshared failed");
-      return 1;
-    }
-
-  if (p != PTHREAD_PROCESS_SHARED)
-    {
-      puts ("pshared value after setpshared call wrong");
-      return 1;
-    }
-
-  if (pthread_barrier_init (b, &a, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_barrierattr_destroy (&a) != 0)
-    {
-      puts ("barrierattr_destroy failed");
-      return 1;
-    }
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-
-  /* Just to be sure we don't hang forever.  */
-  alarm (4);
-
-#define N 30
-  for (cnt = 0; cnt < N; ++cnt)
-    {
-      int e;
-
-      e = pthread_barrier_wait (b);
-      if (e == PTHREAD_BARRIER_SERIAL_THREAD)
-	++serials;
-      else if (e != 0)
-	{
-	  printf ("%s: barrier_wait returned value %d != 0 and PTHREAD_BARRIER_SERIAL_THREAD\n",
-		  pid == 0 ? "child" : "parent", e);
-	  return 1;
-	}
-    }
-
-  alarm (0);
-
-  printf ("%s: was %d times the serial thread\n",
-	  pid == 0 ? "child" : "parent", serials);
-
-  if (pid == 0)
-    /* The child.  Pass the number of times we had the serializing
-       thread back to the parent.  */
-    exit (serials);
-
-  if (waitpid (pid, &status, 0) != pid)
-    {
-      puts ("waitpid failed");
-      return 1;
-    }
-
-  if (!WIFEXITED (status))
-    {
-      puts ("child exited abnormally");
-      return 1;
-    }
-
-  if (WEXITSTATUS (status) + serials != N)
-    {
-      printf ("total number of serials is %d, expected %d\n",
-	      WEXITSTATUS (status) + serials, N);
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-barrier3.c b/nptl/tst-barrier3.c
deleted file mode 100644
index ceec90cd2e..0000000000
--- a/nptl/tst-barrier3.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Test of POSIX barriers.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define NTHREADS 20
-
-#define ROUNDS 20
-
-static pthread_barrier_t barriers[NTHREADS];
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-static int counters[NTHREADS];
-static int serial[NTHREADS];
-
-static void *
-worker (void *arg)
-{
-  void *result = NULL;
-  int nr = (long int) arg;
-  int i;
-
-  for (i = 0; i < ROUNDS; ++i)
-    {
-      int j;
-      int retval;
-
-      if (nr == 0)
-	{
-	  memset (counters, '\0', sizeof (counters));
-	  memset (serial, '\0', sizeof (serial));
-	}
-
-      retval = pthread_barrier_wait (&barriers[NTHREADS - 1]);
-      if (retval != 0 && retval != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  printf ("thread %d failed to wait for all the others\n", nr);
-	  result = (void *) 1;
-	}
-
-      for (j = nr; j < NTHREADS; ++j)
-	{
-	  /* Increment the counter for this round.  */
-	  pthread_mutex_lock (&lock);
-	  ++counters[j];
-	  pthread_mutex_unlock (&lock);
-
-	  /* Wait for the rest.  */
-	  retval = pthread_barrier_wait (&barriers[j]);
-
-	  /* Test the result.  */
-	  if (nr == 0 && counters[j] != j + 1)
-	    {
-	      printf ("barrier in round %d released but count is %d\n",
-		      j, counters[j]);
-	      result = (void *) 1;
-	    }
-
-	  if (retval != 0)
-	    {
-	      if (retval != PTHREAD_BARRIER_SERIAL_THREAD)
-		{
-		  printf ("thread %d in round %d has nonzero return value != PTHREAD_BARRIER_SERIAL_THREAD\n",
-			  nr, j);
-		  result = (void *) 1;
-		}
-	      else
-		{
-		  pthread_mutex_lock (&lock);
-		  ++serial[j];
-		  pthread_mutex_unlock (&lock);
-		}
-	    }
-
-	  /* Wait for the rest again.  */
-	  retval = pthread_barrier_wait (&barriers[j]);
-
-	  /* Now we can check whether exactly one thread was serializing.  */
-	  if (nr == 0 && serial[j] != 1)
-	    {
-	      printf ("not exactly one serial thread in round %d\n", j);
-	      result = (void *) 1;
-	    }
-	}
-    }
-
-  return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 60
-static int
-do_test (void)
-{
-  pthread_t threads[NTHREADS];
-  int i;
-  void *res;
-  int result = 0;
-
-  /* Initialized the barrier variables.  */
-  for (i = 0; i < NTHREADS; ++i)
-    if (pthread_barrier_init (&barriers[i], NULL, i + 1) != 0)
-      {
-	printf ("Failed to initialize barrier %d\n", i);
-	exit (1);
-      }
-
-  /* Start the threads.  */
-  for (i = 0; i < NTHREADS; ++i)
-    if (pthread_create (&threads[i], NULL, worker, (void *) (long int) i) != 0)
-      {
-	printf ("Failed to start thread %d\n", i);
-	exit (1);
-      }
-
-  /* And wait for them.  */
-  for (i = 0; i < NTHREADS; ++i)
-    if (pthread_join (threads[i], &res) != 0 || res != NULL)
-      {
-	printf ("thread %d returned a failure\n", i);
-	result = 1;
-      }
-    else
-      printf ("joined threads %d\n", i);
-
-  if (result == 0)
-    puts ("all OK");
-
-  return result;
-}
-
-#include "../test-skeleton.c"
diff --git a/nptl/tst-barrier4.c b/nptl/tst-barrier4.c
deleted file mode 100644
index dfb4b1432b..0000000000
--- a/nptl/tst-barrier4.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* This tests destruction of a barrier right after waiting on it.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t b1;
-static pthread_barrier_t b2;
-
-
-#define N 20
-
-static void *
-tf (void *arg)
-{
-  int round = 0;
-
-  while (round++ < 30)
-    {
-      if (pthread_barrier_wait (&b1) == PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  pthread_barrier_destroy (&b1);
-	  if (pthread_barrier_init (&b1, NULL, N) != 0)
-	    {
-	      puts ("tf: 1st barrier_init failed");
-	      exit (1);
-	    }
-	}
-
-      if (pthread_barrier_wait (&b2) == PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  pthread_barrier_destroy (&b2);
-	  if (pthread_barrier_init (&b2, NULL, N) != 0)
-	    {
-	      puts ("tf: 2nd barrier_init failed");
-	      exit (1);
-	    }
-	}
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_attr_t at;
-  int cnt;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b1, NULL, N) != 0)
-    {
-      puts ("1st barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b2, NULL, N) != 0)
-    {
-      puts ("2nd barrier_init failed");
-      return 1;
-    }
-
-  pthread_t th[N - 1];
-  for (cnt = 0; cnt < N - 1; ++cnt)
-    if (pthread_create (&th[cnt], &at, tf, NULL) != 0)
-      {
-	puts ("pthread_create failed");
-	return 1;
-      }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  tf (NULL);
-
-  for (cnt = 0; cnt < N - 1; ++cnt)
-    if (pthread_join (th[cnt], NULL) != 0)
-      {
-	puts ("pthread_join failed");
-	return 1;
-      }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-barrier5.c b/nptl/tst-barrier5.c
deleted file mode 100644
index 4311aec22f..0000000000
--- a/nptl/tst-barrier5.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* This tests the barrier reset mechanism.
-   Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <internaltypes.h>
-
-
-static pthread_barrier_t b1;
-static pthread_barrier_t b2;
-
-
-#define N 20
-#define ROUNDS_PER_RUN 20
-#define START ((BARRIER_IN_THRESHOLD / N - ROUNDS_PER_RUN / 2) * N)
-
-static void *
-tf (void *arg)
-{
-  int runs = 0;
-
-  while (runs++ < 30)
-    {
-      /* In each run, we execute a number of rounds and initialize the barrier
-	 so that we will go over the reset threshold with those rounds.  */
-      for (int rounds = 0; rounds < ROUNDS_PER_RUN; rounds++)
-	pthread_barrier_wait (&b1);
-
-      if (pthread_barrier_wait (&b1) == PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  pthread_barrier_destroy (&b1);
-	  if (pthread_barrier_init (&b1, NULL, N) != 0)
-	    {
-	      puts ("tf: 1st barrier_init failed");
-	      exit (1);
-	    }
-	  puts ("b1 reinitialized");
-	  /* Trigger a reset.  */
-	  struct pthread_barrier *bar = (struct pthread_barrier *) &b1;
-	  bar->in = START;
-	  bar->out = START;
-	  /* We deliberately don't set bar->current_round so that we also
-	     test whether the helping for the updates of current_round
-	     works correctly.  */
-	}
-
-      /* Same as above, just for b2.  */
-      for (int rounds = 0; rounds < ROUNDS_PER_RUN; rounds++)
-	pthread_barrier_wait (&b2);
-
-      if (pthread_barrier_wait (&b2) == PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  pthread_barrier_destroy (&b2);
-	  if (pthread_barrier_init (&b2, NULL, N) != 0)
-	    {
-	      puts ("tf: 2nd barrier_init failed");
-	      exit (1);
-	    }
-	  puts ("b2 reinitialized");
-	  /* Trigger a reset.  See above.  */
-	  struct pthread_barrier *bar = (struct pthread_barrier *) &b2;
-	  bar->in = START;
-	  bar->out = START;
-	}
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_attr_t at;
-  int cnt;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b1, NULL, N) != 0)
-    {
-      puts ("1st barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b2, NULL, N) != 0)
-    {
-      puts ("2nd barrier_init failed");
-      return 1;
-    }
-
-  pthread_t th[N - 1];
-  for (cnt = 0; cnt < N - 1; ++cnt)
-    if (pthread_create (&th[cnt], &at, tf, NULL) != 0)
-      {
-	puts ("pthread_create failed");
-	return 1;
-      }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  tf (NULL);
-
-  for (cnt = 0; cnt < N - 1; ++cnt)
-    if (pthread_join (th[cnt], NULL) != 0)
-      {
-	puts ("pthread_join failed");
-	return 1;
-      }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-basic1.c b/nptl/tst-basic1.c
deleted file mode 100644
index 2296ac7ecb..0000000000
--- a/nptl/tst-basic1.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static pid_t pid;
-
-static void *
-tf (void *a)
-{
-  if (getpid () != pid)
-    {
-      write_message ("pid mismatch\n");
-      _exit (1);
-    }
-
-  return a;
-}
-
-
-int
-do_test (void)
-{
-  pid = getpid ();
-
-#define N 2
-  pthread_t t[N];
-  int i;
-
-  for (i = 0; i < N; ++i)
-    if (pthread_create (&t[i], NULL, tf, (void *) (long int) (i + 1)) != 0)
-      {
-	write_message ("create failed\n");
-	_exit (1);
-      }
-    else
-      printf ("created thread %d\n", i);
-
-  for (i = 0; i < N; ++i)
-    {
-      void *r;
-      int e;
-      if ((e = pthread_join (t[i], &r)) != 0)
-	{
-	  printf ("join failed: %d\n", e);
-	  _exit (1);
-	}
-      else if (r != (void *) (long int) (i + 1))
-	{
-	  write_message ("result wrong\n");
-	  _exit (1);
-	}
-      else
-	printf ("joined thread %d\n", i);
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-basic2.c b/nptl/tst-basic2.c
deleted file mode 100644
index fc07506688..0000000000
--- a/nptl/tst-basic2.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#define N 20
-
-static pthread_t th[N];
-static pthread_mutex_t lock[N];
-
-
-static void *tf (void *a)
-{
-  uintptr_t idx = (uintptr_t) a;
-
-  pthread_mutex_lock (&lock[idx]);
-
-  return pthread_equal (pthread_self (), th[idx]) ? NULL : (void *) 1l;
-}
-
-
-int
-do_test (void)
-{
-  if (pthread_equal (pthread_self (), pthread_self ()) == 0)
-    {
-      puts ("pthread_equal (pthread_self (), pthread_self ()) failed");
-      exit (1);
-    }
-
-  pthread_attr_t at;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  int i;
-  for (i = 0; i < N; ++i)
-    {
-      if (pthread_mutex_init (&lock[i], NULL) != 0)
-	{
-	  puts ("mutex_init failed");
-	  exit (1);
-	}
-
-      if (pthread_mutex_lock (&lock[i]) != 0)
-	{
-	  puts ("mutex_lock failed");
-	  exit (1);
-	}
-
-      if (pthread_create (&th[i], &at, tf, (void *) (long int) i) != 0)
-	{
-	  puts ("create failed");
-	  exit (1);
-	}
-
-      if (pthread_mutex_unlock (&lock[i]) != 0)
-	{
-	  puts ("mutex_unlock failed");
-	  exit (1);
-	}
-
-      printf ("created thread %d\n", i);
-    }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  int result = 0;
-  for (i = 0; i < N; ++i)
-    {
-      void *r;
-      int e;
-      if ((e = pthread_join (th[i], &r)) != 0)
-	{
-	  printf ("join failed: %d\n", e);
-	  _exit (1);
-	}
-      else if (r != NULL)
-	result = 1;
-    }
-
-  return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-basic3.c b/nptl/tst-basic3.c
deleted file mode 100644
index c753f1ebb1..0000000000
--- a/nptl/tst-basic3.c
+++ /dev/null
@@ -1,86 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int nrunning = 1;
-
-
-static void
-final_test (void)
-{
-  puts ("final_test has been called");
-
-#define THE_SIGNAL SIGUSR1
-  kill (getpid (), SIGUSR1);
-}
-
-
-static void *
-tf (void *a)
-{
-  if (pthread_join ((pthread_t) a, NULL) != 0)
-    {
-      printf ("join failed while %d are running\n", nrunning);
-      _exit (1);
-    }
-
-  printf ("%2d left\n", --nrunning);
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-#define N 20
-  pthread_t t[N];
-  pthread_t last = pthread_self ();
-  int i;
-
-  atexit (final_test);
-
-  printf ("starting %d + 1 threads\n", N);
-  for (i = 0; i < N; ++i)
-    {
-      if (pthread_create (&t[i], NULL, tf, (void *) last) != 0)
-	{
-	  puts ("create failed");
-	  _exit (1);
-	}
-
-      ++nrunning;
-
-      last = t[i];
-    }
-
-  printf ("%2d left\n", --nrunning);
-
-  pthread_exit (NULL);
-}
-
-
-#define EXPECTED_SIGNAL THE_SIGNAL
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-basic4.c b/nptl/tst-basic4.c
deleted file mode 100644
index 97a8b2c414..0000000000
--- a/nptl/tst-basic4.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static void
-final_test (void)
-{
-  puts ("final_test has been called");
-
-#define THE_SIGNAL SIGUSR1
-  kill (getpid (), SIGUSR1);
-}
-
-
-static void *
-tf (void *a)
-{
-  pid_t pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      exit (1);
-    }
-
-  if (pid == 0)
-    {
-      atexit (final_test);
-
-      pthread_exit (NULL);
-    }
-
-  int r;
-  int e = TEMP_FAILURE_RETRY (waitpid (pid, &r, 0));
-  if (e != pid)
-    {
-      puts ("waitpid failed");
-      exit (1);
-    }
-
-  if (! WIFSIGNALED (r))
-    {
-      puts ("child not signled");
-      exit (1);
-    }
-
-  if (WTERMSIG (r) != THE_SIGNAL)
-    {
-      puts ("child's termination signal wrong");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      _exit (1);
-    }
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-basic5.c b/nptl/tst-basic5.c
deleted file mode 100644
index 8b9e03516f..0000000000
--- a/nptl/tst-basic5.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-
-int
-do_test (void)
-{
-  int c = pthread_getconcurrency ();
-  if (c != 0)
-    {
-      puts ("initial concurrencylevel wrong");
-      exit (1);
-    }
-
-  if (pthread_setconcurrency (1) != 0)
-    {
-      puts ("setconcurrency failed");
-      exit (1);
-    }
-
-  c = pthread_getconcurrency ();
-  if (c != 1)
-    {
-      puts ("getconcurrency didn't return the value previous set");
-      exit (1);
-    }
-
-  int e = pthread_setconcurrency (-1);
-  if (e == 0)
-    {
-      puts ("setconcurrency of negative value didn't failed");
-      exit (1);
-    }
-  if (e != EINVAL)
-    {
-      puts ("setconcurrency didn't return EINVAL for negative value");
-      exit (1);
-    }
-
-  c = pthread_getconcurrency ();
-  if (c != 1)
-    {
-      puts ("invalid getconcurrency changed level");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-basic6.c b/nptl/tst-basic6.c
deleted file mode 100644
index 58a715b4be..0000000000
--- a/nptl/tst-basic6.c
+++ /dev/null
@@ -1,131 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static char *p;
-
-static pthread_barrier_t b;
-#define BT \
-  e = pthread_barrier_wait (&b);					      \
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)			      \
-    {									      \
-      puts ("barrier_wait failed");					      \
-      exit (1);								      \
-    }
-
-
-static void *
-tf (void *a)
-{
-  int e;
-
-  BT;
-
-  char *p2 = getcwd (NULL, 0);
-  if (p2 == NULL)
-    {
-      puts ("2nd getcwd failed");
-      exit (1);
-    }
-
-  if (strcmp (p, p2) != 0)
-    {
-      printf ("initial cwd mismatch: \"%s\" vs \"%s\"\n", p, p2);
-      exit (1);
-    }
-
-  free (p);
-  free (p2);
-
-  if (chdir ("..") != 0)
-    {
-      puts ("chdir failed");
-      exit (1);
-    }
-
-  p = getcwd (NULL, 0);
-  if (p == NULL)
-    {
-      puts ("getcwd failed");
-      exit (1);
-    }
-
-  return a;
-}
-
-
-int
-do_test (void)
-{
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  p = getcwd (NULL, 0);
-  if (p == NULL)
-    {
-      puts ("getcwd failed");
-      exit (1);
-    }
-
-  int e;
-  BT;
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  char *p2 = getcwd (NULL, 0);
-  if (p2 == NULL)
-    {
-      puts ("2nd getcwd failed");
-      exit (1);
-    }
-
-  if (strcmp (p, p2) != 0)
-    {
-      printf ("cwd after chdir mismatch: \"%s\" vs \"%s\"\n", p, p2);
-      exit (1);
-    }
-
-  free (p);
-  free (p2);
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-basic7.c b/nptl/tst-basic7.c
deleted file mode 100644
index 29a2461efe..0000000000
--- a/nptl/tst-basic7.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include <errno.h>
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/resource.h>
-
-static void use_stack (size_t needed);
-
-void (*use_stack_ptr) (size_t) = use_stack;
-
-static void
-use_stack (size_t needed)
-{
-  size_t sz = sysconf (_SC_PAGESIZE);
-  char *buf = alloca (sz);
-  memset (buf, '\0', sz);
-
-  if (needed > sz)
-    use_stack_ptr (needed  - sz);
-}
-
-static void
-use_up_memory (void)
-{
-  struct rlimit rl;
-  getrlimit (RLIMIT_AS, &rl);
-  rl.rlim_cur = 10 * 1024 * 1024;
-  setrlimit (RLIMIT_AS, &rl);
-
-  char *c;
-  int PAGESIZE = getpagesize ();
-  while (1)
-    {
-      c = mmap (NULL, PAGESIZE, PROT_NONE, MAP_ANON | MAP_PRIVATE, -1, 0);
-      if (c == MAP_FAILED)
-	break;
-    }
-}
-
-static void *
-child (void *arg)
-{
-  sleep (1);
-  return arg;
-}
-
-static int
-do_test (void)
-{
-  int err;
-  pthread_t tid;
-
-  /* Allocate the memory needed for the stack.  */
-  use_stack_ptr (PTHREAD_STACK_MIN);
-
-  use_up_memory ();
-
-  err = pthread_create (&tid, NULL, child, NULL);
-  if (err != 0)
-    {
-      printf ("pthread_create returns %d: %s\n", err,
-	      err == EAGAIN ? "OK" : "FAIL");
-      return err != EAGAIN;
-    }
-
-  /* We did not fail to allocate memory despite the preparation.  Oh well.  */
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel-self-cancelstate.c b/nptl/tst-cancel-self-cancelstate.c
deleted file mode 100644
index 5f6fbefaf5..0000000000
--- a/nptl/tst-cancel-self-cancelstate.c
+++ /dev/null
@@ -1,65 +0,0 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "tst-cancel-self-cleanup.c"
-
-
-static int
-do_test (void)
-{
-  int ret = 0;
-  volatile int should_fail = 1;
-
-  pthread_cleanup_push (cleanup, (void *) &should_fail);
-
-  if ((ret = pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, NULL)) != 0)
-    {
-      printf ("setcancelstate(disable) failed: %s\n", strerror (ret));
-      exit (1);
-    }
-
-  if ((ret = pthread_cancel (pthread_self ())) != 0)
-    {
-      printf ("cancel failed: %s\n", strerror (ret));
-      exit (1);
-    }
-
-  usleep (100);
-  should_fail = 0;
-
-  if ((ret = pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL)) != 0)
-    {
-      printf ("setcancelstate(enable) failed: %s\n", strerror (ret));
-      exit (1);
-    }
-
-  /* The write syscall within this printf should give us our cancellation
-     point.  */
-  printf ("Could not cancel self.\n");
-  pthread_cleanup_pop (0);
-
-  return 1;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel-self-canceltype.c b/nptl/tst-cancel-self-canceltype.c
deleted file mode 100644
index 155e1380f9..0000000000
--- a/nptl/tst-cancel-self-canceltype.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "tst-cancel-self-cleanup.c"
-
-
-static int
-do_test (void)
-{
-  int ret = 0, should_fail = 0;
-
-  pthread_cleanup_push (cleanup, &should_fail);
-
-  if ((ret = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL)) != 0)
-    {
-      printf ("setcanceltype failed: %s\n", strerror (ret));
-      exit (1);
-    }
-
-  if ((ret = pthread_cancel (pthread_self ())) != 0)
-    {
-      printf ("cancel failed: %s\n", strerror (ret));
-      exit (1);
-    }
-
-  /* Wait to be canceled. Don't give any cancellation points to play with.  */
-  while (1);
-  pthread_cleanup_pop (0);
-
-  return 1;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel-self-cleanup.c b/nptl/tst-cancel-self-cleanup.c
deleted file mode 100644
index d22941c8c9..0000000000
--- a/nptl/tst-cancel-self-cleanup.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-static void
-cleanup (void *cleanup_should_fail)
-{
-  printf ("Main thread got cancelled and is being cleaned up now\n");
-  exit (*(int *)cleanup_should_fail);
-}
diff --git a/nptl/tst-cancel-self-testcancel.c b/nptl/tst-cancel-self-testcancel.c
deleted file mode 100644
index 1af71ed5b1..0000000000
--- a/nptl/tst-cancel-self-testcancel.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "tst-cancel-self-cleanup.c"
-
-
-static int
-do_test (void)
-{
-  int ret = 0, should_fail = 0;
-
-  pthread_cleanup_push (cleanup, &should_fail);
-  if ((ret = pthread_cancel (pthread_self ())) != 0)
-    {
-      printf ("cancel failed: %s\n", strerror (ret));
-      exit (1);
-    }
-
-  pthread_testcancel ();
-
-  printf ("Could not cancel self.\n");
-  pthread_cleanup_pop (0);
-
-  return 1;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel-self.c b/nptl/tst-cancel-self.c
deleted file mode 100644
index de02bc63f3..0000000000
--- a/nptl/tst-cancel-self.c
+++ /dev/null
@@ -1,48 +0,0 @@
-/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "tst-cancel-self-cleanup.c"
-
-
-static int
-do_test (void)
-{
-  int ret = 0, should_fail = 0;
-
-  pthread_cleanup_push (cleanup, &should_fail);
-  if ((ret = pthread_cancel (pthread_self ())) != 0)
-    {
-      printf ("cancel failed: %s\n", strerror (ret));
-      exit (1);
-    }
-
-  /* The write syscall within this printf should give us our cancellation
-     point.  */
-  printf ("Could not cancel self.\n");
-  pthread_cleanup_pop (0);
-
-  return 1;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel-wrappers.sh b/nptl/tst-cancel-wrappers.sh
deleted file mode 100644
index 1795e3d86e..0000000000
--- a/nptl/tst-cancel-wrappers.sh
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/bin/sh
-# Test whether all cancelable functions are cancelable.
-# Copyright (C) 2002-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-NM="$1"; shift
-while [ $# -gt 0 ]; do
-  ( $NM -P $1; echo 'end[end]:' ) | gawk ' BEGIN {
-C["accept"]=1
-C["close"]=1
-C["connect"]=1
-C["creat"]=1
-C["fcntl"]=1
-C["fdatasync"]=1
-C["fsync"]=1
-C["msgrcv"]=1
-C["msgsnd"]=1
-C["msync"]=1
-C["nanosleep"]=1
-C["open"]=1
-C["open64"]=1
-C["pause"]=1
-C["poll"]=1
-C["pread"]=1
-C["pread64"]=1
-C["pselect"]=1
-C["pwrite"]=1
-C["pwrite64"]=1
-C["read"]=1
-C["readv"]=1
-C["recv"]=1
-C["recvfrom"]=1
-C["recvmsg"]=1
-C["select"]=1
-C["send"]=1
-C["sendmsg"]=1
-C["sendto"]=1
-C["sigpause"]=1
-C["sigsuspend"]=1
-C["sigwait"]=1
-C["sigwaitinfo"]=1
-C["tcdrain"]=1
-C["wait"]=1
-C["waitid"]=1
-C["waitpid"]=1
-C["write"]=1
-C["writev"]=1
-C["__xpg_sigpause"]=1
-}
-/:$/ {
-  if (seen)
-    {
-      if (!seen_enable || !seen_disable)
-	{
-	  printf "in '$1'(%s) %s'\''s cancellation missing\n", object, seen
-	  ret = 1
-	}
-    }
-  seen=""
-  seen_enable=""
-  seen_disable=""
-  object=gensub(/^.*\[(.*)\]:$/, "\\1", 1, $0)
-  next
-}
-{
-  if (C[$1] && $2 ~ /^[TW]$/)
-    seen=$1
-  else if ($1 ~ /^([.]|)__(libc|pthread)_enable_asynccancel$/ && $2 == "U")
-    seen_enable=1
-  else if ($1 ~ /^([.]|)__(libc|pthread)_disable_asynccancel$/ && $2 == "U")
-    seen_disable=1
-}
-END {
-  exit ret
-}' || exit
-  shift
-done
diff --git a/nptl/tst-cancel1.c b/nptl/tst-cancel1.c
deleted file mode 100644
index 99454e33bd..0000000000
--- a/nptl/tst-cancel1.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
-
-static int cntr;
-
-
-static void
-cleanup (void *arg)
-{
-  if (arg != (void *) 42l)
-    cntr = 42;
-  else
-    cntr = 1;
-}
-
-
-static void *
-tf (void *arg)
-{
-  /* Ignore all signals.  This must not have any effect on delivering
-     the cancellation signal.  */
-  sigset_t ss;
-
-  sigfillset (&ss);
-
-  if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
-    {
-      puts ("pthread_sigmask failed");
-      exit (1);
-    }
-
-  pthread_cleanup_push (cleanup, (void *) 42l);
-
-  int err = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-  if (err != 0)
-    {
-      printf ("setcanceltype failed: %s\n", strerror (err));
-      exit (1);
-    }
-  /* The following code is not standard compliant: the mutex functions
-     must not be called with asynchronous cancellation enabled.  */
-
-  err = pthread_mutex_unlock (&m2);
-  if (err != 0)
-    {
-      printf ("child: mutex_unlock failed: %s\n", strerror (err));
-      exit (1);
-    }
-
-  err = pthread_mutex_lock (&m1);
-  if (err != 0)
-    {
-      printf ("child: 1st mutex_lock failed: %s\n", strerror (err));
-      exit (1);
-    }
-
-  /* We should never come here.  */
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  int err;
-  pthread_t th;
-  int result = 0;
-  void *retval;
-
-  /* Get the mutexes.  */
-  err = pthread_mutex_lock (&m1);
-  if (err != 0)
-    {
-      printf ("parent: 1st mutex_lock failed: %s\n", strerror (err));
-      return 1;
-    }
-  err = pthread_mutex_lock (&m2);
-  if (err != 0)
-    {
-      printf ("parent: 2nd mutex_lock failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  err = pthread_create (&th, NULL, tf, NULL);
-  if (err != 0)
-    {
-      printf ("create failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  err = pthread_mutex_lock (&m2);
-  if (err != 0)
-    {
-      printf ("parent: 3rd mutex_lock failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  err = pthread_cancel (th);
-  if (err != 0)
-    {
-      printf ("cancel failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  err = pthread_join (th, &retval);
-  if (err != 0)
-    {
-      printf ("join failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  if (retval != PTHREAD_CANCELED)
-    {
-      printf ("wrong return value: %p\n", retval);
-      result = 1;
-    }
-
-  if (cntr == 42)
-    {
-      puts ("cleanup handler called with wrong argument");
-      result = 1;
-    }
-  else if (cntr != 1)
-    {
-      puts ("cleanup handling not called");
-      result = 1;
-    }
-
-  return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel10.c b/nptl/tst-cancel10.c
deleted file mode 100644
index 5fb6e091dc..0000000000
--- a/nptl/tst-cancel10.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-static void
-cleanup (void *arg)
-{
-  /* Just for fun.  */
-  if (pthread_cancel (pthread_self ()) != 0)
-    {
-      puts ("cleanup: cancel failed");
-      exit (1);
-    }
-
-  printf ("cleanup for %ld\n", (long int) arg);
-}
-
-
-static void *
-tf (void *arg)
-{
-  long int n = (long int) arg;
-
-  pthread_cleanup_push (cleanup, arg);
-
-  if (pthread_setcanceltype ((n & 1) == 0
-			     ? PTHREAD_CANCEL_DEFERRED
-			     : PTHREAD_CANCEL_ASYNCHRONOUS, NULL) != 0)
-    {
-      puts ("setcanceltype failed");
-      exit (1);
-    }
-
-  if (pthread_cancel (pthread_self ()) != 0)
-    {
-      puts ("cancel failed");
-      exit (1);
-    }
-
-  pthread_testcancel ();
-
-  /* We should never come here.  */
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_attr_t at;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-#define N 20
-  int i;
-  pthread_t th[N];
-
-  for (i = 0; i < N; ++i)
-    if (pthread_create (&th[i], &at, tf, (void *) (long int) i) != 0)
-      {
-	puts ("create failed");
-	exit (1);
-      }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  for (i = 0; i < N; ++i)
-    {
-      void *r;
-      if (pthread_join (th[i], &r) != 0)
-	{
-	  puts ("join failed");
-	  exit (1);
-	}
-
-      if (r != PTHREAD_CANCELED)
-	{
-	  puts ("thread not canceled");
-	  exit (1);
-	}
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel11.c b/nptl/tst-cancel11.c
deleted file mode 100644
index f5ebab012b..0000000000
--- a/nptl/tst-cancel11.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t bar;
-static int fd[2];
-
-
-static void
-cleanup (void *arg)
-{
-  static int ncall;
-
-  if (++ncall != 1)
-    {
-      puts ("second call to cleanup");
-      exit (1);
-    }
-
-  printf ("cleanup call #%d\n", ncall);
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_cleanup_push (cleanup, NULL);
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("tf: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  /* This call should block and be cancelable.  */
-  char buf[20];
-  read (fd[0], buf, sizeof (buf));
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (pipe (fd) != 0)
-    {
-      puts ("pipe failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("1st barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("1st cancel failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("thread not canceled");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel12.c b/nptl/tst-cancel12.c
deleted file mode 100644
index ff8c4241a4..0000000000
--- a/nptl/tst-cancel12.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Test sem_wait cancellation for uncontended case.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t bar;
-static sem_t sem;
-
-
-static void
-cleanup (void *arg)
-{
-  static int ncall;
-
-  if (++ncall != 1)
-    {
-      puts ("second call to cleanup");
-      exit (1);
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_cleanup_push (cleanup, NULL);
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("error: tf: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  /* This call should be cancelable.  */
-  sem_wait (&sem);
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("error: barrier_init failed");
-      exit (1);
-    }
-
-  /* A value higher than 0 will check for uncontended pthread cancellation,
-     where the sem_wait operation will return immediatelly.  */
-  if (sem_init (&sem, 0, 1) != 0)
-    {
-      puts ("error: sem_init failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("error: create failed");
-      exit (1);
-    }
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("error: pthread_cancel failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("error: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("error: pthread_join failed");
-      exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("error: thread not canceled");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel13.c b/nptl/tst-cancel13.c
deleted file mode 100644
index e6362628c9..0000000000
--- a/nptl/tst-cancel13.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Test sem_wait cancellation for contended case.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t bar;
-static sem_t sem;
-
-
-static void
-cleanup (void *arg)
-{
-  static int ncall;
-
-  if (++ncall != 1)
-    {
-      puts ("second call to cleanup");
-      exit (1);
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_cleanup_push (cleanup, NULL);
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("error: tf: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  /* This call should block and be cancelable.  */
-  sem_wait (&sem);
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("error: barrier_init failed");
-      exit (1);
-    }
-
-  /* A value equal to 0 will check for contended pthread cancellation,
-     where the sem_wait operation will block.  */
-  if (sem_init (&sem, 0, 0) != 0)
-    {
-      puts ("error: sem_init failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("error: create failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("error: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  /* Give the child a chance to go to sleep in sem_wait.  */
-  sleep (1);
-
-  /* Check whether cancellation is honored when waiting in sem_wait.  */
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("error: 1st cancel failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("error: join failed");
-      exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("thread not canceled");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel14.c b/nptl/tst-cancel14.c
deleted file mode 100644
index 75e2c3b3ab..0000000000
--- a/nptl/tst-cancel14.c
+++ /dev/null
@@ -1,133 +0,0 @@
-/* Test sem_timedwait cancellation for uncontended case.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_barrier_t bar;
-static sem_t sem;
-
-
-static void
-cleanup (void *arg)
-{
-  static int ncall;
-
-  if (++ncall != 1)
-    {
-      puts ("second call to cleanup");
-      exit (1);
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_cleanup_push (cleanup, NULL);
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("error: tf: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-  /* Timeout in 5 seconds.  */
-  ts.tv_sec += 5;
-
-  /* This call should block and be cancelable.  */
-  sem_timedwait (&sem, &ts);
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("error: barrier_init failed");
-      exit (1);
-    }
-
-  if (sem_init (&sem, 0, 1) != 0)
-    {
-      puts ("error: sem_init failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("error: create failed");
-      exit (1);
-    }
-
-  /* Check whether cancellation is honored even before sem_timedwait does
-     anything.  */
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("error: 1st cancel failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("1st barrier_wait failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("thread not canceled");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel15.c b/nptl/tst-cancel15.c
deleted file mode 100644
index b507390b43..0000000000
--- a/nptl/tst-cancel15.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Test sem_timedwait cancellation for contended case.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_barrier_t bar;
-static sem_t sem;
-
-
-static void
-cleanup (void *arg)
-{
-  static int ncall;
-
-  if (++ncall != 1)
-    {
-      puts ("second call to cleanup");
-      exit (1);
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  int e;
-
-  pthread_cleanup_push (cleanup, NULL);
-
-  e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("error: tf: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-  /* Timeout in 5 seconds.  */
-  ts.tv_sec += 5;
-
-  /* This call should block and be cancelable.  */
-  errno = 0;
-  e = sem_timedwait (&sem, &ts);
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("error: barrier_init failed");
-      exit (1);
-    }
-
-  if (sem_init (&sem, 0, 0) != 0)
-    {
-      puts ("error: sem_init failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("error: create failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("error: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  /* Give the child a chance to go to sleep in sem_wait.  */
-  sleep (1);
-
-  /* Check whether cancellation is honored when waiting in sem_timedwait.  */
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("error: 1st cancel failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("error: join failed");
-      exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("error: thread not canceled");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel16.c b/nptl/tst-cancel16.c
deleted file mode 100644
index a84ed7a0bb..0000000000
--- a/nptl/tst-cancel16.c
+++ /dev/null
@@ -1,230 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static pthread_barrier_t b2;
-static int fd;
-static int called;
-
-
-static void
-cl (void *arg)
-{
-  called = 1;
-}
-
-
-static void *
-tf (void *arg)
-{
-  int r = pthread_barrier_wait (&b2);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child thread: barrier_wait failed");
-      exit (1);
-    }
-
-  pthread_cleanup_push (cl, NULL);
-
-  /* This call should never return.  */
-  (void) lockf (fd, F_LOCK, 0);
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  char fname[] = "/tmp/cancel16XXXXXX";
-  fd = mkstemp (fname);
-  if (fd == -1)
-    {
-      puts ("mkstemp failed");
-      return 1;
-    }
-  unlink (fname);
-
-  char mem[sizeof (pthread_barrier_t)];
-  memset (mem, '\0', sizeof (mem));
-  if (TEMP_FAILURE_RETRY (pwrite (fd, mem, sizeof (mem), 0)) != sizeof (mem))
-    {
-      puts ("pwrite failed");
-      return 1;
-    }
-
-  void *p = mmap (NULL, sizeof (mem), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
-  if (p == MAP_FAILED)
-    {
-      puts ("mmap failed");
-      return 1;
-    }
-  pthread_barrier_t *b = (pthread_barrier_t *) p;
-
-  pthread_barrierattr_t ba;
-  if (pthread_barrierattr_init (&ba) != 0)
-    {
-      puts ("barrierattr_init failed");
-      return 1;
-    }
-  if (pthread_barrierattr_setpshared (&ba, 1) != 0)
-    {
-      puts ("barrierattr_setshared failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (b, &ba, 2) != 0)
-    {
-      puts ("1st barrier_init failed");
-      return 1;
-    }
-  if (pthread_barrierattr_destroy (&ba) != 0)
-    {
-      puts ("barrier_destroy failed");
-      return 1;
-    }
-
-  pid_t pid = fork ();
-  if (pid == 0)
-    {
-      /* Child.  Lock the file and wait.  */
-      if (lockf (fd, F_LOCK, 0) != 0)
-	{
-	  puts ("child process: lockf failed");
-	  _exit (1);
-	}
-
-      int r = pthread_barrier_wait (b);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("child process: 1st barrier_wait failed");
-	  _exit (1);
-	}
-
-      /* Make sure the process dies.  */
-      alarm (5);
-
-      r = pthread_barrier_wait (b);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("child process: 2nd barrier_wait failed");
-	  _exit (1);
-	}
-
-      _exit (0);
-    }
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("main: 1st barrier_wait failed");
-      _exit (1);
-    }
-
-  if (pthread_barrier_init (&b2, NULL, 2) != 0)
-    {
-      puts ("2nd barrier_init failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  r = pthread_barrier_wait (&b2);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("main: 2nd barrier_wait failed");
-      return 1;
-    }
-
-  /* Delay.  */
-  sleep (1);
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-
-  void *result;
-  if (pthread_join (th, &result) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-  if (result != PTHREAD_CANCELED)
-    {
-      puts ("thread not canceled");
-      return 1;
-    }
-  if (called == 0)
-    {
-      puts ("cleanup handler not called");
-      return 1;
-    }
-
-  r = pthread_barrier_wait (b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("main: 3rd barrier_wait failed");
-      return 1;
-    }
-
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-    {
-      puts ("waitpid failed");
-      return 1;
-    }
-  if (WEXITSTATUS (status) != 0)
-    {
-      printf ("child process exits with %d\n", WEXITSTATUS (status));
-      return 1;
-    }
-
-  if (lockf (fd, F_LOCK, 0) != 0)
-    {
-      puts ("main: lockf failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel17.c b/nptl/tst-cancel17.c
deleted file mode 100644
index 33204978e5..0000000000
--- a/nptl/tst-cancel17.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <aio.h>
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t b;
-
-
-/* Cleanup handling test.  */
-static int cl_called;
-
-static void
-cl (void *arg)
-{
-  ++cl_called;
-}
-
-
-static void *
-tf (void *arg)
-{
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("tf: barrier_wait failed");
-      exit (1);
-    }
-
-  pthread_cleanup_push (cl, NULL);
-
-  const struct aiocb *l[1] = { arg };
-
-  TEMP_FAILURE_RETRY (aio_suspend (l, 1, NULL));
-
-  pthread_cleanup_pop (0);
-
-  puts ("tf: aio_suspend returned");
-
-  exit (1);
-}
-
-
-static void *
-tf2 (void *arg)
-{
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("tf2: barrier_wait failed");
-      exit (1);
-    }
-
-  pthread_cleanup_push (cl, NULL);
-
-  const struct aiocb *l[1] = { arg };
-  struct timespec ts = { .tv_sec = 1000, .tv_nsec = 0 };
-
-  TEMP_FAILURE_RETRY (aio_suspend (l, 1, &ts));
-
-  pthread_cleanup_pop (0);
-
-  puts ("tf2: aio_suspend returned");
-
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  int fds[2];
-  if (pipe (fds) != 0)
-    {
-      puts ("pipe failed");
-      return 1;
-    }
-
-  struct aiocb a, a2, *ap;
-  char mem[1];
-  memset (&a, '\0', sizeof (a));
-  a.aio_fildes = fds[0];
-  a.aio_buf = mem;
-  a.aio_nbytes = sizeof (mem);
-  if (aio_read (&a) != 0)
-    {
-      puts ("aio_read failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, &a) != 0)
-    {
-      puts ("1st create failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  struct timespec  ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-  while (nanosleep (&ts, &ts) != 0)
-    continue;
-
-  puts ("going to cancel tf in-time");
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("1st cancel failed");
-      return 1;
-    }
-
-  void *status;
-  if (pthread_join (th, &status) != 0)
-    {
-      puts ("1st join failed");
-      return 1;
-    }
-  if (status != PTHREAD_CANCELED)
-    {
-      puts ("1st thread not canceled");
-      return 1;
-    }
-
-  if (cl_called == 0)
-    {
-      puts ("tf cleanup handler not called");
-      return 1;
-    }
-  if (cl_called > 1)
-    {
-      puts ("tf cleanup handler called more than once");
-      return 1;
-    }
-
-  cl_called = 0;
-
-  if (pthread_create (&th, NULL, tf2, &a) != 0)
-    {
-      puts ("2nd create failed");
-      return 1;
-    }
-
-  r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("2nd barrier_wait failed");
-      exit (1);
-    }
-
-  ts.tv_sec = 0;
-  ts.tv_nsec = 100000000;
-  while (nanosleep (&ts, &ts) != 0)
-    continue;
-
-  puts ("going to cancel tf2 in-time");
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("2nd cancel failed");
-      return 1;
-    }
-
-  if (pthread_join (th, &status) != 0)
-    {
-      puts ("2nd join failed");
-      return 1;
-    }
-  if (status != PTHREAD_CANCELED)
-    {
-      puts ("2nd thread not canceled");
-      return 1;
-    }
-
-  if (cl_called == 0)
-    {
-      puts ("tf2 cleanup handler not called");
-      return 1;
-    }
-  if (cl_called > 1)
-    {
-      puts ("tf2 cleanup handler called more than once");
-      return 1;
-    }
-
-  puts ("in-time cancellation succeeded");
-
-  ap = &a;
-  if (aio_cancel (fds[0], &a) != AIO_CANCELED)
-    {
-      puts ("aio_cancel failed");
-      /* If aio_cancel failed, we cannot reuse aiocb a.  */
-      ap = &a2;
-    }
-
-
-  cl_called = 0;
-
-  size_t len2 = fpathconf (fds[1], _PC_PIPE_BUF);
-  size_t page_size = sysconf (_SC_PAGESIZE);
-  len2 = 20 * (len2 < page_size ? page_size : len2) + sizeof (mem) + 1;
-  char *mem2 = malloc (len2);
-  if (mem2 == NULL)
-    {
-      puts ("could not allocate memory for pipe write");
-      return 1;
-    }
-
-  memset (ap, '\0', sizeof (*ap));
-  ap->aio_fildes = fds[1];
-  ap->aio_buf = mem2;
-  ap->aio_nbytes = len2;
-  if (aio_write (ap) != 0)
-    {
-      puts ("aio_write failed");
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf, ap) != 0)
-    {
-      puts ("3rd create failed");
-      return 1;
-    }
-
-  puts ("going to cancel tf early");
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("3rd cancel failed");
-      return 1;
-    }
-
-  r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("3rd barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_join (th, &status) != 0)
-    {
-      puts ("3rd join failed");
-      return 1;
-    }
-  if (status != PTHREAD_CANCELED)
-    {
-      puts ("3rd thread not canceled");
-      return 1;
-    }
-
-  if (cl_called == 0)
-    {
-      puts ("tf cleanup handler not called");
-      return 1;
-    }
-  if (cl_called > 1)
-    {
-      puts ("tf cleanup handler called more than once");
-      return 1;
-    }
-
-  cl_called = 0;
-
-  if (pthread_create (&th, NULL, tf2, ap) != 0)
-    {
-      puts ("4th create failed");
-      return 1;
-    }
-
-  puts ("going to cancel tf2 early");
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("4th cancel failed");
-      return 1;
-    }
-
-  r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("4th barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_join (th, &status) != 0)
-    {
-      puts ("4th join failed");
-      return 1;
-    }
-  if (status != PTHREAD_CANCELED)
-    {
-      puts ("4th thread not canceled");
-      return 1;
-    }
-
-  if (cl_called == 0)
-    {
-      puts ("tf2 cleanup handler not called");
-      return 1;
-    }
-  if (cl_called > 1)
-    {
-      puts ("tf2 cleanup handler called more than once");
-      return 1;
-    }
-
-  puts ("early cancellation succeeded");
-
-  if (ap == &a2)
-    {
-      /* The aio_read(&a) was not canceled because the read request was
-	 already in progress. In the meanwhile aio_write(ap) wrote something
-	 to the pipe and the read request either has already been finished or
-	 is able to read the requested byte.
-	 Wait for the read request before returning from this function because
-	 the return value and error code from the read syscall will be written
-	 to the struct aiocb a, which lies on the stack of this function.
-	 Otherwise the stack from subsequent function calls - e.g. _dl_fini -
-	 will be corrupted, which can lead to undefined behaviour like a
-	 segmentation fault.  */
-      const struct aiocb *l[1] = { &a };
-      TEMP_FAILURE_RETRY (aio_suspend(l, 1, NULL));
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel18.c b/nptl/tst-cancel18.c
deleted file mode 100644
index 5a46f0929c..0000000000
--- a/nptl/tst-cancel18.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t b;
-
-
-/* Cleanup handling test.  */
-static int cl_called;
-
-static void
-cl (void *arg)
-{
-  ++cl_called;
-}
-
-
-static void *
-tf (void *arg)
-{
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  pthread_cleanup_push (cl, NULL);
-
-  struct timespec ts = { .tv_sec = arg == NULL ? 10000000 : 0, .tv_nsec = 0 };
-  TEMP_FAILURE_RETRY (clock_nanosleep (CLOCK_REALTIME, 0, &ts, &ts));
-
-  pthread_cleanup_pop (0);
-
-  puts ("clock_nanosleep returned");
-
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("1st create failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  struct timespec  ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-  while (nanosleep (&ts, &ts) != 0)
-    continue;
-
-  puts ("going to cancel in-time");
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("1st cancel failed");
-      return 1;
-    }
-
-  void *status;
-  if (pthread_join (th, &status) != 0)
-    {
-      puts ("1st join failed");
-      return 1;
-    }
-  if (status != PTHREAD_CANCELED)
-    {
-      puts ("1st thread not canceled");
-      return 1;
-    }
-
-  if (cl_called == 0)
-    {
-      puts ("cleanup handler not called");
-      return 1;
-    }
-  if (cl_called > 1)
-    {
-      puts ("cleanup handler called more than once");
-      return 1;
-    }
-
-  puts ("in-time cancellation succeeded");
-
-
-  cl_called = 0;
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("2nd create failed");
-      return 1;
-    }
-
-  puts ("going to cancel early");
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("2nd cancel failed");
-      return 1;
-    }
-
-  r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_join (th, &status) != 0)
-    {
-      puts ("2nd join failed");
-      return 1;
-    }
-  if (status != PTHREAD_CANCELED)
-    {
-      puts ("2nd thread not canceled");
-      return 1;
-    }
-
-  if (cl_called == 0)
-    {
-      printf ("cleanup handler not called\n");
-      return 1;
-    }
-  if (cl_called > 1)
-    {
-      printf ("cleanup handler called more than once\n");
-      return 1;
-    }
-
-  puts ("early cancellation succeeded");
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel19.c b/nptl/tst-cancel19.c
deleted file mode 100644
index 1c214c5967..0000000000
--- a/nptl/tst-cancel19.c
+++ /dev/null
@@ -1,286 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <error.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/select.h>
-#include <sys/time.h>
-#include <unistd.h>
-
-static void *
-tf (void *arg)
-{
-  return NULL;
-}
-
-static void
-handler (int sig)
-{
-}
-
-static void __attribute__ ((noinline))
-clobber_lots_of_regs (void)
-{
-#define X1(n) long r##n = 10##n; __asm __volatile ("" : "+r" (r##n));
-#define X2(n) X1(n##0) X1(n##1) X1(n##2) X1(n##3) X1(n##4)
-#define X3(n) X2(n##0) X2(n##1) X2(n##2) X2(n##3) X2(n##4)
-  X3(0) X3(1) X3(2) X3(3) X3(4)
-#undef X1
-#define X1(n) __asm __volatile ("" : : "r" (r##n));
-  X3(0) X3(1) X3(2) X3(3) X3(4)
-#undef X1
-#undef X2
-#undef X3
-}
-
-static int
-do_test (void)
-{
-  pthread_t th;
-  int old, rc;
-  int ret = 0;
-  int fd[2];
-
-  rc = pipe (fd);
-  if (rc < 0)
-    error (EXIT_FAILURE, errno, "couldn't create pipe");
-
-  rc = pthread_create (&th, NULL, tf, NULL);
-  if (rc)
-    error (EXIT_FAILURE, rc, "couldn't create thread");
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
-  if (rc)
-    {
-      error (0, rc, "1st pthread_setcanceltype failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_DEFERRED && old != PTHREAD_CANCEL_ASYNCHRONOUS)
-    {
-      error (0, 0, "1st pthread_setcanceltype returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  clobber_lots_of_regs ();
-  close (fd[0]);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after close failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_DEFERRED)
-    {
-      error (0, 0, "pthread_setcanceltype after close returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  clobber_lots_of_regs ();
-  close (fd[1]);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after 2nd close failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
-    {
-      error (0, 0, "pthread_setcanceltype after 2nd close returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  struct sigaction sa = { .sa_handler = handler, .sa_flags = 0 };
-  sigemptyset (&sa.sa_mask);
-  sigaction (SIGALRM, &sa, NULL);
-
-  struct itimerval it;
-  it.it_value.tv_sec = 1;
-  it.it_value.tv_usec = 0;
-  it.it_interval = it.it_value;
-  setitimer (ITIMER_REAL, &it, NULL);
-
-  clobber_lots_of_regs ();
-  pause ();
-
-  memset (&it, 0, sizeof (it));
-  setitimer (ITIMER_REAL, &it, NULL);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after pause failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_DEFERRED)
-    {
-      error (0, 0, "pthread_setcanceltype after pause returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  it.it_value.tv_sec = 1;
-  it.it_value.tv_usec = 0;
-  it.it_interval = it.it_value;
-  setitimer (ITIMER_REAL, &it, NULL);
-
-  clobber_lots_of_regs ();
-  pause ();
-
-  memset (&it, 0, sizeof (it));
-  setitimer (ITIMER_REAL, &it, NULL);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after 2nd pause failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
-    {
-      error (0, 0, "pthread_setcanceltype after 2nd pause returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  char fname[] = "/tmp/tst-cancel19-dir-XXXXXX\0foo/bar";
-  char *enddir = strchr (fname, '\0');
-  if (mkdtemp (fname) == NULL)
-    {
-      error (0, errno, "mkdtemp failed");
-      ret = 1;
-    }
-  *enddir = '/';
-
-  clobber_lots_of_regs ();
-  creat (fname, 0400);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after creat failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_DEFERRED)
-    {
-      error (0, 0, "pthread_setcanceltype after creat returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  clobber_lots_of_regs ();
-  creat (fname, 0400);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after 2nd creat failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
-    {
-      error (0, 0, "pthread_setcanceltype after 2nd creat returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  clobber_lots_of_regs ();
-  open (fname, O_CREAT, 0400);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after open failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_DEFERRED)
-    {
-      error (0, 0, "pthread_setcanceltype after open returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  clobber_lots_of_regs ();
-  open (fname, O_CREAT, 0400);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after 2nd open failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
-    {
-      error (0, 0, "pthread_setcanceltype after 2nd open returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  *enddir = '\0';
-  rmdir (fname);
-
-  clobber_lots_of_regs ();
-  select (-1, NULL, NULL, NULL, NULL);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after select failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_DEFERRED)
-    {
-      error (0, 0, "pthread_setcanceltype after select returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  clobber_lots_of_regs ();
-  select (-1, NULL, NULL, NULL, NULL);
-
-  rc = pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &old);
-  if (rc)
-    {
-      error (0, rc, "pthread_setcanceltype after 2nd select failed");
-      ret = 1;
-    }
-  if (old != PTHREAD_CANCEL_ASYNCHRONOUS)
-    {
-      error (0, 0, "pthread_setcanceltype after 2nd select returned invalid value %d",
-	     old);
-      ret = 1;
-    }
-
-  pthread_join (th, NULL);
-
-  return ret;
-}
-
-#define TIMEOUT 20
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel2.c b/nptl/tst-cancel2.c
deleted file mode 100644
index bf7946ceca..0000000000
--- a/nptl/tst-cancel2.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int fd[2];
-
-
-static void *
-tf (void *arg)
-{
-  /* The buffer size must be larger than the pipe size so that the
-     write blocks.  */
-  char buf[100000];
-
-  while (write (fd[1], buf, sizeof (buf)) > 0);
-
-  return (void *) 42l;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-  void *r;
-  struct sigaction sa;
-
-  sa.sa_handler = SIG_IGN;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-
-  if (sigaction (SIGPIPE, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  if (pipe (fd) != 0)
-    {
-      puts ("pipe failed");
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-
-  /* This will cause the write in the child to return.  */
-  close (fd[0]);
-
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      printf ("result is wrong: expected %p, got %p\n", PTHREAD_CANCELED, r);
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel20.c b/nptl/tst-cancel20.c
deleted file mode 100644
index 89cf9eaada..0000000000
--- a/nptl/tst-cancel20.c
+++ /dev/null
@@ -1,268 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int fd[4];
-static pthread_barrier_t b;
-volatile int in_sh_body;
-unsigned long cleanups;
-
-static void
-cl (void *arg)
-{
-  cleanups = (cleanups << 4) | (long) arg;
-}
-
-
-static void __attribute__((noinline))
-sh_body (void)
-{
-  char c;
-
-  pthread_cleanup_push (cl, (void *) 1L);
-
-  in_sh_body = 1;
-  if (read (fd[2], &c, 1) == 1)
-    {
-      puts ("read succeeded");
-      exit (1);
-    }
-
-  pthread_cleanup_pop (0);
-}
-
-
-static void
-sh (int sig)
-{
-  pthread_cleanup_push (cl, (void *) 2L);
-  sh_body ();
-  in_sh_body = 0;
-
-  pthread_cleanup_pop (0);
-}
-
-
-static void __attribute__((noinline))
-tf_body (void)
-{
-  char c;
-
-  pthread_cleanup_push (cl, (void *) 3L);
-
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child thread: barrier_wait failed");
-      exit (1);
-    }
-
-  if (read (fd[0], &c, 1) == 1)
-    {
-      puts ("read succeeded");
-      exit (1);
-    }
-
-  read (fd[0], &c, 1);
-
-  pthread_cleanup_pop (0);
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_cleanup_push (cl, (void *) 4L);
-  tf_body ();
-  pthread_cleanup_pop (0);
-  return NULL;
-}
-
-
-static int
-do_one_test (void)
-{
-  in_sh_body = 0;
-  cleanups = 0;
-  if (pipe (fd) != 0 || pipe (fd + 2) != 0)
-    {
-      puts ("pipe failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("parent thread: barrier_wait failed");
-      return 1;
-    }
-
-  sleep (1);
-
-  r = pthread_kill (th, SIGHUP);
-  if (r)
-    {
-      errno = r;
-      printf ("pthread_kill failed %m\n");
-      return 1;
-    }
-
-  while (in_sh_body == 0)
-    sleep (1);
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-
-  void *ret;
-  if (pthread_join (th, &ret) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (ret != PTHREAD_CANCELED)
-    {
-      puts ("result is wrong");
-      return 1;
-    }
-
-  if (cleanups != 0x1234L)
-    {
-      printf ("called cleanups %lx\n", cleanups);
-      return 1;
-    }
-
-  /* The pipe closing must be issued after the cancellation handling to avoid
-     a race condition where the cancellation runs after both pipe ends are
-     closed.  In this case the read syscall returns EOF and the cancellation
-     must not act.  */
-  close (fd[0]);
-  close (fd[1]);
-  close (fd[2]);
-  close (fd[3]);
-
-  return 0;
-}
-
-
-static int
-do_test (void)
-{
-  stack_t ss;
-  ss.ss_sp = malloc (2 * SIGSTKSZ);
-  if (ss.ss_sp == NULL)
-    {
-      puts ("failed to allocate alternate stack");
-      return 1;
-    }
-  ss.ss_flags = 0;
-  ss.ss_size = 2 * SIGSTKSZ;
-  if (sigaltstack (&ss, NULL) < 0)
-    {
-      printf ("sigaltstack failed %m\n");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  struct sigaction sa;
-  sa.sa_handler = sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-
-  if (sigaction (SIGHUP, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  puts ("sa_flags = 0 test");
-  if (do_one_test ())
-    return 1;
-
-  sa.sa_handler = sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = SA_ONSTACK;
-
-  if (sigaction (SIGHUP, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  puts ("sa_flags = SA_ONSTACK test");
-  if (do_one_test ())
-    return 1;
-
-#ifdef SA_SIGINFO
-  sa.sa_sigaction = (void (*)(int, siginfo_t *, void *)) sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = SA_SIGINFO;
-
-  if (sigaction (SIGHUP, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  puts ("sa_flags = SA_SIGINFO test");
-  if (do_one_test ())
-    return 1;
-
-  sa.sa_sigaction = (void (*)(int, siginfo_t *, void *)) sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
-
-  if (sigaction (SIGHUP, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  puts ("sa_flags = SA_SIGINFO|SA_ONSTACK test");
-  if (do_one_test ())
-    return 1;
-#endif
-
-  return 0;
-}
-
-#define TIMEOUT 40
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel21-static.c b/nptl/tst-cancel21-static.c
deleted file mode 100644
index 2a01061ea8..0000000000
--- a/nptl/tst-cancel21-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel21.c"
diff --git a/nptl/tst-cancel21.c b/nptl/tst-cancel21.c
deleted file mode 100644
index afeefab6ce..0000000000
--- a/nptl/tst-cancel21.c
+++ /dev/null
@@ -1,298 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-
-static int fd[4];
-static pthread_barrier_t b;
-volatile int in_sh_body;
-unsigned long cleanups;
-
-static void
-cl (void *arg)
-{
-  cleanups = (cleanups << 4) | (long) arg;
-}
-
-
-static void __attribute__((noinline))
-sh_body (void)
-{
-  char c;
-
-  pthread_cleanup_push (cl, (void *) 1L);
-
-  in_sh_body = 1;
-  if (read (fd[2], &c, 1) == 1)
-    {
-      puts ("read succeeded");
-      exit (1);
-    }
-
-  pthread_cleanup_pop (0);
-}
-
-
-static void
-sh (int sig)
-{
-  pthread_cleanup_push (cl, (void *) 2L);
-  sh_body ();
-  in_sh_body = 0;
-
-  pthread_cleanup_pop (0);
-}
-
-
-static void __attribute__((noinline))
-tf_body (void)
-{
-  char c;
-
-  pthread_cleanup_push (cl, (void *) 3L);
-
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child thread: barrier_wait failed");
-      exit (1);
-    }
-
-  if (read (fd[0], &c, 1) == 1)
-    {
-      puts ("read succeeded");
-      exit (1);
-    }
-
-  read (fd[0], &c, 1);
-
-  pthread_cleanup_pop (0);
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_t th = (pthread_t) arg;
-
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("parent thread: barrier_wait failed");
-      exit (1);
-    }
-
-  sleep (1);
-
-  r = pthread_kill (th, SIGHUP);
-  if (r)
-    {
-      errno = r;
-      printf ("pthread_kill failed %m\n");
-      exit (1);
-    }
-
-  while (in_sh_body == 0)
-    sleep (1);
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      exit (1);
-    }
-
-  void *ret;
-  if (pthread_join (th, &ret) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  if (ret != PTHREAD_CANCELED)
-    {
-      puts ("result is wrong");
-      exit (1);
-    }
-
-  if (cleanups != 0x1234L)
-    {
-      printf ("called cleanups %lx\n", cleanups);
-      exit (1);
-    }
-
-  if (pthread_barrier_destroy (&b))
-    {
-      puts ("barrier destroy failed");
-      exit (1);
-    }
-
-  /* The pipe closing must be issued after the cancellation handling to avoid
-     a race condition where the cancellation runs after both pipe ends are
-     closed.  In this case the read syscall returns EOF and the cancellation
-     must not act.  */
-  close (fd[0]);
-  close (fd[1]);
-  close (fd[2]);
-  close (fd[3]);
-
-  exit (0);
-}
-
-
-static int
-do_one_test (void)
-{
-  in_sh_body = 0;
-
-  pid_t pid = fork ();
-
-  if (pid == -1)
-    {
-      printf ("fork failed: %m\n");
-      return 1;
-    }
-
-  if (pid)
-    {
-      int status;
-      if (waitpid (pid, &status, 0) < 0)
-	{
-	  printf ("waitpid failed %m\n");
-	  return 1;
-	}
-
-      return !WIFEXITED (status) || WEXITSTATUS (status);
-    }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  cleanups = 0;
-  if (pipe (fd) != 0 || pipe (fd + 2) != 0)
-    {
-      puts ("pipe failed");
-      exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  pthread_cleanup_push (cl, (void *) 4L);
-  tf_body ();
-  pthread_cleanup_pop (0);
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  stack_t ss;
-  ss.ss_sp = malloc (2 * SIGSTKSZ);
-  if (ss.ss_sp == NULL)
-    {
-      puts ("failed to allocate alternate stack");
-      return 1;
-    }
-  ss.ss_flags = 0;
-  ss.ss_size = 2 * SIGSTKSZ;
-  if (sigaltstack (&ss, NULL) < 0)
-    {
-      printf ("sigaltstack failed %m\n");
-      return 1;
-    }
-
-  struct sigaction sa;
-  sa.sa_handler = sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-
-  if (sigaction (SIGHUP, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  puts ("sa_flags = 0 test");
-  if (do_one_test ())
-    return 1;
-
-  sa.sa_handler = sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = SA_ONSTACK;
-
-  if (sigaction (SIGHUP, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  puts ("sa_flags = SA_ONSTACK test");
-  if (do_one_test ())
-    return 1;
-
-#ifdef SA_SIGINFO
-  sa.sa_sigaction = (void (*)(int, siginfo_t *, void *)) sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = SA_SIGINFO;
-
-  if (sigaction (SIGHUP, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  puts ("sa_flags = SA_SIGINFO test");
-  if (do_one_test ())
-    return 1;
-
-  sa.sa_sigaction = (void (*)(int, siginfo_t *, void *)) sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = SA_SIGINFO | SA_ONSTACK;
-
-  if (sigaction (SIGHUP, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  puts ("sa_flags = SA_SIGINFO|SA_ONSTACK test");
-  if (do_one_test ())
-    return 1;
-#endif
-
-  return 0;
-}
-
-#define TIMEOUT 40
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel22.c b/nptl/tst-cancel22.c
deleted file mode 100644
index 5b768bd669..0000000000
--- a/nptl/tst-cancel22.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-pthread_barrier_t b;
-int seen;
-
-static void *
-tf (void *arg)
-{
-  int old;
-  int r = pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, &old);
-  if (r != 0)
-    {
-      puts ("setcancelstate failed");
-      exit (1);
-    }
-
-  r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  for (int i = 0; i < 10; ++i)
-    {
-      struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-      TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-    }
-
-  seen = 1;
-  pthread_setcancelstate (old, NULL);
-
-  struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-  TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-   {
-     puts ("barrier init failed");
-     return 1;
-   }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("thread creation failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-
-  void *status;
-  if (pthread_join (th, &status) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-  if (status != PTHREAD_CANCELED)
-    {
-      puts ("thread not canceled");
-      return 1;
-    }
-
-  if (pthread_barrier_destroy (&b) != 0)
-    {
-      puts ("barrier_destroy failed");
-      return 1;
-    }
-
-  if (seen != 1)
-    {
-      puts ("thread cancelled when PTHREAD_CANCEL_DISABLED");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel23.c b/nptl/tst-cancel23.c
deleted file mode 100644
index 211168748e..0000000000
--- a/nptl/tst-cancel23.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel22.c"
diff --git a/nptl/tst-cancel24-static.cc b/nptl/tst-cancel24-static.cc
deleted file mode 100644
index 3f97de5d5a..0000000000
--- a/nptl/tst-cancel24-static.cc
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel24.cc"
diff --git a/nptl/tst-cancel24.cc b/nptl/tst-cancel24.cc
deleted file mode 100644
index 1af709a8ca..0000000000
--- a/nptl/tst-cancel24.cc
+++ /dev/null
@@ -1,113 +0,0 @@
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static volatile bool destr_called;
-static volatile bool except_caught;
-
-static pthread_barrier_t b;
-
-
-struct monitor
-{
-  // gcc is broken and would generate a warning without this dummy
-  // constructor.
-  monitor () { }
-  ~monitor() { destr_called = true; }
-};
-
-
-static void *
-tf (void *arg)
-{
-  sem_t *s = static_cast<sem_t *> (arg);
-
-  try
-    {
-      monitor m;
-
-      pthread_barrier_wait (&b);
-
-      while (1)
-      sem_wait (s);
-    }
-  catch (...)
-    {
-      except_caught = true;
-      throw;
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test ()
-{
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  sem_t s;
-  if (sem_init (&s, 0, 0) != 0)
-    {
-      puts ("sem_init failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, &s) != 0)
-    {
-      puts ("pthread_create failed");
-      return 1;
-    }
-
-  pthread_barrier_wait (&b);
-
-  /* There is unfortunately no better method to try to assure the
-     child thread reached the sem_wait call and is actually waiting
-     than to sleep here.  */
-  sleep (1);
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-
-  void *res;
-  if (pthread_join (th, &res) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (res != PTHREAD_CANCELED)
-    {
-      puts ("thread was not canceled");
-      return 1;
-    }
-
-  if (! except_caught)
-    {
-      puts ("exception not caught");
-      return 1;
-    }
-
-  if (! destr_called)
-    {
-      puts ("destructor not called");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 3
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel25.c b/nptl/tst-cancel25.c
deleted file mode 100644
index c724d8ae2d..0000000000
--- a/nptl/tst-cancel25.c
+++ /dev/null
@@ -1,173 +0,0 @@
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t b;
-static pthread_t th2;
-
-
-static void *
-tf2 (void *arg)
-{
-#ifdef SIGCANCEL
-  sigset_t mask;
-  if (pthread_sigmask (SIG_SETMASK, NULL, &mask) != 0)
-    {
-      puts ("pthread_sigmask failed");
-      exit (1);
-    }
-  if (sigismember (&mask, SIGCANCEL))
-    {
-      puts ("SIGCANCEL blocked in new thread");
-      exit (1);
-    }
-#endif
-
-  /* Sync with the main thread so that we do not test anything else.  */
-  int e = pthread_barrier_wait (&b);
-  if (e != 0  && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  while (1)
-    {
-      /* Just a cancelable call.  */
-      struct timespec ts = { 10000, 0 };
-      nanosleep (&ts, 0);
-    }
-
-  return NULL;
-}
-
-
-static void
-unwhand (void *arg)
-{
-  if (pthread_create (&th2, NULL, tf2, NULL) != 0)
-    {
-      puts ("unwhand: create failed");
-      exit (1);
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_cleanup_push (unwhand, NULL);
-
-  /* Sync with the main thread so that we do not test anything else.  */
-  int e = pthread_barrier_wait (&b);
-  if (e != 0  && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  while (1)
-    {
-      /* Just a cancelable call.  */
-      struct timespec ts = { 10000, 0 };
-      nanosleep (&ts, 0);
-    }
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  pthread_t th1;
-  if (pthread_create (&th1, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0  && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      return 1;
-    }
-
-  /* Make sure tf1 enters nanosleep.  */
-  struct timespec ts = { 0, 500000000 };
-  while (nanosleep (&ts, &ts) != 0)
-    ;
-
-  if (pthread_cancel (th1) != 0)
-    {
-      puts ("1st cancel failed");
-      return 1;
-    }
-
-  void *res;
-  if (pthread_join (th1, &res) != 0)
-    {
-      puts ("1st join failed");
-      return 1;
-    }
-  if (res != PTHREAD_CANCELED)
-    {
-      puts ("1st thread not canceled");
-      return 1;
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0  && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      return 1;
-    }
-
-  /* Make sure tf2 enters nanosleep.  */
-  ts.tv_sec = 0;
-  ts.tv_nsec = 500000000;
-  while (nanosleep (&ts, &ts) != 0)
-    ;
-
-  puts ("calling pthread_cancel the second time");
-  if (pthread_cancel (th2) != 0)
-    {
-      puts ("2nd cancel failed");
-      return 1;
-    }
-
-  puts ("calling pthread_join the second time");
-  if (pthread_join (th2, &res) != 0)
-    {
-      puts ("2nd join failed");
-      return 1;
-    }
-  if (res != PTHREAD_CANCELED)
-    {
-      puts ("2nd thread not canceled");
-      return 1;
-    }
-
-  if (pthread_barrier_destroy (&b) != 0)
-    {
-      puts ("barrier_destroy failed");
-      return 0;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel26.c b/nptl/tst-cancel26.c
deleted file mode 100644
index 07dafff0ce..0000000000
--- a/nptl/tst-cancel26.c
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Check for failure paths handling for cancellation points.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-/* Check that the cancel syscall points handles both the errno and return code
-   correctly for invalid arguments.  */
-static void *
-tf (void *arg)
-{
-#ifdef SET_CANCEL_DISABLE
-  pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, NULL);
-#endif
-
-  /* This is a cancellation point, but we should not be cancelled.  */
-  int r = write (-1, 0, 0);
-
-  if (r != -1 || errno != EBADF)
-    {
-      printf ("error: write returned %d, errno %d\n", r, errno);
-      exit (1);
-    }
-
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("error: pthread_create failed");
-      exit (1);
-    }
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("error: pthread_join failed");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel27.c b/nptl/tst-cancel27.c
deleted file mode 100644
index e8dd55ae96..0000000000
--- a/nptl/tst-cancel27.c
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Check for failure paths handling for cancellation points.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Similar to tst-cancel26.c but with pthread cancel state set to
-   PTHREAD_CANCEL_DISABLE.  */
-
-#define SET_CANCEL_DISABLE 1
-#include "tst-cancel26.c"
diff --git a/nptl/tst-cancel3.c b/nptl/tst-cancel3.c
deleted file mode 100644
index 228c4781a9..0000000000
--- a/nptl/tst-cancel3.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int fd[2];
-
-
-static void *
-tf (void *arg)
-{
-  char buf[100];
-
-  if (read (fd[0], buf, sizeof (buf)) == sizeof (buf))
-    {
-      puts ("read succeeded");
-      return (void *) 1l;
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-  void *r;
-  struct sigaction sa;
-
-  sa.sa_handler = SIG_IGN;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-
-  if (sigaction (SIGPIPE, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  if (pipe (fd) != 0)
-    {
-      puts ("pipe failed");
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-
-  /* This will cause the read in the child to return.  */
-  close (fd[0]);
-
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("result is wrong");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel4-common.c b/nptl/tst-cancel4-common.c
deleted file mode 100644
index eb3211721c..0000000000
--- a/nptl/tst-cancel4-common.c
+++ /dev/null
@@ -1,262 +0,0 @@
-/* Common file for all tst-cancel4_*
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-static int
-do_test (void)
-{
-  int val;
-  socklen_t len;
-
-  if (socketpair (AF_UNIX, SOCK_STREAM, PF_UNIX, fds) != 0)
-    {
-      perror ("socketpair");
-      exit (1);
-    }
-
-  val = 1;
-  len = sizeof(val);
-  setsockopt (fds[1], SOL_SOCKET, SO_SNDBUF, &val, sizeof(val));
-  if (getsockopt (fds[1], SOL_SOCKET, SO_SNDBUF, &val, &len) < 0)
-    {
-      perror ("getsockopt");
-      exit (1);
-    }
-  if (val >= WRITE_BUFFER_SIZE)
-    {
-      puts ("minimum write buffer size too large");
-      exit (1);
-    }
-  setsockopt (fds[1], SOL_SOCKET, SO_SNDBUF, &val, sizeof(val));
-
-  if (mktemp (fifoname) == NULL)
-    {
-      printf ("%s: cannot generate temp file name: %m\n", __func__);
-      exit (1);
-    }
-
-  int result = 0;
-  size_t cnt;
-  for (cnt = 0; cnt < ntest_tf; ++cnt)
-    {
-      if (tests[cnt].only_early)
-	continue;
-
-      if (pthread_barrier_init (&b2, NULL, tests[cnt].nb) != 0)
-	{
-	  puts ("b2 init failed");
-	  exit (1);
-	}
-
-      /* Reset the counter for the cleanup handler.  */
-      cl_called = 0;
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tests[cnt].tf, NULL) != 0)
-	{
-	  printf ("create for '%s' test failed\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-
-      int r = pthread_barrier_wait (&b2);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  printf ("%s: barrier_wait failed\n", __func__);
-	  result = 1;
-	  continue;
-	}
-
-      struct timespec  ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-      while (nanosleep (&ts, &ts) != 0)
-	continue;
-
-      if (pthread_cancel (th) != 0)
-	{
-	  printf ("cancel for '%s' failed\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-
-      void *status;
-      if (pthread_join (th, &status) != 0)
-	{
-	  printf ("join for '%s' failed\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-      if (status != PTHREAD_CANCELED)
-	{
-	  printf ("thread for '%s' not canceled\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-
-      if (pthread_barrier_destroy (&b2) != 0)
-	{
-	  puts ("barrier_destroy failed");
-	  result = 1;
-	  continue;
-	}
-
-      if (cl_called == 0)
-	{
-	  printf ("cleanup handler not called for '%s'\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-      if (cl_called > 1)
-	{
-	  printf ("cleanup handler called more than once for '%s'\n",
-		  tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-
-      printf ("in-time cancel test of '%s' successful\n", tests[cnt].name);
-
-      if (tempfd != -1)
-	{
-	  close (tempfd);
-	  tempfd = -1;
-	}
-      if (tempfd2 != -1)
-	{
-	  close (tempfd2);
-	  tempfd2 = -1;
-	}
-      if (tempfname != NULL)
-	{
-	  unlink (tempfname);
-	  free (tempfname);
-	  tempfname = NULL;
-	}
-      if (tempmsg != -1)
-	{
-	  msgctl (tempmsg, IPC_RMID, NULL);
-	  tempmsg = -1;
-	}
-    }
-
-  for (cnt = 0; cnt < ntest_tf; ++cnt)
-    {
-      if (pthread_barrier_init (&b2, NULL, tests[cnt].nb) != 0)
-	{
-	  puts ("b2 init failed");
-	  exit (1);
-	}
-
-      /* Reset the counter for the cleanup handler.  */
-      cl_called = 0;
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tests[cnt].tf, (void *) 1l) != 0)
-	{
-	  printf ("create for '%s' test failed\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-
-      int r = pthread_barrier_wait (&b2);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  printf ("%s: barrier_wait failed\n", __func__);
-	  result = 1;
-	  continue;
-	}
-
-      if (pthread_cancel (th) != 0)
-	{
-	  printf ("cancel for '%s' failed\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-
-      r = pthread_barrier_wait (&b2);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  printf ("%s: barrier_wait failed\n", __func__);
-	  result = 1;
-	  continue;
-	}
-
-      void *status;
-      if (pthread_join (th, &status) != 0)
-	{
-	  printf ("join for '%s' failed\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-      if (status != PTHREAD_CANCELED)
-	{
-	  printf ("thread for '%s' not canceled\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-
-      if (pthread_barrier_destroy (&b2) != 0)
-	{
-	  puts ("barrier_destroy failed");
-	  result = 1;
-	  continue;
-	}
-
-      if (cl_called == 0)
-	{
-	  printf ("cleanup handler not called for '%s'\n", tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-      if (cl_called > 1)
-	{
-	  printf ("cleanup handler called more than once for '%s'\n",
-		  tests[cnt].name);
-	  result = 1;
-	  continue;
-	}
-
-      printf ("early cancel test of '%s' successful\n", tests[cnt].name);
-
-      if (tempfd != -1)
-	{
-	  close (tempfd);
-	  tempfd = -1;
-	}
-      if (tempfd2 != -1)
-	{
-	  close (tempfd2);
-	  tempfd2 = -1;
-	}
-      if (tempfname != NULL)
-	{
-	  unlink (tempfname);
-	  free (tempfname);
-	  tempfname = NULL;
-	}
-      if (tempmsg != -1)
-	{
-	  msgctl (tempmsg, IPC_RMID, NULL);
-	  tempmsg = -1;
-	}
-    }
-
-  return result;
-}
-
-#define TIMEOUT 60
-#include <support/test-driver.c>
diff --git a/nptl/tst-cancel4-common.h b/nptl/tst-cancel4-common.h
deleted file mode 100644
index 54b2f1e2d9..0000000000
--- a/nptl/tst-cancel4-common.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Common definition for tst-cancel4_* tests.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-
-#include <support/check.h>
-#include <support/xthread.h>
-#include <support/xunistd.h>
-
-/* Pipe descriptors.  */
-static int fds[2];
-
-/* Temporary file descriptor, to be closed after each round.  */
-static int tempfd = -1;
-static int tempfd2 = -1;
-/* Name of temporary file to be removed after each round.  */
-static char *tempfname;
-/* Temporary message queue.  */
-static int tempmsg = -1;
-
-/* Often used barrier for two threads.  */
-static pthread_barrier_t b2;
-
-/* The WRITE_BUFFER_SIZE value needs to be chosen such that if we set
-   the socket send buffer size to '1', a write of this size on that
-   socket will block.
-
-   The Linux kernel imposes a minimum send socket buffer size which
-   has changed over the years.  As of Linux 3.10 the value is:
-
-     2 * (2048 + SKB_DATA_ALIGN(sizeof(struct sk_buff)))
-
-   which is attempting to make sure that with standard MTUs,
-   TCP can always queue up at least 2 full sized packets.
-
-   Furthermore, there is logic in the socket send paths that
-   will allow one more packet (of any size) to be queued up as
-   long as some socket buffer space remains.   Blocking only
-   occurs when we try to queue up a new packet and the send
-   buffer space has already been fully consumed.
-
-   Therefore we must set this value to the largest possible value of
-   the formula above (and since it depends upon the size of "struct
-   sk_buff", it is dependent upon machine word size etc.) plus some
-   slack space.  */
-
-#define WRITE_BUFFER_SIZE 16384
-
-/* Cleanup handling test.  */
-static int cl_called;
-
-static void
-cl (void *arg)
-{
-  ++cl_called;
-}
-
-/* Named pipe used to check for blocking open.  It should be closed
-   after the cancellation handling.  */
-static char fifoname[] = "/tmp/tst-cancel4-fifo-XXXXXX";
-static int fifofd;
-
-static void
-__attribute__ ((used))
-cl_fifo (void *arg)
-{
-  ++cl_called;
-
-  unlink (fifoname);
-  close (fifofd);
-  fifofd = -1;
-}
-
-struct cancel_tests
-{
-  const char *name;
-  void *(*tf) (void *);
-  int nb;
-  int only_early;
-};
-#define ADD_TEST(name, nbar, early) { #name, tf_##name, nbar, early }
diff --git a/nptl/tst-cancel4.c b/nptl/tst-cancel4.c
deleted file mode 100644
index 7a560a1dda..0000000000
--- a/nptl/tst-cancel4.c
+++ /dev/null
@@ -1,1565 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* NOTE: this tests functionality beyond POSIX.  POSIX does not allow
-   exit to be called more than once.  */
-
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <unistd.h>
-#include <errno.h>
-#include <limits.h>
-#include <pthread.h>
-#include <fcntl.h>
-#include <termios.h>
-#include <sys/mman.h>
-#include <sys/poll.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <sys/uio.h>
-
-
-/* Since STREAMS are not supported in the standard Linux kernel and
-   there we don't advertise STREAMS as supported is no need to test
-   the STREAMS related functions.  This affects
-     getmsg()              getpmsg()          putmsg()
-     putpmsg()
-
-   lockf() and fcntl() are tested in tst-cancel16.
-
-   pthread_join() is tested in tst-join5.
-
-   pthread_testcancel()'s only purpose is to allow cancellation.  This
-   is tested in several places.
-
-   sem_wait() and sem_timedwait() are checked in tst-cancel1[2345] tests.
-
-   mq_send(), mq_timedsend(), mq_receive() and mq_timedreceive() are checked
-   in tst-mqueue8{,x} tests.
-
-   aio_suspend() is tested in tst-cancel17.
-
-   clock_nanosleep() is tested in tst-cancel18.
-
-   Linux sendmmsg and recvmmsg are checked in tst-cancel4_1.c and
-   tst-cancel4_2.c respectively.
-*/
-
-#include "tst-cancel4-common.h"
-
-
-#ifndef IPC_ADDVAL
-# define IPC_ADDVAL 0
-#endif
-
-
-static void *
-tf_read  (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    fd = fds[0];
-  else
-    {
-      char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-      tempfd = fd = mkstemp (fname);
-      if (fd == -1)
-	FAIL_EXIT1 ("mkstemp failed: %m");
-      unlink (fname);
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-  pthread_cleanup_push (cl, NULL);
-
-  char buf[100];
-  s = read (fd, buf, sizeof (buf));
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("read returns with %zd", s);
-}
-
-
-static void *
-tf_readv  (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    fd = fds[0];
-  else
-    {
-      char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-      tempfd = fd = mkstemp (fname);
-      if (fd == -1)
-	FAIL_EXIT1 ("mkstemp failed: %m");
-      unlink (fname);
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-  pthread_cleanup_push (cl, NULL);
-
-  char buf[100];
-  struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } };
-  s = readv (fd, iov, 1);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("readv returns with %zd", s);
-}
-
-
-static void *
-tf_write  (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    fd = fds[1];
-  else
-    {
-      char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-      tempfd = fd = mkstemp (fname);
-      if (fd == -1)
-	FAIL_EXIT1 ("mkstemp failed: %m");
-      unlink (fname);
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-  pthread_cleanup_push (cl, NULL);
-
-  char buf[WRITE_BUFFER_SIZE];
-  memset (buf, '\0', sizeof (buf));
-  s = write (fd, buf, sizeof (buf));
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("write returns with %zd", s);
-}
-
-
-static void *
-tf_writev  (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    fd = fds[1];
-  else
-    {
-      char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-      tempfd = fd = mkstemp (fname);
-      if (fd == -1)
-	FAIL_EXIT1 ("mkstemp failed: %m");
-      unlink (fname);
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-  pthread_cleanup_push (cl, NULL);
-
-  char buf[WRITE_BUFFER_SIZE];
-  memset (buf, '\0', sizeof (buf));
-  struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } };
-  s = writev (fd, iov, 1);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("writev returns with %zd", s);
-}
-
-
-static void *
-tf_sleep (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  sleep (arg == NULL ? 1000000 : 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sleep returns");
-}
-
-
-static void *
-tf_usleep (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  usleep (arg == NULL ? (useconds_t) ULONG_MAX : 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("usleep returns");
-}
-
-
-static void *
-tf_nanosleep (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  struct timespec ts = { .tv_sec = arg == NULL ? 10000000 : 0, .tv_nsec = 0 };
-  TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("nanosleep returns");
-}
-
-
-static void *
-tf_select (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    fd = fds[0];
-  else
-    {
-      char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-      tempfd = fd = mkstemp (fname);
-      if (fd == -1)
-	FAIL_EXIT1 ("mkstemp failed: %m");
-      unlink (fname);
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  fd_set rfs;
-  FD_ZERO (&rfs);
-  FD_SET (fd, &rfs);
-
-  int s;
-  pthread_cleanup_push (cl, NULL);
-
-  s = select (fd + 1, &rfs, NULL, NULL, NULL);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("select returns with %d: %m", s);
-}
-
-
-static void *
-tf_pselect (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    fd = fds[0];
-  else
-    {
-      char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-      tempfd = fd = mkstemp (fname);
-      if (fd == -1)
-	FAIL_EXIT1 ("mkstemp failed: %m");
-      unlink (fname);
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  fd_set rfs;
-  FD_ZERO (&rfs);
-  FD_SET (fd, &rfs);
-
-  int s;
-  pthread_cleanup_push (cl, NULL);
-
-  s = pselect (fd + 1, &rfs, NULL, NULL, NULL, NULL);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("pselect returns with %d: %m", s);
-}
-
-
-static void *
-tf_poll (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    fd = fds[0];
-  else
-    {
-      char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-      tempfd = fd = mkstemp (fname);
-      if (fd == -1)
-	FAIL_EXIT1 ("mkstemp failed: %m");
-      unlink (fname);
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  struct pollfd rfs[1] = { [0] = { .fd = fd, .events = POLLIN } };
-
-  int s;
-  pthread_cleanup_push (cl, NULL);
-
-  s = poll (rfs, 1, -1);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("poll returns with %d: %m", s);
-}
-
-
-static void *
-tf_ppoll (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    fd = fds[0];
-  else
-    {
-      char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-      tempfd = fd = mkstemp (fname);
-      if (fd == -1)
-	FAIL_EXIT1 ("mkstemp failed: %m");
-      unlink (fname);
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  struct pollfd rfs[1] = { [0] = { .fd = fd, .events = POLLIN } };
-
-  int s;
-  pthread_cleanup_push (cl, NULL);
-
-  s = ppoll (rfs, 1, NULL, NULL);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("ppoll returns with %d: %m", s);
-}
-
-
-static void *
-tf_wait (void *arg)
-{
-  pid_t pid = fork ();
-  if (pid == -1)
-    FAIL_EXIT1 ("fork: %m");
-
-  if (pid == 0)
-    {
-      /* Make the program disappear after a while.  */
-      if (arg == NULL)
-	sleep (10);
-      exit (0);
-    }
-
-  if (arg != NULL)
-    {
-      struct timespec  ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-      while (nanosleep (&ts, &ts) != 0)
-	continue;
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  int s;
-  pthread_cleanup_push (cl, NULL);
-
-  s = wait (NULL);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("wait returns with %d: %m", s);
-}
-
-
-static void *
-tf_waitpid (void *arg)
-{
-  pid_t pid = fork ();
-  if (pid == -1)
-    FAIL_EXIT1 ("fork: %m");
-
-  if (pid == 0)
-    {
-      /* Make the program disappear after a while.  */
-      if (arg == NULL)
-	sleep (10);
-      exit (0);
-    }
-
-  if (arg != NULL)
-    {
-      struct timespec  ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-      while (nanosleep (&ts, &ts) != 0)
-	continue;
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  int s;
-  pthread_cleanup_push (cl, NULL);
-
-  s = waitpid (-1, NULL, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("waitpid returns with %d: %m", s);
-}
-
-
-static void *
-tf_waitid (void *arg)
-{
-  pid_t pid = fork ();
-  if (pid == -1)
-    FAIL_EXIT1 ("fork: %m");
-
-  if (pid == 0)
-    {
-      /* Make the program disappear after a while.  */
-      if (arg == NULL)
-	sleep (10);
-      exit (0);
-    }
-
-  if (arg != NULL)
-    {
-      struct timespec  ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-      while (nanosleep (&ts, &ts) != 0)
-	continue;
-
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  int s;
-  pthread_cleanup_push (cl, NULL);
-
-#ifndef WEXITED
-# define WEXITED 0
-#endif
-  siginfo_t si;
-  s = waitid (P_PID, pid, &si, WEXITED);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("waitid returns with %d: %m", s);
-}
-
-
-static void *
-tf_sigpause (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  sigpause (sigmask (SIGINT));
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sigpause returned");
-}
-
-
-static void *
-tf_sigsuspend (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  /* Just for fun block all signals.  */
-  sigset_t mask;
-  sigfillset (&mask);
-  sigsuspend (&mask);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sigsuspend returned");
-}
-
-
-static void *
-tf_sigwait (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  /* Block SIGUSR1.  */
-  sigset_t mask;
-  sigemptyset (&mask);
-  sigaddset (&mask, SIGUSR1);
-  TEST_VERIFY_EXIT (pthread_sigmask (SIG_BLOCK, &mask, NULL) == 0);
-
-  int sig;
-  pthread_cleanup_push (cl, NULL);
-
-  /* Wait for SIGUSR1.  */
-  sigwait (&mask, &sig);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sigwait returned with signal %d", sig);
-}
-
-
-static void *
-tf_sigwaitinfo (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  /* Block SIGUSR1.  */
-  sigset_t mask;
-  sigemptyset (&mask);
-  sigaddset (&mask, SIGUSR1);
-  TEST_VERIFY_EXIT (pthread_sigmask (SIG_BLOCK, &mask, NULL) == 0);
-
-  siginfo_t info;
-  pthread_cleanup_push (cl, NULL);
-
-  /* Wait for SIGUSR1.  */
-  sigwaitinfo (&mask, &info);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sigwaitinfo returned with signal %d", info.si_signo);
-}
-
-
-static void *
-tf_sigtimedwait (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  /* Block SIGUSR1.  */
-  sigset_t mask;
-  sigemptyset (&mask);
-  sigaddset (&mask, SIGUSR1);
-  TEST_VERIFY_EXIT (pthread_sigmask (SIG_BLOCK, &mask, NULL) == 0);
-
-  /* Wait for SIGUSR1.  */
-  siginfo_t info;
-  struct timespec ts = { .tv_sec = 60, .tv_nsec = 0 };
-  pthread_cleanup_push (cl, NULL);
-
-  sigtimedwait (&mask, &info, &ts);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sigtimedwait returned with signal %d", info.si_signo);
-}
-
-
-static void *
-tf_pause (void *arg)
-{
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  pause ();
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("pause returned");
-}
-
-
-static void *
-tf_accept (void *arg)
-{
-  struct sockaddr_un sun;
-  /* To test a non-blocking accept call we make the call file by using
-     a datagrame socket.  */
-  int pf = arg == NULL ? SOCK_STREAM : SOCK_DGRAM;
-
-  tempfd = socket (AF_UNIX, pf, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, %s, 0): %m", arg == NULL ? "SOCK_STREAM"
-					       : "SOCK_DGRAM");
-
-  int tries = 0;
-  do
-    {
-      TEST_VERIFY_EXIT (tries++ < 10);
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-1-XXXXXX");
-      TEST_VERIFY_EXIT (mktemp (sun.sun_path) != NULL);
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-
-  unlink (sun.sun_path);
-
-  listen (tempfd, 5);
-
-  socklen_t len = sizeof (sun);
-
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  accept (tempfd, (struct sockaddr *) &sun, &len);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("accept returned");
-}
-
-
-static void *
-tf_send (void *arg)
-{
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_STREAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_STREAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      TEST_VERIFY_EXIT (tries++ < 10);
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-2-XXXXXX");
-      TEST_VERIFY_EXIT (mktemp (sun.sun_path) != NULL);
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-
-  listen (tempfd, 5);
-
-  tempfd2 = socket (AF_UNIX, SOCK_STREAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_STREAM, 0): %m");
-
-  if (connect (tempfd2, (struct sockaddr *) &sun, sizeof (sun)) != 0)
-    FAIL_EXIT1 ("connect: %m");
-
-  unlink (sun.sun_path);
-
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  /* Very large block, so that the send call blocks.  */
-  char mem[700000];
-
-  send (tempfd2, mem, arg == NULL ? sizeof (mem) : 1, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("send returned");
-}
-
-
-static void *
-tf_recv (void *arg)
-{
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_STREAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_STREAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      TEST_VERIFY_EXIT (tries++ < 10);
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-3-XXXXXX");
-      TEST_VERIFY_EXIT (mktemp (sun.sun_path) != NULL);
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-
-  listen (tempfd, 5);
-
-  tempfd2 = socket (AF_UNIX, SOCK_STREAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_STREAM, 0): %m");
-
-  if (connect (tempfd2, (struct sockaddr *) &sun, sizeof (sun)) != 0)
-    FAIL_EXIT1 ("connect: %m");
-
-  unlink (sun.sun_path);
-
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[70];
-
-  recv (tempfd2, mem, arg == NULL ? sizeof (mem) : 0, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("recv returned");
-}
-
-
-static void *
-tf_recvfrom (void *arg)
-{
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      TEST_VERIFY_EXIT (tries++ < 10);
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-4-XXXXXX");
-      TEST_VERIFY_EXIT (mktemp (sun.sun_path) != NULL);
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-
-  tempfname = strdup (sun.sun_path);
-
-  tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[70];
-  socklen_t len = sizeof (sun);
-
-  recvfrom (tempfd2, mem, arg == NULL ? sizeof (mem) : 0, 0,
-	    (struct sockaddr *) &sun, &len);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("recvfrom returned");
-}
-
-
-static void *
-tf_recvmsg (void *arg)
-{
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      TEST_VERIFY_EXIT (tries++ < 10);
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-5-XXXXXX");
-      TEST_VERIFY_EXIT (mktemp (sun.sun_path) != NULL);
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-
-  tempfname = strdup (sun.sun_path);
-
-  tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[70];
-  struct iovec iov[1];
-  iov[0].iov_base = mem;
-  iov[0].iov_len = arg == NULL ? sizeof (mem) : 0;
-
-  struct msghdr m;
-  m.msg_name = &sun;
-  m.msg_namelen = sizeof (sun);
-  m.msg_iov = iov;
-  m.msg_iovlen = 1;
-  m.msg_control = NULL;
-  m.msg_controllen = 0;
-
-  recvmsg (tempfd2, &m, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("recvmsg returned");
-}
-
-static void *
-tf_open (void *arg)
-{
-  if (arg == NULL)
-    {
-      fifofd = mkfifo (fifoname, S_IWUSR | S_IRUSR);
-      if (fifofd == -1)
-	FAIL_EXIT1 ("mkfifo: %m");
-    }
-  else
-    {
-      xpthread_barrier_wait (&b2);
-    }
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl_fifo, NULL);
-
-  open (arg ? "Makefile" : fifoname, O_RDONLY);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("open returned");
-}
-
-
-static void *
-tf_close (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which close()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  char fname[] = "/tmp/tst-cancel-fd-XXXXXX";
-  tempfd = mkstemp (fname);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("mkstemp failed: %m");
-  unlink (fname);
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  close (tempfd);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("close returned");
-}
-
-
-static void *
-tf_pread (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which pread()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  tempfd = open ("Makefile", O_RDONLY);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("open (\"Makefile\", O_RDONLY): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[10];
-  pread (tempfd, mem, sizeof (mem), 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("pread returned");
-}
-
-
-static void *
-tf_pwrite (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which pwrite()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-  tempfd = mkstemp (fname);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("mkstemp failed: %m");
-  unlink (fname);
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[10];
-  pwrite (tempfd, mem, sizeof (mem), 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("pwrite returned");
-}
-
-static void *
-tf_preadv (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    /* XXX If somebody can provide a portable test case in which preadv
-       blocks we can enable this test to run in both rounds.  */
-    abort ();
-
-  char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-  tempfd = fd = mkstemp (fname);
-  if (fd == -1)
-    FAIL_EXIT1 ("mkstemp failed: %m");
-  unlink (fname);
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-  pthread_cleanup_push (cl, NULL);
-
-  char buf[100];
-  struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } };
-  s = preadv (fd, iov, 1, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("preadv returns with %zd", s);
-}
-
-static void *
-tf_pwritev (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    /* XXX If somebody can provide a portable test case in which pwritev
-       blocks we can enable this test to run in both rounds.  */
-    abort ();
-
-  char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-  tempfd = fd = mkstemp (fname);
-  if (fd == -1)
-    FAIL_EXIT1 ("mkstemp failed: %m");
-  unlink (fname);
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-  pthread_cleanup_push (cl, NULL);
-
-  char buf[WRITE_BUFFER_SIZE];
-  memset (buf, '\0', sizeof (buf));
-  struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } };
-  s = pwritev (fd, iov, 1, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("pwritev returns with %zd", s);
-}
-
-static void *
-tf_pwritev2 (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    /* XXX If somebody can provide a portable test case in which pwritev2
-       blocks we can enable this test to run in both rounds.  */
-    abort ();
-
-  errno = 0;
-
-  char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-  tempfd = fd = mkstemp (fname);
-  if (fd == -1)
-    FAIL_EXIT1 ("mkstemp: %m");
-  unlink (fname);
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-  pthread_cleanup_push (cl, NULL);
-
-  char buf[WRITE_BUFFER_SIZE];
-  memset (buf, '\0', sizeof (buf));
-  struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } };
-  s = pwritev2 (fd, iov, 1, 0, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("pwritev2 returns with %zd", s);
-}
-
-static void *
-tf_preadv2 (void *arg)
-{
-  int fd;
-
-  if (arg == NULL)
-    /* XXX If somebody can provide a portable test case in which preadv2
-       blocks we can enable this test to run in both rounds.  */
-    abort ();
-
-  errno = 0;
-
-  char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
-  tempfd = fd = mkstemp (fname);
-  if (fd == -1)
-    FAIL_EXIT1 ("mkstemp failed: %m");
-  unlink (fname);
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-  pthread_cleanup_push (cl, NULL);
-
-  char buf[100];
-  struct iovec iov[1] = { [0] = { .iov_base = buf, .iov_len = sizeof (buf) } };
-  s = preadv2 (fd, iov, 1, 0, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("preadv2 returns with %zd", s);
-}
-
-static void *
-tf_fsync (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which fsync()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  tempfd = open ("Makefile", O_RDONLY);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("open (\"Makefile\", O_RDONLY): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  fsync (tempfd);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("fsync returned");
-}
-
-
-static void *
-tf_fdatasync (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which fdatasync()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  tempfd = open ("Makefile", O_RDONLY);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("open (\"Makefile\", O_RDONLY): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  fdatasync (tempfd);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("fdatasync returned");
-}
-
-
-static void *
-tf_msync (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which msync()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  tempfd = open ("Makefile", O_RDONLY);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("open (\"Makefile\", O_RDONLY): %m");
-
-  void *p = xmmap (NULL, 10, PROT_READ, MAP_SHARED, tempfd);
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  msync (p, 10, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("msync returned");
-}
-
-
-static void *
-tf_sendto (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which sendto()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      TEST_VERIFY_EXIT (tries++ < 10);
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-6-XXXXXX");
-      TEST_VERIFY_EXIT (mktemp (sun.sun_path) != NULL);
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-  tempfname = strdup (sun.sun_path);
-
-  tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[1];
-
-  sendto (tempfd2, mem, arg == NULL ? sizeof (mem) : 1, 0,
-	  (struct sockaddr *) &sun,
-	  offsetof (struct sockaddr_un, sun_path) + strlen (sun.sun_path) + 1);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sendto returned");
-}
-
-
-static void *
-tf_sendmsg (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which sendmsg()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      TEST_VERIFY_EXIT (tries++ < 10);
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-7-XXXXXX");
-      TEST_VERIFY_EXIT (mktemp (sun.sun_path) != NULL);
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-  tempfname = strdup (sun.sun_path);
-
-  tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[1];
-  struct iovec iov[1];
-  iov[0].iov_base = mem;
-  iov[0].iov_len = 1;
-
-  struct msghdr m;
-  m.msg_name = &sun;
-  m.msg_namelen = (offsetof (struct sockaddr_un, sun_path)
-		   + strlen (sun.sun_path) + 1);
-  m.msg_iov = iov;
-  m.msg_iovlen = 1;
-  m.msg_control = NULL;
-  m.msg_controllen = 0;
-
-  sendmsg (tempfd2, &m, 0);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sendmsg returned");
-}
-
-
-static void *
-tf_creat (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which sendmsg()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  creat ("tmp/tst-cancel-4-should-not-exist", 0666);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("creat returned");
-}
-
-
-static void *
-tf_connect (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which connect()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_STREAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_STREAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      TEST_VERIFY_EXIT (tries++ < 10);
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-2-XXXXXX");
-      TEST_VERIFY_EXIT (mktemp (sun.sun_path) != NULL);
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-  tempfname = strdup (sun.sun_path);
-
-  listen (tempfd, 5);
-
-  tempfd2 = socket (AF_UNIX, SOCK_STREAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_STREAM, 0): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  connect (tempfd2, (struct sockaddr *) &sun, sizeof (sun));
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("connect returned");
-}
-
-
-static void *
-tf_tcdrain (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which tcdrain()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  /* Regardless of stderr being a terminal, the tcdrain call should be
-     canceled.  */
-  tcdrain (STDERR_FILENO);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("tcdrain returned");
-}
-
-
-static void *
-tf_msgrcv (void *arg)
-{
-  tempmsg = msgget (IPC_PRIVATE, 0666 | IPC_CREAT);
-  if (tempmsg == -1)
-    FAIL_EXIT1 ("msgget (IPC_PRIVATE, 0666 | IPC_CREAT): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  if (arg != NULL)
-    xpthread_barrier_wait (&b2);
-
-  ssize_t s;
-
-  pthread_cleanup_push (cl, NULL);
-
-  struct
-  {
-    long int type;
-    char mem[10];
-  } m;
-  int randnr;
-  /* We need a positive random number.  */
-  do
-    randnr = random () % 64000;
-  while (randnr <= 0);
-  do
-    {
-      errno = 0;
-      s = msgrcv (tempmsg, (struct msgbuf *) &m, 10, randnr, 0);
-    }
-  while (errno == EIDRM || errno == EINTR);
-
-  pthread_cleanup_pop (0);
-
-  msgctl (tempmsg, IPC_RMID, NULL);
-
-  FAIL_EXIT1 ("msgrcv returned %zd", s);
-}
-
-
-static void *
-tf_msgsnd (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which msgsnd()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  tempmsg = msgget (IPC_PRIVATE, 0666 | IPC_CREAT);
-  if (tempmsg == -1)
-    FAIL_EXIT1 ("msgget (IPC_PRIVATE, 0666 | IPC_CREAT): %m");
-
-  xpthread_barrier_wait (&b2);
-
-  xpthread_barrier_wait (&b2);
-
-  pthread_cleanup_push (cl, NULL);
-
-  struct
-  {
-    long int type;
-    char mem[1];
-  } m;
-  /* We need a positive random number.  */
-  do
-    m.type = random () % 64000;
-  while (m.type <= 0);
-  msgsnd (tempmsg, (struct msgbuf *) &m, sizeof (m.mem), 0);
-
-  pthread_cleanup_pop (0);
-
-  msgctl (tempmsg, IPC_RMID, NULL);
-
-  FAIL_EXIT1 ("msgsnd returned");
-}
-
-
-struct cancel_tests tests[] =
-{
-  ADD_TEST (read, 2, 0),
-  ADD_TEST (readv, 2, 0),
-  ADD_TEST (select, 2, 0),
-  ADD_TEST (pselect, 2, 0),
-  ADD_TEST (poll, 2, 0),
-  ADD_TEST (ppoll, 2, 0),
-  ADD_TEST (write, 2, 0),
-  ADD_TEST (writev, 2, 0),
-  ADD_TEST (sleep, 2, 0),
-  ADD_TEST (usleep, 2, 0),
-  ADD_TEST (nanosleep, 2, 0),
-  ADD_TEST (wait, 2, 0),
-  ADD_TEST (waitid, 2, 0),
-  ADD_TEST (waitpid, 2, 0),
-  ADD_TEST (sigpause, 2, 0),
-  ADD_TEST (sigsuspend, 2, 0),
-  ADD_TEST (sigwait, 2, 0),
-  ADD_TEST (sigwaitinfo, 2, 0),
-  ADD_TEST (sigtimedwait, 2, 0),
-  ADD_TEST (pause, 2, 0),
-  ADD_TEST (accept, 2, 0),
-  ADD_TEST (send, 2, 0),
-  ADD_TEST (recv, 2, 0),
-  ADD_TEST (recvfrom, 2, 0),
-  ADD_TEST (recvmsg, 2, 0),
-  ADD_TEST (preadv, 2, 1),
-  ADD_TEST (preadv2, 2, 1),
-  ADD_TEST (pwritev, 2, 1),
-  ADD_TEST (pwritev2, 2, 1),
-  ADD_TEST (open, 2, 1),
-  ADD_TEST (close, 2, 1),
-  ADD_TEST (pread, 2, 1),
-  ADD_TEST (pwrite, 2, 1),
-  ADD_TEST (fsync, 2, 1),
-  ADD_TEST (fdatasync, 2, 1),
-  ADD_TEST (msync, 2, 1),
-  ADD_TEST (sendto, 2, 1),
-  ADD_TEST (sendmsg, 2, 1),
-  ADD_TEST (creat, 2, 1),
-  ADD_TEST (connect, 2, 1),
-  ADD_TEST (tcdrain, 2, 1),
-  ADD_TEST (msgrcv, 2, 0),
-  ADD_TEST (msgsnd, 2, 1),
-};
-#define ntest_tf (sizeof (tests) / sizeof (tests[0]))
-
-#include "tst-cancel4-common.c"
diff --git a/nptl/tst-cancel4_1.c b/nptl/tst-cancel4_1.c
deleted file mode 100644
index 0f41965ed1..0000000000
--- a/nptl/tst-cancel4_1.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Check sendmmsg cancellation.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <unistd.h>
-#include <errno.h>
-#include <pthread.h>
-
-#include "tst-cancel4-common.h"
-
-static void *
-tf_sendmmsg (void *arg)
-{
-  if (arg == NULL)
-    // XXX If somebody can provide a portable test case in which sendmmsg()
-    // blocks we can enable this test to run in both rounds.
-    abort ();
-
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      if (++tries > 10)
-	FAIL_EXIT1 ("too many unsuccessful bind calls");
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-7-XXXXXX");
-      if (mktemp (sun.sun_path) == NULL)
-	FAIL_EXIT1 ("cannot generate temp file name");
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-  tempfname = strdup (sun.sun_path);
-
-  tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  int r = pthread_barrier_wait (&b2);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    FAIL_EXIT1 ("pthread_barrier_wait");
-
-  r = pthread_barrier_wait (&b2);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    FAIL_EXIT1 ("pthread_barrier_wait");
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[1];
-  struct iovec iov[1];
-  iov[0].iov_base = mem;
-  iov[0].iov_len = 1;
-
-  struct mmsghdr mm;
-  mm.msg_hdr.msg_name = &sun;
-  mm.msg_hdr.msg_namelen = (offsetof (struct sockaddr_un, sun_path)
-			   + strlen (sun.sun_path) + 1);
-  mm.msg_hdr.msg_iov = iov;
-  mm.msg_hdr.msg_iovlen = 1;
-  mm.msg_hdr.msg_control = NULL;
-  mm.msg_hdr.msg_controllen = 0;
-
-  ssize_t ret = sendmmsg (tempfd2, &mm, 1, 0);
-  if (ret == -1 && errno == ENOSYS)
-    exit (77);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("sendmmsg returned");
-}
-
-struct cancel_tests tests[] =
-{
-  ADD_TEST (sendmmsg, 2, 1),
-};
-#define ntest_tf (sizeof (tests) / sizeof (tests[0]))
-
-#include "tst-cancel4-common.c"
diff --git a/nptl/tst-cancel4_2.c b/nptl/tst-cancel4_2.c
deleted file mode 100644
index 1158609e7a..0000000000
--- a/nptl/tst-cancel4_2.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/* Check recvmmsg cancellation.
-
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <sys/ipc.h>
-#include <sys/msg.h>
-#include <unistd.h>
-#include <errno.h>
-#include <pthread.h>
-
-#include "tst-cancel4-common.h"
-
-static void *
-tf_recvmmsg (void *arg)
-{
-  struct sockaddr_un sun;
-
-  tempfd = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  int tries = 0;
-  do
-    {
-      if (++tries > 10)
-	FAIL_EXIT1 ("too many unsuccessful bind calls");
-
-      strcpy (sun.sun_path, "/tmp/tst-cancel4-socket-5-XXXXXX");
-      if (mktemp (sun.sun_path) == NULL)
-	FAIL_EXIT1 ("cannot generate temp file name");
-
-      sun.sun_family = AF_UNIX;
-    }
-  while (bind (tempfd, (struct sockaddr *) &sun,
-	       offsetof (struct sockaddr_un, sun_path)
-	       + strlen (sun.sun_path) + 1) != 0);
-
-  tempfname = strdup (sun.sun_path);
-
-  tempfd2 = socket (AF_UNIX, SOCK_DGRAM, 0);
-  if (tempfd2 == -1)
-    FAIL_EXIT1 ("socket (AF_UNIX, SOCK_DGRAM, 0): %m");
-
-  int r = pthread_barrier_wait (&b2);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    FAIL_EXIT1 ("pthread_barrier_wait");
-
-  if (arg != NULL)
-    {
-      r = pthread_barrier_wait (&b2);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	FAIL_EXIT1 ("pthread_barrier_wait");
-    }
-
-  pthread_cleanup_push (cl, NULL);
-
-  char mem[70];
-  struct iovec iov[1];
-  iov[0].iov_base = mem;
-  iov[0].iov_len = arg == NULL ? sizeof (mem) : 0;
-
-  struct mmsghdr mm;
-  mm.msg_hdr.msg_name = &sun;
-  mm.msg_hdr.msg_namelen = sizeof (sun);
-  mm.msg_hdr.msg_iov = iov;
-  mm.msg_hdr.msg_iovlen = 1;
-  mm.msg_hdr.msg_control = NULL;
-  mm.msg_hdr.msg_controllen = 0;
-
-  ssize_t ret = recvmmsg (tempfd2, &mm, 1, 0, NULL);
-  if (ret == -1 && errno == ENOSYS)
-    exit (77);
-
-  pthread_cleanup_pop (0);
-
-  FAIL_EXIT1 ("recvmmsg returned");
-}
-
-struct cancel_tests tests[] =
-{
-  ADD_TEST (recvmmsg, 2, 1),
-};
-#define ntest_tf (sizeof (tests) / sizeof (tests[0]))
-
-#include "tst-cancel4-common.c"
diff --git a/nptl/tst-cancel5.c b/nptl/tst-cancel5.c
deleted file mode 100644
index 1c879eba8b..0000000000
--- a/nptl/tst-cancel5.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel4.c"
diff --git a/nptl/tst-cancel6.c b/nptl/tst-cancel6.c
deleted file mode 100644
index 0fab406fc4..0000000000
--- a/nptl/tst-cancel6.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
-  char buf[100];
-  fgets (buf, sizeof (buf), arg);
-  /* This call should never return.  */
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  int fd[2];
-  if (pipe (fd) != 0)
-    {
-      puts ("pipe failed");
-      return 1;
-    }
-
-  FILE *fp = fdopen (fd[0], "r");
-  if (fp == NULL)
-    {
-      puts ("fdopen failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, fp) != 0)
-    {
-      puts ("pthread_create failed");
-      return 1;
-    }
-
-  sleep (1);
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("pthread_cancel failed");
-      return 1;
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("pthread_join failed");
-      return 1;
-    }
-
-  return r != PTHREAD_CANCELED;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel7.c b/nptl/tst-cancel7.c
deleted file mode 100644
index 7cbe04f2e2..0000000000
--- a/nptl/tst-cancel7.c
+++ /dev/null
@@ -1,209 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <getopt.h>
-
-#include <support/xthread.h>
-
-const char *command;
-const char *pidfile;
-char pidfilename[] = "/tmp/tst-cancel7-XXXXXX";
-
-static void *
-tf (void *arg)
-{
-  const char *args = " --direct --pidfile ";
-  char *cmd = alloca (strlen (command) + strlen (args)
-		      + strlen (pidfilename) + 1);
-
-  strcpy (stpcpy (stpcpy (cmd, command), args), pidfilename);
-  system (cmd);
-  /* This call should never return.  */
-  return NULL;
-}
-
-
-static void
-sl (void)
-{
-  FILE *f = fopen (pidfile, "w");
-  if (f == NULL)
-    exit (1);
-
-  fprintf (f, "%lld\n", (long long) getpid ());
-  fflush (f);
-
-  struct flock fl =
-    {
-      .l_type = F_WRLCK,
-      .l_start = 0,
-      .l_whence = SEEK_SET,
-      .l_len = 1
-    };
-  if (fcntl (fileno (f), F_SETLK, &fl) != 0)
-    exit (1);
-
-  sigset_t ss;
-  sigfillset (&ss);
-  sigsuspend (&ss);
-  exit (0);
-}
-
-
-static void
-do_prepare (int argc, char *argv[])
-{
-  if (command == NULL)
-    command = argv[0];
-
-  if (pidfile)
-    sl ();
-
-  int fd = mkstemp (pidfilename);
-  if (fd == -1)
-    {
-      puts ("mkstemp failed");
-      exit (1);
-    }
-
-  write (fd, " ", 1);
-  close (fd);
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("pthread_create failed");
-      return 1;
-    }
-
-  do
-    sleep (1);
-  while (access (pidfilename, R_OK) != 0);
-
-  xpthread_cancel (th);
-  void *r = xpthread_join (th);
-
-  sleep (1);
-
-  FILE *f = fopen (pidfilename, "r+");
-  if (f == NULL)
-    {
-      puts ("no pidfile");
-      return 1;
-    }
-
-  long long ll;
-  if (fscanf (f, "%lld\n", &ll) != 1)
-    {
-      puts ("could not read pid");
-      unlink (pidfilename);
-      return 1;
-    }
-
-  struct flock fl =
-    {
-      .l_type = F_WRLCK,
-      .l_start = 0,
-      .l_whence = SEEK_SET,
-      .l_len = 1
-    };
-  if (fcntl (fileno (f), F_GETLK, &fl) != 0)
-    {
-      puts ("F_GETLK failed");
-      unlink (pidfilename);
-      return 1;
-    }
-
-  if (fl.l_type != F_UNLCK)
-    {
-      printf ("child %lld still running\n", (long long) fl.l_pid);
-      if (fl.l_pid == ll)
-	kill (fl.l_pid, SIGKILL);
-
-      unlink (pidfilename);
-      return 1;
-    }
-
-  fclose (f);
-
-  unlink (pidfilename);
-
-  return r != PTHREAD_CANCELED;
-}
-
-static void
-do_cleanup (void)
-{
-  FILE *f = fopen (pidfilename, "r+");
-  long long ll;
-
-  if (f != NULL && fscanf (f, "%lld\n", &ll) == 1)
-    {
-      struct flock fl =
-	{
-	  .l_type = F_WRLCK,
-	  .l_start = 0,
-	  .l_whence = SEEK_SET,
-	  .l_len = 1
-	};
-      if (fcntl (fileno (f), F_GETLK, &fl) == 0 && fl.l_type != F_UNLCK
-	  && fl.l_pid == ll)
-	kill (fl.l_pid, SIGKILL);
-
-      fclose (f);
-    }
-
-  unlink (pidfilename);
-}
-
-#define OPT_COMMAND	10000
-#define OPT_PIDFILE	10001
-#define CMDLINE_OPTIONS \
-  { "command", required_argument, NULL, OPT_COMMAND },	\
-  { "pidfile", required_argument, NULL, OPT_PIDFILE },
-static void
-cmdline_process (int c)
-{
-  switch (c)
-    {
-    case OPT_COMMAND:
-      command = optarg;
-      break;
-    case OPT_PIDFILE:
-      pidfile = optarg;
-      break;
-    }
-}
-#define CMDLINE_PROCESS cmdline_process
-#define CLEANUP_HANDLER do_cleanup
-#define PREPARE do_prepare
-#define TIMEOUT 5
-#include <support/test-driver.c>
diff --git a/nptl/tst-cancel8.c b/nptl/tst-cancel8.c
deleted file mode 100644
index 693ec0c67f..0000000000
--- a/nptl/tst-cancel8.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t bar;
-
-static int global;
-
-
-static void
-cleanup (void *arg)
-{
-  global = 1;
-}
-
-
-static void *
-tf (void *arg)
-{
-  /* Enable cancellation, but defer it.  */
-  if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0)
-    {
-      puts ("setcancelstate failed");
-      exit (1);
-    }
-  if (pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL) != 0)
-    {
-      puts ("setcanceltype failed");
-      exit (1);
-    }
-
-  /* Add cleanup handler.  */
-  pthread_cleanup_push (cleanup, NULL);
-
-  /* Synchronize with the main thread.  */
-  int r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("tf: first barrier_wait failed");
-      exit (1);
-    }
-
-  /* And again.  Once this is done the main thread should have canceled
-     this thread.  */
-  r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("tf: second barrier_wait failed");
-      exit (1);
-    }
-
-  /* Remove the cleanup handler without executing it.  */
-  pthread_cleanup_pop (0);
-
-  /* Now react on the cancellation.  */
-  pthread_testcancel ();
-
-  /* This call should never return.  */
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("pthread_create failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("first barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("pthread_cancel failed");
-      return 1;
-    }
-
-  r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("second barrier_wait failed");
-      exit (1);
-    }
-
-  void *result;
-  if (pthread_join (th, &result) != 0)
-    {
-      puts ("pthread_join failed");
-      return 1;
-    }
-
-  if (result != PTHREAD_CANCELED)
-    {
-      puts ("thread was not canceled");
-      exit (1);
-    }
-
-  if (global != 0)
-    {
-      puts ("cancellation handler has been called");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancel9.c b/nptl/tst-cancel9.c
deleted file mode 100644
index a60cebea6f..0000000000
--- a/nptl/tst-cancel9.c
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <fcntl.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t b;
-
-
-static void
-cleanup (void *arg)
-{
-  fputs ("in cleanup\n", stdout);
-}
-
-
-static void *
-tf (void *arg)
-{
-  int fd = open ("/dev/null", O_RDWR);
-  if (fd == -1)
-    {
-      puts ("cannot open /dev/null");
-      exit (1);
-    }
-  FILE *fp = fdopen (fd, "w");
-  if (fp == NULL)
-    {
-      puts ("fdopen failed");
-      exit (1);
-    }
-
-  pthread_cleanup_push (cleanup, NULL);
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  while (1)
-    /* fprintf() uses write() which is a cancallation point.  */
-    fprintf (fp, "foo");
-
-  pthread_cleanup_pop (0);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  sleep (1);
-
-  puts ("cancel now");
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      exit (1);
-    }
-
-  puts ("waiting for the child");
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("thread wasn't canceled");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cancelx1.c b/nptl/tst-cancelx1.c
deleted file mode 100644
index 594f095592..0000000000
--- a/nptl/tst-cancelx1.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel1.c"
diff --git a/nptl/tst-cancelx10.c b/nptl/tst-cancelx10.c
deleted file mode 100644
index e5bbb34e62..0000000000
--- a/nptl/tst-cancelx10.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel10.c"
diff --git a/nptl/tst-cancelx11.c b/nptl/tst-cancelx11.c
deleted file mode 100644
index ffcc2eefc1..0000000000
--- a/nptl/tst-cancelx11.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel11.c"
diff --git a/nptl/tst-cancelx12.c b/nptl/tst-cancelx12.c
deleted file mode 100644
index f90ae61bac..0000000000
--- a/nptl/tst-cancelx12.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel12.c"
diff --git a/nptl/tst-cancelx13.c b/nptl/tst-cancelx13.c
deleted file mode 100644
index 37c4c39c35..0000000000
--- a/nptl/tst-cancelx13.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel13.c"
diff --git a/nptl/tst-cancelx14.c b/nptl/tst-cancelx14.c
deleted file mode 100644
index ba4e77584e..0000000000
--- a/nptl/tst-cancelx14.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel14.c"
diff --git a/nptl/tst-cancelx15.c b/nptl/tst-cancelx15.c
deleted file mode 100644
index 005c1f6e3f..0000000000
--- a/nptl/tst-cancelx15.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel15.c"
diff --git a/nptl/tst-cancelx16.c b/nptl/tst-cancelx16.c
deleted file mode 100644
index 99af3b197c..0000000000
--- a/nptl/tst-cancelx16.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel16.c"
diff --git a/nptl/tst-cancelx17.c b/nptl/tst-cancelx17.c
deleted file mode 100644
index c6c833b60c..0000000000
--- a/nptl/tst-cancelx17.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel17.c"
diff --git a/nptl/tst-cancelx18.c b/nptl/tst-cancelx18.c
deleted file mode 100644
index 56da18f382..0000000000
--- a/nptl/tst-cancelx18.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel18.c"
diff --git a/nptl/tst-cancelx2.c b/nptl/tst-cancelx2.c
deleted file mode 100644
index 95dc8a8575..0000000000
--- a/nptl/tst-cancelx2.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel2.c"
diff --git a/nptl/tst-cancelx20.c b/nptl/tst-cancelx20.c
deleted file mode 100644
index 6bd86376ca..0000000000
--- a/nptl/tst-cancelx20.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel20.c"
diff --git a/nptl/tst-cancelx21.c b/nptl/tst-cancelx21.c
deleted file mode 100644
index 2a01061ea8..0000000000
--- a/nptl/tst-cancelx21.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel21.c"
diff --git a/nptl/tst-cancelx3.c b/nptl/tst-cancelx3.c
deleted file mode 100644
index 3937f10b9c..0000000000
--- a/nptl/tst-cancelx3.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel3.c"
diff --git a/nptl/tst-cancelx4.c b/nptl/tst-cancelx4.c
deleted file mode 100644
index 1c879eba8b..0000000000
--- a/nptl/tst-cancelx4.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel4.c"
diff --git a/nptl/tst-cancelx5.c b/nptl/tst-cancelx5.c
deleted file mode 100644
index c0a18840a0..0000000000
--- a/nptl/tst-cancelx5.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel5.c"
diff --git a/nptl/tst-cancelx6.c b/nptl/tst-cancelx6.c
deleted file mode 100644
index 6926e21c2d..0000000000
--- a/nptl/tst-cancelx6.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel6.c"
diff --git a/nptl/tst-cancelx7.c b/nptl/tst-cancelx7.c
deleted file mode 100644
index 4df1a58818..0000000000
--- a/nptl/tst-cancelx7.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel7.c"
diff --git a/nptl/tst-cancelx8.c b/nptl/tst-cancelx8.c
deleted file mode 100644
index 0555c7ceb0..0000000000
--- a/nptl/tst-cancelx8.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel8.c"
diff --git a/nptl/tst-cancelx9.c b/nptl/tst-cancelx9.c
deleted file mode 100644
index 9d84663d77..0000000000
--- a/nptl/tst-cancelx9.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cancel9.c"
diff --git a/nptl/tst-cleanup0.c b/nptl/tst-cleanup0.c
deleted file mode 100644
index ca541c1f9e..0000000000
--- a/nptl/tst-cleanup0.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int global;
-
-
-static void
-ch (void *arg)
-{
-  int val = (long int) arg;
-
-  printf ("ch (%d)\n", val);
-
-  global *= val;
-  global += val;
-}
-
-
-static void
-endfct (void)
-{
-  /* We force exit right here.  */
-  _exit (global);
-}
-
-
-static int
-do_test (void)
-{
-  atexit (endfct);
-
-  pthread_cancel (pthread_self ());
-
-  pthread_cleanup_push (ch, (void *) 1l);
-
-  pthread_cleanup_push (ch, (void *) 2l);
-
-  pthread_cleanup_push (ch, (void *) 3l);
-
-  pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-
-  pthread_cleanup_pop (1);
-
-  pthread_cleanup_pop (1);
-
-  pthread_cleanup_pop (1);
-
-  return 100;
-}
-
-
-#define EXPECTED_STATUS 9
-#include <support/test-driver.c>
diff --git a/nptl/tst-cleanup0.expect b/nptl/tst-cleanup0.expect
deleted file mode 100644
index 4e3c581802..0000000000
--- a/nptl/tst-cleanup0.expect
+++ /dev/null
@@ -1,3 +0,0 @@
-ch (3)
-ch (2)
-ch (1)
diff --git a/nptl/tst-cleanup1.c b/nptl/tst-cleanup1.c
deleted file mode 100644
index 7aaf995fe6..0000000000
--- a/nptl/tst-cleanup1.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static int global;
-
-
-static void
-ch (void *arg)
-{
-  int val = (long int) arg;
-
-  printf ("ch (%d)\n", val);
-
-  global *= val;
-  global += val;
-}
-
-
-static void *
-tf (void *a)
-{
-  pthread_cancel (pthread_self ());
-
-  pthread_cleanup_push (ch, (void *) 1l);
-
-  pthread_cleanup_push (ch, (void *) 2l);
-
-  pthread_cleanup_push (ch, (void *) 3l);
-
-  pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL);
-
-  pthread_cleanup_pop (1);
-
-  pthread_cleanup_pop (1);
-
-  pthread_cleanup_pop (1);
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      write_message ("create failed\n");
-      _exit (1);
-    }
-
-  void *r;
-  int e;
-  if ((e = pthread_join (th, &r)) != 0)
-    {
-      printf ("join failed: %d\n", e);
-      _exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("thread not canceled");
-      exit (1);
-    }
-
-  if (global != 9)
-    {
-      printf ("global = %d, expected 9\n", global);
-      exit (1);
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-cleanup2.c b/nptl/tst-cleanup2.c
deleted file mode 100644
index 982f50824a..0000000000
--- a/nptl/tst-cleanup2.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Bao Duong <bduong@progress.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <setjmp.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/types.h>
-
-static sigjmp_buf jmpbuf;
-
-static void
-sig_handler (int signo)
-{
-  siglongjmp (jmpbuf, 1);
-}
-
-static int
-do_test (void)
-{
-  char *p = NULL;
-  /* gcc can overwrite the success written value by scheduling instructions
-     around sprintf.  It is allowed to do this since according to C99 the first
-     argument of sprintf is a character array and NULL is not a valid character
-     array.  Mark the return value as volatile so that it gets reloaded on
-     return.  */
-  volatile int ret = 0;
-
-  if (signal (SIGSEGV, &sig_handler) == SIG_ERR)
-    {
-      perror ("installing SIGSEGV handler");
-      return 1;
-    }
-
-  puts ("Attempting to sprintf to null ptr");
-  if (setjmp (jmpbuf))
-    {
-      puts ("Exiting main...");
-      return ret;
-    }
-
-  sprintf (p, "This should segv\n");
-
-  return 1;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cleanup3.c b/nptl/tst-cleanup3.c
deleted file mode 100644
index dc13cb6c81..0000000000
--- a/nptl/tst-cleanup3.c
+++ /dev/null
@@ -1,98 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static int global;
-
-
-static void
-ch (void *arg)
-{
-  int val = (long int) arg;
-
-  printf ("ch (%d)\n", val);
-
-  global *= val;
-  global += val;
-}
-
-
-static void *
-tf (void *a)
-{
-  pthread_cleanup_push (ch, (void *) 1l);
-
-  pthread_cleanup_push (ch, (void *) 2l);
-
-  pthread_cleanup_push (ch, (void *) 3l);
-
-  pthread_exit ((void *) 1l);
-
-  pthread_cleanup_pop (1);
-
-  pthread_cleanup_pop (1);
-
-  pthread_cleanup_pop (1);
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      write_message ("create failed\n");
-      _exit (1);
-    }
-
-  void *r;
-  int e;
-  if ((e = pthread_join (th, &r)) != 0)
-    {
-      printf ("join failed: %d\n", e);
-      _exit (1);
-    }
-
-  if (r != (void *) 1l)
-    {
-      puts ("thread not canceled");
-      exit (1);
-    }
-
-  if (global != 9)
-    {
-      printf ("global = %d, expected 9\n", global);
-      exit (1);
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-cleanup4.c b/nptl/tst-cleanup4.c
deleted file mode 100644
index 5ffe81df5f..0000000000
--- a/nptl/tst-cleanup4.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-/* LinuxThreads pthread_cleanup_{push,pop} helpers.  */
-extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
-                                   void (*__routine) (void *),
-                                   void *__arg);
-extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
-                                  int __execute);
-
-static int fds[2];
-static pthread_barrier_t b2;
-static int global;
-
-/* Defined in tst-cleanup4aux.c, never compiled with -fexceptions.  */
-extern void fn5 (void);
-extern void fn7 (void);
-extern void fn9 (void);
-
-void
-clh (void *arg)
-{
-  int val = (long int) arg;
-
-  printf ("clh (%d)\n", val);
-
-  global *= val;
-  global += val;
-}
-
-
-static __attribute__((noinline)) void
-fn_read (void)
-{
-  int r = pthread_barrier_wait (&b2);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("%s: barrier_wait failed\n", __FUNCTION__);
-      exit (1);
-    }
-
-  char c;
-  read (fds[0], &c, 1);
-}
-
-
-__attribute__((noinline)) void
-fn0 (void)
-{
-  pthread_cleanup_push (clh, (void *) 1l);
-
-  fn_read ();
-
-  pthread_cleanup_pop (1);
-}
-
-
-__attribute__((noinline)) void
-fn1 (void)
-{
-  /* This is the old LinuxThreads pthread_cleanup_{push,pop}.  */
-  struct _pthread_cleanup_buffer b;
-  _pthread_cleanup_push (&b, clh, (void *) 2l);
-
-  fn0 ();
-
-  _pthread_cleanup_pop (&b, 1);
-}
-
-
-static __attribute__((noinline)) void
-fn2 (void)
-{
-  pthread_cleanup_push (clh, (void *) 3l);
-
-  fn1 ();
-
-  pthread_cleanup_pop (1);
-}
-
-
-static void *
-tf (void *a)
-{
-  switch ((long) a)
-    {
-    case 0:
-      fn2 ();
-      break;
-    case 1:
-      fn5 ();
-      break;
-    case 2:
-      fn7 ();
-      break;
-    case 3:
-      fn9 ();
-      break;
-    }
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  int result = 0;
-
-  if (pipe (fds) != 0)
-    {
-      puts ("pipe failed");
-      exit (1);
-    }
-
-  if (pthread_barrier_init (&b2, NULL, 2) != 0)
-    {
-      puts ("b2 init failed");
-      exit (1);
-    }
-
-  const int expect[] =
-    {
-      15,	/* 1 2 3 */
-      276,	/* 1 4 5 6 */
-      120,	/* 1 7 8 */
-      460	/* 1 2 9 10 */
-    };
-
-  long i;
-  for (i = 0; i < 4; ++i)
-    {
-      global = 0;
-
-      printf ("test %ld\n", i);
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tf, (void *) i) != 0)
-	{
-	  puts ("create failed");
-	  exit (1);
-	}
-
-      int e = pthread_barrier_wait (&b2);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  printf ("%s: barrier_wait failed\n", __FUNCTION__);
-	  exit (1);
-	}
-
-      pthread_cancel (th);
-
-      void *r;
-      if ((e = pthread_join (th, &r)) != 0)
-	{
-	  printf ("join failed: %d\n", e);
-	  _exit (1);
-	}
-
-      if (r != PTHREAD_CANCELED)
-	{
-	  puts ("thread not canceled");
-	  exit (1);
-	}
-
-      if (global != expect[i])
-	{
-	  printf ("global = %d, expected %d\n", global, expect[i]);
-	  result = 1;
-	}
-    }
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cleanup4aux.c b/nptl/tst-cleanup4aux.c
deleted file mode 100644
index c1b9ab99ed..0000000000
--- a/nptl/tst-cleanup4aux.c
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
-                                   void (*__routine) (void *),
-                                   void *__arg);
-extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
-                                  int __execute);
-
-extern void clh (void *arg);
-extern void fn0 (void);
-extern void fn1 (void);
-extern void fn5 (void);
-extern void fn7 (void);
-extern void fn9 (void);
-
-
-static __attribute__((noinline)) void
-fn3 (void)
-{
-  /* This is the old LinuxThreads pthread_cleanup_{push,pop}.  */
-     struct _pthread_cleanup_buffer b;
-  _pthread_cleanup_push (&b, clh, (void *) 4l);
-
-  fn0 ();
-
-  _pthread_cleanup_pop (&b, 1);
-}
-
-
-static __attribute__((noinline)) void
-fn4 (void)
-{
-  pthread_cleanup_push (clh, (void *) 5l);
-
-  fn3 ();
-
-  pthread_cleanup_pop (1);
-}
-
-
-void
-fn5 (void)
-{
-  /* This is the old LinuxThreads pthread_cleanup_{push,pop}.  */
-     struct _pthread_cleanup_buffer b;
-  _pthread_cleanup_push (&b, clh, (void *) 6l);
-
-  fn4 ();
-
-  _pthread_cleanup_pop (&b, 1);
-}
-
-
-static __attribute__((noinline)) void
-fn6 (void)
-{
-  pthread_cleanup_push (clh, (void *) 7l);
-
-  fn0 ();
-
-  pthread_cleanup_pop (1);
-}
-
-
-void
-fn7 (void)
-{
-  /* This is the old LinuxThreads pthread_cleanup_{push,pop}.  */
-     struct _pthread_cleanup_buffer b;
-  _pthread_cleanup_push (&b, clh, (void *) 8l);
-
-  fn6 ();
-
-  _pthread_cleanup_pop (&b, 1);
-}
-
-
-static __attribute__((noinline)) void
-fn8 (void)
-{
-  pthread_cleanup_push (clh, (void *) 9l);
-
-  fn1 ();
-
-  pthread_cleanup_pop (1);
-}
-
-
-void
-fn9 (void)
-{
-  /* This is the old LinuxThreads pthread_cleanup_{push,pop}.  */
-     struct _pthread_cleanup_buffer b;
-  _pthread_cleanup_push (&b, clh, (void *) 10l);
-
-  fn8 ();
-
-  _pthread_cleanup_pop (&b, 1);
-}
diff --git a/nptl/tst-cleanupx0.c b/nptl/tst-cleanupx0.c
deleted file mode 100644
index 0012ab1b25..0000000000
--- a/nptl/tst-cleanupx0.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup0.c"
diff --git a/nptl/tst-cleanupx0.expect b/nptl/tst-cleanupx0.expect
deleted file mode 100644
index 4e3c581802..0000000000
--- a/nptl/tst-cleanupx0.expect
+++ /dev/null
@@ -1,3 +0,0 @@
-ch (3)
-ch (2)
-ch (1)
diff --git a/nptl/tst-cleanupx1.c b/nptl/tst-cleanupx1.c
deleted file mode 100644
index 21e9e58bd6..0000000000
--- a/nptl/tst-cleanupx1.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup1.c"
diff --git a/nptl/tst-cleanupx2.c b/nptl/tst-cleanupx2.c
deleted file mode 100644
index 8b9e350935..0000000000
--- a/nptl/tst-cleanupx2.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup2.c"
diff --git a/nptl/tst-cleanupx3.c b/nptl/tst-cleanupx3.c
deleted file mode 100644
index 90baf904f9..0000000000
--- a/nptl/tst-cleanupx3.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup3.c"
diff --git a/nptl/tst-cleanupx4.c b/nptl/tst-cleanupx4.c
deleted file mode 100644
index 8dea954b55..0000000000
--- a/nptl/tst-cleanupx4.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup4.c"
diff --git a/nptl/tst-cleanupx4aux.c b/nptl/tst-cleanupx4aux.c
deleted file mode 100644
index 00bafe4580..0000000000
--- a/nptl/tst-cleanupx4aux.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cleanup4aux.c"
diff --git a/nptl/tst-clock1.c b/nptl/tst-clock1.c
deleted file mode 100644
index 2235eceed3..0000000000
--- a/nptl/tst-clock1.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-int
-do_test (void)
-{
-#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
-  clockid_t cl;
-  /* This is really only a linking-test here.  */
-  int e = pthread_getcpuclockid (pthread_self (), &cl);
-  if (e != 0)
-    {
-# if _POSIX_THREAD_CPUTIME == 0
-      if (sysconf (_SC_THREAD_CPUTIME) >= 0)
-# endif
-	{
-	  puts ("cpuclock advertized, but cannot get ID");
-	  exit (1);
-	}
-    }
-#endif
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-clock2.c b/nptl/tst-clock2.c
deleted file mode 100644
index aa946efd26..0000000000
--- a/nptl/tst-clock2.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
-static pthread_barrier_t b2;
-static pthread_barrier_t bN;
-
-
-static void *
-tf (void *arg)
-{
-  int e = pthread_barrier_wait (&b2);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&bN);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-#endif
-
-
-int
-do_test (void)
-{
-#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
-# define N 10
-
-# if _POSIX_THREAD_CPUTIME == 0
-  if (sysconf (_SC_THREAD_CPUTIME) < 0)
-    {
-      puts ("_POSIX_THREAD_CPUTIME option not available");
-      return 0;
-    }
-# endif
-
-  if (pthread_barrier_init (&b2, NULL, 2) != 0
-      || pthread_barrier_init (&bN, NULL, N + 1) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 };
-  TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-
-  pthread_t th[N + 1];
-  clockid_t cl[N + 1];
-# ifndef CLOCK_THREAD_CPUTIME_ID
-  if (pthread_getcpuclockid (pthread_self (), &cl[0]) != 0)
-    {
-      puts ("own pthread_getcpuclockid failed");
-      return 1;
-    }
-# else
-  cl[0] = CLOCK_THREAD_CPUTIME_ID;
-# endif
-
-  pthread_attr_t at;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  int i;
-  int e;
-  for (i = 0; i < N; ++i)
-    {
-      if (pthread_create (&th[i], &at, tf, NULL) != 0)
-	{
-	  puts ("create failed");
-	  return 1;
-	}
-
-      e = pthread_barrier_wait (&b2);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("barrier_wait failed");
-	  return 1;
-	}
-
-      ts.tv_sec = 0;
-      ts.tv_nsec = 100000000;
-      TEMP_FAILURE_RETRY (nanosleep (&ts, &ts));
-
-      if (pthread_getcpuclockid (th[i], &cl[i + 1]) != 0)
-	{
-	  puts ("pthread_getcpuclockid failed");
-	  return 1;
-	}
-    }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  struct timespec t[N + 1];
-  for (i = 0; i < N + 1; ++i)
-    if (clock_gettime (cl[i], &t[i]) != 0)
-      {
-	printf ("clock_gettime round %d failed\n", i);
-	return 1;
-      }
-
-  for (i = 0; i < N; ++i)
-    {
-      struct timespec diff;
-
-      diff.tv_sec = t[i].tv_sec - t[i + 1].tv_sec;
-      diff.tv_nsec = t[i].tv_nsec - t[i + 1].tv_nsec;
-      if (diff.tv_nsec < 0)
-	{
-	  diff.tv_nsec += 1000000000;
-	  --diff.tv_sec;
-	}
-
-      if (diff.tv_sec < 0 || (diff.tv_sec == 0 && diff.tv_nsec < 100000000))
-	{
-	  printf ("\
-difference between thread %d and %d too small (%ld.%09ld)\n",
-		  i, i + 1, (long int) diff.tv_sec, (long int) diff.tv_nsec);
-	  return 1;
-	}
-
-      printf ("diff %d->%d: %ld.%09ld\n",
-	      i, i + 1, (long int) diff.tv_sec, (long int) diff.tv_nsec);
-    }
-
-  ts.tv_sec = 0;
-  ts.tv_nsec = 0;
-  for (i = 0; i < N + 1; ++i)
-    if (clock_settime (cl[i], &ts) != 0)
-      {
-	printf ("clock_settime(%d) round %d failed\n", cl[i], i);
-	return 1;
-      }
-
-  for (i = 0; i < N + 1; ++i)
-    {
-      if (clock_gettime (cl[i], &ts) != 0)
-	{
-	  puts ("clock_gettime failed");
-	  return 1;
-	}
-
-      if (ts.tv_sec > t[i].tv_sec
-	  || (ts.tv_sec == t[i].tv_sec && ts.tv_nsec > t[i].tv_nsec))
-	{
-	  puts ("clock_settime didn't reset clock");
-	  return 1;
-	}
-    }
-#endif
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond-except.c b/nptl/tst-cond-except.c
deleted file mode 100644
index 35222197df..0000000000
--- a/nptl/tst-cond-except.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Verify that exception table for pthread_cond_wait is correct.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <unistd.h>
-
-pthread_mutex_t mutex;
-pthread_cond_t cond;
-
-#define CHECK_RETURN_VAL_OR_FAIL(ret,str) \
-  ({ if ((ret) != 0) \
-       { \
-         printf ("%s failed: %s\n", (str), strerror (ret)); \
-         ret = 1; \
-         goto out; \
-       } \
-  })
-
-
-void
-clean (void *arg)
-{
-  puts ("clean: Unlocking mutex...");
-  pthread_mutex_unlock ((pthread_mutex_t *) arg);
-  puts ("clean: Mutex unlocked...");
-}
-
-void *
-thr (void *arg)
-{
-  int ret = 0;
-  pthread_mutexattr_t mutexAttr;
-  ret = pthread_mutexattr_init (&mutexAttr);
-  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_mutexattr_init");
-
-  ret = pthread_mutexattr_setprotocol (&mutexAttr, PTHREAD_PRIO_INHERIT);
-  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_mutexattr_setprotocol");
-
-  ret = pthread_mutex_init (&mutex, &mutexAttr);
-  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_mutex_init");
-
-  ret = pthread_cond_init (&cond, 0);
-  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_cond_init");
-
-  puts ("th: Init done, entering wait...");
-
-  pthread_cleanup_push (clean, (void *) &mutex);
-  ret = pthread_mutex_lock (&mutex);
-  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_mutex_lock");
-  while (1)
-    {
-      ret = pthread_cond_wait (&cond, &mutex);
-      CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_cond_wait");
-    }
-  pthread_cleanup_pop (1);
-
-out:
-  return (void *) (uintptr_t) ret;
-}
-
-int
-do_test (void)
-{
-  pthread_t thread;
-  int ret = 0;
-  void *thr_ret = 0;
-  ret = pthread_create (&thread, 0, thr, &thr_ret);
-  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_create");
-
-  puts ("main: Thread created, waiting a bit...");
-  sleep (2);
-
-  puts ("main: Cancelling thread...");
-  ret = pthread_cancel (thread);
-  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_cancel");
-
-  puts ("main: Joining th...");
-  ret = pthread_join (thread, NULL);
-  CHECK_RETURN_VAL_OR_FAIL (ret, "pthread_join");
-
-  if (thr_ret != NULL)
-    return 1;
-
-  puts ("main: Joined thread, done!");
-
-out:
-  return ret;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 5
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond1.c b/nptl/tst-cond1.c
deleted file mode 100644
index 790eaea377..0000000000
--- a/nptl/tst-cond1.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *p)
-{
-  int err;
-
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "child: cannot get mutex");
-
-  puts ("child: got mutex; signalling");
-
-  pthread_cond_signal (&cond);
-
-  puts ("child: unlock");
-
-  err = pthread_mutex_unlock (&mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "child: cannot unlock");
-
-  puts ("child: done");
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-  int err;
-
-  printf ("&cond = %p\n&mut = %p\n", &cond, &mut);
-
-  puts ("parent: get mutex");
-
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "parent: cannot get mutex");
-
-  puts ("parent: create child");
-
-  err = pthread_create (&th, NULL, tf, NULL);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "parent: cannot create thread");
-
-  puts ("parent: wait for condition");
-
-  /* This test will fail on spurious wake-ups, which are allowed; however,
-     the current implementation shouldn't produce spurious wake-ups in the
-     scenario we are testing here.  */
-  err = pthread_cond_wait (&cond, &mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "parent: cannot wait fir signal");
-
-  puts ("parent: got signal");
-
-  err = pthread_join (th, NULL);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "parent: failed to join");
-
-  puts ("done");
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond10.c b/nptl/tst-cond10.c
deleted file mode 100644
index 3176b847d7..0000000000
--- a/nptl/tst-cond10.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <error.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-#define N 10
-#define ROUNDS 100
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t bN1;
-static pthread_barrier_t b2;
-
-
-static void *
-tf (void *p)
-{
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      puts ("child: 1st mutex_lock failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&b2);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_cond_wait (&cond, &mut) != 0)
-    {
-      puts ("child: cond_wait failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&mut) != 0)
-    {
-      puts ("child: mutex_unlock failed");
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&bN1);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: 2nd barrier_wait failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&bN1, NULL, N + 1) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (pthread_barrier_init (&b2, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  pthread_attr_t at;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  int r;
-  for (r = 0; r < ROUNDS; ++r)
-    {
-      printf ("round %d\n", r + 1);
-
-      int i;
-      pthread_t th[N];
-      for (i = 0; i < N; ++i)
-	{
-	  if (pthread_create (&th[i], &at, tf, NULL) != 0)
-	    {
-	      puts ("create failed");
-	      exit (1);
-	    }
-
-	  int e = pthread_barrier_wait (&b2);
-	  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	    {
-	      puts ("parent: 1st barrier_wait failed");
-	      exit (1);
-	    }
-	}
-
-      if (pthread_mutex_lock (&mut) != 0)
-	{
-	  puts ("parent: mutex_lock failed");
-	  exit (1);
-	}
-      if (pthread_mutex_unlock (&mut) != 0)
-	{
-	  puts ("parent: mutex_unlock failed");
-	  exit (1);
-	}
-
-      /* N single signal calls.  Without locking.  This tests that no
-	 signal gets lost.  */
-      for (i = 0; i < N; ++i)
-	if (pthread_cond_signal (&cond) != 0)
-	  {
-	    puts ("cond_signal failed");
-	    exit (1);
-	  }
-
-      int e = pthread_barrier_wait (&bN1);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("parent: 2nd barrier_wait failed");
-	  exit (1);
-	}
-
-      for (i = 0; i < N; ++i)
-	if (pthread_join (th[i], NULL) != 0)
-	  {
-	    puts ("join failed");
-	    exit (1);
-	  }
-    }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond11.c b/nptl/tst-cond11.c
deleted file mode 100644
index 58db7652c2..0000000000
--- a/nptl/tst-cond11.c
+++ /dev/null
@@ -1,204 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-
-
-#if defined _POSIX_CLOCK_SELECTION && _POSIX_CLOCK_SELECTION >= 0
-static int
-run_test (clockid_t cl)
-{
-  pthread_condattr_t condattr;
-  pthread_cond_t cond;
-  pthread_mutexattr_t mutattr;
-  pthread_mutex_t mut;
-
-  printf ("clock = %d\n", (int) cl);
-
-  if (pthread_condattr_init (&condattr) != 0)
-    {
-      puts ("condattr_init failed");
-      return 1;
-    }
-
-  if (pthread_condattr_setclock (&condattr, cl) != 0)
-    {
-      puts ("condattr_setclock failed");
-      return 1;
-    }
-
-  clockid_t cl2;
-  if (pthread_condattr_getclock (&condattr, &cl2) != 0)
-    {
-      puts ("condattr_getclock failed");
-      return 1;
-    }
-  if (cl != cl2)
-    {
-      printf ("condattr_getclock returned wrong value: %d, expected %d\n",
-	      (int) cl2, (int) cl);
-      return 1;
-    }
-
-  if (pthread_cond_init (&cond, &condattr) != 0)
-    {
-      puts ("cond_init failed");
-      return 1;
-    }
-
-  if (pthread_condattr_destroy (&condattr) != 0)
-    {
-      puts ("condattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_init (&mutattr) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_settype (&mutattr, PTHREAD_MUTEX_ERRORCHECK) != 0)
-    {
-      puts ("mutexattr_settype failed");
-      return 1;
-    }
-
-  if (pthread_mutex_init (&mut, &mutattr) != 0)
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&mutattr) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&mut) != EDEADLK)
-    {
-      puts ("2nd mutex_lock did not return EDEADLK");
-      return 1;
-    }
-
-  struct timespec ts;
-  if (clock_gettime (cl, &ts) != 0)
-    {
-      puts ("clock_gettime failed");
-      return 1;
-    }
-
-  /* Wait one second.  */
-  ++ts.tv_sec;
-
-  int e = pthread_cond_timedwait (&cond, &mut, &ts);
-  if (e == 0)
-    {
-      puts ("cond_timedwait succeeded");
-      return 1;
-    }
-  else if (e != ETIMEDOUT)
-    {
-      puts ("cond_timedwait did not return ETIMEDOUT");
-      return 1;
-    }
-
-  struct timespec ts2;
-  if (clock_gettime (cl, &ts2) != 0)
-    {
-      puts ("second clock_gettime failed");
-      return 1;
-    }
-
-  if (ts2.tv_sec < ts.tv_sec
-      || (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec < ts.tv_nsec))
-    {
-      puts ("timeout too short");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&mut) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&mut) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  if (pthread_cond_destroy (&cond) != 0)
-    {
-      puts ("cond_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-#endif
-
-
-static int
-do_test (void)
-{
-#if !defined _POSIX_CLOCK_SELECTION || _POSIX_CLOCK_SELECTION == -1
-
-  puts ("_POSIX_CLOCK_SELECTION not supported, test skipped");
-  return 0;
-
-#else
-
-  int res = run_test (CLOCK_REALTIME);
-
-# if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0
-#  if _POSIX_MONOTONIC_CLOCK == 0
-  int e = sysconf (_SC_MONOTONIC_CLOCK);
-  if (e < 0)
-    puts ("CLOCK_MONOTONIC not supported");
-  else if (e == 0)
-    {
-      puts ("sysconf (_SC_MONOTONIC_CLOCK) must not return 0");
-      res = 1;
-    }
-  else
-#  endif
-    res |= run_test (CLOCK_MONOTONIC);
-# else
-  puts ("_POSIX_MONOTONIC_CLOCK not defined");
-# endif
-
-  return res;
-#endif
-}
-
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond12.c b/nptl/tst-cond12.c
deleted file mode 100644
index 0714b33c49..0000000000
--- a/nptl/tst-cond12.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static char fname[] = "/tmp/tst-cond12-XXXXXX";
-static int fd;
-
-
-static void prepare (void);
-#define PREPARE(argc, argv) prepare ()
-
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-
-#include "../test-skeleton.c"
-
-
-static void
-prepare (void)
-{
-  fd = mkstemp (fname);
-  if (fd == -1)
-    {
-      printf ("mkstemp failed: %m\n");
-      exit (1);
-    }
-  add_temp_file (fname);
-  if (ftruncate (fd, 1000) < 0)
-    {
-      printf ("ftruncate failed: %m\n");
-      exit (1);
-    }
-}
-
-
-static int
-do_test (void)
-{
-  struct
-  {
-    pthread_mutex_t m;
-    pthread_cond_t c;
-    int var;
-  } *p = mmap (NULL, sizeof (*p), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
-  if (p == MAP_FAILED)
-    {
-      printf ("initial mmap failed: %m\n");
-      return 1;
-    }
-
-  pthread_mutexattr_t ma;
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-  if (pthread_mutexattr_setpshared (&ma, 1) != 0)
-    {
-      puts ("mutexattr_setpshared failed");
-      return 1;
-    }
-  if (pthread_mutex_init (&p->m, &ma) != 0)
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-  if (pthread_mutexattr_destroy (&ma) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  pthread_condattr_t ca;
-  if (pthread_condattr_init (&ca) != 0)
-    {
-      puts ("condattr_init failed");
-      return 1;
-    }
-  if (pthread_condattr_setpshared (&ca, 1) != 0)
-    {
-      puts ("condattr_setpshared failed");
-      return 1;
-    }
-  if (pthread_cond_init (&p->c, &ca) != 0)
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-  if (pthread_condattr_destroy (&ca) != 0)
-    {
-      puts ("condattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&p->m) != 0)
-    {
-      puts ("initial mutex_lock failed");
-      return 1;
-    }
-
-  p->var = 42;
-
-  pid_t pid = fork ();
-  if (pid == -1)
-    {
-      printf ("fork failed: %m\n");
-      return 1;
-    }
-
-  if (pid == 0)
-    {
-      void *oldp = p;
-      p = mmap (NULL, sizeof (*p), PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
-
-      if (p == oldp)
-	{
-	  puts ("child: mapped to same address");
-	  kill (getppid (), SIGKILL);
-	  exit (1);
-	}
-
-      munmap (oldp, sizeof (*p));
-
-      if (pthread_mutex_lock (&p->m) != 0)
-	{
-	  puts ("child: mutex_lock failed");
-	  kill (getppid (), SIGKILL);
-	  exit (1);
-	}
-
-      p->var = 0;
-
-#ifndef USE_COND_SIGNAL
-      if (pthread_cond_broadcast (&p->c) != 0)
-	{
-	  puts ("child: cond_broadcast failed");
-	  kill (getppid (), SIGKILL);
-	  exit (1);
-	}
-#else
-      if (pthread_cond_signal (&p->c) != 0)
-	{
-	  puts ("child: cond_signal failed");
-	  kill (getppid (), SIGKILL);
-	  exit (1);
-	}
-#endif
-
-      if (pthread_mutex_unlock (&p->m) != 0)
-	{
-	  puts ("child: mutex_unlock failed");
-	  kill (getppid (), SIGKILL);
-	  exit (1);
-	}
-
-      exit (0);
-    }
-
-  do
-    pthread_cond_wait (&p->c, &p->m);
-  while (p->var != 0);
-
-  if (TEMP_FAILURE_RETRY (waitpid (pid, NULL, 0)) != pid)
-    {
-      printf ("waitpid failed: %m\n");
-      kill (pid, SIGKILL);
-      return 1;
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-cond13.c b/nptl/tst-cond13.c
deleted file mode 100644
index 29d79b533e..0000000000
--- a/nptl/tst-cond13.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define USE_COND_SIGNAL 1
-#include "tst-cond12.c"
diff --git a/nptl/tst-cond14.c b/nptl/tst-cond14.c
deleted file mode 100644
index 065781ba07..0000000000
--- a/nptl/tst-cond14.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-static pthread_mutex_t mut2 = PTHREAD_MUTEX_INITIALIZER;
-
-static void *
-tf (void *p)
-{
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      printf ("%s: 1st mutex_lock failed\n", __func__);
-      exit (1);
-    }
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      printf ("%s: 2nd mutex_lock failed\n", __func__);
-      exit (1);
-    }
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      printf ("%s: 3rd mutex_lock failed\n", __func__);
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&mut2) != 0)
-    {
-      printf ("%s: mutex_unlock failed\n", __func__);
-      exit (1);
-    }
-
-  if (pthread_cond_wait (&cond, &mut) != 0)
-    {
-      printf ("%s: cond_wait failed\n", __func__);
-      exit (1);
-    }
-
-  puts ("child: done");
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_mutex_lock (&mut2) != 0)
-    {
-      puts ("1st mutex_lock failed");
-      return 1;
-    }
-
-  puts ("parent: create child");
-
-  pthread_t th;
-  int err = pthread_create (&th, NULL, tf, NULL);
-  if (err != 0)
-    {
-      printf ("parent: cannot create thread: %s\n", strerror (err));
-      return 1;
-    }
-
-  /* We have to synchronize with the child.  */
-  if (pthread_mutex_lock (&mut2) != 0)
-    {
-      puts ("2nd mutex_lock failed");
-      return 1;
-    }
-
-  /* Give the child to reach to pthread_cond_wait.  */
-  sleep (1);
-
-  if (pthread_cond_signal (&cond) != 0)
-    {
-      puts ("cond_signal failed");
-      return 1;
-    }
-
-  err = pthread_join (th, NULL);
-  if (err != 0)
-    {
-      printf ("parent: failed to join: %s\n", strerror (err));
-      return 1;
-    }
-
-  puts ("done");
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 3
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond15.c b/nptl/tst-cond15.c
deleted file mode 100644
index b41bd6926a..0000000000
--- a/nptl/tst-cond15.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-static pthread_mutex_t mut2 = PTHREAD_MUTEX_INITIALIZER;
-
-static void *
-tf (void *p)
-{
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      printf ("%s: 1st mutex_lock failed\n", __func__);
-      exit (1);
-    }
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      printf ("%s: 2nd mutex_lock failed\n", __func__);
-      exit (1);
-    }
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      printf ("%s: 3rd mutex_lock failed\n", __func__);
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&mut2) != 0)
-    {
-      printf ("%s: mutex_unlock failed\n", __func__);
-      exit (1);
-    }
-
-  struct timeval tv;
-  gettimeofday (&tv, NULL);
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_sec += p == NULL ? 100 : 1;
-
-  int err = pthread_cond_timedwait (&cond, &mut, &ts);
-  if ((err != 0 && p == NULL) || (err != ETIMEDOUT && p != NULL))
-    {
-      printf ("%s: cond_wait failed\n", __func__);
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&mut) != 0)
-    {
-      printf ("%s: 1st mutex_unlock failed\n", __func__);
-      exit (1);
-    }
-  if (pthread_mutex_unlock (&mut) != 0)
-    {
-      printf ("%s: 2nd mutex_unlock failed\n", __func__);
-      exit (1);
-    }
-  if (pthread_mutex_unlock (&mut) != 0)
-    {
-      printf ("%s: 3rd mutex_unlock failed\n", __func__);
-      exit (1);
-    }
-
-  puts ("child: done");
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_mutex_lock (&mut2) != 0)
-    {
-      puts ("1st mutex_lock failed");
-      return 1;
-    }
-
-  puts ("parent: create 1st child");
-
-  pthread_t th;
-  int err = pthread_create (&th, NULL, tf, NULL);
-  if (err != 0)
-    {
-      printf ("parent: cannot 1st create thread: %s\n", strerror (err));
-      return 1;
-    }
-
-  /* We have to synchronize with the child.  */
-  if (pthread_mutex_lock (&mut2) != 0)
-    {
-      puts ("2nd mutex_lock failed");
-      return 1;
-    }
-
-  /* Give the child to reach to pthread_cond_wait.  */
-  sleep (1);
-
-  if (pthread_cond_signal (&cond) != 0)
-    {
-      puts ("cond_signal failed");
-      return 1;
-    }
-
-  err = pthread_join (th, NULL);
-  if (err != 0)
-    {
-      printf ("parent: failed to join: %s\n", strerror (err));
-      return 1;
-    }
-
-
-  puts ("parent: create 2nd child");
-
-  err = pthread_create (&th, NULL, tf, (void *) 1l);
-  if (err != 0)
-    {
-      printf ("parent: cannot 2nd create thread: %s\n", strerror (err));
-      return 1;
-    }
-
-  err = pthread_join (th, NULL);
-  if (err != 0)
-    {
-      printf ("parent: failed to join: %s\n", strerror (err));
-      return 1;
-    }
-
-  puts ("done");
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 6
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond16.c b/nptl/tst-cond16.c
deleted file mode 100644
index 032677adcc..0000000000
--- a/nptl/tst-cond16.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-pthread_cond_t cv = PTHREAD_COND_INITIALIZER;
-pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-bool n, exiting;
-FILE *f;
-int count;
-
-void *
-tf (void *dummy)
-{
-  bool loop = true;
-
-  while (loop)
-    {
-      pthread_mutex_lock (&lock);
-      while (n && !exiting)
-	pthread_cond_wait (&cv, &lock);
-      n = true;
-      pthread_mutex_unlock (&lock);
-
-      fputs (".", f);
-
-      pthread_mutex_lock (&lock);
-      n = false;
-      if (exiting)
-	loop = false;
-#ifdef UNLOCK_AFTER_BROADCAST
-      pthread_cond_broadcast (&cv);
-      pthread_mutex_unlock (&lock);
-#else
-      pthread_mutex_unlock (&lock);
-      pthread_cond_broadcast (&cv);
-#endif
-    }
-
-  return NULL;
-}
-
-int
-do_test (void)
-{
-  f = fopen ("/dev/null", "w");
-  if (f == NULL)
-    {
-      printf ("couldn't open /dev/null, %m\n");
-      return 1;
-    }
-
-  count = sysconf (_SC_NPROCESSORS_ONLN);
-  if (count <= 0)
-    count = 1;
-  count *= 4;
-
-  pthread_t th[count];
-  pthread_attr_t attr;
-  int i, ret, sz;
-  pthread_attr_init (&attr);
-  sz = sysconf (_SC_PAGESIZE);
-  if (sz < PTHREAD_STACK_MIN)
-	  sz = PTHREAD_STACK_MIN;
-  pthread_attr_setstacksize (&attr, sz);
-  for (i = 0; i < count; ++i)
-    if ((ret = pthread_create (&th[i], &attr, tf, NULL)) != 0)
-      {
-	errno = ret;
-	printf ("pthread_create %d failed: %m\n", i);
-	return 1;
-      }
-
-  struct timespec ts = { .tv_sec = 20, .tv_nsec = 0 };
-  while (nanosleep (&ts, &ts) != 0);
-
-  pthread_mutex_lock (&lock);
-  exiting = true;
-  pthread_mutex_unlock (&lock);
-
-  for (i = 0; i < count; ++i)
-    pthread_join (th[i], NULL);
-
-  fclose (f);
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 40
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond17.c b/nptl/tst-cond17.c
deleted file mode 100644
index 0586fa59ac..0000000000
--- a/nptl/tst-cond17.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define UNLOCK_AFTER_BROADCAST 1
-#include "tst-cond16.c"
diff --git a/nptl/tst-cond18.c b/nptl/tst-cond18.c
deleted file mode 100644
index 187f3af1df..0000000000
--- a/nptl/tst-cond18.c
+++ /dev/null
@@ -1,123 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <unistd.h>
-
-pthread_cond_t cv = PTHREAD_COND_INITIALIZER;
-pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-bool exiting;
-int fd, count, spins, nn;
-
-void *
-tf (void *id)
-{
-  pthread_mutex_lock (&lock);
-
-  if ((long) id == 0)
-    {
-      while (!exiting)
-	{
-	  if ((spins++ % 1000) == 0)
-	    write (fd, ".", 1);
-	  pthread_mutex_unlock (&lock);
-
-	  pthread_mutex_lock (&lock);
-	  int njobs = rand () % (count + 1);
-	  nn = njobs;
-	  if ((rand () % 30) == 0)
-	    pthread_cond_broadcast (&cv);
-	  else
-	    while (njobs--)
-	      pthread_cond_signal (&cv);
-	}
-
-      pthread_cond_broadcast (&cv);
-    }
-  else
-    {
-      while (!exiting)
-	{
-	  while (!nn && !exiting)
-	    pthread_cond_wait (&cv, &lock);
-	  --nn;
-	  pthread_mutex_unlock (&lock);
-
-	  pthread_mutex_lock (&lock);
-	}
-    }
-
-  pthread_mutex_unlock (&lock);
-  return NULL;
-}
-
-int
-do_test (void)
-{
-  fd = open ("/dev/null", O_WRONLY);
-  if (fd < 0)
-    {
-      printf ("couldn't open /dev/null, %m\n");
-      return 1;
-    }
-
-  count = sysconf (_SC_NPROCESSORS_ONLN);
-  if (count <= 0)
-    count = 1;
-  count *= 8;
-
-  pthread_t th[count + 1];
-  pthread_attr_t attr;
-  int i, ret, sz;
-  pthread_attr_init (&attr);
-  sz = sysconf (_SC_PAGESIZE);
-  if (sz < PTHREAD_STACK_MIN)
-	  sz = PTHREAD_STACK_MIN;
-  pthread_attr_setstacksize (&attr, sz);
-
-  for (i = 0; i <= count; ++i)
-    if ((ret = pthread_create (&th[i], &attr, tf, (void *) (long) i)) != 0)
-      {
-	errno = ret;
-	printf ("pthread_create %d failed: %m\n", i);
-	return 1;
-      }
-
-  struct timespec ts = { .tv_sec = 20, .tv_nsec = 0 };
-  while (nanosleep (&ts, &ts) != 0);
-
-  pthread_mutex_lock (&lock);
-  exiting = true;
-  pthread_mutex_unlock (&lock);
-
-  for (i = 0; i < count; ++i)
-    pthread_join (th[i], NULL);
-
-  close (fd);
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 40
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond19.c b/nptl/tst-cond19.c
deleted file mode 100644
index 9fee6bfdc8..0000000000
--- a/nptl/tst-cond19.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-
-static int
-do_test (void)
-{
-  int result = 0;
-  struct timespec ts;
-
-  if (clock_gettime (CLOCK_REALTIME, &ts) != 0)
-    {
-      puts ("clock_gettime failed");
-      return 1;
-    }
-
-  ts.tv_nsec = -1;
-
-  int e = pthread_cond_timedwait (&cond, &mut, &ts);
-  if (e == 0)
-    {
-      puts ("first cond_timedwait did not fail");
-      result = 1;
-    }
-  else if (e != EINVAL)
-    {
-      puts ("first cond_timedwait did not return EINVAL");
-      result = 1;
-    }
-
-  ts.tv_nsec = 2000000000;
-
-  e = pthread_cond_timedwait (&cond, &mut, &ts);
-  if (e == 0)
-    {
-      puts ("second cond_timedwait did not fail");
-      result = 1;
-    }
-  else if (e != EINVAL)
-    {
-      puts ("second cond_timedwait did not return EINVAL");
-      result = 1;
-    }
-
-  return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond2.c b/nptl/tst-cond2.c
deleted file mode 100644
index 29f47cd7dd..0000000000
--- a/nptl/tst-cond2.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-static pthread_barrier_t bar;
-
-
-static void *
-tf (void *a)
-{
-  int i = (long int) a;
-  int err;
-
-  printf ("child %d: lock\n", i);
-
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "locking in child failed");
-
-  printf ("child %d: sync\n", i);
-
-  int e = pthread_barrier_wait (&bar);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: barrier_wait failed");
-      exit (1);
-    }
-
-  printf ("child %d: wait\n", i);
-
-  err = pthread_cond_wait (&cond, &mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "child %d: failed to wait", i);
-
-  printf ("child %d: woken up\n", i);
-
-  err = pthread_mutex_unlock (&mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "child %d: unlock[2] failed", i);
-
-  printf ("child %d: done\n", i);
-
-  return NULL;
-}
-
-
-#define N 10
-
-
-static int
-do_test (void)
-{
-  pthread_t th[N];
-  int i;
-  int err;
-
-  printf ("&cond = %p\n&mut = %p\n", &cond, &mut);
-
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  pthread_attr_t at;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  for (i = 0; i < N; ++i)
-    {
-      printf ("create thread %d\n", i);
-
-      err = pthread_create (&th[i], &at, tf, (void *) (long int) i);
-      if (err != 0)
-	error (EXIT_FAILURE, err, "cannot create thread %d", i);
-
-      printf ("wait for child %d\n", i);
-
-      /* Wait for the child to start up and get the mutex for the
-	 conditional variable.  */
-      int e = pthread_barrier_wait (&bar);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("barrier_wait failed");
-	  exit (1);
-	}
-    }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  puts ("get lock outselves");
-
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "mut locking failed");
-
-  puts ("broadcast");
-
-  /* Wake up all threads.  */
-  err = pthread_cond_broadcast (&cond);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "parent: broadcast failed");
-
-  err = pthread_mutex_unlock (&mut);
-  if (err != 0)
-    error (EXIT_FAILURE, err, "mut unlocking failed");
-
-  /* Join all threads.  */
-  for (i = 0; i < N; ++i)
-    {
-      printf ("join thread %d\n", i);
-
-      err = pthread_join (th[i], NULL);
-      if (err != 0)
-	error (EXIT_FAILURE, err, "join of child %d failed", i);
-    }
-
-  puts ("done");
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond20.c b/nptl/tst-cond20.c
deleted file mode 100644
index ad9d6c34f3..0000000000
--- a/nptl/tst-cond20.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#define N 10
-#define ROUNDS 1000
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_cond_t cond2 = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t b;
-static int count;
-
-static void *
-tf (void *p)
-{
-  int i;
-  for (i = 0; i < ROUNDS; ++i)
-    {
-      pthread_mutex_lock (&mut);
-
-      if (++count == N)
-	pthread_cond_signal (&cond2);
-
-#ifdef TIMED
-      struct timeval tv;
-      gettimeofday (&tv, NULL);
-      struct timespec ts;
-      /* Wait three seconds.  */
-      ts.tv_sec = tv.tv_sec + 3;
-      ts.tv_nsec = tv.tv_usec * 1000;
-      pthread_cond_timedwait (&cond, &mut, &ts);
-#else
-      pthread_cond_wait (&cond, &mut);
-#endif
-
-      pthread_mutex_unlock (&mut);
-
-      int err = pthread_barrier_wait (&b);
-      if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("child: barrier_wait failed");
-	  exit (1);
-	}
-
-      err = pthread_barrier_wait (&b);
-      if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("child: barrier_wait failed");
-	  exit (1);
-	}
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&b, NULL, N + 1) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  pthread_mutex_lock (&mut);
-
-  int i, j, err;
-  pthread_t th[N];
-  for (i = 0; i < N; ++i)
-    if ((err = pthread_create (&th[i], NULL, tf, NULL)) != 0)
-      {
-	printf ("cannot create thread %d: %s\n", i, strerror (err));
-	return 1;
-      }
-
-  for (i = 0; i < ROUNDS; ++i)
-    {
-      /* Make sure we discard spurious wake-ups.  */
-      do
-	pthread_cond_wait (&cond2, &mut);
-      while (count != N);
-
-      if (i & 1)
-        pthread_mutex_unlock (&mut);
-
-      if (i & 2)
-	pthread_cond_broadcast (&cond);
-      else if (i & 4)
-	for (j = 0; j < N; ++j)
-	  pthread_cond_signal (&cond);
-      else
-	{
-	  for (j = 0; j < (i / 8) % N; ++j)
-	    pthread_cond_signal (&cond);
-	  pthread_cond_broadcast (&cond);
-	}
-
-      if ((i & 1) == 0)
-        pthread_mutex_unlock (&mut);
-
-      err = pthread_cond_destroy (&cond);
-      if (err)
-	{
-	  printf ("pthread_cond_destroy failed: %s\n", strerror (err));
-	  return 1;
-	}
-
-      /* Now clobber the cond variable which has been successfully
-         destroyed above.  */
-      memset (&cond, (char) i, sizeof (cond));
-
-      err = pthread_barrier_wait (&b);
-      if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("parent: barrier_wait failed");
-	  return 1;
-	}
-
-      pthread_mutex_lock (&mut);
-
-      err = pthread_barrier_wait (&b);
-      if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("parent: barrier_wait failed");
-	  return 1;
-	}
-
-      count = 0;
-      err = pthread_cond_init (&cond, NULL);
-      if (err)
-	{
-	  printf ("pthread_cond_init failed: %s\n", strerror (err));
-	  return 1;
-	}
-    }
-
-  for (i = 0; i < N; ++i)
-    if ((err = pthread_join (th[i], NULL)) != 0)
-      {
-	printf ("failed to join thread %d: %s\n", i, strerror (err));
-	return 1;
-      }
-
-  puts ("done");
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond21.c b/nptl/tst-cond21.c
deleted file mode 100644
index 89cb771b57..0000000000
--- a/nptl/tst-cond21.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include <sys/time.h>
-#define TIMED 1
-#include "tst-cond20.c"
diff --git a/nptl/tst-cond22.c b/nptl/tst-cond22.c
deleted file mode 100644
index 64f19ea0a5..0000000000
--- a/nptl/tst-cond22.c
+++ /dev/null
@@ -1,162 +0,0 @@
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t b;
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void
-cl (void *arg)
-{
-  pthread_mutex_unlock (&m);
-}
-
-
-static void *
-tf (void *arg)
-{
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      printf ("%s: mutex_lock failed\n", __func__);
-      exit (1);
-    }
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("%s: barrier_wait failed\n", __func__);
-      exit (1);
-    }
-  pthread_cleanup_push (cl, NULL);
-  /* We have to loop here because the cancellation might come after
-     the cond_wait call left the cancelable area and is then waiting
-     on the mutex.  In this case the beginning of the second cond_wait
-     call will cause the cancellation to happen.  */
-  do
-    if (pthread_cond_wait (&c, &m) != 0)
-      {
-	printf ("%s: cond_wait failed\n", __func__);
-	exit (1);
-      }
-  while (arg == NULL);
-  pthread_cleanup_pop (0);
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      printf ("%s: mutex_unlock failed\n", __func__);
-      exit (1);
-    }
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  int status = 0;
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("1st create failed");
-      return 1;
-    }
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("1st barrier_wait failed");
-      return 1;
-    }
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("1st mutex_lock failed");
-      return 1;
-    }
-  if (pthread_cond_signal (&c) != 0)
-    {
-      puts ("1st cond_signal failed");
-      return 1;
-    }
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("1st mutex_unlock failed");
-      return 1;
-    }
-  void *res;
-  if (pthread_join (th, &res) != 0)
-    {
-      puts ("1st join failed");
-      return 1;
-    }
-  if (res != PTHREAD_CANCELED)
-    {
-      puts ("first thread not canceled");
-      status = 1;
-    }
-
-  printf ("cond = { %llu, %llu, %u/%u/%u, %u/%u/%u, %u, %u }\n",
-	  c.__data.__wseq, c.__data.__g1_start,
-	  c.__data.__g_signals[0], c.__data.__g_refs[0], c.__data.__g_size[0],
-	  c.__data.__g_signals[1], c.__data.__g_refs[1], c.__data.__g_size[1],
-	  c.__data.__g1_orig_size, c.__data.__wrefs);
-
-  if (pthread_create (&th, NULL, tf, (void *) 1l) != 0)
-    {
-      puts ("2nd create failed");
-      return 1;
-    }
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("2nd barrier_wait failed");
-      return 1;
-    }
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("2nd mutex_lock failed");
-      return 1;
-    }
-  if (pthread_cond_signal (&c) != 0)
-    {
-      puts ("2nd cond_signal failed");
-      return 1;
-    }
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("2nd mutex_unlock failed");
-      return 1;
-    }
-  if (pthread_join (th, &res) != 0)
-    {
-      puts ("2nd join failed");
-      return 1;
-    }
-  if (res != NULL)
-    {
-      puts ("2nd thread canceled");
-      status = 1;
-    }
-
-  printf ("cond = { %llu, %llu, %u/%u/%u, %u/%u/%u, %u, %u }\n",
-	  c.__data.__wseq, c.__data.__g1_start,
-	  c.__data.__g_signals[0], c.__data.__g_refs[0], c.__data.__g_size[0],
-	  c.__data.__g_signals[1], c.__data.__g_refs[1], c.__data.__g_size[1],
-	  c.__data.__g1_orig_size, c.__data.__wrefs);
-
-  return status;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond23.c b/nptl/tst-cond23.c
deleted file mode 100644
index 7ce4564841..0000000000
--- a/nptl/tst-cond23.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (C) 2008-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2008.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-
-
-#if defined _POSIX_CLOCK_SELECTION && _POSIX_CLOCK_SELECTION >= 0
-static int
-check (pthread_condattr_t *condattr, int pshared, clockid_t cl)
-{
-  clockid_t cl2;
-  if (pthread_condattr_getclock (condattr, &cl2) != 0)
-    {
-      puts ("condattr_getclock failed");
-      return 1;
-    }
-  if (cl != cl2)
-    {
-      printf ("condattr_getclock returned wrong value: %d, expected %d\n",
-	      (int) cl2, (int) cl);
-      return 1;
-    }
-
-  int p;
-  if (pthread_condattr_getpshared (condattr, &p) != 0)
-    {
-      puts ("condattr_getpshared failed");
-      return 1;
-    }
-  else if (p != pshared)
-    {
-      printf ("condattr_getpshared returned wrong value: %d, expected %d\n",
-	      p, pshared);
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-run_test (clockid_t cl)
-{
-  pthread_condattr_t condattr;
-
-  printf ("clock = %d\n", (int) cl);
-
-  if (pthread_condattr_init (&condattr) != 0)
-    {
-      puts ("condattr_init failed");
-      return 1;
-    }
-
-  if (check (&condattr, PTHREAD_PROCESS_PRIVATE, CLOCK_REALTIME))
-    return 1;
-
-  if (pthread_condattr_setpshared (&condattr, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("1st condattr_setpshared failed");
-      return 1;
-    }
-
-  if (check (&condattr, PTHREAD_PROCESS_SHARED, CLOCK_REALTIME))
-    return 1;
-
-  if (pthread_condattr_setclock (&condattr, cl) != 0)
-    {
-      puts ("1st condattr_setclock failed");
-      return 1;
-    }
-
-  if (check (&condattr, PTHREAD_PROCESS_SHARED, cl))
-    return 1;
-
-  if (pthread_condattr_setpshared (&condattr, PTHREAD_PROCESS_PRIVATE) != 0)
-    {
-      puts ("2nd condattr_setpshared failed");
-      return 1;
-    }
-
-  if (check (&condattr, PTHREAD_PROCESS_PRIVATE, cl))
-    return 1;
-
-  if (pthread_condattr_setclock (&condattr, CLOCK_REALTIME) != 0)
-    {
-      puts ("2nd condattr_setclock failed");
-      return 1;
-    }
-
-  if (check (&condattr, PTHREAD_PROCESS_PRIVATE, CLOCK_REALTIME))
-    return 1;
-
-  if (pthread_condattr_setclock (&condattr, cl) != 0)
-    {
-      puts ("3rd condattr_setclock failed");
-      return 1;
-    }
-
-  if (check (&condattr, PTHREAD_PROCESS_PRIVATE, cl))
-    return 1;
-
-  if (pthread_condattr_setpshared (&condattr, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("3rd condattr_setpshared failed");
-      return 1;
-    }
-
-  if (check (&condattr, PTHREAD_PROCESS_SHARED, cl))
-    return 1;
-
-  if (pthread_condattr_setclock (&condattr, CLOCK_REALTIME) != 0)
-    {
-      puts ("4th condattr_setclock failed");
-      return 1;
-    }
-
-  if (check (&condattr, PTHREAD_PROCESS_SHARED, CLOCK_REALTIME))
-    return 1;
-
-  if (pthread_condattr_destroy (&condattr) != 0)
-    {
-      puts ("condattr_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-#endif
-
-
-static int
-do_test (void)
-{
-#if !defined _POSIX_CLOCK_SELECTION || _POSIX_CLOCK_SELECTION == -1
-
-  puts ("_POSIX_CLOCK_SELECTION not supported, test skipped");
-  return 0;
-
-#else
-
-  int res = run_test (CLOCK_REALTIME);
-
-# if defined _POSIX_MONOTONIC_CLOCK && _POSIX_MONOTONIC_CLOCK >= 0
-#  if _POSIX_MONOTONIC_CLOCK == 0
-  int e = sysconf (_SC_MONOTONIC_CLOCK);
-  if (e < 0)
-    puts ("CLOCK_MONOTONIC not supported");
-  else if (e == 0)
-    {
-      puts ("sysconf (_SC_MONOTONIC_CLOCK) must not return 0");
-      res = 1;
-    }
-  else
-#  endif
-    res |= run_test (CLOCK_MONOTONIC);
-# else
-  puts ("_POSIX_MONOTONIC_CLOCK not defined");
-# endif
-
-  return res;
-#endif
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond24.c b/nptl/tst-cond24.c
deleted file mode 100644
index 93be2b0977..0000000000
--- a/nptl/tst-cond24.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/* Verify that condition variables synchronized by PI mutexes don't hang.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <time.h>
-
-#define THREADS_NUM 5
-#define MAXITER 50000
-
-static pthread_mutex_t mutex;
-static pthread_mutexattr_t mutex_attr;
-static pthread_cond_t cond;
-static pthread_t threads[THREADS_NUM];
-static int pending = 0;
-
-typedef void * (*threadfunc) (void *);
-
-void *
-thread_fun_timed (void *arg)
-{
-  int *ret = arg;
-  int rv, i;
-
-  printf ("Started thread_fun_timed[%d]\n", *ret);
-
-  for (i = 0; i < MAXITER / THREADS_NUM; i++)
-    {
-      rv = pthread_mutex_lock (&mutex);
-      if (rv)
-        {
-	  printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
-	  *ret = 1;
-	  goto out;
-	}
-
-      while (!pending)
-	{
-	  struct timespec ts;
-	  clock_gettime(CLOCK_REALTIME, &ts);
-	  ts.tv_sec += 20;
-	  rv = pthread_cond_timedwait (&cond, &mutex, &ts);
-
-	  /* There should be no timeout either.  */
-	  if (rv)
-            {
-	      printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv);
-	      *ret = 1;
-	      goto out;
-	    }
-	}
-
-      pending--;
-
-      rv = pthread_mutex_unlock (&mutex);
-      if (rv)
-        {
-	  printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
-	  *ret = 1;
-	  goto out;
-	}
-    }
-
-  *ret = 0;
-
-out:
-  return ret;
-}
-
-void *
-thread_fun (void *arg)
-{
-  int *ret = arg;
-  int rv, i;
-
-  printf ("Started thread_fun[%d]\n", *ret);
-
-  for (i = 0; i < MAXITER / THREADS_NUM; i++)
-    {
-      rv = pthread_mutex_lock (&mutex);
-      if (rv)
-        {
-	  printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
-	  *ret = 1;
-	  goto out;
-	}
-
-      while (!pending)
-	{
-	  rv = pthread_cond_wait (&cond, &mutex);
-
-	  if (rv)
-            {
-	      printf ("pthread_cond_wait: %s(%d)\n", strerror (rv), rv);
-	      *ret = 1;
-	      goto out;
-	    }
-	}
-
-      pending--;
-
-      rv = pthread_mutex_unlock (&mutex);
-      if (rv)
-        {
-	  printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
-	  *ret = 1;
-	  goto out;
-	}
-    }
-
-  *ret = 0;
-
-out:
-  return ret;
-}
-
-static int
-do_test_wait (threadfunc f)
-{
-  int i;
-  int rv;
-  int counter = 0;
-  int retval[THREADS_NUM];
-
-  puts ("Starting test");
-
-  rv = pthread_mutexattr_init (&mutex_attr);
-  if (rv)
-    {
-      printf ("pthread_mutexattr_init: %s(%d)\n", strerror (rv), rv);
-      return 1;
-    }
-
-  rv = pthread_mutexattr_setprotocol (&mutex_attr, PTHREAD_PRIO_INHERIT);
-  if (rv)
-    {
-      printf ("pthread_mutexattr_setprotocol: %s(%d)\n", strerror (rv), rv);
-      return 1;
-    }
-
-  rv = pthread_mutex_init (&mutex, &mutex_attr);
-  if (rv)
-    {
-      printf ("pthread_mutex_init: %s(%d)\n", strerror (rv), rv);
-      return 1;
-    }
-
-  rv = pthread_cond_init (&cond, NULL);
-  if (rv)
-    {
-      printf ("pthread_cond_init: %s(%d)\n", strerror (rv), rv);
-      return 1;
-    }
-
-  for (i = 0; i < THREADS_NUM; i++)
-    {
-      retval[i] = i;
-      rv = pthread_create (&threads[i], NULL, f, &retval[i]);
-      if (rv)
-        {
-          printf ("pthread_create: %s(%d)\n", strerror (rv), rv);
-          return 1;
-        }
-    }
-
-  for (; counter < MAXITER; counter++)
-    {
-      rv = pthread_mutex_lock (&mutex);
-      if (rv)
-        {
-          printf ("pthread_mutex_lock: %s(%d)\n", strerror (rv), rv);
-          return 1;
-        }
-
-      if (!(counter % 100))
-	printf ("counter: %d\n", counter);
-      pending += 1;
-
-      rv = pthread_cond_signal (&cond);
-      if (rv)
-        {
-          printf ("pthread_cond_signal: %s(%d)\n", strerror (rv), rv);
-          return 1;
-        }
-
-      rv = pthread_mutex_unlock (&mutex);
-      if (rv)
-        {
-          printf ("pthread_mutex_unlock: %s(%d)\n", strerror (rv), rv);
-          return 1;
-        }
-    }
-
-  for (i = 0; i < THREADS_NUM; i++)
-    {
-      void *ret;
-      rv = pthread_join (threads[i], &ret);
-      if (rv)
-        {
-          printf ("pthread_join: %s(%d)\n", strerror (rv), rv);
-          return 1;
-        }
-      if (ret && *(int *)ret)
-        {
-	  printf ("Thread %d returned with an error\n", i);
-	  return 1;
-	}
-    }
-
-  return 0;
-}
-
-static int
-do_test (void)
-{
-  puts ("Testing pthread_cond_wait");
-  int ret = do_test_wait (thread_fun);
-  if (ret)
-    return ret;
-
-  puts ("Testing pthread_cond_timedwait");
-  return do_test_wait (thread_fun_timed);
-}
-
-#define TIMEOUT 20
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond25.c b/nptl/tst-cond25.c
deleted file mode 100644
index 5dfd3845fd..0000000000
--- a/nptl/tst-cond25.c
+++ /dev/null
@@ -1,289 +0,0 @@
-/* Verify that condition variables synchronized by PI mutexes don't hang on
-   on cancellation.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/syscall.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <time.h>
-
-#define NUM 5
-#define ITERS 10000
-#define COUNT 100
-
-typedef void *(*thr_func) (void *);
-
-pthread_mutex_t mutex;
-pthread_cond_t cond;
-
-void cleanup (void *u)
-{
-  /* pthread_cond_wait should always return with the mutex locked.  The
-     pthread_mutex_unlock implementation does not actually check whether we
-     own the mutex for several mutex kinds, so check this explicitly.  */
-  int ret = pthread_mutex_trylock (&mutex);
-  if (ret != EDEADLK && ret != EBUSY)
-    {
-      printf ("mutex not locked in cleanup %d\n", ret);
-      abort ();
-    }
-  if (pthread_mutex_unlock (&mutex))
-    abort ();
-}
-
-void *
-signaller (void *u)
-{
-  int i, ret = 0;
-  void *tret = NULL;
-
-  for (i = 0; i < ITERS; i++)
-    {
-      if ((ret = pthread_mutex_lock (&mutex)) != 0)
-        {
-	  tret = (void *)1;
-	  printf ("signaller:mutex_lock failed: %s\n", strerror (ret));
-	  goto out;
-	}
-      if ((ret = pthread_cond_signal (&cond)) != 0)
-        {
-	  tret = (void *)1;
-	  printf ("signaller:signal failed: %s\n", strerror (ret));
-	  goto unlock_out;
-	}
-      if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-        {
-	  tret = (void *)1;
-	  printf ("signaller:mutex_unlock failed: %s\n", strerror (ret));
-	  goto out;
-	}
-      pthread_testcancel ();
-    }
-
-out:
-  return tret;
-
-unlock_out:
-  if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-    printf ("signaller:mutex_unlock[2] failed: %s\n", strerror (ret));
-  goto out;
-}
-
-void *
-waiter (void *u)
-{
-  int i, ret = 0;
-  void *tret = NULL;
-  int seq = (uintptr_t) u;
-
-  for (i = 0; i < ITERS / NUM; i++)
-    {
-      if ((ret = pthread_mutex_lock (&mutex)) != 0)
-        {
-	  tret = (void *) (uintptr_t) 1;
-	  printf ("waiter[%u]:mutex_lock failed: %s\n", seq, strerror (ret));
-	  goto out;
-	}
-      pthread_cleanup_push (cleanup, NULL);
-
-      if ((ret = pthread_cond_wait (&cond, &mutex)) != 0)
-        {
-	  tret = (void *) (uintptr_t) 1;
-	  printf ("waiter[%u]:wait failed: %s\n", seq, strerror (ret));
-	  goto unlock_out;
-	}
-
-      if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-        {
-	  tret = (void *) (uintptr_t) 1;
-	  printf ("waiter[%u]:mutex_unlock failed: %s\n", seq, strerror (ret));
-	  goto out;
-	}
-      pthread_cleanup_pop (0);
-    }
-
-out:
-  puts ("waiter tests done");
-  return tret;
-
-unlock_out:
-  if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-    printf ("waiter:mutex_unlock[2] failed: %s\n", strerror (ret));
-  goto out;
-}
-
-void *
-timed_waiter (void *u)
-{
-  int i, ret;
-  void *tret = NULL;
-  int seq = (uintptr_t) u;
-
-  for (i = 0; i < ITERS / NUM; i++)
-    {
-      struct timespec ts;
-
-      if ((ret = clock_gettime(CLOCK_REALTIME, &ts)) != 0)
-        {
-	  tret = (void *) (uintptr_t) 1;
-	  printf ("%u:clock_gettime failed: %s\n", seq, strerror (errno));
-	  goto out;
-	}
-      ts.tv_sec += 20;
-
-      if ((ret = pthread_mutex_lock (&mutex)) != 0)
-        {
-	  tret = (void *) (uintptr_t) 1;
-	  printf ("waiter[%u]:mutex_lock failed: %s\n", seq, strerror (ret));
-	  goto out;
-	}
-      pthread_cleanup_push (cleanup, NULL);
-
-      /* We should not time out either.  */
-      if ((ret = pthread_cond_timedwait (&cond, &mutex, &ts)) != 0)
-        {
-	  tret = (void *) (uintptr_t) 1;
-	  printf ("waiter[%u]:timedwait failed: %s\n", seq, strerror (ret));
-	  goto unlock_out;
-	}
-      if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-        {
-	  tret = (void *) (uintptr_t) 1;
-	  printf ("waiter[%u]:mutex_unlock failed: %s\n", seq, strerror (ret));
-	  goto out;
-	}
-      pthread_cleanup_pop (0);
-    }
-
-out:
-  puts ("timed_waiter tests done");
-  return tret;
-
-unlock_out:
-  if ((ret = pthread_mutex_unlock (&mutex)) != 0)
-    printf ("waiter[%u]:mutex_unlock[2] failed: %s\n", seq, strerror (ret));
-  goto out;
-}
-
-int
-do_test_wait (thr_func f)
-{
-  pthread_t w[NUM];
-  pthread_t s;
-  pthread_mutexattr_t attr;
-  int i, j, ret = 0;
-  void *thr_ret;
-
-  for (i = 0; i < COUNT; i++)
-    {
-      if ((ret = pthread_mutexattr_init (&attr)) != 0)
-        {
-	  printf ("mutexattr_init failed: %s\n", strerror (ret));
-	  goto out;
-	}
-
-      if ((ret = pthread_mutexattr_setprotocol (&attr,
-                                                PTHREAD_PRIO_INHERIT)) != 0)
-        {
-	  printf ("mutexattr_setprotocol failed: %s\n", strerror (ret));
-	  goto out;
-	}
-
-      if ((ret = pthread_cond_init (&cond, NULL)) != 0)
-        {
-	  printf ("cond_init failed: %s\n", strerror (ret));
-	  goto out;
-	}
-
-      if ((ret = pthread_mutex_init (&mutex, &attr)) != 0)
-        {
-	  printf ("mutex_init failed: %s\n", strerror (ret));
-	  goto out;
-	}
-
-      for (j = 0; j < NUM; j++)
-        if ((ret = pthread_create (&w[j], NULL,
-                                   f, (void *) (uintptr_t) j)) != 0)
-	  {
-	    printf ("waiter[%d]: create failed: %s\n", j, strerror (ret));
-	    goto out;
-	  }
-
-      if ((ret = pthread_create (&s, NULL, signaller, NULL)) != 0)
-        {
-	  printf ("signaller: create failed: %s\n", strerror (ret));
-	  goto out;
-	}
-
-      for (j = 0; j < NUM; j++)
-        {
-          pthread_cancel (w[j]);
-
-          if ((ret = pthread_join (w[j], &thr_ret)) != 0)
-	    {
-	      printf ("waiter[%d]: join failed: %s\n", j, strerror (ret));
-	      goto out;
-	    }
-
-          if (thr_ret != NULL && thr_ret != PTHREAD_CANCELED)
-	    {
-	      ret = 1;
-	      goto out;
-	    }
-        }
-
-      /* The signalling thread could have ended before it was cancelled.  */
-      pthread_cancel (s);
-
-      if ((ret = pthread_join (s, &thr_ret)) != 0)
-        {
-	  printf ("signaller: join failed: %s\n", strerror (ret));
-	  goto out;
-	}
-
-      if (thr_ret != NULL && thr_ret != PTHREAD_CANCELED)
-        {
-          ret = 1;
-          goto out;
-        }
-    }
-
-out:
-  return ret;
-}
-
-int
-do_test (int argc, char **argv)
-{
-  int ret = do_test_wait (waiter);
-
-  if (ret)
-    return ret;
-
-  return do_test_wait (timed_waiter);
-}
-
-#define TIMEOUT 5
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond3.c b/nptl/tst-cond3.c
deleted file mode 100644
index 84d84c22b0..0000000000
--- a/nptl/tst-cond3.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-/* Note that this test requires more than the standard.  It is
-   required that there are no spurious wakeups if only more readers
-   are added.  This is a reasonable demand.  */
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-
-#define N 10
-
-
-static void *
-tf (void *arg)
-{
-  int i = (long int) arg;
-  int err;
-
-  /* Get the mutex.  */
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    {
-      printf ("child %d mutex_lock failed: %s\n", i, strerror (err));
-      exit (1);
-    }
-
-  /* This call should never return.  */
-  xpthread_cond_wait (&cond, &mut);
-  puts ("error: pthread_cond_wait in tf returned");
-
-  /* We should never get here.  */
-  exit (1);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  int err;
-  int i;
-
-  for (i = 0; i < N; ++i)
-    {
-      pthread_t th;
-
-      if (i != 0)
-	{
-	  /* Release the mutex.  */
-	  err = pthread_mutex_unlock (&mut);
-	  if (err != 0)
-	    {
-	      printf ("mutex_unlock %d failed: %s\n", i, strerror (err));
-	      return 1;
-	    }
-	}
-
-      err = pthread_create (&th, NULL, tf, (void *) (long int) i);
-      if (err != 0)
-	{
-	  printf ("create %d failed: %s\n", i, strerror (err));
-	  return 1;
-	}
-
-      /* Get the mutex.  */
-      err = pthread_mutex_lock (&mut);
-      if (err != 0)
-	{
-	  printf ("mutex_lock %d failed: %s\n", i, strerror (err));
-	  return 1;
-	}
-    }
-
-  delayed_exit (1);
-
-  /* This call should never return.  */
-  xpthread_cond_wait (&cond, &mut);
-
-  puts ("error: pthread_cond_wait in do_test returned");
-  return 1;
-}
diff --git a/nptl/tst-cond4.c b/nptl/tst-cond4.c
deleted file mode 100644
index cc9c5c908a..0000000000
--- a/nptl/tst-cond4.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-int *condition;
-
-static int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-cond4.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  pthread_mutexattr_t ma;
-  pthread_mutex_t *mut1;
-  pthread_mutex_t *mut2;
-  pthread_condattr_t ca;
-  pthread_cond_t *cond;
-  pid_t pid;
-  int result = 0;
-  int p;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      return 1;
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      return 1;
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      return 1;
-    }
-
-  mut1 = (pthread_mutex_t *) (((uintptr_t) mem
-			       + __alignof (pthread_mutex_t))
-			      & ~(__alignof (pthread_mutex_t) - 1));
-  mut2 = mut1 + 1;
-
-  cond = (pthread_cond_t *) (((uintptr_t) (mut2 + 1)
-			      + __alignof (pthread_cond_t))
-			     & ~(__alignof (pthread_cond_t) - 1));
-
-  condition = (int *) (((uintptr_t) (cond + 1) + __alignof (int))
-		       & ~(__alignof (int) - 1));
-
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_getpshared (&ma, &p) != 0)
-    {
-      puts ("1st mutexattr_getpshared failed");
-      return 1;
-    }
-
-  if (p != PTHREAD_PROCESS_PRIVATE)
-    {
-      puts ("default pshared value wrong");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setpshared (&ma, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("mutexattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_getpshared (&ma, &p) != 0)
-    {
-      puts ("2nd mutexattr_getpshared failed");
-      return 1;
-    }
-
-  if (p != PTHREAD_PROCESS_SHARED)
-    {
-      puts ("pshared value after setpshared call wrong");
-      return 1;
-    }
-
-  if (pthread_mutex_init (mut1, &ma) != 0)
-    {
-      puts ("1st mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutex_init (mut2, &ma) != 0)
-    {
-      puts ("2nd mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_condattr_init (&ca) != 0)
-    {
-      puts ("condattr_init failed");
-      return 1;
-    }
-
-  if (pthread_condattr_getpshared (&ca, &p) != 0)
-    {
-      puts ("1st condattr_getpshared failed");
-      return 1;
-    }
-
-  if (p != PTHREAD_PROCESS_PRIVATE)
-    {
-      puts ("default value for pshared in condattr wrong");
-      return 1;
-    }
-
-  if (pthread_condattr_setpshared (&ca, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("condattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_condattr_getpshared (&ca, &p) != 0)
-    {
-      puts ("2nd condattr_getpshared failed");
-      return 1;
-    }
-
-  if (p != PTHREAD_PROCESS_SHARED)
-    {
-      puts ("pshared condattr still not set");
-      return 1;
-    }
-
-  if (pthread_cond_init (cond, &ca) != 0)
-    {
-      puts ("cond_init failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (mut1) != 0)
-    {
-      puts ("parent: 1st mutex_lock failed");
-      return 1;
-    }
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-  else if (pid == 0)
-    {
-      if (pthread_mutex_lock (mut2) != 0)
-	{
-	  puts ("child: mutex_lock failed");
-	  return 1;
-	}
-
-      if (pthread_mutex_unlock (mut1) != 0)
-	{
-	  puts ("child: 1st mutex_unlock failed");
-	  return 1;
-	}
-
-      do
-	if (pthread_cond_wait (cond, mut2) != 0)
-	  {
-	    puts ("child: cond_wait failed");
-	    return 1;
-	  }
-      while (*condition == 0);
-
-      if (pthread_mutex_unlock (mut2) != 0)
-	{
-	  puts ("child: 2nd mutex_unlock failed");
-	  return 1;
-	}
-
-      puts ("child done");
-    }
-  else
-    {
-      int status;
-
-      if (pthread_mutex_lock (mut1) != 0)
-	{
-	  puts ("parent: 2nd mutex_lock failed");
-	  return 1;
-	}
-
-      if (pthread_mutex_lock (mut2) != 0)
-	{
-	  puts ("parent: 3rd mutex_lock failed");
-	  return 1;
-	}
-
-      if (pthread_cond_signal (cond) != 0)
-	{
-	  puts ("parent: cond_signal failed");
-	  return 1;
-	}
-
-      *condition = 1;
-
-      if (pthread_mutex_unlock (mut2) != 0)
-	{
-	  puts ("parent: mutex_unlock failed");
-	  return 1;
-	}
-
-      puts ("waiting for child");
-
-      waitpid (pid, &status, 0);
-      result |= status;
-
-      puts ("parent done");
-    }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond5.c b/nptl/tst-cond5.c
deleted file mode 100644
index 43d75bd727..0000000000
--- a/nptl/tst-cond5.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-static pthread_mutex_t mut;
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-
-static int
-do_test (void)
-{
-  pthread_mutexattr_t ma;
-  int err;
-  struct timespec ts;
-  struct timeval tv;
-
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("mutexattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_settype (&ma, PTHREAD_MUTEX_ERRORCHECK) != 0)
-    {
-      puts ("mutexattr_settype failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_init (&mut, &ma) != 0)
-    {
-      puts ("mutex_init failed");
-      exit (1);
-    }
-
-  /* Get the mutex.  */
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      puts ("mutex_lock failed");
-      exit (1);
-    }
-
-  /* Waiting for the condition will fail.  But we want the timeout here.  */
-  if (gettimeofday (&tv, NULL) != 0)
-    {
-      puts ("gettimeofday failed");
-      exit (1);
-    }
-
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_nsec += 500000000;
-  if (ts.tv_nsec >= 1000000000)
-    {
-      ts.tv_nsec -= 1000000000;
-      ++ts.tv_sec;
-    }
-  err = pthread_cond_timedwait (&cond, &mut, &ts);
-  if (err == 0)
-    {
-      /* This could in theory happen but here without any signal and
-	 additional waiter it should not.  */
-      puts ("cond_timedwait succeeded");
-      exit (1);
-    }
-  else if (err != ETIMEDOUT)
-    {
-      printf ("cond_timedwait returned with %s\n", strerror (err));
-      exit (1);
-    }
-
-  err = pthread_mutex_unlock (&mut);
-  if (err != 0)
-    {
-      printf ("mutex_unlock failed: %s\n", strerror (err));
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond6.c b/nptl/tst-cond6.c
deleted file mode 100644
index ebfd449ffb..0000000000
--- a/nptl/tst-cond6.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-
-
-int *condition;
-
-static int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-cond6.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  pthread_mutexattr_t ma;
-  pthread_mutex_t *mut1;
-  pthread_mutex_t *mut2;
-  pthread_condattr_t ca;
-  pthread_cond_t *cond;
-  pid_t pid;
-  int result = 0;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      exit (1);
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      exit (1);
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      exit (1);
-    }
-
-  mut1 = (pthread_mutex_t *) (((uintptr_t) mem
-			       + __alignof (pthread_mutex_t))
-			      & ~(__alignof (pthread_mutex_t) - 1));
-  mut2 = mut1 + 1;
-
-  cond = (pthread_cond_t *) (((uintptr_t) (mut2 + 1)
-			      + __alignof (pthread_cond_t))
-			     & ~(__alignof (pthread_cond_t) - 1));
-
-  condition = (int *) (((uintptr_t) (cond + 1) + __alignof (int))
-		       & ~(__alignof (int) - 1));
-
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("mutexattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_setpshared (&ma, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("mutexattr_setpshared failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_init (mut1, &ma) != 0)
-    {
-      puts ("1st mutex_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_init (mut2, &ma) != 0)
-    {
-      puts ("2nd mutex_init failed");
-      exit (1);
-    }
-
-  if (pthread_condattr_init (&ca) != 0)
-    {
-      puts ("condattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_condattr_setpshared (&ca, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("condattr_setpshared failed");
-      exit (1);
-    }
-
-  if (pthread_cond_init (cond, &ca) != 0)
-    {
-      puts ("cond_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_lock (mut1) != 0)
-    {
-      puts ("parent: 1st mutex_lock failed");
-      exit (1);
-    }
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      exit (1);
-    }
-  else if (pid == 0)
-    {
-      struct timespec ts;
-      struct timeval tv;
-
-      if (pthread_mutex_lock (mut2) != 0)
-	{
-	  puts ("child: mutex_lock failed");
-	  exit (1);
-	}
-
-      if (pthread_mutex_unlock (mut1) != 0)
-	{
-	  puts ("child: 1st mutex_unlock failed");
-	  exit (1);
-	}
-
-      if (gettimeofday (&tv, NULL) != 0)
-	{
-	  puts ("gettimeofday failed");
-	  exit (1);
-	}
-
-      TIMEVAL_TO_TIMESPEC (&tv, &ts);
-      ts.tv_nsec += 500000000;
-      if (ts.tv_nsec >= 1000000000)
-	{
-	  ts.tv_nsec -= 1000000000;
-	  ++ts.tv_sec;
-	}
-
-      do
-	if (pthread_cond_timedwait (cond, mut2, &ts) != 0)
-	  {
-	    puts ("child: cond_wait failed");
-	    exit (1);
-	  }
-      while (*condition == 0);
-
-      if (pthread_mutex_unlock (mut2) != 0)
-	{
-	  puts ("child: 2nd mutex_unlock failed");
-	  exit (1);
-	}
-
-      puts ("child done");
-    }
-  else
-    {
-      int status;
-
-      if (pthread_mutex_lock (mut1) != 0)
-	{
-	  puts ("parent: 2nd mutex_lock failed");
-	  exit (1);
-	}
-
-      if (pthread_mutex_lock (mut2) != 0)
-	{
-	  puts ("parent: 3rd mutex_lock failed");
-	  exit (1);
-	}
-
-      if (pthread_cond_signal (cond) != 0)
-	{
-	  puts ("parent: cond_signal failed");
-	  exit (1);
-	}
-
-      *condition = 1;
-
-      if (pthread_mutex_unlock (mut2) != 0)
-	{
-	  puts ("parent: mutex_unlock failed");
-	  exit (1);
-	}
-
-      puts ("waiting for child");
-
-      waitpid (pid, &status, 0);
-      result |= status;
-
-      puts ("parent done");
-    }
-
- return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond7.c b/nptl/tst-cond7.c
deleted file mode 100644
index 566141758d..0000000000
--- a/nptl/tst-cond7.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-typedef struct
-  {
-    pthread_cond_t cond;
-    pthread_mutex_t lock;
-    pthread_t h;
-  } T;
-
-
-static volatile bool done;
-
-
-static void *
-tf (void *arg)
-{
-  puts ("child created");
-
-  if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0
-      || pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL) != 0)
-    {
-      puts ("cannot set cancellation options");
-      exit (1);
-    }
-
-  T *t = (T *) arg;
-
-  if (pthread_mutex_lock (&t->lock) != 0)
-    {
-      puts ("child: lock failed");
-      exit (1);
-    }
-
-  done = true;
-
-  if (pthread_cond_signal (&t->cond) != 0)
-    {
-      puts ("child: cond_signal failed");
-      exit (1);
-    }
-
-  if (pthread_cond_wait (&t->cond, &t->lock) != 0)
-    {
-      puts ("child: cond_wait failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&t->lock) != 0)
-    {
-      puts ("child: unlock failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  int i;
-#define N 100
-  T *t[N];
-  for (i = 0; i < N; ++i)
-    {
-      printf ("round %d\n", i);
-
-      t[i] = (T *) malloc (sizeof (T));
-      if (t[i] == NULL)
-	{
-	  puts ("out of memory");
-	  exit (1);
-	}
-
-      if (pthread_mutex_init (&t[i]->lock, NULL) != 0
-	  || pthread_cond_init (&t[i]->cond, NULL) != 0)
-	{
-	  puts ("an _init function failed");
-	  exit (1);
-	}
-
-      if (pthread_mutex_lock (&t[i]->lock) != 0)
-	{
-	  puts ("initial mutex_lock failed");
-	  exit (1);
-	}
-
-      done = false;
-
-      if (pthread_create (&t[i]->h, NULL, tf, t[i]) != 0)
-	{
-	  puts ("pthread_create failed");
-	  exit (1);
-	}
-
-      do
-	if (pthread_cond_wait (&t[i]->cond, &t[i]->lock) != 0)
-	  {
-	    puts ("cond_wait failed");
-	    exit (1);
-	  }
-      while (! done);
-
-      /* Release the lock since the cancel handler will get it.  */
-      if (pthread_mutex_unlock (&t[i]->lock) != 0)
-	{
-	  puts ("mutex_unlock failed");
-	  exit (1);
-	}
-
-      if (pthread_cancel (t[i]->h) != 0)
-	{
-	  puts ("cancel failed");
-	  exit (1);
-	}
-
-      puts ("parent: joining now");
-
-      void *result;
-      if (pthread_join (t[i]->h, &result) != 0)
-	{
-	  puts ("join failed");
-	  exit (1);
-	}
-
-      if (result != PTHREAD_CANCELED)
-	{
-	  puts ("result != PTHREAD_CANCELED");
-	  exit (1);
-	}
-    }
-
-  for (i = 0; i < N; ++i)
-    free (t[i]);
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond8-static.c b/nptl/tst-cond8-static.c
deleted file mode 100644
index fed35db60d..0000000000
--- a/nptl/tst-cond8-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cond8.c"
diff --git a/nptl/tst-cond8.c b/nptl/tst-cond8.c
deleted file mode 100644
index 7a0a8eeecb..0000000000
--- a/nptl/tst-cond8.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
-
-static pthread_barrier_t bar;
-
-
-static void
-ch (void *arg)
-{
-  int e = pthread_mutex_lock (&mut);
-  if (e == 0)
-    {
-      puts ("mutex not locked at all by cond_wait");
-      exit (1);
-    }
-
-  if (e != EDEADLK)
-    {
-      puts ("no deadlock error signaled");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&mut) != 0)
-    {
-      puts ("ch: cannot unlock mutex");
-      exit (1);
-    }
-
-  puts ("ch done");
-}
-
-
-static void *
-tf1 (void *p)
-{
-  int err;
-
-  if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0
-      || pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL) != 0)
-    {
-      puts ("cannot set cancellation options");
-      exit (1);
-    }
-
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    {
-      puts ("child: cannot get mutex");
-      exit (1);
-    }
-
-  err = pthread_barrier_wait (&bar);
-  if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("barrier_wait returned %d\n", err);
-      exit (1);
-    }
-
-  puts ("child: got mutex; waiting");
-
-  pthread_cleanup_push (ch, NULL);
-
-  pthread_cond_wait (&cond, &mut);
-
-  pthread_cleanup_pop (0);
-
-  puts ("child: cond_wait should not have returned");
-
-  return NULL;
-}
-
-
-static void *
-tf2 (void *p)
-{
-  int err;
-
-  if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0
-      || pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, NULL) != 0)
-    {
-      puts ("cannot set cancellation options");
-      exit (1);
-    }
-
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    {
-      puts ("child: cannot get mutex");
-      exit (1);
-    }
-
-  err = pthread_barrier_wait (&bar);
-  if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("barrier_wait returned %d\n", err);
-      exit (1);
-    }
-
-  puts ("child: got mutex; waiting");
-
-  pthread_cleanup_push (ch, NULL);
-
-  /* Current time.  */
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-  /* +1000 seconds in correct format.  */
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_sec += 1000;
-
-  pthread_cond_timedwait (&cond, &mut, &ts);
-
-  pthread_cleanup_pop (0);
-
-  puts ("child: cond_wait should not have returned");
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-  int err;
-
-  printf ("&cond = %p\n&mut = %p\n", &cond, &mut);
-
-  puts ("parent: get mutex");
-
-  err = pthread_barrier_init (&bar, NULL, 2);
-  if (err != 0)
-    {
-      puts ("parent: cannot init barrier");
-      exit (1);
-    }
-
-  puts ("parent: create child");
-
-  err = pthread_create (&th, NULL, tf1, NULL);
-  if (err != 0)
-    {
-      puts ("parent: cannot create thread");
-      exit (1);
-    }
-
-  puts ("parent: wait for child to lock mutex");
-
-  err = pthread_barrier_wait (&bar);
-  if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("parent: cannot wait for barrier");
-      exit (1);
-    }
-
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    {
-      puts ("parent: mutex_lock failed");
-      exit (1);
-    }
-
-  err = pthread_mutex_unlock (&mut);
-  if (err != 0)
-    {
-      puts ("parent: mutex_unlock failed");
-      exit (1);
-    }
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cannot cancel thread");
-      exit (1);
-    }
-
-  void *r;
-  err = pthread_join (th, &r);
-  if (err != 0)
-    {
-      puts ("parent: failed to join");
-      exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("child hasn't been canceled");
-      exit (1);
-    }
-
-
-
-  puts ("parent: create 2nd child");
-
-  err = pthread_create (&th, NULL, tf2, NULL);
-  if (err != 0)
-    {
-      puts ("parent: cannot create thread");
-      exit (1);
-    }
-
-  puts ("parent: wait for child to lock mutex");
-
-  err = pthread_barrier_wait (&bar);
-  if (err != 0 && err != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("parent: cannot wait for barrier");
-      exit (1);
-    }
-
-  err = pthread_mutex_lock (&mut);
-  if (err != 0)
-    {
-      puts ("parent: mutex_lock failed");
-      exit (1);
-    }
-
-  err = pthread_mutex_unlock (&mut);
-  if (err != 0)
-    {
-      puts ("parent: mutex_unlock failed");
-      exit (1);
-    }
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cannot cancel thread");
-      exit (1);
-    }
-
-  err = pthread_join (th, &r);
-  if (err != 0)
-    {
-      puts ("parent: failed to join");
-      exit (1);
-    }
-
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("child hasn't been canceled");
-      exit (1);
-    }
-
-  puts ("done");
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond9.c b/nptl/tst-cond9.c
deleted file mode 100644
index d9fc90e521..0000000000
--- a/nptl/tst-cond9.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
-
-
-static void *
-tf (void *arg)
-{
-  int err = pthread_cond_wait (&cond, &mut);
-  if (err == 0)
-    {
-      puts ("cond_wait did not fail");
-      exit (1);
-    }
-
-  if (err != EPERM)
-    {
-      printf ("cond_wait didn't return EPERM but %d\n", err);
-      exit (1);
-    }
-
-
-  /* Current time.  */
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-  /* +1000 seconds in correct format.  */
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_sec += 1000;
-
-  err = pthread_cond_timedwait (&cond, &mut, &ts);
-  if (err == 0)
-    {
-      puts ("cond_timedwait did not fail");
-      exit (1);
-    }
-
-  if (err != EPERM)
-    {
-      printf ("cond_timedwait didn't return EPERM but %d\n", err);
-      exit (1);
-    }
-
-  return (void *) 1l;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-  int err;
-
-  printf ("&cond = %p\n&mut = %p\n", &cond, &mut);
-
-  err = pthread_cond_wait (&cond, &mut);
-  if (err == 0)
-    {
-      puts ("cond_wait did not fail");
-      exit (1);
-    }
-
-  if (err != EPERM)
-    {
-      printf ("cond_wait didn't return EPERM but %d\n", err);
-      exit (1);
-    }
-
-
-  /* Current time.  */
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-  /* +1000 seconds in correct format.  */
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_sec += 1000;
-
-  err = pthread_cond_timedwait (&cond, &mut, &ts);
-  if (err == 0)
-    {
-      puts ("cond_timedwait did not fail");
-      exit (1);
-    }
-
-  if (err != EPERM)
-    {
-      printf ("cond_timedwait didn't return EPERM but %d\n", err);
-      exit (1);
-    }
-
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      puts ("parent: mutex_lock failed");
-      exit (1);
-    }
-
-  puts ("creating thread");
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-  if (r != (void *) 1l)
-    {
-      puts ("thread has wrong return value");
-      exit (1);
-    }
-
-  puts ("done");
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-context1.c b/nptl/tst-context1.c
deleted file mode 100644
index eaccd9e88f..0000000000
--- a/nptl/tst-context1.c
+++ /dev/null
@@ -1,205 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <error.h>
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <ucontext.h>
-
-#define N	4
-#if __WORDSIZE == 64
-#define GUARD_PATTERN 0xdeadbeafdeadbeaf
-#else
-#define GUARD_PATTERN 0xdeadbeaf
-#endif
-
-typedef struct {
-       ucontext_t uctx;
-       unsigned long	guard[3];
-   } tst_context_t;
-
-static char stacks[N][2 * PTHREAD_STACK_MIN];
-static tst_context_t ctx[N][2];
-static volatile int failures;
-
-
-static void
-fct (long int n)
-{
-  char on_stack[1];
-
-  /* Just to use the thread local descriptor.  */
-  printf ("%ld: in %s now, on_stack = %p\n", n, __FUNCTION__, on_stack);
-  errno = 0;
-
-  if (ctx[n][1].uctx.uc_link != &ctx[n][0].uctx)
-    {
-      printf ("context[%ld][1] uc_link damaged, = %p\n", n,
-	      ctx[n][1].uctx.uc_link);
-      exit (1);
-    }
-
-  if ((ctx[n][0].guard[0] != GUARD_PATTERN)
-  ||  (ctx[n][0].guard[1] != GUARD_PATTERN)
-  ||  (ctx[n][0].guard[2] != GUARD_PATTERN))
-    {
-      printf ("%ld: %s context[0] overflow detected!\n", n, __FUNCTION__);
-      ++failures;
-    }
-
-  if ((ctx[n][1].guard[0] != GUARD_PATTERN)
-  ||  (ctx[n][1].guard[1] != GUARD_PATTERN)
-  ||  (ctx[n][1].guard[2] != GUARD_PATTERN))
-    {
-      printf ("%ld: %s context[1] overflow detected!\n", n, __FUNCTION__);
-      ++failures;
-    }
-
-  if (n < 0 || n >= N)
-    {
-      printf ("%ld out of range\n", n);
-      exit (1);
-    }
-
-  if (on_stack < stacks[n] || on_stack >= stacks[n] + sizeof (stacks[0]))
-    {
-      printf ("%ld: on_stack not on appropriate stack\n", n);
-      exit (1);
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  int n = (int) (long int) arg;
-
-  ctx[n][0].guard[0] = GUARD_PATTERN;
-  ctx[n][0].guard[1] = GUARD_PATTERN;
-  ctx[n][0].guard[2] = GUARD_PATTERN;
-
-  ctx[n][1].guard[0] = GUARD_PATTERN;
-  ctx[n][1].guard[1] = GUARD_PATTERN;
-  ctx[n][1].guard[2] = GUARD_PATTERN;
-
-  if (getcontext (&ctx[n][1].uctx) != 0)
-    {
-      printf ("%d: cannot get context: %m\n", n);
-      exit (1);
-    }
-
-  printf ("%d: %s: before makecontext\n", n, __FUNCTION__);
-
-  ctx[n][1].uctx.uc_stack.ss_sp = stacks[n];
-  ctx[n][1].uctx.uc_stack.ss_size = sizeof (stacks[n]);
-  ctx[n][1].uctx.uc_link = &ctx[n][0].uctx;
-  makecontext (&ctx[n][1].uctx, (void (*) (void)) fct, 1, (long int) n);
-
-  printf ("%d: %s: before swapcontext\n", n, __FUNCTION__);
-
-  if (swapcontext (&ctx[n][0].uctx, &ctx[n][1].uctx) != 0)
-    {
-      ++failures;
-      printf ("%d: %s: swapcontext failed\n", n, __FUNCTION__);
-    }
-  else
-    printf ("%d: back in %s\n", n, __FUNCTION__);
-
-  return NULL;
-}
-
-
-static volatile int global;
-
-
-static int
-do_test (void)
-{
-  int n;
-  pthread_t th[N];
-  ucontext_t mctx;
-
-  puts ("making contexts");
-  if (getcontext (&mctx) != 0)
-    {
-      if (errno == ENOSYS)
-	{
-	  puts ("context handling not supported");
-	  exit (0);
-	}
-
-      printf ("%s: getcontext: %m\n", __FUNCTION__);
-      exit (1);
-    }
-
-  /* Play some tricks with this context.  */
-  if (++global == 1)
-    if (setcontext (&mctx) != 0)
-      {
-	puts ("setcontext failed");
-	exit (1);
-      }
-  if (global != 2)
-    {
-      puts ("global not incremented twice");
-      exit (1);
-    }
-  puts ("global OK");
-
-  pthread_attr_t at;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  for (n = 0; n < N; ++n)
-    if (pthread_create (&th[n], &at, tf, (void *) (long int) n) != 0)
-      {
-	puts ("create failed");
-	exit (1);
-      }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  for (n = 0; n < N; ++n)
-    if (pthread_join (th[n], NULL) != 0)
-      {
-	puts ("join failed");
-	exit (1);
-      }
-
-  return failures;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-create-detached.c b/nptl/tst-create-detached.c
deleted file mode 100644
index ea93e441c7..0000000000
--- a/nptl/tst-create-detached.c
+++ /dev/null
@@ -1,137 +0,0 @@
-/* Bug 20116: Test rapid creation of detached threads.
-   Copyright (C) 2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-/* The goal of the test is to trigger a failure if the parent touches
-   any part of the thread descriptor after the detached thread has
-   exited.  We test this by creating many detached threads with large
-   stacks.  The stacks quickly fill the the stack cache and subsequent
-   threads will start to cause the thread stacks to be immediately
-   unmapped to satisfy the stack cache max.  With the stacks being
-   unmapped the parent's read of any part of the thread descriptor will
-   trigger a segfault.  That segfault is what we are trying to cause,
-   since any segfault is a defect in the implementation.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdbool.h>
-#include <sys/resource.h>
-#include <support/xthread.h>
-
-/* Number of threads to create.  */
-enum { threads_to_create = 100000 };
-
-/* Number of threads which should spawn other threads.  */
-enum { creator_threads  = 2 };
-
-/* Counter of threads created so far.  This is incremented by all the
-   running creator threads.  */
-static unsigned threads_created;
-
-/* Thread callback which does nothing, so that the thread exits
-   immediatedly.  */
-static void *
-do_nothing (void *arg)
-{
-  return NULL;
-}
-
-/* Attribute indicating that the thread should be created in a detached
-   fashion.  */
-static pthread_attr_t detached;
-
-/* Barrier to synchronize initialization.  */
-static pthread_barrier_t barrier;
-
-static void *
-creator_thread (void *arg)
-{
-  int ret;
-  xpthread_barrier_wait (&barrier);
-
-  while (true)
-    {
-      pthread_t thr;
-      /* Thread creation will fail if the kernel does not free old
-	 threads quickly enough, so we do not report errors.  */
-      ret = pthread_create (&thr, &detached, do_nothing, NULL);
-      if (ret == 0 && __atomic_add_fetch (&threads_created, 1, __ATOMIC_SEQ_CST)
-          >= threads_to_create)
-        break;
-    }
-
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  /* Limit the size of the process, so that memory allocation will
-     fail without impacting the entire system.  */
-  {
-    struct rlimit limit;
-    if (getrlimit (RLIMIT_AS, &limit) != 0)
-      {
-        printf ("FAIL: getrlimit (RLIMIT_AS) failed: %m\n");
-        return 1;
-      }
-    /* This limit, 800MB, is just a heuristic. Any value can be
-       picked.  */
-    long target = 800 * 1024 * 1024;
-    if (limit.rlim_cur == RLIM_INFINITY || limit.rlim_cur > target)
-      {
-        limit.rlim_cur = target;
-        if (setrlimit (RLIMIT_AS, &limit) != 0)
-          {
-            printf ("FAIL: setrlimit (RLIMIT_AS) failed: %m\n");
-            return 1;
-          }
-      }
-  }
-
-  xpthread_attr_init (&detached);
-
-  xpthread_attr_setdetachstate (&detached, PTHREAD_CREATE_DETACHED);
-
-  /* A large thread stack seems beneficial for reproducing a race
-     condition in detached thread creation.  The goal is to reach the
-     limit of the runtime thread stack cache such that the detached
-     thread's stack is unmapped after exit and causes a segfault when
-     the parent reads the thread descriptor data stored on the the
-     unmapped stack.  */
-  xpthread_attr_setstacksize (&detached, 16 * 1024 * 1024);
-
-  xpthread_barrier_init (&barrier, NULL, creator_threads);
-
-  pthread_t threads[creator_threads];
-
-  for (int i = 0; i < creator_threads; ++i)
-    threads[i] = xpthread_create (NULL, creator_thread, NULL);
-
-  for (int i = 0; i < creator_threads; ++i)
-    xpthread_join (threads[i]);
-
-  xpthread_attr_destroy (&detached);
-
-  xpthread_barrier_destroy (&barrier);
-
-  return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/nptl/tst-default-attr.c b/nptl/tst-default-attr.c
deleted file mode 100644
index eff703ca23..0000000000
--- a/nptl/tst-default-attr.c
+++ /dev/null
@@ -1,385 +0,0 @@
-/* Verify that pthread_[gs]etattr_default_np work correctly.
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
-#include <stdbool.h>
-
-#define RETURN_IF_FAIL(f, ...) \
-  ({									      \
-    int ret = f (__VA_ARGS__);						      \
-    if (ret != 0)							      \
-      {									      \
-	printf ("%s:%d: %s returned %d (errno = %d)\n", __FILE__, __LINE__,   \
-		#f, ret, errno);					      \
-	return ret;							      \
-      }									      \
-  })
-
-static int (*verify_result) (pthread_attr_t *);
-static size_t stacksize = 1024 * 1024;
-static size_t guardsize;
-static bool do_join = true;
-static int running = 0;
-static int detach_failed = 0;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-
-static void *
-thr (void *unused __attribute__ ((unused)))
-{
-  pthread_attr_t attr;
-  int ret;
-
-  memset (&attr, 0xab, sizeof attr);
-  /* To verify that the pthread_setattr_default_np worked.  */
-  if ((ret = pthread_getattr_default_np (&attr)) != 0)
-    {
-      printf ("pthread_getattr_default_np failed: %s\n", strerror (ret));
-      goto out;
-    }
-
-  if ((ret = (*verify_result) (&attr)) != 0)
-    goto out;
-
-  memset (&attr, 0xab, sizeof attr);
-  /* To verify that the attributes actually got applied.  */
-  if ((ret = pthread_getattr_np (pthread_self (), &attr)) != 0)
-    {
-      printf ("pthread_getattr_default_np failed: %s\n", strerror (ret));
-      goto out;
-    }
-
-  ret = (*verify_result) (&attr);
-
-out:
-  if (!do_join)
-    {
-      pthread_mutex_lock (&m);
-      running--;
-      pthread_cond_signal (&c);
-      pthread_mutex_unlock (&m);
-
-      detach_failed |= ret;
-    }
-
-  return (void *) (uintptr_t) ret;
-}
-
-static int
-run_threads (const pthread_attr_t *attr)
-{
-  pthread_t t;
-  void *tret = NULL;
-
-  RETURN_IF_FAIL (pthread_setattr_default_np, attr);
-
-  /* Run twice to ensure that the attributes do not get overwritten in the
-     first run somehow.  */
-  for (int i = 0; i < 2; i++)
-    {
-      RETURN_IF_FAIL (pthread_create, &t, NULL, thr, NULL);
-      if (do_join)
-	RETURN_IF_FAIL (pthread_join, t, &tret);
-      else
-	{
-	  pthread_mutex_lock (&m);
-	  running++;
-	  pthread_mutex_unlock (&m);
-	}
-
-      if (tret != NULL)
-	{
-	  puts ("Thread failed");
-	  return 1;
-	}
-    }
-
-  /* Stay in sync for detached threads and get their status.  */
-  while (!do_join)
-    {
-      pthread_mutex_lock (&m);
-      if (running == 0)
-	{
-	  pthread_mutex_unlock (&m);
-	  break;
-	}
-      pthread_cond_wait (&c, &m);
-      pthread_mutex_unlock (&m);
-    }
-
-  return 0;
-}
-
-static int
-verify_detach_result (pthread_attr_t *attr)
-{
-  int state;
-
-  RETURN_IF_FAIL (pthread_attr_getdetachstate, attr, &state);
-
-  if (state != PTHREAD_CREATE_DETACHED)
-    {
-      puts ("failed to set detach state");
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-do_detach_test (void)
-{
-  pthread_attr_t attr;
-
-  do_join = false;
-  RETURN_IF_FAIL (pthread_attr_init, &attr);
-  RETURN_IF_FAIL (pthread_attr_setdetachstate, &attr, PTHREAD_CREATE_DETACHED);
-
-  RETURN_IF_FAIL (run_threads, &attr);
-  return detach_failed;
-}
-
-static int
-verify_affinity_result (pthread_attr_t *attr)
-{
-  cpu_set_t cpuset;
-
-  RETURN_IF_FAIL (pthread_attr_getaffinity_np, attr, sizeof (cpuset), &cpuset);
-  if (!CPU_ISSET (0, &cpuset))
-    {
-      puts ("failed to set cpu affinity");
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-do_affinity_test (void)
-{
-  pthread_attr_t attr;
-
-  RETURN_IF_FAIL (pthread_attr_init, &attr);
-
-  /* Processor affinity.  Like scheduling policy, this could fail if the user
-     does not have the necessary privileges.  So we only spew a warning if
-     pthread_create fails with EPERM.  A computer has at least one CPU.  */
-  cpu_set_t cpuset;
-  CPU_ZERO (&cpuset);
-  CPU_SET (0, &cpuset);
-  RETURN_IF_FAIL (pthread_attr_setaffinity_np, &attr, sizeof (cpuset), &cpuset);
-
-  int ret = run_threads (&attr);
-
-  if (ret == EPERM)
-    {
-      printf ("Skipping CPU Affinity test: %s\n", strerror (ret));
-      return 0;
-    }
-  else if (ret != 0)
-    return ret;
-
-  return 0;
-}
-
-static int
-verify_sched_result (pthread_attr_t *attr)
-{
-  int inherited, policy;
-  struct sched_param param;
-
-  RETURN_IF_FAIL (pthread_attr_getinheritsched, attr, &inherited);
-  if (inherited != PTHREAD_EXPLICIT_SCHED)
-    {
-      puts ("failed to set EXPLICIT_SCHED (%d != %d)");
-      return 1;
-    }
-
-  RETURN_IF_FAIL (pthread_attr_getschedpolicy, attr, &policy);
-  if (policy != SCHED_RR)
-    {
-      printf ("failed to set SCHED_RR (%d != %d)\n", policy, SCHED_RR);
-      return 1;
-    }
-
-  RETURN_IF_FAIL (pthread_attr_getschedparam, attr, &param);
-  if (param.sched_priority != 42)
-    {
-      printf ("failed to set sched_priority (%d != %d)\n",
-	      param.sched_priority, 42);
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-do_sched_test (void)
-{
-  pthread_attr_t attr;
-
-  RETURN_IF_FAIL (pthread_attr_init, &attr);
-
-  /* Scheduling policy.  Note that we don't always test these since it's
-     possible that the user the tests run as don't have the appropriate
-     privileges.  */
-  RETURN_IF_FAIL (pthread_attr_setinheritsched, &attr, PTHREAD_EXPLICIT_SCHED);
-  RETURN_IF_FAIL (pthread_attr_setschedpolicy, &attr, SCHED_RR);
-
-  struct sched_param param;
-  param.sched_priority = 42;
-  RETURN_IF_FAIL (pthread_attr_setschedparam, &attr, &param);
-
-  int ret = run_threads (&attr);
-
-  if (ret == EPERM)
-    {
-      printf ("Skipping Scheduler Attributes test: %s\n", strerror (ret));
-      return 0;
-    }
-  else if (ret != 0)
-    return ret;
-
-  return 0;
-}
-
-static int
-verify_guardsize_result (pthread_attr_t *attr)
-{
-  size_t guard;
-
-  RETURN_IF_FAIL (pthread_attr_getguardsize, attr, &guard);
-
-  if (guardsize != guard)
-    {
-      printf ("failed to set guardsize (%zu, %zu)\n", guardsize, guard);
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-do_guardsize_test (void)
-{
-  long int pagesize = sysconf (_SC_PAGESIZE);
-  pthread_attr_t attr;
-
-  if (pagesize < 0)
-    {
-      printf ("sysconf failed: %s\n", strerror (errno));
-      return 1;
-    }
-
-  RETURN_IF_FAIL (pthread_getattr_default_np, &attr);
-
-  /* Increase default guardsize by a page.  */
-  RETURN_IF_FAIL (pthread_attr_getguardsize, &attr, &guardsize);
-  guardsize += pagesize;
-  RETURN_IF_FAIL (pthread_attr_setguardsize, &attr, guardsize);
-  RETURN_IF_FAIL (run_threads, &attr);
-
-  return 0;
-}
-
-static int
-verify_stacksize_result (pthread_attr_t *attr)
-{
-  size_t stack;
-
-  RETURN_IF_FAIL (pthread_attr_getstacksize, attr, &stack);
-
-  if (stacksize != stack)
-    {
-      printf ("failed to set default stacksize (%zu, %zu)\n", stacksize, stack);
-      return 1;
-    }
-
-  return 0;
-}
-
-static int
-do_stacksize_test (void)
-{
-  long int pagesize = sysconf (_SC_PAGESIZE);
-  pthread_attr_t attr;
-
-  if (pagesize < 0)
-    {
-      printf ("sysconf failed: %s\n", strerror (errno));
-      return 1;
-    }
-
-  /* Perturb the size by a page so that we're not aligned on the 64K boundary.
-     pthread_create does this perturbation on x86 to avoid causing the 64k
-     aliasing conflict.  We want to prevent pthread_create from doing that
-     since it is not consistent for all architectures.  */
-  stacksize += pagesize;
-
-  RETURN_IF_FAIL (pthread_attr_init, &attr);
-
-  /* Run twice to ensure that we don't give a false positive.  */
-  RETURN_IF_FAIL (pthread_attr_setstacksize, &attr, stacksize);
-  RETURN_IF_FAIL (run_threads, &attr);
-  stacksize *= 2;
-  RETURN_IF_FAIL (pthread_attr_setstacksize, &attr, stacksize);
-  RETURN_IF_FAIL (run_threads, &attr);
-  return 0;
-}
-
-/* We test each attribute separately because sched and affinity tests may need
-   additional user privileges that may not be available during the test run.
-   Each attribute test is a set of two functions, viz. a function to set the
-   default attribute (do_foo_test) and another to verify its result
-   (verify_foo_result).  Each test spawns a thread and checks (1) if the
-   attribute values were applied correctly and (2) if the change in the default
-   value reflected.  */
-static int
-do_test (void)
-{
-  puts ("stacksize test");
-  verify_result = verify_stacksize_result;
-  RETURN_IF_FAIL (do_stacksize_test);
-
-  puts ("guardsize test");
-  verify_result = verify_guardsize_result;
-  RETURN_IF_FAIL (do_guardsize_test);
-
-  puts ("sched test");
-  verify_result = verify_sched_result;
-  RETURN_IF_FAIL (do_sched_test);
-
-  puts ("affinity test");
-  verify_result = verify_affinity_result;
-  RETURN_IF_FAIL (do_affinity_test);
-
-  puts ("detach test");
-  verify_result = verify_detach_result;
-  RETURN_IF_FAIL (do_detach_test);
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-detach1.c b/nptl/tst-detach1.c
deleted file mode 100644
index 6e0e85fced..0000000000
--- a/nptl/tst-detach1.c
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  /* Give the child a chance to finish.  */
-  sleep (1);
-
-  if (pthread_detach (th) != 0)
-    {
-      puts ("detach failed");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-dlsym1.c b/nptl/tst-dlsym1.c
deleted file mode 100644
index 3744570c7f..0000000000
--- a/nptl/tst-dlsym1.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Test case by Hui Huang <hui.huang@sun.com>.  */
-#include <dlfcn.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static void *
-start_routine (void *args)
-{
-  int i;
-  void **addrs = (void **) args;
-  for (i = 0; i < 10000; ++i)
-    addrs[i % 1024] = dlsym (NULL, "does_not_exist");
-
-  return addrs;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t tid1, tid2, tid3;
-
-  void *addrs1[1024];
-  void *addrs2[1024];
-  void *addrs3[1024];
-
-  if (pthread_create (&tid1, NULL, start_routine, addrs1) != 0)
-    {
-      puts ("1st create failed");
-      exit (1);
-    }
-  if (pthread_create (&tid2, NULL, start_routine, addrs2) != 0)
-    {
-      puts ("2nd create failed");
-      exit (1);
-    }
-  if (pthread_create (&tid3, NULL, start_routine, addrs3) != 0)
-    {
-      puts ("3rd create failed");
-      exit (1);
-    }
-
-  if (pthread_join (tid1, NULL) != 0)
-    {
-      puts ("1st join failed");
-      exit (1);
-    }
-  if (pthread_join (tid2, NULL) != 0)
-    {
-      puts ("2nd join failed");
-      exit (1);
-    }
-  if (pthread_join (tid3, NULL) != 0)
-    {
-      puts ("2rd join failed");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-eintr1.c b/nptl/tst-eintr1.c
deleted file mode 100644
index 761f8901d8..0000000000
--- a/nptl/tst-eintr1.c
+++ /dev/null
@@ -1,104 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-#include "eintr.c"
-
-
-static void *
-tf2 (void *arg)
-{
-  return arg;
-}
-
-
-static void *
-tf1 (void *arg)
-{
-  while (1)
-    {
-      pthread_t th;
-
-      int e = pthread_create (&th, NULL, tf2, NULL);
-      if (e != 0)
-	{
-	  if (e == EINTR)
-	    {
-	      puts ("pthread_create returned EINTR");
-	      exit (1);
-	    }
-
-	  char buf[100];
-	  printf ("tf1: pthread_create failed: %s\n",
-		  strerror_r (e, buf, sizeof (buf)));
-	  exit (1);
-	}
-
-      e = pthread_join (th, NULL);
-      if (e != 0)
-	{
-	  if (e == EINTR)
-	    {
-	      puts ("pthread_join returned EINTR");
-	      exit (1);
-	    }
-
-	  char buf[100];
-	  printf ("tf1: pthread_join failed: %s\n",
-		  strerror_r (e, buf, sizeof (buf)));
-	  exit (1);
-	}
-    }
-}
-
-
-static int
-do_test (void)
-{
-  setup_eintr (SIGUSR1, NULL);
-
-  int i;
-  for (i = 0; i < 10; ++i)
-    {
-      pthread_t th;
-      int e = pthread_create (&th, NULL, tf1, NULL);
-      if (e != 0)
-	{
-	  char buf[100];
-	  printf ("main: pthread_create failed: %s\n",
-		  strerror_r (e, buf, sizeof (buf)));
-	  exit (1);
-	}
-    }
-
-  delayed_exit (3);
-  /* This call must never return.  */
-  (void) tf1 (NULL);
-  return 1;
-}
diff --git a/nptl/tst-eintr2.c b/nptl/tst-eintr2.c
deleted file mode 100644
index af6f2ba026..0000000000
--- a/nptl/tst-eintr2.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-#include "eintr.c"
-
-
-static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf1 (void *arg)
-{
-  struct timespec ts;
-  struct timeval tv;
-
-  gettimeofday (&tv, NULL);
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_sec += 10000;
-
-  /* This call must never return.  */
-  int e = pthread_mutex_timedlock (&m1, &ts);
-  char buf[100];
-  printf ("tf1: mutex_timedlock returned: %s\n",
-	  strerror_r (e, buf, sizeof (buf)));
-
-  exit (1);
-}
-
-
-static void *
-tf2 (void *arg)
-{
-  while (1)
-    {
-      int e = pthread_mutex_lock (&m2);
-      if (e != 0)
-	{
-	  puts ("tf2: mutex_lock failed");
-	  exit (1);
-	}
-      e = pthread_mutex_unlock (&m2);
-      if (e != 0)
-	{
-	  puts ("tf2: mutex_unlock failed");
-	  exit (1);
-	}
-      struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
-      nanosleep (&ts, NULL);
-    }
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_mutex_lock (&m1) != 0)
-    {
-      puts ("mutex_lock failed");
-      exit (1);
-    }
-
-  setup_eintr (SIGUSR1, NULL);
-
-  pthread_t th;
-  char buf[100];
-  int e = pthread_create (&th, NULL, tf1, NULL);
-  if (e != 0)
-    {
-      printf ("main: 1st pthread_create failed: %s\n",
-	      strerror_r (e, buf, sizeof (buf)));
-      exit (1);
-    }
-
-  e = pthread_create (&th, NULL, tf2, NULL);
-  if (e != 0)
-    {
-      printf ("main: 2nd pthread_create failed: %s\n",
-	      strerror_r (e, buf, sizeof (buf)));
-      exit (1);
-    }
-
-  delayed_exit (3);
-  /* This call must never return.  */
-  e = pthread_mutex_lock (&m1);
-  printf ("main: mutex_lock returned: %s\n",
-	  strerror_r (e, buf, sizeof (buf)));
-
-  return 1;
-}
diff --git a/nptl/tst-eintr3.c b/nptl/tst-eintr3.c
deleted file mode 100644
index f231f745b3..0000000000
--- a/nptl/tst-eintr3.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-#include "eintr.c"
-
-
-static void *
-tf (void *arg)
-{
-  pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-  pthread_mutex_lock (&m);
-  /* This call must not return.  */
-  pthread_mutex_lock (&m);
-
-  puts ("tf: mutex_lock returned");
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t self = pthread_self ();
-
-  setup_eintr (SIGUSR1, &self);
-
-  pthread_t th;
-  char buf[100];
-  int e = pthread_create (&th, NULL, tf, NULL);
-  if (e != 0)
-    {
-      printf ("main: pthread_create failed: %s\n",
-	      strerror_r (e, buf, sizeof (buf)));
-      exit (1);
-    }
-
-  delayed_exit (1);
-  /* This call must never return.  */
-  xpthread_join (th);
-  puts ("error: pthread_join returned");
-  return 1;
-}
diff --git a/nptl/tst-eintr4.c b/nptl/tst-eintr4.c
deleted file mode 100644
index f2ccecc098..0000000000
--- a/nptl/tst-eintr4.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-#include "eintr.c"
-
-
-static int
-do_test (void)
-{
-  pthread_t self = pthread_self ();
-
-  setup_eintr (SIGUSR1, &self);
-
-  pthread_barrier_t b;
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  delayed_exit (1);
-  /* This call must never return.  */
-  xpthread_barrier_wait (&b);
-  puts ("error: pthread_barrier_wait returned");
-  return 1;
-}
diff --git a/nptl/tst-eintr5.c b/nptl/tst-eintr5.c
deleted file mode 100644
index 616dd71bf9..0000000000
--- a/nptl/tst-eintr5.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-#include "eintr.c"
-
-
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
-  struct timespec ts;
-  struct timeval tv;
-
-  gettimeofday (&tv, NULL);
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_sec += 10000;
-
-  /* This call must never return.  */
-  int e = pthread_cond_timedwait (&c, &m, &ts);
-  char buf[100];
-  printf ("tf: cond_timedwait returned: %s\n",
-	  strerror_r (e, buf, sizeof (buf)));
-
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  setup_eintr (SIGUSR1, NULL);
-
-  pthread_t th;
-  char buf[100];
-  int e = pthread_create (&th, NULL, tf, NULL);
-  if (e != 0)
-    {
-      printf ("main: pthread_create failed: %s\n",
-	      strerror_r (e, buf, sizeof (buf)));
-      exit (1);
-    }
-
-  delayed_exit (3);
-  /* This call must never return.  */
-  xpthread_cond_wait (&c, &m);
-  puts ("error: pthread_cond_wait returned");
-  return 1;
-}
diff --git a/nptl/tst-exec1.c b/nptl/tst-exec1.c
deleted file mode 100644
index 5143185d49..0000000000
--- a/nptl/tst-exec1.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Simple exec test, only a thread in the parent.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <paths.h>
-#include <pthread.h>
-#include <signal.h>
-#include <spawn.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static void *
-tf (void *arg)
-{
-  pthread_t th = (pthread_t) arg;
-
-  if (pthread_join (th, NULL) == 0)
-    {
-      puts ("thread in parent joined!?");
-      exit (1);
-    }
-
-  puts ("join in thread in parent returned!?");
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  int fd[2];
-  if (pipe (fd) != 0)
-    {
-      puts ("pipe failed");
-      exit (1);
-    }
-
-  /* Not interested in knowing when the pipe is closed.  */
-  if (sigignore (SIGPIPE) != 0)
-    {
-      puts ("sigignore failed");
-      exit (1);
-    }
-
-  posix_spawn_file_actions_t a;
-  if (posix_spawn_file_actions_init (&a) != 0)
-    {
-      puts ("spawn_file_actions_init failed");
-      exit (1);
-    }
-
-  if (posix_spawn_file_actions_adddup2 (&a, fd[1], STDOUT_FILENO) != 0)
-    {
-      puts ("spawn_file_actions_adddup2 failed");
-      exit (1);
-    }
-
-  if (posix_spawn_file_actions_addclose (&a, fd[0]) != 0)
-    {
-      puts ("spawn_file_actions_addclose");
-      exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  pid_t pid;
-  char *argv[] = { (char *) _PATH_BSHELL, (char *) "-c", (char *) "echo $$",
-		   NULL };
-  if (posix_spawn (&pid, _PATH_BSHELL, &a, NULL, argv, NULL) != 0)
-    {
-      puts ("spawn failed");
-      exit (1);
-    }
-
-  close (fd[1]);
-
-  char buf[200];
-  ssize_t n;
-  bool seen_pid = false;
-  while (TEMP_FAILURE_RETRY ((n = read (fd[0], buf, sizeof (buf)))) > 0)
-    {
-      /* We only expect to read the PID.  */
-      char *endp;
-      long int rpid = strtol (buf, &endp, 10);
-
-      if (*endp != '\n')
-	{
-	  printf ("didn't parse whole line: \"%s\"\n", buf);
-	  exit (1);
-	}
-      if (endp == buf)
-	{
-	  puts ("read empty line");
-	  exit (1);
-	}
-
-      if (rpid != pid)
-	{
-	  printf ("found \"%s\", expected PID %ld\n", buf, (long int) pid);
-	  exit (1);
-	}
-
-      if (seen_pid)
-	{
-	  puts ("found more than one PID line");
-	  exit (1);
-	}
-
-      seen_pid = true;
-    }
-
-  close (fd[0]);
-
-  int status;
-  int err = waitpid (pid, &status, 0);
-  if (err != pid)
-    {
-      puts ("waitpid failed");
-      exit (1);
-    }
-
-  if (!seen_pid)
-    {
-      puts ("didn't get PID");
-      exit (1);
-    }
-
-  puts ("read correct PID");
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-exec2.c b/nptl/tst-exec2.c
deleted file mode 100644
index ffeaef8c74..0000000000
--- a/nptl/tst-exec2.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/* Thread with running thread calls exec.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <paths.h>
-#include <pthread.h>
-#include <signal.h>
-#include <spawn.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static void *
-tf (void *arg)
-{
-  pthread_t th = (pthread_t) arg;
-
-  if (pthread_join (th, NULL) == 0)
-    {
-      puts ("thread in parent joined!?");
-      exit (1);
-    }
-
-  puts ("join in thread in parent returned!?");
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  int fd[2];
-  if (pipe (fd) != 0)
-    {
-      puts ("pipe failed");
-      exit (1);
-    }
-
-  /* Not interested in knowing when the pipe is closed.  */
-  if (sigignore (SIGPIPE) != 0)
-    {
-      puts ("sigignore failed");
-      exit (1);
-    }
-
-  pid_t pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      exit (1);
-    }
-
-  if (pid == 0)
-    {
-      /* Use the fd for stdout.  This is kind of ugly because it
-	 substitutes the fd of stdout but we know what we are doing
-	 here...  */
-      if (dup2 (fd[1], STDOUT_FILENO) != STDOUT_FILENO)
-	{
-	  puts ("dup2 failed");
-	  exit (1);
-	}
-
-      close (fd[0]);
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
-	{
-	  puts ("create failed");
-	  exit (1);
-	}
-
-      execl (_PATH_BSHELL, _PATH_BSHELL, "-c", "echo $$", NULL);
-
-      puts ("execl failed");
-      exit (1);
-    }
-
-  close (fd[1]);
-
-  char buf[200];
-  ssize_t n;
-  bool seen_pid = false;
-  while (TEMP_FAILURE_RETRY ((n = read (fd[0], buf, sizeof (buf)))) > 0)
-    {
-      /* We only expect to read the PID.  */
-      char *endp;
-      long int rpid = strtol (buf, &endp, 10);
-
-      if (*endp != '\n')
-	{
-	  printf ("didn't parse whole line: \"%s\"\n", buf);
-	  exit (1);
-	}
-      if (endp == buf)
-	{
-	  puts ("read empty line");
-	  exit (1);
-	}
-
-      if (rpid != pid)
-	{
-	  printf ("found \"%s\", expected PID %ld\n", buf, (long int) pid);
-	  exit (1);
-	}
-
-      if (seen_pid)
-	{
-	  puts ("found more than one PID line");
-	  exit (1);
-	}
-      seen_pid = true;
-    }
-
-  close (fd[0]);
-
-  int status;
-  int err = waitpid (pid, &status, 0);
-  if (err != pid)
-    {
-      puts ("waitpid failed");
-      exit (1);
-    }
-
-  if (!seen_pid)
-    {
-      puts ("didn't get PID");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-exec3.c b/nptl/tst-exec3.c
deleted file mode 100644
index 814c79e596..0000000000
--- a/nptl/tst-exec3.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/* Thread calls exec.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <paths.h>
-#include <pthread.h>
-#include <signal.h>
-#include <spawn.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static void *
-tf (void *arg)
-{
-  execl (_PATH_BSHELL, _PATH_BSHELL, "-c", "echo $$", NULL);
-
-  puts ("execl failed");
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  int fd[2];
-  if (pipe (fd) != 0)
-    {
-      puts ("pipe failed");
-      exit (1);
-    }
-
-  /* Not interested in knowing when the pipe is closed.  */
-  if (sigignore (SIGPIPE) != 0)
-    {
-      puts ("sigignore failed");
-      exit (1);
-    }
-
-  pid_t pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      exit (1);
-    }
-
-  if (pid == 0)
-    {
-      /* Use the fd for stdout.  This is kind of ugly because it
-	 substitutes the fd of stdout but we know what we are doing
-	 here...  */
-      if (dup2 (fd[1], STDOUT_FILENO) != STDOUT_FILENO)
-	{
-	  puts ("dup2 failed");
-	  exit (1);
-	}
-
-      close (fd[0]);
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tf, NULL) != 0)
-	{
-	  puts ("create failed");
-	  exit (1);
-	}
-
-      if (pthread_join (th, NULL) == 0)
-	{
-	  puts ("join succeeded!?");
-	  exit (1);
-	}
-
-      puts ("join returned!?");
-      exit (1);
-    }
-
-  close (fd[1]);
-
-  char buf[200];
-  ssize_t n;
-  bool seen_pid = false;
-  while (TEMP_FAILURE_RETRY ((n = read (fd[0], buf, sizeof (buf)))) > 0)
-    {
-      /* We only expect to read the PID.  */
-      char *endp;
-      long int rpid = strtol (buf, &endp, 10);
-
-      if (*endp != '\n')
-	{
-	  printf ("didn't parse whole line: \"%s\"\n", buf);
-	  exit (1);
-	}
-      if (endp == buf)
-	{
-	  puts ("read empty line");
-	  exit (1);
-	}
-
-      if (rpid != pid)
-	{
-	  printf ("found \"%s\", expected PID %ld\n", buf, (long int) pid);
-	  exit (1);
-	}
-
-      if (seen_pid)
-	{
-	  puts ("found more than one PID line");
-	  exit (1);
-	}
-      seen_pid = true;
-    }
-
-  close (fd[0]);
-
-  int status;
-  int err = waitpid (pid, &status, 0);
-  if (err != pid)
-    {
-      puts ("waitpid failed");
-      exit (1);
-    }
-
-  if (!seen_pid)
-    {
-      puts ("didn't get PID");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-exec4.c b/nptl/tst-exec4.c
deleted file mode 100644
index 38725a2c6a..0000000000
--- a/nptl/tst-exec4.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Signal handler and mask set in thread which calls exec.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
-  /* Ignore SIGUSR1 and block SIGUSR2.  */
-  if (sigignore (SIGUSR1) != 0)
-    {
-      puts ("sigignore failed");
-      exit (1);
-    }
-
-  sigset_t ss;
-  sigemptyset (&ss);
-  sigaddset (&ss, SIGUSR2);
-  if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
-    {
-      puts ("1st run: sigmask failed");
-      exit (1);
-    }
-
-  char **oldargv = (char **) arg;
-  size_t n = 1;
-  while (oldargv[n] != NULL)
-    ++n;
-
-  char **argv = (char **) alloca ((n + 1) * sizeof (char *));
-  for (n = 0; oldargv[n + 1] != NULL; ++n)
-    argv[n] = oldargv[n + 1];
-  argv[n++] = (char *) "--direct";
-  argv[n] = NULL;
-
-  execv (argv[0], argv);
-
-  puts ("execv failed");
-
-  exit (1);
-}
-
-
-static int
-do_test (int argc, char *argv[])
-{
-  if (argc == 1)
-    {
-      /* This is the second call.  Perform the test.  */
-      struct sigaction sa;
-
-      if (sigaction (SIGUSR1, NULL, &sa) != 0)
-	{
-	  puts ("2nd run: sigaction failed");
-	  return 1;
-	}
-      if (sa.sa_handler != SIG_IGN)
-	{
-	  puts ("SIGUSR1 not ignored");
-	  return 1;
-	}
-
-      sigset_t ss;
-      if (pthread_sigmask (SIG_SETMASK, NULL, &ss) != 0)
-	{
-	  puts ("2nd run: sigmask failed");
-	  return 1;
-	}
-      if (! sigismember (&ss, SIGUSR2))
-	{
-	  puts ("SIGUSR2 not blocked");
-	  return 1;
-	}
-
-      return 0;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, argv) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  /* This call should never return.  */
-  pthread_join (th, NULL);
-
-  puts ("join returned");
-
-  return 1;
-}
-
-#define TEST_FUNCTION do_test (argc, argv)
-#include "../test-skeleton.c"
diff --git a/nptl/tst-exec5.c b/nptl/tst-exec5.c
deleted file mode 100644
index e93e58d8b0..0000000000
--- a/nptl/tst-exec5.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Check if posix_spawn does not act as a cancellation entrypoint.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <paths.h>
-#include <pthread.h>
-#include <signal.h>
-#include <spawn.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
-
-static pthread_barrier_t b;
-
-static pid_t pid;
-static int pipefd[2];
-
-static void *
-tf (void *arg)
-{
-  xpthread_barrier_wait (&b);
-
-  posix_spawn_file_actions_t a;
-  if (posix_spawn_file_actions_init (&a) != 0)
-    {
-      puts ("error: spawn_file_actions_init failed");
-      exit (1);
-    }
-
-  if (posix_spawn_file_actions_adddup2 (&a, pipefd[1], STDOUT_FILENO) != 0)
-    {
-      puts ("error: spawn_file_actions_adddup2 failed");
-      exit (1);
-    }
-
-  if (posix_spawn_file_actions_addclose (&a, pipefd[0]) != 0)
-    {
-      puts ("error: spawn_file_actions_addclose");
-      exit (1);
-    }
-
-  char *argv[] = { (char *) _PATH_BSHELL, (char *) "-c", (char *) "echo $$",
-		   NULL };
-  if (posix_spawn (&pid, _PATH_BSHELL, &a, NULL, argv, NULL) != 0)
-    {
-      puts ("error: spawn failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  /* The test basically pipe a 'echo $$' created by a thread with a
-     cancellation pending.  It then checks if the thread is not cancelled,
-     the process is created and if the output is the expected one.  */
-
-  if (pipe (pipefd) != 0)
-    {
-      puts ("error: pipe failed");
-      exit (1);
-    }
-
-  /* Not interested in knowing when the pipe is closed.  */
-  if (sigignore (SIGPIPE) != 0)
-    {
-      puts ("error: sigignore failed");
-      exit (1);
-    }
-
-  /* To synchronize with the thread.  */
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("error: pthread_barrier_init failed");
-      exit (1);
-    }
-
-  pthread_t th = xpthread_create (NULL, &tf, NULL);
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("error: pthread_cancel failed");
-      return 1;
-    }
-
-  xpthread_barrier_wait (&b);
-
-  if (xpthread_join (th) == PTHREAD_CANCELED)
-    {
-      puts ("error: thread cancelled");
-      exit (1);
-    }
-
-  close (pipefd[1]);
-
-  /* The global 'pid' should be set by thread posix_spawn calling.  Check
-     below if it was executed correctly and with expected output.  */
-
-  char buf[64];
-  ssize_t n;
-  bool seen_pid = false;
-  while (TEMP_FAILURE_RETRY ((n = read (pipefd[0], buf, sizeof (buf)))) > 0)
-    {
-      /* We only expect to read the PID.  */
-      char *endp;
-      long int rpid = strtol (buf, &endp, 10);
-
-      if (*endp != '\n')
-	{
-	  printf ("error: didn't parse whole line: \"%s\"\n", buf);
-	  exit (1);
-	}
-      if (endp == buf)
-	{
-	  puts ("error: read empty line");
-	  exit (1);
-	}
-
-      if (rpid != pid)
-	{
-	  printf ("error: found \"%s\", expected PID %ld\n", buf,
-		 (long int) pid);
-	  exit (1);
-	}
-
-      if (seen_pid)
-	{
-	  puts ("error: found more than one PID line");
-	  exit (1);
-	}
-
-      seen_pid = true;
-    }
-
-  close (pipefd[0]);
-
-  int status;
-  int err = waitpid (pid, &status, 0);
-  if (err != pid)
-    {
-      puts ("errnor: waitpid failed");
-      exit (1);
-    }
-
-  if (!seen_pid)
-    {
-      puts ("error: didn't get PID");
-      exit (1);
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-execstack-mod.c b/nptl/tst-execstack-mod.c
deleted file mode 100644
index 5b9812c258..0000000000
--- a/nptl/tst-execstack-mod.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "../elf/tst-execstack-mod.c"
diff --git a/nptl/tst-execstack.c b/nptl/tst-execstack.c
deleted file mode 100644
index 6e45c1a5e6..0000000000
--- a/nptl/tst-execstack.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define USE_PTHREADS 1
-#include "../elf/tst-execstack.c"
diff --git a/nptl/tst-exit1.c b/nptl/tst-exit1.c
deleted file mode 100644
index 1685ccd603..0000000000
--- a/nptl/tst-exit1.c
+++ /dev/null
@@ -1,78 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* NOTE: this tests functionality beyond POSIX.  POSIX does not allow
-   exit to be called more than once.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  exit (0);
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  int r = pthread_barrier_wait (&b);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  /* Do nothing.  */
-  if (pthread_join (th, NULL) == 0)
-    {
-      puts ("join succeeded!?");
-      exit (1);
-    }
-
-  puts ("join returned!?");
-  exit (1);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-exit2.c b/nptl/tst-exit2.c
deleted file mode 100644
index 0b7a2caf6a..0000000000
--- a/nptl/tst-exit2.c
+++ /dev/null
@@ -1,42 +0,0 @@
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static void *
-tf (void *arg)
-{
-  while (1)
-    sleep (100);
-
-  /* NOTREACHED */
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  int e = pthread_create (&th, NULL, tf, NULL);
-  if (e != 0)
-    {
-      printf ("create failed: %s\n", strerror (e));
-      return 1;
-    }
-
-  delayed_exit (1);
-
-  /* Terminate only this thread.  */
-  pthread_exit (NULL);
-
-  /* NOTREACHED */
-  return 1;
-}
diff --git a/nptl/tst-exit3.c b/nptl/tst-exit3.c
deleted file mode 100644
index 9481ed9b42..0000000000
--- a/nptl/tst-exit3.c
+++ /dev/null
@@ -1,83 +0,0 @@
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static pthread_barrier_t b;
-
-
-static void *
-tf2 (void *arg)
-{
-  while (1)
-    sleep (100);
-
-  /* NOTREACHED */
-  return NULL;
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_t th;
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  e = pthread_create (&th, NULL, tf2, NULL);
-  if (e != 0)
-    {
-      printf ("create failed: %s\n", strerror (e));
-      exit (1);
-    }
-
-  /* Terminate only this thread.  */
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  int e = pthread_create (&th, NULL, tf, NULL);
-  if (e != 0)
-    {
-      printf ("create failed: %s\n", strerror (e));
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  delayed_exit (3);
-
-  /* Terminate only this thread.  */
-  pthread_exit (NULL);
-
-  /* NOTREACHED */
-  return 1;
-}
diff --git a/nptl/tst-fini1.c b/nptl/tst-fini1.c
deleted file mode 100644
index b1e13e285f..0000000000
--- a/nptl/tst-fini1.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <unistd.h>
-
-extern void m (void);
-
-int
-main (void)
-{
-  alarm (5);
-
-  m ();
-
-  /* The destructor is supposed to run now.  Make sure that if it is
-     not we will notice it by using 42 as the exit code.  In case the
-     destructor is run it will terminate with status zero.  */
-  return 42;
-}
diff --git a/nptl/tst-fini1mod.c b/nptl/tst-fini1mod.c
deleted file mode 100644
index 1206ac5209..0000000000
--- a/nptl/tst-fini1mod.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *arg)
-{
-  int fds[2];
-  if (pipe (fds) != 0)
-    {
-      puts ("pipe failed");
-      exit (1);
-    }
-
-  char buf[10];
-  read (fds[0], buf, sizeof (buf));
-
-  puts ("read returned");
-  exit (1);
-}
-
-static pthread_t th;
-
-static void
-__attribute ((destructor))
-dest (void)
-{
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      _exit (1);
-    }
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      _exit (1);
-    }
-  /* Exit successfully.  */
-  _exit (0);
-}
-
-void
-m (void)
-{
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      _exit (1);
-    }
-}
diff --git a/nptl/tst-flock1.c b/nptl/tst-flock1.c
deleted file mode 100644
index 6c80d05575..0000000000
--- a/nptl/tst-flock1.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/file.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-static int fd;
-
-
-static void *
-tf (void *arg)
-{
-  if (flock (fd, LOCK_SH | LOCK_NB) != 0)
-    {
-      puts ("second flock failed");
-      exit (1);
-    }
-
-  pthread_mutex_unlock (&lock);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  char tmp[] = "/tmp/tst-flock1-XXXXXX";
-
-  fd = mkstemp (tmp);
-  if (fd == -1)
-    {
-      puts ("mkstemp failed");
-      exit (1);
-    }
-
-  unlink (tmp);
-
-  write (fd, "foobar xyzzy", 12);
-
-  if (flock (fd, LOCK_EX | LOCK_NB) != 0)
-    {
-      puts ("first flock failed");
-      exit (1);
-    }
-
-  pthread_mutex_lock (&lock);
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("pthread_create failed");
-      exit (1);
-    }
-
-  pthread_mutex_lock (&lock);
-
-  void *result;
-  if (pthread_join (th, &result) != 0)
-    {
-      puts ("pthread_join failed");
-      exit (1);
-    }
-
-  close (fd);
-
-  return result != NULL;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-flock2.c b/nptl/tst-flock2.c
deleted file mode 100644
index fec815522d..0000000000
--- a/nptl/tst-flock2.c
+++ /dev/null
@@ -1,259 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/file.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-static pthread_mutex_t lock2 = PTHREAD_MUTEX_INITIALIZER;
-static int fd;
-
-
-static void *
-tf (void *arg)
-{
-  struct flock fl =
-    {
-      .l_type = F_WRLCK,
-      .l_start = 0,
-      .l_whence = SEEK_SET,
-      .l_len = 10
-    };
-  if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0)
-    {
-      puts ("fourth fcntl failed");
-      exit (1);
-    }
-
-  pthread_mutex_unlock (&lock);
-
-  pthread_mutex_lock (&lock2);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  char tmp[] = "/tmp/tst-flock2-XXXXXX";
-
-  fd = mkstemp (tmp);
-  if (fd == -1)
-    {
-      puts ("mkstemp failed");
-      return 1;
-    }
-
-  unlink (tmp);
-
-  int i;
-  for (i = 0; i < 20; ++i)
-    write (fd, "foobar xyzzy", 12);
-
-  pthread_barrier_t *b;
-  b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE,
-	    MAP_SHARED, fd, 0);
-  if (b == MAP_FAILED)
-    {
-      puts ("mmap failed");
-      return 1;
-    }
-
-  pthread_barrierattr_t ba;
-  if (pthread_barrierattr_init (&ba) != 0)
-    {
-      puts ("barrierattr_init failed");
-      return 1;
-    }
-
-  if (pthread_barrierattr_setpshared (&ba, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("barrierattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (b, &ba, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_barrierattr_destroy (&ba) != 0)
-    {
-      puts ("barrierattr_destroy failed");
-      return 1;
-    }
-
-  struct flock fl =
-    {
-      .l_type = F_WRLCK,
-      .l_start = 0,
-      .l_whence = SEEK_SET,
-      .l_len = 10
-    };
-  if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0)
-    {
-      puts ("first fcntl failed");
-      return 1;
-    }
-
-  pid_t pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-
-  if (pid == 0)
-    {
-      /* Make sure the child does not stay around indefinitely.  */
-      alarm (10);
-
-      /* Try to get the lock.  */
-      if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0)
-	{
-	  puts ("child:  second flock succeeded");
-	  return 1;
-	}
-    }
-
-  pthread_barrier_wait (b);
-
-  if (pid != 0)
-    {
-      fl.l_type = F_UNLCK;
-      if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0)
-	{
-	  puts ("third fcntl failed");
-	  return 1;
-	}
-    }
-
-  pthread_barrier_wait (b);
-
-  pthread_t th;
-  if (pid == 0)
-    {
-      if (pthread_mutex_lock (&lock) != 0)
-	{
-	  puts ("1st locking of lock failed");
-	  return 1;
-	}
-
-      if (pthread_mutex_lock (&lock2) != 0)
-	{
-	  puts ("1st locking of lock2 failed");
-	  return 1;
-	}
-
-      if (pthread_create (&th, NULL, tf, NULL) != 0)
-	{
-	  puts ("pthread_create failed");
-	  return 1;
-	}
-
-      if (pthread_mutex_lock (&lock) != 0)
-	{
-	  puts ("2nd locking of lock failed");
-	  return 1;
-	}
-
-      puts ("child locked file");
-    }
-
-  pthread_barrier_wait (b);
-
-  if (pid != 0)
-    {
-      fl.l_type = F_WRLCK;
-      if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0)
-	{
-	  puts ("fifth fcntl succeeded");
-	  return 1;
-	}
-
-      puts ("file locked by child");
-    }
-
-  pthread_barrier_wait (b);
-
-  if (pid == 0)
-    {
-      if (pthread_mutex_unlock (&lock2) != 0)
-	{
-	  puts ("unlock of lock2 failed");
-	  return 1;
-	}
-
-      if (pthread_join (th, NULL) != 0)
-	{
-	  puts ("join failed");
-	  return 1;
-	}
-
-      puts ("child's thread terminated");
-    }
-
-  pthread_barrier_wait (b);
-
-  if (pid != 0)
-    {
-      fl.l_type = F_WRLCK;
-      if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLK, &fl)) == 0)
-	{
-	  puts ("fifth fcntl succeeded");
-	  return 1;
-	}
-
-      puts ("file still locked");
-    }
-
-  pthread_barrier_wait (b);
-
-  if (pid == 0)
-    {
-      _exit (0);
-    }
-
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-    {
-      puts ("waitpid failed");
-      return 1;
-    }
-  puts ("child terminated");
-
-  if (TEMP_FAILURE_RETRY (fcntl (fd, F_SETLKW, &fl)) != 0)
-    {
-      puts ("sixth fcntl failed");
-      return 1;
-    }
-
-  return status;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-fork1.c b/nptl/tst-fork1.c
deleted file mode 100644
index 86c0f555ac..0000000000
--- a/nptl/tst-fork1.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Roland McGrath <roland@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-static void *
-thread_function (void * arg)
-{
-  int i = (intptr_t) arg;
-  int status;
-  pid_t pid;
-  pid_t pid2;
-
-  pid = fork ();
-  switch (pid)
-    {
-    case 0:
-      printf ("%ld for %d\n", (long int) getpid (), i);
-      struct timespec ts = { .tv_sec = 0, .tv_nsec = 100000000 * i };
-      nanosleep (&ts, NULL);
-      _exit (i);
-      break;
-    case -1:
-      printf ("fork: %m\n");
-      return (void *) 1l;
-      break;
-    }
-
-  pid2 = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
-  if (pid2 != pid)
-    {
-      printf ("waitpid returned %ld, expected %ld\n",
-	      (long int) pid2, (long int) pid);
-      return (void *) 1l;
-    }
-
-  printf ("%ld with %d, expected %d\n",
-	  (long int) pid, WEXITSTATUS (status), i);
-
-  return WEXITSTATUS (status) == i ? NULL : (void *) 1l;
-}
-
-#define N 5
-static const int t[N] = { 7, 6, 5, 4, 3 };
-
-static int
-do_test (void)
-{
-  pthread_t th[N];
-  int i;
-  int result = 0;
-  pthread_attr_t at;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  for (i = 0; i < N; ++i)
-    if (pthread_create (&th[i], NULL, thread_function,
-			(void *) (intptr_t) t[i]) != 0)
-      {
-	printf ("creation of thread %d failed\n", i);
-	exit (1);
-      }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  for (i = 0; i < N; ++i)
-    {
-      void *v;
-      if (pthread_join (th[i], &v) != 0)
-	{
-	  printf ("join of thread %d failed\n", i);
-	  result = 1;
-	}
-      else if (v != NULL)
-	{
-	  printf ("join %d successful, but child failed\n", i);
-	  result = 1;
-	}
-      else
-	printf ("join %d successful\n", i);
-    }
-
-  return result;
-}
-
-#include <support/test-driver.c>
diff --git a/nptl/tst-fork2.c b/nptl/tst-fork2.c
deleted file mode 100644
index 6342502247..0000000000
--- a/nptl/tst-fork2.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Roland McGrath <roland@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static pid_t initial_pid;
-
-
-static void *
-tf (void *arg)
-{
-  if (getppid () != initial_pid)
-    {
-      printf ("getppid in thread returned %ld, expected %ld\n",
-	      (long int) getppid (), (long int) initial_pid);
-      return (void *) -1;
-    }
-
-  return NULL;
-}
-
-
-int
-main (void)
-{
-  initial_pid = getpid ();
-
-  pid_t child = fork ();
-  if (child == 0)
-    {
-      if (getppid () != initial_pid)
-	{
-	  printf ("first getppid returned %ld, expected %ld\n",
-		  (long int) getppid (), (long int) initial_pid);
-	  exit (1);
-	}
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tf, NULL) != 0)
-	{
-	  puts ("pthread_create failed");
-	  exit (1);
-	}
-
-      void *result;
-      if (pthread_join (th, &result) != 0)
-	{
-	  puts ("pthread_join failed");
-	  exit  (1);
-	}
-
-      exit (result == NULL ? 0 : 1);
-    }
-  else if (child == -1)
-    {
-      puts ("initial fork failed");
-      return 1;
-    }
-
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (child, &status, 0)) != child)
-    {
-      printf ("waitpid failed: %m\n");
-      return 1;
-    }
-
-  return status;
-}
diff --git a/nptl/tst-fork3.c b/nptl/tst-fork3.c
deleted file mode 100644
index 33d93f2a04..0000000000
--- a/nptl/tst-fork3.c
+++ /dev/null
@@ -1,108 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Roland McGrath <roland@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static pid_t initial_pid;
-
-
-static void *
-tf2 (void *arg)
-{
-  if (getppid () != initial_pid)
-    {
-      printf ("getppid in thread returned %ld, expected %ld\n",
-	      (long int) getppid (), (long int) initial_pid);
-      return (void *) -1;
-    }
-
-  return NULL;
-}
-
-
-static void *
-tf1 (void *arg)
-{
-  pid_t child = fork ();
-  if (child == 0)
-    {
-      if (getppid () != initial_pid)
-	{
-	  printf ("first getppid returned %ld, expected %ld\n",
-		  (long int) getppid (), (long int) initial_pid);
-	  exit (1);
-	}
-
-      pthread_t th2;
-      if (pthread_create (&th2, NULL, tf2, NULL) != 0)
-	{
-	  puts ("child: pthread_create failed");
-	  exit (1);
-	}
-
-      void *result;
-      if (pthread_join (th2, &result) != 0)
-	{
-	  puts ("pthread_join failed");
-	  exit  (1);
-	}
-
-      exit (result == NULL ? 0 : 1);
-    }
-  else if (child == -1)
-    {
-      puts ("initial fork failed");
-      exit (1);
-    }
-
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (child, &status, 0)) != child)
-    {
-      printf ("waitpid failed: %m\n");
-      exit (1);
-    }
-
-  exit (status);
-}
-
-
-static int
-do_test (void)
-{
-  initial_pid = getpid ();
-
-  pthread_t th1;
-  if (pthread_create (&th1, NULL, tf1, NULL) != 0)
-    {
-      puts ("parent: pthread_create failed");
-      exit (1);
-    }
-
-  /* This call should never return.  */
-  pthread_join (th1, NULL);
-
-  return 1;
-}
-
-#include <support/test-driver.c>
diff --git a/nptl/tst-fork4.c b/nptl/tst-fork4.c
deleted file mode 100644
index 34a571da64..0000000000
--- a/nptl/tst-fork4.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/* Test of fork updating child universe's pthread structures.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/wait.h>
-#include <string.h>
-
-
-static int
-do_test (void)
-{
-  pthread_t me = pthread_self ();
-
-  pid_t pid = fork ();
-
-  if (pid < 0)
-    {
-      printf ("fork: %m\n");
-      return 1;
-    }
-
-  if (pid == 0)
-    {
-      int err = pthread_kill (me, SIGTERM);
-      printf ("pthread_kill returned: %s\n", strerror (err));
-      return 3;
-    }
-
-  int status;
-  errno = 0;
-  if (wait (&status) != pid)
-    printf ("wait failed: %m\n");
-  else if (WIFSIGNALED (status) && WTERMSIG (status) == SIGTERM)
-    {
-      printf ("child correctly died with SIGTERM\n");
-      return 0;
-    }
-  else
-    printf ("child died with bad status %#x\n", status);
-
-  return 1;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-getpid3.c b/nptl/tst-getpid3.c
deleted file mode 100644
index f1e77f6b10..0000000000
--- a/nptl/tst-getpid3.c
+++ /dev/null
@@ -1,114 +0,0 @@
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-
-static pid_t pid;
-
-static void *
-pid_thread (void *arg)
-{
-  if (pid != getpid ())
-    {
-      printf ("pid wrong in thread: should be %d, is %d\n",
-	      (int) pid, (int) getpid ());
-      return (void *) 1L;
-    }
-
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  pid = getpid ();
-
-  pthread_t thr;
-  int ret = pthread_create (&thr, NULL, pid_thread, NULL);
-  if (ret)
-    {
-      printf ("pthread_create failed: %d\n", ret);
-      return 1;
-    }
-
-  void *thr_ret;
-  ret = pthread_join (thr, &thr_ret);
-  if (ret)
-    {
-      printf ("pthread_create failed: %d\n", ret);
-      return 1;
-    }
-  else if (thr_ret)
-    {
-      printf ("thread getpid failed\n");
-      return 1;
-    }
-
-  pid_t child = fork ();
-  if (child == -1)
-    {
-      printf ("fork failed: %m\n");
-      return 1;
-    }
-  else if (child == 0)
-    {
-      if (pid == getpid ())
-	{
-	  puts ("pid did not change after fork");
-	  exit (1);
-	}
-
-      pid = getpid ();
-      ret = pthread_create (&thr, NULL, pid_thread, NULL);
-      if (ret)
-	{
-	  printf ("pthread_create failed: %d\n", ret);
-	  return 1;
-	}
-
-      ret = pthread_join (thr, &thr_ret);
-      if (ret)
-	{
-	  printf ("pthread_create failed: %d\n", ret);
-	  return 1;
-	}
-      else if (thr_ret)
-	{
-	  printf ("thread getpid failed\n");
-	  return 1;
-	}
-
-      return 0;
-    }
-
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (child, &status, 0)) != child)
-    {
-      puts ("waitpid failed");
-      kill (child, SIGKILL);
-      return 1;
-    }
-
-  if (!WIFEXITED (status))
-    {
-      if (WIFSIGNALED (status))
-	printf ("died from signal %s\n", strsignal (WTERMSIG (status)));
-      else
-	puts ("did not terminate correctly");
-      return 1;
-    }
-  if (WEXITSTATUS (status) != 0)
-    {
-      printf ("exit code %d\n", WEXITSTATUS (status));
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-initializers1-c11.c b/nptl/tst-initializers1-c11.c
deleted file mode 100644
index 7c27c1d545..0000000000
--- a/nptl/tst-initializers1-c11.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/nptl/tst-initializers1-c89.c b/nptl/tst-initializers1-c89.c
deleted file mode 100644
index 7c27c1d545..0000000000
--- a/nptl/tst-initializers1-c89.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/nptl/tst-initializers1-c99.c b/nptl/tst-initializers1-c99.c
deleted file mode 100644
index 7c27c1d545..0000000000
--- a/nptl/tst-initializers1-c99.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/nptl/tst-initializers1-gnu11.c b/nptl/tst-initializers1-gnu11.c
deleted file mode 100644
index 7c27c1d545..0000000000
--- a/nptl/tst-initializers1-gnu11.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/nptl/tst-initializers1-gnu89.c b/nptl/tst-initializers1-gnu89.c
deleted file mode 100644
index 7c27c1d545..0000000000
--- a/nptl/tst-initializers1-gnu89.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/nptl/tst-initializers1-gnu99.c b/nptl/tst-initializers1-gnu99.c
deleted file mode 100644
index 7c27c1d545..0000000000
--- a/nptl/tst-initializers1-gnu99.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-initializers1.c"
diff --git a/nptl/tst-initializers1.c b/nptl/tst-initializers1.c
deleted file mode 100644
index 5ceb683241..0000000000
--- a/nptl/tst-initializers1.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* We test the code undef conditions outside of glibc.  */
-#undef _LIBC
-
-#include <pthread.h>
-
-pthread_mutex_t mtx_normal = PTHREAD_MUTEX_INITIALIZER;
-pthread_mutex_t mtx_recursive = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-pthread_mutex_t mtx_errorchk = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
-pthread_mutex_t mtx_adaptive = PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP;
-pthread_rwlock_t rwl_normal = PTHREAD_RWLOCK_INITIALIZER;
-pthread_rwlock_t rwl_writer
-  = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP;
-pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-static int
-do_test (void)
-{
-  if (mtx_normal.__data.__kind != PTHREAD_MUTEX_TIMED_NP)
-    return 1;
-  if (mtx_recursive.__data.__kind != PTHREAD_MUTEX_RECURSIVE_NP)
-    return 2;
-  if (mtx_errorchk.__data.__kind != PTHREAD_MUTEX_ERRORCHECK_NP)
-    return 3;
-  if (mtx_adaptive.__data.__kind != PTHREAD_MUTEX_ADAPTIVE_NP)
-    return 4;
-  if (rwl_normal.__data.__flags != PTHREAD_RWLOCK_PREFER_READER_NP)
-    return 5;
-  if (rwl_writer.__data.__flags
-      != PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP)
-    return 6;
-  /* <libc-lock.h> __libc_rwlock_init definition for libc.so
-     relies on PTHREAD_RWLOCK_INITIALIZER being all zeros.  If
-     that ever changes, <libc-lock.h> needs updating.  */
-  size_t i;
-  for (i = 0; i < sizeof (rwl_normal); i++)
-    if (((char *) &rwl_normal)[i] != '\0')
-      return 7;
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-join1.c b/nptl/tst-join1.c
deleted file mode 100644
index 84dd6e56d6..0000000000
--- a/nptl/tst-join1.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
-  pthread_t mh = (pthread_t) arg;
-  void *result;
-
-  if (pthread_mutex_unlock (&lock) != 0)
-    {
-      puts ("unlock failed");
-      exit (1);
-    }
-
-  if (pthread_join (mh, &result) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  if (result != (void *) 42l)
-    {
-      printf ("result wrong: expected %p, got %p\n", (void *) 42, result);
-      exit (1);
-    }
-
-  exit (0);
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_mutex_lock (&lock) != 0)
-    {
-      puts ("1st lock failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, (void *) pthread_self ()) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_lock (&lock) != 0)
-    {
-      puts ("2nd lock failed");
-      exit (1);
-    }
-
-  pthread_exit ((void *) 42);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-join2.c b/nptl/tst-join2.c
deleted file mode 100644
index 54eee08de7..0000000000
--- a/nptl/tst-join2.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
-  if (pthread_mutex_lock (&lock) != 0)
-    {
-      puts ("child: mutex_lock failed");
-      return NULL;
-    }
-
-  return (void *) 42l;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_mutex_lock (&lock) != 0)
-    {
-      puts ("mutex_lock failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("mutex_create failed");
-      exit (1);
-    }
-
-  void *status;
-  int val = pthread_tryjoin_np (th, &status);
-  if (val == 0)
-    {
-      puts ("1st tryjoin succeeded");
-      exit (1);
-    }
-  else if (val != EBUSY)
-    {
-      puts ("1st tryjoin didn't return EBUSY");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&lock) != 0)
-    {
-      puts ("mutex_unlock failed");
-      exit (1);
-    }
-
-  while ((val = pthread_tryjoin_np (th, &status)) != 0)
-    {
-      if (val != EBUSY)
-	{
-	  printf ("tryjoin returned %s (%d), expected only 0 or EBUSY\n",
-		  strerror (val), val);
-	  exit (1);
-	}
-
-      /* Delay minimally.  */
-      struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
-      nanosleep (&ts, NULL);
-    }
-
-  if (status != (void *) 42l)
-    {
-      printf ("return value %p, expected %p\n", status, (void *) 42l);
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-join3.c b/nptl/tst-join3.c
deleted file mode 100644
index 956342fef6..0000000000
--- a/nptl/tst-join3.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/time.h>
-
-
-static pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
-  if (pthread_mutex_lock (&lock) != 0)
-    {
-      puts ("child: mutex_lock failed");
-      return NULL;
-    }
-
-  return (void *) 42l;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_mutex_lock (&lock) != 0)
-    {
-      puts ("mutex_lock failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("mutex_create failed");
-      exit (1);
-    }
-
-  void *status;
-  struct timespec ts;
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_nsec += 200000000;
-  if (ts.tv_nsec >= 1000000000)
-    {
-      ts.tv_nsec -= 1000000000;
-      ++ts.tv_sec;
-    }
-  int val = pthread_timedjoin_np (th, &status, &ts);
-  if (val == 0)
-    {
-      puts ("1st timedjoin succeeded");
-      exit (1);
-    }
-  else if (val != ETIMEDOUT)
-    {
-      puts ("1st timedjoin didn't return ETIMEDOUT");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&lock) != 0)
-    {
-      puts ("mutex_unlock failed");
-      exit (1);
-    }
-
-  while (1)
-    {
-      (void) gettimeofday (&tv, NULL);
-      TIMEVAL_TO_TIMESPEC (&tv, &ts);
-      ts.tv_nsec += 200000000;
-      if (ts.tv_nsec >= 1000000000)
-	{
-	  ts.tv_nsec -= 1000000000;
-	  ++ts.tv_sec;
-	}
-
-      val = pthread_timedjoin_np (th, &status, &ts);
-      if (val == 0)
-	break;
-
-      if (val != ETIMEDOUT)
-	{
-	  printf ("timedjoin returned %s (%d), expected only 0 or ETIMEDOUT\n",
-		  strerror (val), val);
-	  exit (1);
-	}
-    }
-
-  if (status != (void *) 42l)
-    {
-      printf ("return value %p, expected %p\n", status, (void *) 42l);
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-join4.c b/nptl/tst-join4.c
deleted file mode 100644
index 0fbd83101f..0000000000
--- a/nptl/tst-join4.c
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t bar;
-
-
-static void *
-tf (void *arg)
-{
-  if (pthread_barrier_wait (&bar) != 0)
-    {
-      puts ("tf: barrier_wait failed");
-      exit (1);
-    }
-
-  return (void *) 1l;
-}
-
-
-static int
-do_test (void)
-{
-  if (pthread_barrier_init (&bar, NULL, 3) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  pthread_t th[2];
-
-  if (pthread_create (&th[0], &a, tf, NULL) != 0)
-    {
-      puts ("1st create failed");
-      exit (1);
-    }
-
-  if (pthread_attr_setdetachstate (&a, PTHREAD_CREATE_DETACHED) != 0)
-    {
-      puts ("attr_setdetachstate failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th[1], &a, tf, NULL) != 0)
-    {
-      puts ("1st create failed");
-      exit (1);
-    }
-
-  if (pthread_attr_destroy (&a) != 0)
-    {
-      puts ("attr_destroy failed");
-      exit (1);
-    }
-
-  if (pthread_detach (th[0]) != 0)
-    {
-      puts ("could not detach 1st thread");
-      exit (1);
-    }
-
-  int err = pthread_detach (th[0]);
-  if (err == 0)
-    {
-      puts ("second detach of 1st thread succeeded");
-      exit (1);
-    }
-  if (err != EINVAL)
-    {
-      printf ("second detach of 1st thread returned %d, not EINVAL\n", err);
-      exit (1);
-    }
-
-  err = pthread_detach (th[1]);
-  if (err == 0)
-    {
-      puts ("detach of 2nd thread succeeded");
-      exit (1);
-    }
-  if (err != EINVAL)
-    {
-      printf ("detach of 2nd thread returned %d, not EINVAL\n", err);
-      exit (1);
-    }
-
-  exit (0);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-join5.c b/nptl/tst-join5.c
deleted file mode 100644
index 7a9fa750fe..0000000000
--- a/nptl/tst-join5.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-static void
-wait_code (void)
-{
-  struct timespec ts = { .tv_sec = 0, .tv_nsec = 200000000 };
-  while (nanosleep (&ts, &ts) < 0)
-    ;
-}
-
-
-#ifdef WAIT_IN_CHILD
-static pthread_barrier_t b;
-#endif
-
-
-static void *
-tf1 (void *arg)
-{
-#ifdef WAIT_IN_CHILD
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("%s: barrier_wait failed\n", __func__);
-      exit (1);
-    }
-
-  wait_code ();
-#endif
-
-  pthread_join ((pthread_t) arg, NULL);
-
-  exit (42);
-}
-
-
-static void *
-tf2 (void *arg)
-{
-#ifdef WAIT_IN_CHILD
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("%s: barrier_wait failed\n", __func__);
-      exit (1);
-    }
-
-  wait_code ();
-#endif
-  pthread_join ((pthread_t) arg, NULL);
-
-  exit (43);
-}
-
-
-static int
-do_test (void)
-{
-#ifdef WAIT_IN_CHILD
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-#endif
-
-  pthread_t th;
-
-  int err = pthread_join (pthread_self (), NULL);
-  if (err == 0)
-    {
-      puts ("1st circular join succeeded");
-      return 1;
-    }
-  if (err != EDEADLK)
-    {
-      printf ("1st circular join %d, not EDEADLK\n", err);
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf1, (void *) pthread_self ()) != 0)
-    {
-      puts ("1st create failed");
-      return 1;
-    }
-
-#ifndef WAIT_IN_CHILD
-  wait_code ();
-#endif
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cannot cancel 1st thread");
-      return 1;
-    }
-
-#ifdef WAIT_IN_CHILD
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("%s: barrier_wait failed\n", __func__);
-      return 1;
-    }
-#endif
-
-  void *r;
-  err = pthread_join (th, &r);
-  if (err != 0)
-    {
-      printf ("cannot join 1st thread: %d\n", err);
-      return 1;
-    }
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("1st thread not canceled");
-      return 1;
-    }
-
-  err = pthread_join (pthread_self (), NULL);
-  if (err == 0)
-    {
-      puts ("2nd circular join succeeded");
-      return 1;
-    }
-  if (err != EDEADLK)
-    {
-      printf ("2nd circular join %d, not EDEADLK\n", err);
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf2, (void *) pthread_self ()) != 0)
-    {
-      puts ("2nd create failed");
-      return 1;
-    }
-
-#ifndef WAIT_IN_CHILD
-  wait_code ();
-#endif
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cannot cancel 2nd thread");
-      return 1;
-    }
-
-#ifdef WAIT_IN_CHILD
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("%s: barrier_wait failed\n", __func__);
-      return 1;
-    }
-#endif
-
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("cannot join 2nd thread");
-      return 1;
-    }
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("2nd thread not canceled");
-      return 1;
-    }
-
-  err = pthread_join (pthread_self (), NULL);
-  if (err == 0)
-    {
-      puts ("3rd circular join succeeded");
-      return 1;
-    }
-  if (err != EDEADLK)
-    {
-      printf ("3rd circular join %d, not EDEADLK\n", err);
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-join6.c b/nptl/tst-join6.c
deleted file mode 100644
index 0c9e7c056b..0000000000
--- a/nptl/tst-join6.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define WAIT_IN_CHILD 1
-#include "tst-join5.c"
diff --git a/nptl/tst-join7.c b/nptl/tst-join7.c
deleted file mode 100644
index af2c5d16dc..0000000000
--- a/nptl/tst-join7.c
+++ /dev/null
@@ -1,46 +0,0 @@
-/* Verify that TLS access in separate thread in a dlopened library does not
-   deadlock.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <dlfcn.h>
-
-/* When one dynamically loads a module, which spawns a thread to perform some
-   activities, it could be possible that TLS storage is accessed for the first
-   time in that thread.  This results in an allocation request within the
-   thread, which could result in an attempt to take the rtld load_lock.  This
-   is a problem because it would then deadlock with the dlopen (which owns the
-   lock), if the main thread is waiting for the spawned thread to exit.  We can
-   at least ensure that this problem does not occur due to accesses within
-   libc.so, by marking TLS variables within libc.so as IE.  The problem of an
-   arbitrary variable being accessed and constructed within such a thread still
-   exists but this test case does not verify that.  */
-
-int
-do_test (void)
-{
-  void *f = dlopen ("tst-join7mod.so", RTLD_NOW | RTLD_GLOBAL);
-  if (f)
-    dlclose (f);
-  else
-    return 1;
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-join7mod.c b/nptl/tst-join7mod.c
deleted file mode 100644
index 7b94af6d54..0000000000
--- a/nptl/tst-join7mod.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Verify that TLS access in separate thread in a dlopened library does not
-   deadlock - the module.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <pthread.h>
-#include <atomic.h>
-
-static pthread_t th;
-static int running = 1;
-
-static void *
-test_run (void *p)
-{
-  while (atomic_load_relaxed (&running))
-    printf ("Test running\n");
-  printf ("Test finished\n");
-  return NULL;
-}
-
-static void __attribute__ ((constructor))
-do_init (void)
-{
-  int ret = pthread_create (&th, NULL, test_run, NULL);
-
-  if (ret != 0)
-    {
-      printf ("failed to create thread: %s (%d)\n", strerror (ret), ret);
-      exit (1);
-    }
-}
-
-static void __attribute__ ((destructor))
-do_end (void)
-{
-  atomic_store_relaxed (&running, 0);
-  int ret = pthread_join (th, NULL);
-
-  if (ret != 0)
-    {
-      printf ("pthread_join: %s(%d)\n", strerror (ret), ret);
-      exit (1);
-    }
-
-  printf ("Thread joined\n");
-}
diff --git a/nptl/tst-key1.c b/nptl/tst-key1.c
deleted file mode 100644
index 0240bbb553..0000000000
--- a/nptl/tst-key1.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-int
-do_test (void)
-{
-  int max;
-#ifdef PTHREAD_KEYS_MAX
-  max = PTHREAD_KEYS_MAX;
-#else
-  max = _POSIX_THREAD_KEYS_MAX;
-#endif
-  pthread_key_t *keys = alloca (max * sizeof (pthread_key_t));
-
-  int i;
-  for (i = 0; i < max; ++i)
-    if (pthread_key_create (&keys[i], NULL) != 0)
-      {
-	write_message ("key_create failed\n");
-	_exit (1);
-      }
-    else
-      {
-	printf ("created key %d\n", i);
-
-	if (pthread_setspecific (keys[i], (const void *) (i + 100l)) != 0)
-	  {
-	    write (2, "setspecific failed\n", 19);
-	    _exit (1);
-	  }
-      }
-
-  for (i = 0; i < max; ++i)
-    {
-      if (pthread_getspecific (keys[i]) != (void *) (i + 100l))
-	{
-	  write (2, "getspecific failed\n", 19);
-	  _exit (1);
-	}
-
-      if (pthread_key_delete (keys[i]) != 0)
-	{
-	  write (2, "key_delete failed\n", 18);
-	  _exit (1);
-	}
-    }
-
-  /* Now it must be once again possible to allocate keys.  */
-  if (pthread_key_create (&keys[0], NULL) != 0)
-    {
-      write (2, "2nd key_create failed\n", 22);
-      _exit (1);
-    }
-
-  if (pthread_key_delete (keys[0]) != 0)
-    {
-      write (2, "2nd key_delete failed\n", 22);
-      _exit (1);
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-key2.c b/nptl/tst-key2.c
deleted file mode 100644
index a067873aa6..0000000000
--- a/nptl/tst-key2.c
+++ /dev/null
@@ -1,115 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-
-#define N 2
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static int cnt0;
-static void
-f0 (void *p)
-{
-  ++cnt0;
-}
-
-
-static int cnt1;
-static void
-f1 (void *p)
-{
-  ++cnt1;
-}
-
-
-static void (*fcts[N]) (void *) =
-{
-  f0,
-  f1
-};
-
-
-static void *
-tf (void *arg)
-{
-  pthread_key_t *key = (pthread_key_t *) arg;
-
-  if (pthread_setspecific (*key, (void *) -1l) != 0)
-    {
-      write_message ("setspecific failed\n");
-      _exit (1);
-    }
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_key_t keys[N];
-
-  int i;
-  for (i = 0; i < N; ++i)
-    if (pthread_key_create (&keys[i], fcts[i]) != 0)
-      {
-	write_message ("key_create failed\n");
-	_exit (1);
-      }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, &keys[1]) != 0)
-    {
-      write_message ("create failed\n");
-      _exit (1);
-    }
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      write_message ("join failed\n");
-      _exit (1);
-    }
-
-  if (cnt0 != 0)
-    {
-      write_message ("cnt0 != 0\n");
-      _exit (1);
-    }
-
-  if (cnt1 != 1)
-    {
-      write_message ("cnt1 != 1\n");
-      _exit (1);
-    }
-
-  for (i = 0; i < N; ++i)
-    if (pthread_key_delete (keys[i]) != 0)
-      {
-	write_message ("key_delete failed\n");
-	_exit (1);
-      }
-
-  return 0;
-}
diff --git a/nptl/tst-key3.c b/nptl/tst-key3.c
deleted file mode 100644
index d128477f31..0000000000
--- a/nptl/tst-key3.c
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-
-#define N 2
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static int cnt0;
-static void
-f0 (void *p)
-{
-  ++cnt0;
-}
-
-
-static int cnt1;
-static void
-f1 (void *p)
-{
-  ++cnt1;
-}
-
-
-static void (*fcts[N]) (void *) =
-{
-  f0,
-  f1
-};
-
-
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
-  pthread_key_t *key = (pthread_key_t *) arg;
-
-  if (pthread_setspecific (*key, (void *) -1l) != 0)
-    {
-      write_message ("setspecific failed\n");
-      _exit (1);
-    }
-
-  pthread_barrier_wait (&b);
-
-  const struct timespec t = { .tv_sec = 1000, .tv_nsec = 0 };
-  while (1)
-    nanosleep (&t, NULL);
-
-  /* NOTREACHED */
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_key_t keys[N];
-
-  int i;
-  for (i = 0; i < N; ++i)
-    if (pthread_key_create (&keys[i], fcts[i]) != 0)
-      {
-	write_message ("key_create failed\n");
-	_exit (1);
-      }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      write_message ("barrier_init failed\n");
-      _exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, &keys[1]) != 0)
-    {
-      write_message ("create failed\n");
-      _exit (1);
-    }
-
-  pthread_barrier_wait (&b);
-
-  if (pthread_cancel (th) != 0)
-    {
-      write_message ("cancel failed\n");
-      _exit (1);
-    }
-
-  void *status;
-  if (pthread_join (th, &status) != 0)
-    {
-      write_message ("join failed\n");
-      _exit (1);
-    }
-
-  if (status != PTHREAD_CANCELED)
-    {
-      write_message ("thread not canceled\n");
-      _exit (1);
-    }
-
-  /* Note that the TSD destructors not necessarily have to have
-     finished by the time pthread_join returns.  At least according to
-     POSIX.  We implement the stronger requirement that they indeed
-     have run and therefore these tests succeed.  */
-  if (cnt0 != 0)
-    {
-      write_message ("cnt0 != 0\n");
-      _exit (1);
-    }
-
-  if (cnt1 != 1)
-    {
-      write_message ("cnt1 != 1\n");
-      _exit (1);
-    }
-
-  for (i = 0; i < N; ++i)
-    if (pthread_key_delete (keys[i]) != 0)
-      {
-	write_message ("key_delete failed\n");
-	_exit (1);
-      }
-
-  if (pthread_barrier_destroy (&b) != 0)
-    {
-      write_message ("barrier_destroy failed\n");
-      _exit (1);
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-key4.c b/nptl/tst-key4.c
deleted file mode 100644
index 2552be9c3e..0000000000
--- a/nptl/tst-key4.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#ifdef PTHREAD_KEYS_MAX
-const int max = PTHREAD_KEYS_MAX;
-#else
-const int max = _POSIX_THREAD_KEYS_MAX;
-#endif
-static pthread_key_t *keys;
-
-
-static void *
-tf1 (void *arg)
-{
-  int i;
-  for (i = 0; i < max; ++i)
-    if (pthread_setspecific (keys[i], (void *) (long int) (i + 1)) != 0)
-      {
-	puts ("setspecific failed");
-	exit (1);
-      }
-
-  return NULL;
-}
-
-
-static void *
-tf2 (void *arg)
-{
-  int i;
-  for (i = 0; i < max; ++i)
-    if (pthread_getspecific (keys[i]) != NULL)
-      {
-	printf ("getspecific for key %d not NULL\n", i);
-	exit (1);
-      }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  keys = alloca (max * sizeof (pthread_key_t));
-
-  int i;
-  for (i = 0; i < max; ++i)
-    if (pthread_key_create (&keys[i], NULL) != 0)
-      {
-	puts ("key_create failed");
-	exit (1);
-      }
-
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  for (i = 0; i < 10; ++i)
-    {
-      int j;
-#define N 2
-      pthread_t th[N];
-      for (j = 0; j < N; ++j)
-	if (pthread_create (&th[j], NULL, tf1, NULL) != 0)
-	  {
-	    puts ("1st create failed");
-	    exit (1);
-	  }
-
-      for (j = 0; j < N; ++j)
-	if (pthread_join (th[j], NULL) != 0)
-	  {
-	    puts ("1st join failed");
-	    exit (1);
-	  }
-
-      for (j = 0; j < N; ++j)
-	if (pthread_create (&th[j], NULL, tf2, NULL) != 0)
-	  {
-	    puts ("2nd create failed");
-	    exit (1);
-	  }
-
-      for (j = 0; j < N; ++j)
-	if (pthread_join (th[j], NULL) != 0)
-	  {
-	    puts ("2nd join failed");
-	    exit (1);
-	  }
-    }
-
-  if (pthread_attr_destroy (&a) != 0)
-    {
-      puts ("attr_destroy failed");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-kill1.c b/nptl/tst-kill1.c
deleted file mode 100644
index 0a077e865a..0000000000
--- a/nptl/tst-kill1.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t b;
-
-static void *
-tf (void *a)
-{
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("child: mutex_lock failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: barrier_wait failed");
-      exit (1);
-    }
-
-  /* This call should never return.  */
-  pthread_cond_wait (&c, &m);
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("mutex_lock failed");
-      exit (1);
-    }
-
-  /* Send the thread a signal which it doesn't catch and which will
-     cause the process to terminate.  */
-  if (pthread_kill (th, SIGUSR1) != 0)
-    {
-      puts ("kill failed");
-      exit (1);
-    }
-
-  /* This call should never return.  */
-  pthread_join (th, NULL);
-
-  return 0;
-}
-
-
-#define EXPECTED_SIGNAL SIGUSR1
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-kill2.c b/nptl/tst-kill2.c
deleted file mode 100644
index 58391bdad2..0000000000
--- a/nptl/tst-kill2.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/time.h>
-
-
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t b;
-
-static void *
-tf (void *a)
-{
-  /* Block SIGUSR1.  */
-  sigset_t ss;
-
-  sigemptyset (&ss);
-  sigaddset (&ss, SIGUSR1);
-  if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
-    {
-      puts ("child: sigmask failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("child: mutex_lock failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: barrier_wait failed");
-      exit (1);
-    }
-
-  /* Compute timeout.  */
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  /* Timeout: 1sec.  */
-  ts.tv_sec += 1;
-
-  /* This call should never return.  */
-  if (pthread_cond_timedwait (&c, &m, &ts) != ETIMEDOUT)
-    {
-      puts ("cond_timedwait didn't time out");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("mutex_lock failed");
-      exit (1);
-    }
-
-  /* Send the thread a signal which it has blocked.  */
-  if (pthread_kill (th, SIGUSR1) != 0)
-    {
-      puts ("kill failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("mutex_unlock failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-  if (r != NULL)
-    {
-      puts ("return value wrong");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-kill3.c b/nptl/tst-kill3.c
deleted file mode 100644
index 824304bde3..0000000000
--- a/nptl/tst-kill3.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static int do_test (void);
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_barrier_t b;
-
-
-static void
-handler (int sig)
-{
-  write_message ("handler called\n");
-  _exit (1);
-}
-
-
-static void *
-tf (void *a)
-{
-  /* Block SIGUSR1.  */
-  sigset_t ss;
-
-  sigemptyset (&ss);
-  sigaddset (&ss, SIGUSR1);
-  if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
-    {
-      puts ("child: sigmask failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("child: mutex_lock failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: barrier_wait failed");
-      exit (1);
-    }
-
-  /* Compute timeout.  */
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  /* Timeout: 1sec.  */
-  ts.tv_sec += 1;
-
-  /* This call should never return.  */
-  if (pthread_cond_timedwait (&c, &m, &ts) != ETIMEDOUT)
-    {
-      puts ("cond_timedwait didn't time out");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-
-  struct sigaction sa;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-  sa.sa_handler = handler;
-  if (sigaction (SIGUSR1, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      exit (1);
-    }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("mutex_lock failed");
-      exit (1);
-    }
-
-  /* Send the thread a signal which it has blocked.  */
-  if (pthread_kill (th, SIGUSR1) != 0)
-    {
-      puts ("kill failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("mutex_unlock failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-  if (r != NULL)
-    {
-      puts ("return value wrong");
-      exit (1);
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-kill4.c b/nptl/tst-kill4.c
deleted file mode 100644
index 81e5c726dc..0000000000
--- a/nptl/tst-kill4.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void *
-tf (void *a)
-{
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  pthread_attr_t at;
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_create failed");
-      exit (1);
-    }
-
-  /* Limit thread stack size, because if it is too large, pthread_join
-     will free it immediately rather than put it into stack cache.  */
-  if (pthread_attr_setstacksize (&at, 2 * 1024 * 1024) != 0)
-    {
-      puts ("setstacksize failed");
-      exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, &at, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      exit (1);
-    }
-
-  pthread_attr_destroy (&at);
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  /* The following only works because we assume here something about
-     the implementation.  Namely, that the memory allocated for the
-     thread descriptor is not going away, that the TID field is
-     cleared and therefore the signal is sent to process 0, and that
-     we can savely assume there is no other process with this ID at
-     that time.  */
-  int e = pthread_kill (th, 0);
-  if (e == 0)
-    {
-      puts ("pthread_kill succeeded");
-      exit (1);
-    }
-  if (e != ESRCH)
-    {
-      puts ("pthread_kill didn't return ESRCH");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-kill5.c b/nptl/tst-kill5.c
deleted file mode 100644
index fff69e747b..0000000000
--- a/nptl/tst-kill5.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <limits.h>
-
-
-int
-do_test (void)
-{
-  /* XXX This test might require architecture and system specific changes.
-     There is no guarantee that this signal number is invalid.  */
-  int e = pthread_kill (pthread_self (), INT_MAX);
-  if (e == 0)
-    {
-      puts ("kill didn't failed");
-      exit (1);
-    }
-  if (e != EINVAL)
-    {
-      puts ("error not EINVAL");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-kill6.c b/nptl/tst-kill6.c
deleted file mode 100644
index cdca19c149..0000000000
--- a/nptl/tst-kill6.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static pthread_t receiver;
-static sem_t sem;
-static pthread_barrier_t b;
-
-static void
-handler (int sig)
-{
-  if (sig != SIGUSR1)
-    {
-      write_message ("wrong signal\n");
-      _exit (1);
-    }
-
-  if (pthread_self () != receiver)
-    {
-      write_message ("not the intended receiver\n");
-      _exit (1);
-    }
-
-  if (sem_post (&sem) != 0)
-    {
-      write_message ("sem_post failed\n");
-      _exit (1);
-    }
-}
-
-
-static void *
-tf (void *a)
-{
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: barrier_wait failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  struct sigaction sa;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-  sa.sa_handler = handler;
-  if (sigaction (SIGUSR1, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      exit (1);
-    }
-
-#define N 20
-
-  if (pthread_barrier_init (&b, NULL, N + 1) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  pthread_t th[N];
-  int i;
-  for (i = 0; i < N; ++i)
-    if (pthread_create (&th[i], &a, tf, NULL) != 0)
-      {
-	puts ("create failed");
-	exit (1);
-      }
-
-  if (pthread_attr_destroy (&a) != 0)
-    {
-      puts ("attr_destroy failed");
-      exit (1);
-    }
-
-  if (sem_init (&sem, 0, 0) != 0)
-    {
-      puts ("sem_init failed");
-      exit (1);
-    }
-
-  for (i = 0; i < N * 10; ++i)
-    {
-      receiver = th[i % N];
-
-      if (pthread_kill (receiver, SIGUSR1) != 0)
-	{
-	  puts ("kill failed");
-	  exit (1);
-	}
-
-      if (TEMP_FAILURE_RETRY (sem_wait (&sem)) != 0)
-	{
-	  puts ("sem_wait failed");
-	  exit (1);
-	}
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  for (i = 0; i < N; ++i)
-    if (pthread_join (th[i], NULL) != 0)
-      {
-	puts ("join failed");
-	exit (1);
-      }
-
-  return 0;
-}
diff --git a/nptl/tst-locale1.c b/nptl/tst-locale1.c
deleted file mode 100644
index 887b9a6dd7..0000000000
--- a/nptl/tst-locale1.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Test that the thread-local locale works right in the main thread
-   when statically linked.  */
-
-#include "../locale/tst-C-locale.c"
-
-#include <pthread.h>
-#include <signal.h>
-
-/* This is never called, just here to get pthreads linked in.  */
-int
-useless (void)
-{
-  pthread_t th;
-  pthread_create (&th, 0, (void *(*) (void *)) useless, 0);
-  int result = 0;
-#ifdef SIGRTMIN
-  /* This is to check __libc_current_sigrt* can be used in statically
-     linked apps.  */
-  result = SIGRTMIN;
-#endif
-  return result;
-}
diff --git a/nptl/tst-locale2.c b/nptl/tst-locale2.c
deleted file mode 100644
index a238209f87..0000000000
--- a/nptl/tst-locale2.c
+++ /dev/null
@@ -1,15 +0,0 @@
-/* Test that the thread-local locale works right in the main thread
-   when statically linked.  */
-
-#include "../argp/tst-argp1.c"
-
-#include <pthread.h>
-
-/* This is never called, just here to get pthreads linked in.  */
-void *
-useless (void *a)
-{
-  pthread_t th;
-  pthread_create (&th, 0, useless, a);
-  return NULL;
-}
diff --git a/nptl/tst-mutex-errorcheck.c b/nptl/tst-mutex-errorcheck.c
deleted file mode 100644
index a1614c7293..0000000000
--- a/nptl/tst-mutex-errorcheck.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Check that error checking mutexes are not subject to lock elision.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <errno.h>
-#include <time.h>
-#include <pthread.h>
-
-static int
-do_test (void)
-{
-  struct timespec tms = { 0 };
-  pthread_mutex_t mutex;
-  pthread_mutexattr_t mutexattr;
-  int ret = 0;
-
-  if (pthread_mutexattr_init (&mutexattr) != 0)
-    return 1;
-  if (pthread_mutexattr_settype (&mutexattr, PTHREAD_MUTEX_ERRORCHECK) != 0)
-    return 1;
-
-  if (pthread_mutex_init (&mutex, &mutexattr) != 0)
-    return 1;
-  if (pthread_mutexattr_destroy (&mutexattr) != 0)
-    return 1;
-
-  /* The call to pthread_mutex_timedlock erroneously enabled lock elision
-     on the mutex, which then triggered an assertion failure in
-     pthread_mutex_unlock.  It would also defeat the error checking nature
-     of the mutex.  */
-  if (pthread_mutex_timedlock (&mutex, &tms) != 0)
-    return 1;
-  if (pthread_mutex_timedlock (&mutex, &tms) != EDEADLK)
-    {
-      printf ("Failed error checking on locked mutex\n");
-      ret = 1;
-    }
-
-  if (pthread_mutex_unlock (&mutex) != 0)
-    ret = 1;
-
-  return ret;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex1.c b/nptl/tst-mutex1.c
deleted file mode 100644
index b2a4b5492a..0000000000
--- a/nptl/tst-mutex1.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <errno.h>
-#include <stdbool.h>
-#include <libc-diag.h>
-
-#ifndef ATTR
-# define ATTR NULL
-# define ATTR_NULL true
-#endif
-
-
-static int
-do_test (void)
-{
-  pthread_mutex_t m;
-
-  int e = pthread_mutex_init (&m, ATTR);
-  if (!ATTR_NULL && e == ENOTSUP)
-    {
-      puts ("cannot support selected type of mutexes");
-      return 0;
-    }
-  else if (e != 0)
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  /* This deliberately tests supplying a null pointer to a function whose
-     argument is marked __attribute__ ((nonnull)). */
-  DIAG_PUSH_NEEDS_COMMENT;
-  DIAG_IGNORE_NEEDS_COMMENT (5, "-Wnonnull");
-  if (!ATTR_NULL && pthread_mutexattr_destroy (ATTR) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-  DIAG_POP_NEEDS_COMMENT;
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&m) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#ifndef TEST_FUNCTION
-# define TEST_FUNCTION do_test ()
-#endif
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex2.c b/nptl/tst-mutex2.c
deleted file mode 100644
index 35df44eae5..0000000000
--- a/nptl/tst-mutex2.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t m;
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
-  int e = pthread_mutex_unlock (&m);
-  if (e == 0)
-    {
-      puts ("child: 1st mutex_unlock succeeded");
-      exit (1);
-    }
-  else if (e != EPERM)
-    {
-      puts ("child: 1st mutex_unlock error != EPERM");
-      exit (1);
-    }
-
-  e = pthread_mutex_trylock (&m);
-  if (e == 0)
-    {
-      puts ("child: 1st trylock suceeded");
-      exit (1);
-    }
-  if (e != EBUSY)
-    {
-      puts ("child: 1st trylock didn't return EBUSY");
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: 1st barrier_wait failed");
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("child: 2nd barrier_wait failed");
-      exit (1);
-    }
-
-  e = pthread_mutex_unlock (&m);
-  if (e == 0)
-    {
-      puts ("child: 2nd mutex_unlock succeeded");
-      exit (1);
-    }
-  else if (e != EPERM)
-    {
-      puts ("child: 2nd mutex_unlock error != EPERM");
-      exit (1);
-    }
-
-  if (pthread_mutex_trylock (&m) != 0)
-    {
-      puts ("child: 2nd trylock failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("child: 3rd mutex_unlock failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_mutexattr_t a;
-  int e;
-
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_settype (&a, PTHREAD_MUTEX_ERRORCHECK) != 0)
-    {
-      puts ("mutexattr_settype failed");
-      return 1;
-    }
-
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-
-  e = pthread_mutex_init (&m, &a);
-  if (e != 0)
-    {
-#ifdef ENABLE_PI
-      if (e == ENOTSUP)
-	{
-	  puts ("PI mutexes unsupported");
-	  return 0;
-	}
-#endif
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  e = pthread_mutex_unlock (&m);
-  if (e == 0)
-    {
-      puts ("1st mutex_unlock succeeded");
-      return 1;
-    }
-  else if (e != EPERM)
-    {
-      puts ("1st mutex_unlock error != EPERM");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  e = pthread_mutex_lock (&m);
-  if (e == 0)
-    {
-      puts ("2nd mutex_lock succeeded");
-      return 1;
-    }
-  else if (e != EDEADLK)
-    {
-      puts ("2nd mutex_lock error != EDEADLK");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("1st barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("2nd mutex_unlock failed");
-      return 1;
-    }
-
-  e = pthread_mutex_unlock (&m);
-  if (e == 0)
-    {
-      puts ("3rd mutex_unlock succeeded");
-      return 1;
-    }
-  else if (e != EPERM)
-    {
-      puts ("3rd mutex_unlock error != EPERM");
-      return 1;
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("2nd barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&m) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  if (pthread_barrier_destroy (&b) != 0)
-    {
-      puts ("barrier_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&a) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex3.c b/nptl/tst-mutex3.c
deleted file mode 100644
index e9c807c982..0000000000
--- a/nptl/tst-mutex3.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t m;
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
-  int e = pthread_mutex_unlock (&m);
-  if (e == 0)
-    {
-      puts ("1st mutex_unlock in child succeeded");
-      exit (1);
-    }
-  if (e != EPERM)
-    {
-      puts ("1st mutex_unlock in child didn't return EPERM");
-      exit (1);
-    }
-
-  e = pthread_mutex_trylock (&m);
-  if (e == 0)
-    {
-      puts ("mutex_trylock in second thread succeeded");
-      exit (1);
-    }
-  if (e != EBUSY)
-    {
-      puts ("mutex_trylock returned wrong value");
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  e = pthread_mutex_unlock (&m);
-  if (e == 0)
-    {
-      puts ("2nd mutex_unlock in child succeeded");
-      exit (1);
-    }
-  if (e != EPERM)
-    {
-      puts ("2nd mutex_unlock in child didn't return EPERM");
-      exit (1);
-    }
-
-  if (pthread_mutex_trylock (&m) != 0)
-    {
-      puts ("2nd mutex_trylock in second thread failed");
-      exit (1);
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("3rd mutex_unlock in second thread failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_mutexattr_t a;
-
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_settype (&a, PTHREAD_MUTEX_RECURSIVE) != 0)
-    {
-      puts ("mutexattr_settype failed");
-      return 1;
-    }
-
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-
-  int e;
-  e = pthread_mutex_init (&m, &a);
-  if (e != 0)
-    {
-#ifdef ENABLE_PI
-      if (e == ENOTSUP)
-	{
-	  puts ("PI mutexes unsupported");
-	  return 0;
-	}
-#endif
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("2nd mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_trylock (&m) != 0)
-    {
-      puts ("1st trylock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("2nd mutex_unlock failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("3rd mutex_unlock failed");
-      return 1;
-    }
-
-  e = pthread_mutex_unlock (&m);
-  if (e == 0)
-    {
-      puts ("4th mutex_unlock succeeded");
-      return 1;
-    }
-  if (e != EPERM)
-    {
-      puts ("4th mutex_unlock didn't return EPERM");
-      return 1;
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (pthread_barrier_destroy (&b) != 0)
-    {
-      puts ("barrier_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&m) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&a) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex4.c b/nptl/tst-mutex4.c
deleted file mode 100644
index a1f072d495..0000000000
--- a/nptl/tst-mutex4.c
+++ /dev/null
@@ -1,277 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-mutex4.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  pthread_mutex_t *m;
-  pthread_mutexattr_t a;
-  pid_t pid;
-  char *p;
-  int err;
-  int s;
-  pthread_barrier_t *b;
-  pthread_barrierattr_t ba;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      return 1;
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      return 1;
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      return 1;
-    }
-
-  m = (pthread_mutex_t *) (((uintptr_t) mem + __alignof (pthread_mutex_t) - 1)
-			   & ~(__alignof (pthread_mutex_t) - 1));
-  b = (pthread_barrier_t *) (((uintptr_t) (m + 1)
-			      + __alignof (pthread_barrier_t) - 1)
-			     & ~(__alignof (pthread_barrier_t) - 1));
-  p = (char *) (b + 1);
-
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_getpshared (&a, &s) != 0)
-    {
-      puts ("1st mutexattr_getpshared failed");
-      return 1;
-    }
-
-  if (s != PTHREAD_PROCESS_PRIVATE)
-    {
-      puts ("default pshared value wrong");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("mutexattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_getpshared (&a, &s) != 0)
-    {
-      puts ("2nd mutexattr_getpshared failed");
-      return 1;
-    }
-
-  if (s != PTHREAD_PROCESS_SHARED)
-    {
-      puts ("pshared value after setpshared call wrong");
-      return 1;
-    }
-
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-
-  if ((err = pthread_mutex_init (m, &a)) != 0)
-    {
-#ifdef ENABLE_PI
-      if (err == ENOTSUP)
-	{
-	  puts ("PI mutexes unsupported");
-	  return 0;
-	}
-#endif
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (m) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&a) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_barrierattr_init (&ba) != 0)
-    {
-      puts ("barrierattr_init failed");
-      return 1;
-    }
-
-  if (pthread_barrierattr_setpshared (&ba, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("barrierattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (b, &ba, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_barrierattr_destroy (&ba) != 0)
-    {
-      puts ("barrierattr_destroy failed");
-      return 1;
-    }
-
-  err = pthread_mutex_trylock (m);
-  if (err == 0)
-    {
-      puts ("mutex_trylock succeeded");
-      return 1;
-    }
-  else if (err != EBUSY)
-    {
-      puts ("mutex_trylock didn't return EBUSY");
-      return 1;
-    }
-
-  *p = 0;
-
-  if (pthread_mutex_unlock (m) != 0)
-    {
-      puts ("parent: 1st mutex_unlock failed");
-      return 1;
-    }
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-  else if (pid == 0)
-    {
-      if (pthread_mutex_lock (m) != 0)
-	{
-	  puts ("child: mutex_lock failed");
-	  return 1;
-	}
-
-      int e = pthread_barrier_wait (b);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("child: barrier_wait failed");
-	  return 1;
-	}
-
-      if ((*p)++ != 0)
-	{
-	  puts ("child: *p != 0");
-	  return 1;
-	}
-
-      if (pthread_mutex_unlock (m) != 0)
-	{
-	  puts ("child: mutex_unlock failed");
-	  return 1;
-	}
-
-      puts ("child done");
-    }
-  else
-    {
-      int e = pthread_barrier_wait (b);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("parent: barrier_wait failed");
-	  return 1;
-	}
-
-      if (pthread_mutex_lock (m) != 0)
-	{
-	  puts ("parent: 2nd mutex_lock failed");
-	  return 1;
-	}
-
-      if (*p != 1)
-	{
-	  puts ("*p != 1");
-	  return 1;
-	}
-
-      if (pthread_mutex_unlock (m) != 0)
-	{
-	  puts ("parent: 2nd mutex_unlock failed");
-	  return 1;
-	}
-
-      if (pthread_mutex_destroy (m) != 0)
-	{
-	  puts ("mutex_destroy failed");
-	  return 1;
-	}
-
-      if (pthread_barrier_destroy (b) != 0)
-	{
-	  puts ("barrier_destroy failed");
-	  return 1;
-	}
-
-      puts ("parent done");
-    }
-
-  return 0;
-}
-
-#define TIMEOUT 4
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex5.c b/nptl/tst-mutex5.c
deleted file mode 100644
index 3aedf274b9..0000000000
--- a/nptl/tst-mutex5.c
+++ /dev/null
@@ -1,203 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-#include <stdint.h>
-#include <config.h>
-
-
-#ifndef TYPE
-# define TYPE PTHREAD_MUTEX_NORMAL
-#endif
-
-
-static int
-do_test (void)
-{
-  pthread_mutex_t m;
-  struct timespec ts;
-  struct timeval tv;
-  struct timeval tv2;
-  int err;
-  pthread_mutexattr_t a;
-
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_settype (&a, TYPE) != 0)
-    {
-      puts ("mutexattr_settype failed");
-      return 1;
-    }
-
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-
-  err = pthread_mutex_init (&m, &a);
-  if (err != 0)
-    {
-#ifdef ENABLE_PI
-      if (err == ENOTSUP)
-	{
-	  puts ("PI mutexes unsupported");
-	  return 0;
-	}
-#endif
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&a) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_trylock (&m) == 0)
-    {
-      puts ("mutex_trylock succeeded");
-      return 1;
-    }
-
-  gettimeofday (&tv, NULL);
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-  ts.tv_sec += 2;	/* Wait 2 seconds.  */
-
-  err = pthread_mutex_timedlock (&m, &ts);
-  if (err == 0)
-    {
-      puts ("timedlock succeeded");
-      return 1;
-    }
-  else if (err != ETIMEDOUT)
-    {
-      printf ("timedlock error != ETIMEDOUT: %d\n", err);
-      return 1;
-    }
-  else
-    {
-      int clk_tck = sysconf (_SC_CLK_TCK);
-
-      gettimeofday (&tv2, NULL);
-
-      tv2.tv_sec -= tv.tv_sec;
-      tv2.tv_usec -= tv.tv_usec;
-      if (tv2.tv_usec < 0)
-	{
-	  tv2.tv_usec += 1000000;
-	  tv2.tv_sec -= 1;
-	}
-
-      /* Be a bit tolerant, add one CLK_TCK.  */
-      tv2.tv_usec += 1000000 / clk_tck;
-      if (tv2.tv_usec >= 1000000)
-	{
-	  tv2.tv_usec -= 1000000;
-	  ++tv2.tv_sec;
-	}
-
-      if (tv2.tv_sec < 2)
-	{
-	  printf ("premature timeout: %jd.%06jd difference\n",
-		  (intmax_t) tv2.tv_sec, (intmax_t) tv2.tv_usec);
-	  return 1;
-	}
-    }
-
-  (void) gettimeofday (&tv, NULL);
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-  ts.tv_sec += 2;	/* Wait 2 seconds.  */
-  /* The following makes the ts value invalid.  */
-  ts.tv_nsec += 1000000000;
-
-  err = pthread_mutex_timedlock (&m, &ts);
-  if (err == 0)
-    {
-      puts ("2nd timedlock succeeded");
-      return 1;
-    }
-  else if (err != EINVAL)
-    {
-      printf ("2nd timedlock error != EINVAL: %d\n", err);
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  (void) gettimeofday (&tv, NULL);
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-  ts.tv_sec += 2;	/* Wait 2 seconds.  */
-  if (pthread_mutex_timedlock (&m, &ts) != 0)
-    {
-      puts ("3rd timedlock failed");
-    }
-
-  (void) gettimeofday (&tv2, NULL);
-
-  /* Check that timedlock didn't delay.  We use a limit of 0.1 secs.  */
-  timersub (&tv2, &tv, &tv2);
-  if (tv2.tv_sec > 0 || tv2.tv_usec > 100000)
-    {
-      puts ("3rd timedlock didn't return right away");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("final mutex_unlock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&m) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TIMEOUT 4
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex5a.c b/nptl/tst-mutex5a.c
deleted file mode 100644
index f91eec0d7d..0000000000
--- a/nptl/tst-mutex5a.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TYPE PTHREAD_MUTEX_ADAPTIVE_NP
-#include "tst-mutex5.c"
diff --git a/nptl/tst-mutex6.c b/nptl/tst-mutex6.c
deleted file mode 100644
index 340a42a325..0000000000
--- a/nptl/tst-mutex6.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <errno.h>
-#include <stdbool.h>
-
-#ifndef TEST_FUNCTION
-static int do_test (void);
-# define TEST_FUNCTION do_test ()
-#endif
-#include "../test-skeleton.c"
-
-#ifndef ATTR
-pthread_mutexattr_t *attr;
-# define ATTR attr
-#endif
-
-#ifndef ATTR_NULL
-# define ATTR_NULL (ATTR == NULL)
-#endif
-
-static int
-do_test (void)
-{
-  pthread_mutex_t m;
-
-  int e = pthread_mutex_init (&m, ATTR);
-  if (!ATTR_NULL && e == ENOTSUP)
-    {
-      puts ("cannot support selected type of mutexes");
-      e = pthread_mutex_init (&m, NULL);
-    }
-  if (e != 0)
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (!ATTR_NULL && pthread_mutexattr_destroy (ATTR) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("1st mutex_lock failed");
-      return 1;
-    }
-
-  delayed_exit (1);
-  /* This call should never return.  */
-  xpthread_mutex_lock (&m);
-
-  puts ("2nd mutex_lock returned");
-  return 1;
-}
diff --git a/nptl/tst-mutex7.c b/nptl/tst-mutex7.c
deleted file mode 100644
index a11afdba5e..0000000000
--- a/nptl/tst-mutex7.c
+++ /dev/null
@@ -1,164 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-#ifndef TYPE
-# define TYPE PTHREAD_MUTEX_DEFAULT
-#endif
-
-
-static pthread_mutex_t lock;
-
-
-#define ROUNDS 1000
-#define N 100
-
-
-static void *
-tf (void *arg)
-{
-  int nr = (long int) arg;
-  int cnt;
-  struct timespec ts = { .tv_sec = 0, .tv_nsec = 11000 };
-
-  for (cnt = 0; cnt < ROUNDS; ++cnt)
-    {
-      if (pthread_mutex_lock (&lock) != 0)
-	{
-	  printf ("thread %d: failed to get the lock\n", nr);
-	  return (void *) 1l;
-	}
-
-      if (pthread_mutex_unlock (&lock) != 0)
-	{
-	  printf ("thread %d: failed to release the lock\n", nr);
-	  return (void *) 1l;
-	}
-
-      nanosleep (&ts, NULL);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_mutexattr_t a;
-
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_settype (&a, TYPE) != 0)
-    {
-      puts ("mutexattr_settype failed");
-      exit (1);
-    }
-
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-
-  int e = pthread_mutex_init (&lock, &a);
-  if (e != 0)
-    {
-#ifdef ENABLE_PI
-      if (e == ENOTSUP)
-	{
-	  puts ("PI mutexes unsupported");
-	  return 0;
-	}
-#endif
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&a) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  pthread_attr_t at;
-  pthread_t th[N];
-  int cnt;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&lock) != 0)
-    {
-      puts ("locking in parent failed");
-      return 1;
-    }
-
-  for (cnt = 0; cnt < N; ++cnt)
-    if (pthread_create (&th[cnt], &at, tf, (void *) (long int) cnt) != 0)
-      {
-	printf ("creating thread %d failed\n", cnt);
-	return 1;
-      }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&lock) != 0)
-    {
-      puts ("unlocking in parent failed");
-      return 1;
-    }
-
-  for (cnt = 0; cnt < N; ++cnt)
-    if (pthread_join (th[cnt], NULL) != 0)
-      {
-	printf ("joining thread %d failed\n", cnt);
-	return 1;
-      }
-
-  return 0;
-}
-
-#define TIMEOUT 60
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex7a.c b/nptl/tst-mutex7a.c
deleted file mode 100644
index 30d46b81af..0000000000
--- a/nptl/tst-mutex7a.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TYPE PTHREAD_MUTEX_ADAPTIVE_NP
-#include "tst-mutex7.c"
diff --git a/nptl/tst-mutex8-static.c b/nptl/tst-mutex8-static.c
deleted file mode 100644
index d69ed49ad0..0000000000
--- a/nptl/tst-mutex8-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-mutex8.c"
diff --git a/nptl/tst-mutex8.c b/nptl/tst-mutex8.c
deleted file mode 100644
index 1d288d243c..0000000000
--- a/nptl/tst-mutex8.c
+++ /dev/null
@@ -1,403 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This test checks behavior not required by POSIX.  */
-#include <errno.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t *m;
-static pthread_barrier_t b;
-static pthread_cond_t c;
-static bool done;
-
-
-static void
-cl (void *arg)
-{
-  if (pthread_mutex_unlock (m) != 0)
-    {
-      puts ("cl: mutex_unlocked failed");
-      exit (1);
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  if (pthread_mutex_lock (m) != 0)
-    {
-      puts ("tf: mutex_lock failed");
-      return (void *) 1l;
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      return (void *) 1l;
-    }
-
-  if (arg == NULL)
-    do
-      if (pthread_cond_wait (&c, m) != 0)
-	{
-	  puts ("tf: cond_wait failed");
-	  return (void *) 1l;
-	}
-    while (! done);
-  else
-    do
-      {
-	pthread_cleanup_push (cl, NULL);
-
-	if (pthread_cond_wait (&c, m) != 0)
-	  {
-	    puts ("tf: cond_wait failed");
-	    return (void *) 1l;
-	  }
-
-	pthread_cleanup_pop (0);
-      }
-    while (! done);
-
-  if (pthread_mutex_unlock (m) != 0)
-    {
-      puts ("tf: mutex_unlock failed");
-      return (void *) 1l;
-    }
-
-  return NULL;
-}
-
-
-static int
-check_type (const char *mas, pthread_mutexattr_t *ma)
-{
-  int e;
-
-  e = pthread_mutex_init (m, ma);
-  if (e != 0)
-    {
-#ifdef ENABLE_PI
-      if (e == ENOTSUP)
-	{
-	  puts ("PI mutexes unsupported");
-	  return 0;
-	}
-#endif
-      printf ("1st mutex_init failed for %s\n", mas);
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (m) != 0)
-    {
-      printf ("immediate mutex_destroy failed for %s\n", mas);
-      return 1;
-    }
-
-  if (pthread_mutex_init (m, ma) != 0)
-    {
-      printf ("2nd mutex_init failed for %s\n", mas);
-      return 1;
-    }
-
-  if (pthread_mutex_lock (m) != 0)
-    {
-      printf ("1st mutex_lock failed for %s\n", mas);
-      return 1;
-    }
-
-  /* Elided mutexes don't fail destroy. If elision is not explicitly disabled
-     we don't know, so can also not check this.  */
-#ifndef ENABLE_LOCK_ELISION
-  e = pthread_mutex_destroy (m);
-  if (e == 0)
-    {
-      printf ("mutex_destroy of self-locked mutex succeeded for %s\n", mas);
-      return 1;
-    }
-  if (e != EBUSY)
-    {
-      printf ("mutex_destroy of self-locked mutex did not return EBUSY %s\n",
-	      mas);
-      return 1;
-    }
-#endif
-
-  if (pthread_mutex_unlock (m) != 0)
-    {
-      printf ("1st mutex_unlock failed for %s\n", mas);
-      return 1;
-    }
-
-  if (pthread_mutex_trylock (m) != 0)
-    {
-      printf ("mutex_trylock failed for %s\n", mas);
-      return 1;
-    }
-
-  /* Elided mutexes don't fail destroy.  */
-#ifndef ENABLE_LOCK_ELISION
-  e = pthread_mutex_destroy (m);
-  if (e == 0)
-    {
-      printf ("mutex_destroy of self-trylocked mutex succeeded for %s\n", mas);
-      return 1;
-    }
-  if (e != EBUSY)
-    {
-      printf ("\
-mutex_destroy of self-trylocked mutex did not return EBUSY %s\n",
-	      mas);
-      return 1;
-    }
-#endif
-
-  if (pthread_mutex_unlock (m) != 0)
-    {
-      printf ("2nd mutex_unlock failed for %s\n", mas);
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("1st create failed");
-      return 1;
-    }
-  done = false;
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("1st barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (m) != 0)
-    {
-      printf ("2nd mutex_lock failed for %s\n", mas);
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (m) != 0)
-    {
-      printf ("3rd mutex_unlock failed for %s\n", mas);
-      return 1;
-    }
-
-  /* Elided mutexes don't fail destroy.  */
-#ifndef ENABLE_LOCK_ELISION
-  e = pthread_mutex_destroy (m);
-  if (e == 0)
-    {
-      printf ("mutex_destroy of condvar-used mutex succeeded for %s\n", mas);
-      return 1;
-    }
-  if (e != EBUSY)
-    {
-      printf ("\
-mutex_destroy of condvar-used mutex did not return EBUSY for %s\n", mas);
-      return 1;
-    }
-#endif
-
-  done = true;
-  if (pthread_cond_signal (&c) != 0)
-    {
-      puts ("cond_signal failed");
-      return 1;
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-  if (r != NULL)
-    {
-      puts ("thread didn't return NULL");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (m) != 0)
-    {
-      printf ("mutex_destroy after condvar-use failed for %s\n", mas);
-      return 1;
-    }
-
-  if (pthread_mutex_init (m, ma) != 0)
-    {
-      printf ("3rd mutex_init failed for %s\n", mas);
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf, (void *) 1) != 0)
-    {
-      puts ("2nd create failed");
-      return 1;
-    }
-  done = false;
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("2nd barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (m) != 0)
-    {
-      printf ("3rd mutex_lock failed for %s\n", mas);
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (m) != 0)
-    {
-      printf ("4th mutex_unlock failed for %s\n", mas);
-      return 1;
-    }
-
-  /* Elided mutexes don't fail destroy.  */
-#ifndef ENABLE_LOCK_ELISION
-  e = pthread_mutex_destroy (m);
-  if (e == 0)
-    {
-      printf ("2nd mutex_destroy of condvar-used mutex succeeded for %s\n",
-	      mas);
-      return 1;
-    }
-  if (e != EBUSY)
-    {
-      printf ("\
-2nd mutex_destroy of condvar-used mutex did not return EBUSY for %s\n",
-	      mas);
-      return 1;
-    }
-#endif
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cond_cancel failed");
-      return 1;
-    }
-
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-  if (r != PTHREAD_CANCELED)
-    {
-      puts ("thread not canceled");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (m) != 0)
-    {
-      printf ("mutex_destroy after condvar-canceled failed for %s\n", mas);
-      return 1;
-    }
-
-  return 0;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_mutex_t mm;
-  m = &mm;
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_cond_init (&c, NULL) != 0)
-    {
-      puts ("cond_init failed");
-      return 1;
-    }
-
-  puts ("check normal mutex");
-  int res = check_type ("normal", NULL);
-
-  pthread_mutexattr_t ma;
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("1st mutexattr_init failed");
-      return 1;
-    }
-  if (pthread_mutexattr_settype (&ma, PTHREAD_MUTEX_RECURSIVE) != 0)
-    {
-      puts ("1st mutexattr_settype failed");
-      return 1;
-    }
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT))
-    {
-      puts ("1st pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-  puts ("check recursive mutex");
-  res |= check_type ("recursive", &ma);
-  if (pthread_mutexattr_destroy (&ma) != 0)
-    {
-      puts ("1st mutexattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("2nd mutexattr_init failed");
-      return 1;
-    }
-  if (pthread_mutexattr_settype (&ma, PTHREAD_MUTEX_ERRORCHECK) != 0)
-    {
-      puts ("2nd mutexattr_settype failed");
-      return 1;
-    }
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT))
-    {
-      puts ("2nd pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-  puts ("check error-checking mutex");
-  res |= check_type ("error-checking", &ma);
-  if (pthread_mutexattr_destroy (&ma) != 0)
-    {
-      puts ("2nd mutexattr_destroy failed");
-      return 1;
-    }
-
-  return res;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutex9.c b/nptl/tst-mutex9.c
deleted file mode 100644
index 20ec63e924..0000000000
--- a/nptl/tst-mutex9.c
+++ /dev/null
@@ -1,202 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-mutex9.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  pthread_mutex_t *m;
-  pthread_mutexattr_t a;
-  pid_t pid;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      return 1;
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      return 1;
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      return 1;
-    }
-
-  m = (pthread_mutex_t *) (((uintptr_t) mem + __alignof (pthread_mutex_t))
-			   & ~(__alignof (pthread_mutex_t) - 1));
-
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("mutexattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_settype (&a, PTHREAD_MUTEX_RECURSIVE) != 0)
-    {
-      puts ("mutexattr_settype failed");
-      return 1;
-    }
-
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-
-  int e;
-  if ((e = pthread_mutex_init (m, &a)) != 0)
-    {
-#ifdef ENABLE_PI
-      if (e == ENOTSUP)
-	{
-	  puts ("PI mutexes unsupported");
-	  return 0;
-	}
-#endif
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (m) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&a) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-  else if (pid == 0)
-    {
-      if (pthread_mutex_trylock (m) == 0)
-	{
-	  puts ("child: mutex_trylock succeeded");
-	  exit (1);
-	}
-
-      if (pthread_mutex_unlock (m) == 0)
-	{
-	  puts ("child: mutex_unlock succeeded");
-	  exit (1);
-	}
-
-      struct timeval tv;
-      gettimeofday (&tv, NULL);
-      struct timespec ts;
-      TIMEVAL_TO_TIMESPEC (&tv, &ts);
-      ts.tv_nsec += 500000000;
-      if (ts.tv_nsec >= 1000000000)
-	{
-	  ++ts.tv_sec;
-	  ts.tv_nsec -= 1000000000;
-	}
-
-      e = pthread_mutex_timedlock (m, &ts);
-      if (e == 0)
-	{
-	  puts ("child: mutex_timedlock succeeded");
-	  exit (1);
-	}
-      if (e != ETIMEDOUT)
-	{
-	  puts ("child: mutex_timedlock didn't time out");
-	  exit (1);
-	}
-
-      alarm (1);
-
-      pthread_mutex_lock (m);
-
-      puts ("child: mutex_lock returned");
-
-      exit (0);
-    }
-
-  sleep (2);
-
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-    {
-      puts ("waitpid failed");
-      return 1;
-    }
-  if (! WIFSIGNALED (status))
-    {
-      puts ("child not killed by signal");
-      return 1;
-    }
-  if (WTERMSIG (status) != SIGALRM)
-    {
-      puts ("child not killed by SIGALRM");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutexpi1.c b/nptl/tst-mutexpi1.c
deleted file mode 100644
index d768664d02..0000000000
--- a/nptl/tst-mutexpi1.c
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutexattr_t a;
-
-static void
-prepare (void)
-{
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("mutexattr_setprotocol failed");
-      exit (1);
-    }
-}
-#define PREPARE(argc, argv) prepare ()
-
-
-#define ATTR &a
-#define ATTR_NULL false
-#include "tst-mutex1.c"
diff --git a/nptl/tst-mutexpi2.c b/nptl/tst-mutexpi2.c
deleted file mode 100644
index fbe48716fd..0000000000
--- a/nptl/tst-mutexpi2.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex2.c"
diff --git a/nptl/tst-mutexpi3.c b/nptl/tst-mutexpi3.c
deleted file mode 100644
index e338ebfff9..0000000000
--- a/nptl/tst-mutexpi3.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex3.c"
diff --git a/nptl/tst-mutexpi4.c b/nptl/tst-mutexpi4.c
deleted file mode 100644
index 177b17b475..0000000000
--- a/nptl/tst-mutexpi4.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex4.c"
diff --git a/nptl/tst-mutexpi5.c b/nptl/tst-mutexpi5.c
deleted file mode 100644
index 287465c23f..0000000000
--- a/nptl/tst-mutexpi5.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex5.c"
diff --git a/nptl/tst-mutexpi5a.c b/nptl/tst-mutexpi5a.c
deleted file mode 100644
index 2f85c94ff3..0000000000
--- a/nptl/tst-mutexpi5a.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex5a.c"
diff --git a/nptl/tst-mutexpi6.c b/nptl/tst-mutexpi6.c
deleted file mode 100644
index 8881a1d2c0..0000000000
--- a/nptl/tst-mutexpi6.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-pthread_mutexattr_t a;
-pthread_mutexattr_t *attr;
-
-static void
-prepare (void)
-{
-  attr = &a;
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("mutexattr_setprotocol failed");
-      exit (1);
-    }
-}
-#define PREPARE(argc, argv) prepare ()
-
-
-#define ATTR attr
-#include "tst-mutex6.c"
diff --git a/nptl/tst-mutexpi7.c b/nptl/tst-mutexpi7.c
deleted file mode 100644
index 1e7e929380..0000000000
--- a/nptl/tst-mutexpi7.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex7.c"
diff --git a/nptl/tst-mutexpi7a.c b/nptl/tst-mutexpi7a.c
deleted file mode 100644
index c59083cf6e..0000000000
--- a/nptl/tst-mutexpi7a.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex7a.c"
diff --git a/nptl/tst-mutexpi8-static.c b/nptl/tst-mutexpi8-static.c
deleted file mode 100644
index 869e6df95c..0000000000
--- a/nptl/tst-mutexpi8-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-mutexpi8.c"
diff --git a/nptl/tst-mutexpi8.c b/nptl/tst-mutexpi8.c
deleted file mode 100644
index cea60309a8..0000000000
--- a/nptl/tst-mutexpi8.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex8.c"
diff --git a/nptl/tst-mutexpi9.c b/nptl/tst-mutexpi9.c
deleted file mode 100644
index 3710d9e080..0000000000
--- a/nptl/tst-mutexpi9.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-mutex9.c"
diff --git a/nptl/tst-mutexpp1.c b/nptl/tst-mutexpp1.c
deleted file mode 100644
index 8ec4673f1a..0000000000
--- a/nptl/tst-mutexpp1.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "tst-tpp.h"
-
-static pthread_mutexattr_t a;
-
-static void
-prepare (void)
-{
-  init_tpp_test ();
-
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_PROTECT) != 0)
-    {
-      puts ("mutexattr_setprotocol failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_setprioceiling (&a, 6) != 0)
-    {
-      puts ("mutexattr_setprioceiling failed");
-      exit (1);
-    }
-}
-#define PREPARE(argc, argv) prepare ()
-
-static int do_test (void);
-
-static int
-do_test_wrapper (void)
-{
-  init_tpp_test ();
-  return do_test ();
-}
-#define TEST_FUNCTION do_test_wrapper ()
-
-#define ATTR &a
-#define ATTR_NULL false
-#include "tst-mutex1.c"
diff --git a/nptl/tst-mutexpp10.c b/nptl/tst-mutexpp10.c
deleted file mode 100644
index b831ae6eb0..0000000000
--- a/nptl/tst-mutexpp10.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <pthread.h>
-#include <sched.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include "tst-tpp.h"
-
-static int
-do_test (void)
-{
-  int ret = 0;
-
-  init_tpp_test ();
-
-  pthread_mutexattr_t ma;
-  if (pthread_mutexattr_init (&ma))
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-  if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_PROTECT))
-    {
-      puts ("mutexattr_setprotocol failed");
-      return 1;
-    }
-
-  int prioceiling;
-  if (pthread_mutexattr_getprioceiling (&ma, &prioceiling))
-    {
-      puts ("mutexattr_getprioceiling failed");
-      return 1;
-    }
-
-  if (prioceiling < fifo_min || prioceiling > fifo_max)
-    {
-      printf ("prioceiling %d not in %d..%d range\n",
-	      prioceiling, fifo_min, fifo_max);
-      return 1;
-    }
-
-  if (fifo_max < INT_MAX
-      && pthread_mutexattr_setprioceiling (&ma, fifo_max + 1) != EINVAL)
-    {
-      printf ("mutexattr_setprioceiling %d did not fail with EINVAL\n",
-	      fifo_max + 1);
-      return 1;
-    }
-
-  if (fifo_min > 0
-      && pthread_mutexattr_setprioceiling (&ma, fifo_min - 1) != EINVAL)
-    {
-      printf ("mutexattr_setprioceiling %d did not fail with EINVAL\n",
-	      fifo_min - 1);
-      return 1;
-    }
-
-  if (pthread_mutexattr_setprioceiling (&ma, fifo_min))
-    {
-      puts ("mutexattr_setprioceiling failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setprioceiling (&ma, fifo_max))
-    {
-      puts ("mutexattr_setprioceiling failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setprioceiling (&ma, 6))
-    {
-      puts ("mutexattr_setprioceiling failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_getprioceiling (&ma, &prioceiling))
-    {
-      puts ("mutexattr_getprioceiling failed");
-      return 1;
-    }
-
-  if (prioceiling != 6)
-    {
-      printf ("mutexattr_getprioceiling returned %d != 6\n",
-	      prioceiling);
-      return 1;
-    }
-
-  pthread_mutex_t m1, m2, m3;
-  int e = pthread_mutex_init (&m1, &ma);
-  if (e == ENOTSUP)
-    {
-      puts ("cannot support selected type of mutexes");
-      return 0;
-    }
-  else if (e != 0)
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setprioceiling (&ma, 8))
-    {
-      puts ("mutexattr_setprioceiling failed");
-      return 1;
-    }
-
-  if (pthread_mutex_init (&m2, &ma))
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setprioceiling (&ma, 5))
-    {
-      puts ("mutexattr_setprioceiling failed");
-      return 1;
-    }
-
-  if (pthread_mutex_init (&m3, &ma))
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 4);
-
-  if (pthread_mutex_lock (&m1) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 6);
-
-  if (pthread_mutex_trylock (&m2) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 8);
-
-  if (pthread_mutex_lock (&m3) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 8);
-
-  if (pthread_mutex_unlock (&m2) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 6);
-
-  if (pthread_mutex_unlock (&m1) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 5);
-
-  if (pthread_mutex_lock (&m2) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 8);
-
-  if (pthread_mutex_unlock (&m2) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 5);
-
-  if (pthread_mutex_getprioceiling (&m1, &prioceiling))
-    {
-      puts ("mutex_getprioceiling m1 failed");
-      return 1;
-    }
-  else if (prioceiling != 6)
-    {
-      printf ("unexpected m1 prioceiling %d != 6\n", prioceiling);
-      return 1;
-    }
-
-  if (pthread_mutex_getprioceiling (&m2, &prioceiling))
-    {
-      puts ("mutex_getprioceiling m2 failed");
-      return 1;
-    }
-  else if (prioceiling != 8)
-    {
-      printf ("unexpected m2 prioceiling %d != 8\n", prioceiling);
-      return 1;
-    }
-
-  if (pthread_mutex_getprioceiling (&m3, &prioceiling))
-    {
-      puts ("mutex_getprioceiling m3 failed");
-      return 1;
-    }
-  else if (prioceiling != 5)
-    {
-      printf ("unexpected m3 prioceiling %d != 5\n", prioceiling);
-      return 1;
-    }
-
-  if (pthread_mutex_setprioceiling (&m1, 7, &prioceiling))
-    {
-      printf ("mutex_setprioceiling failed");
-      return 1;
-    }
-  else if (prioceiling != 6)
-    {
-      printf ("unexpected m1 old prioceiling %d != 6\n", prioceiling);
-      return 1;
-    }
-
-  if (pthread_mutex_getprioceiling (&m1, &prioceiling))
-    {
-      puts ("mutex_getprioceiling m1 failed");
-      return 1;
-    }
-  else if (prioceiling != 7)
-    {
-      printf ("unexpected m1 prioceiling %d != 7\n", prioceiling);
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 5);
-
-  if (pthread_mutex_unlock (&m3) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 4);
-
-  if (pthread_mutex_trylock (&m1) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (4, 7);
-
-  struct sched_param sp;
-  memset (&sp, 0, sizeof (sp));
-  sp.sched_priority = 8;
-  if (pthread_setschedparam (pthread_self (), SCHED_FIFO, &sp))
-    {
-      puts ("cannot set scheduling params");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (8, 8);
-
-  if (pthread_mutex_unlock (&m1) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (8, 8);
-
-  if (pthread_mutex_lock (&m3) != EINVAL)
-    {
-      puts ("pthread_mutex_lock didn't fail with EINVAL");
-      return 1;
-    }
-
-  CHECK_TPP_PRIORITY (8, 8);
-
-  if (pthread_mutex_destroy (&m1) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&m2) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&m3) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&ma) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  return ret;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-mutexpp6.c b/nptl/tst-mutexpp6.c
deleted file mode 100644
index 87a6ebd74c..0000000000
--- a/nptl/tst-mutexpp6.c
+++ /dev/null
@@ -1,46 +0,0 @@
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "tst-tpp.h"
-
-static pthread_mutexattr_t a;
-
-static void
-prepare (void)
-{
-  init_tpp_test ();
-
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_PROTECT) != 0)
-    {
-      puts ("mutexattr_setprotocol failed");
-      exit (1);
-    }
-
-  if (pthread_mutexattr_setprioceiling (&a, 6) != 0)
-    {
-      puts ("mutexattr_setprioceiling failed");
-      exit (1);
-    }
-}
-#define PREPARE(argc, argv) prepare ()
-
-static int do_test (void);
-
-static int
-do_test_wrapper (void)
-{
-  init_tpp_test ();
-  return do_test ();
-}
-#define TEST_FUNCTION do_test_wrapper ()
-
-#define ATTR &a
-#define ATTR_NULL false
-#include "tst-mutex6.c"
diff --git a/nptl/tst-oddstacklimit.c b/nptl/tst-oddstacklimit.c
deleted file mode 100644
index 8834e49d7d..0000000000
--- a/nptl/tst-oddstacklimit.c
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Test NPTL with stack limit that is not a multiple of the page size.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/resource.h>
-#include <sys/wait.h>
-#include <stdlib.h>
-
-/* This sets the stack resource limit to 1023kb, which is not a multiple
-   of the page size since every architecture's page size is > 1k.  */
-#ifndef ODD_STACK_LIMIT
-# define ODD_STACK_LIMIT (1023 * 1024)
-#endif
-
-static const char *command;
-
-static int
-do_test (void)
-{
-  int ret;
-  struct rlimit rlim;
-
-  ret = getrlimit (RLIMIT_STACK, &rlim);
-  if (ret != 0)
-    {
-      printf ("getrlimit failed: %s\n", strerror (errno));
-      return 1;
-    }
-  rlim.rlim_cur = ODD_STACK_LIMIT;
-  ret = setrlimit (RLIMIT_STACK, &rlim);
-  if (ret != 0)
-    {
-      printf ("setrlimit failed: %s\n", strerror (errno));
-      return 1;
-    }
-  ret = system (command);
-  if (ret == -1)
-    {
-      printf ("system failed: %s\n", strerror (errno));
-      return 1;
-    }
-  if (WIFEXITED (ret))
-    return WEXITSTATUS (ret);
-  else
-    return 1;
-}
-
-#define OPT_COMMAND	10000
-#define CMDLINE_OPTIONS	\
-  { "command", required_argument, NULL, OPT_COMMAND },
-#define CMDLINE_PROCESS	\
-  case OPT_COMMAND:	\
-    command = optarg;	\
-    break;
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-once1.c b/nptl/tst-once1.c
deleted file mode 100644
index fdfb037f6f..0000000000
--- a/nptl/tst-once1.c
+++ /dev/null
@@ -1,50 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static int global;
-
-static void
-once_handler (void)
-{
-  ++global;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_once (&once, once_handler);
-  pthread_once (&once, once_handler);
-
-  if (global != 1)
-    {
-      printf ("global = %d, expected 1\n", global);
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-once2.c b/nptl/tst-once2.c
deleted file mode 100644
index 6949358bc8..0000000000
--- a/nptl/tst-once2.c
+++ /dev/null
@@ -1,103 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-#define N 100
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static int global;
-
-static void
-once_handler (void)
-{
-  struct timespec ts;
-
-  ++global;
-
-  ts.tv_sec = 2;
-  ts.tv_nsec = 0;
-  nanosleep (&ts, NULL);
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_once (&once, once_handler);
-
-  if (global != 1)
-    {
-      printf ("thread %ld: global == %d\n", (long int) arg, global);
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_attr_t at;
-  pthread_t th[N];
-  int cnt;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setstacksize (&at, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  for (cnt = 0; cnt < N; ++cnt)
-    if (pthread_create (&th[cnt], &at, tf, (void *) (long int) cnt) != 0)
-      {
-	printf ("creation of thread %d failed\n", cnt);
-	return 1;
-      }
-
-  if (pthread_attr_destroy (&at) != 0)
-    {
-      puts ("attr_destroy failed");
-      return 1;
-    }
-
-  for (cnt = 0; cnt < N; ++cnt)
-    if (pthread_join (th[cnt], NULL) != 0)
-      {
-	printf ("join of thread %d failed\n", cnt);
-	return 1;
-      }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
-#include "../test-skeleton.c"
diff --git a/nptl/tst-once3.c b/nptl/tst-once3.c
deleted file mode 100644
index 757ad8f12c..0000000000
--- a/nptl/tst-once3.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-#define N 100
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-static pthread_barrier_t bar;
-
-static int global;
-static int cl_called;
-
-static void
-once_handler1 (void)
-{
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      puts ("once_handler1: mutex_lock failed");
-      exit (1);
-    }
-  puts ("once_handler1: locked");
-
-  int r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("once_handler1: barrier_wait failed");
-      exit (1);
-    }
-
-  puts ("once_handler1: going to wait on cond");
-
-  pthread_cond_wait (&cond, &mut);
-
-  /* We should never get here.  */
-  exit (42);
-}
-
-static void
-once_handler2 (void)
-{
-  global = 1;
-}
-
-
-static void
-cl (void *arg)
-{
-  cl_called = 1;
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_cleanup_push (cl, NULL)
-
-  pthread_once (&once, once_handler1);
-
-  pthread_cleanup_pop (0);
-
-  /* We should never get here.  */
-  puts ("pthread_once in tf returned");
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("first create failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-  /* We unlock the mutex so that we catch the case where the pthread_cond_wait
-     call incorrectly resumes and tries to get the mutex.  */
-  if (pthread_mutex_unlock (&mut) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  /* Cancel the thread.  */
-  puts ("going to cancel");
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-
-  void *result;
-  pthread_join (th, &result);
-  if (result != PTHREAD_CANCELED)
-    {
-      puts ("join didn't return PTHREAD_CANCELED");
-      return 1;
-    }
-  puts ("joined successfully");
-
-  printf ("once = %d\n", *(int *) &once);
-
-  if (cl_called != 1)
-    {
-      puts ("cleanup handler not called");
-      return 1;
-    }
-
-  pthread_once (&once, once_handler2);
-
-  if (global != 1)
-    {
-      puts ("global still 0");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
-#include "../test-skeleton.c"
diff --git a/nptl/tst-once4.c b/nptl/tst-once4.c
deleted file mode 100644
index 1208e652f6..0000000000
--- a/nptl/tst-once4.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-static pthread_barrier_t bar;
-
-static int global;
-static int cl_called;
-
-static void
-once_handler1 (void)
-{
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      puts ("once_handler1: mutex_lock failed");
-      exit (1);
-    }
-
-  int r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("once_handler1: barrier_wait failed");
-      exit (1);
-    }
-
-  pthread_cond_wait (&cond, &mut);
-
-  /* We should never get here.  */
-}
-
-
-static void
-once_handler2 (void)
-{
-  global = 1;
-}
-
-
-static void
-cl (void *arg)
-{
-  ++cl_called;
-}
-
-
-static void *
-tf1 (void *arg)
-{
-  pthread_cleanup_push (cl, NULL);
-
-  pthread_once (&once, once_handler1);
-
-  pthread_cleanup_pop (0);
-
-  /* We should never get here.  */
-  puts ("pthread_once in tf returned");
-  exit (1);
-}
-
-
-static void *
-tf2 (void *arg)
-{
-  pthread_cleanup_push (cl, NULL);
-
-  int r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("once_handler2: barrier_wait failed");
-      exit (1);
-    }
-
-  pthread_cleanup_pop (0);
-
-  pthread_once (&once, once_handler2);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th[2];
-
-  if (pthread_barrier_init (&bar, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_create (&th[0], NULL, tf1, NULL) != 0)
-    {
-      puts ("first create failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("first barrier_wait failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&mut) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-  /* We unlock the mutex so that we catch the case where the pthread_cond_wait
-     call incorrectly resumes and tries to get the mutex.  */
-  if (pthread_mutex_unlock (&mut) != 0)
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  if (pthread_create (&th[1], NULL, tf2, NULL) != 0)
-    {
-      puts ("second create failed");
-      return 1;
-    }
-
-  r = pthread_barrier_wait (&bar);
-  if (r != 0 && r!= PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("second barrier_wait failed");
-      return 1;
-    }
-
-  /* Give the second thread a chance to reach the pthread_once call.  */
-  sleep (2);
-
-  /* Cancel the thread.  */
-  if (pthread_cancel (th[0]) != 0)
-    {
-      puts ("cancel failed");
-      return 1;
-    }
-
-  void *result;
-  pthread_join (th[0], &result);
-  if (result != PTHREAD_CANCELED)
-    {
-      puts ("first join didn't return PTHREAD_CANCELED");
-      return 1;
-    }
-
-  puts ("joined first thread");
-
-  pthread_join (th[1], &result);
-  if (result != NULL)
-    {
-      puts ("second join didn't return PTHREAD_CANCELED");
-      return 1;
-    }
-
-  if (global != 1)
-    {
-      puts ("global still 0");
-      return 1;
-    }
-
-  if (cl_called != 1)
-    {
-      printf ("cl_called = %d\n", cl_called);
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 4
-#include "../test-skeleton.c"
diff --git a/nptl/tst-once5.cc b/nptl/tst-once5.cc
deleted file mode 100644
index 47d9436596..0000000000
--- a/nptl/tst-once5.cc
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static pthread_once_t once = PTHREAD_ONCE_INIT;
-
-// Exception type thrown from the pthread_once init routine.
-struct OnceException { };
-
-// Test iteration counter.
-static int niter;
-
-static void
-init_routine (void)
-{
-  if (niter < 2)
-    throw OnceException ();
-}
-
-// Verify that an exception thrown from the pthread_once init routine
-// is propagated to the pthread_once caller and that the function can
-// be subsequently invoked to attempt the initialization again.
-static int
-do_test (void)
-{
-  int result = 1;
-
-  // Repeat three times, having the init routine throw the first two
-  // times and succeed on the final attempt.
-  for (niter = 0; niter != 3; ++niter) {
-
-    try {
-      int rc = pthread_once (&once, init_routine);
-      if (rc)
-        fprintf (stderr, "pthread_once failed: %i (%s)\n",
-                 rc, strerror (rc));
-
-      if (niter < 2)
-        fputs ("pthread_once unexpectedly returned without"
-               " throwing an exception", stderr);
-    }
-    catch (OnceException) {
-      if (1 < niter)
-        fputs ("pthread_once unexpectedly threw", stderr);
-      result = 0;
-    }
-    catch (...) {
-      fputs ("pthread_once threw an unknown exception", stderr);
-    }
-
-    // Abort the test on the first failure.
-    if (result)
-      break;
-  }
-
-  return result;
-}
-
-// The test currently hangs and is XFAILed.  Reduce the timeout.
-#define TIMEOUT 1
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-oncex3.c b/nptl/tst-oncex3.c
deleted file mode 100644
index 08225b88dc..0000000000
--- a/nptl/tst-oncex3.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-once3.c"
diff --git a/nptl/tst-oncex4.c b/nptl/tst-oncex4.c
deleted file mode 100644
index 9b4d98f3f1..0000000000
--- a/nptl/tst-oncex4.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-once4.c"
diff --git a/nptl/tst-popen1.c b/nptl/tst-popen1.c
deleted file mode 100644
index 4aa9273498..0000000000
--- a/nptl/tst-popen1.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-static void *
-dummy (void *x)
-{
-  return NULL;
-}
-
-static char buf[sizeof "something\n"];
-
-static int
-do_test (void)
-{
-  FILE *f;
-  pthread_t p;
-  int err;
-
-  f = popen ("echo something", "r");
-  if (f == NULL)
-    error (EXIT_FAILURE, errno, "popen failed");
-  if (fgets (buf, sizeof (buf), f) == NULL)
-    error (EXIT_FAILURE, 0, "fgets failed");
-  if (strcmp (buf, "something\n"))
-    error (EXIT_FAILURE, 0, "read wrong data");
-  if (pclose (f))
-    error (EXIT_FAILURE, errno, "pclose returned non-zero");
-  if ((err = pthread_create (&p, NULL, dummy, NULL)))
-    error (EXIT_FAILURE, err, "pthread_create failed");
-  if ((err = pthread_join (p, NULL)))
-    error (EXIT_FAILURE, err, "pthread_join failed");
-  exit (0);
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-pthread-attr-affinity.c b/nptl/tst-pthread-attr-affinity.c
deleted file mode 100644
index 634baaa8ce..0000000000
--- a/nptl/tst-pthread-attr-affinity.c
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Make sure that pthread_attr_getaffinity_np does not crash when the input
-   cpuset size is smaller than that in the attribute structure.
-
-   Copyright (C) 2013-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <sched.h>
-#include <errno.h>
-#include <sys/param.h>
-
-
-#define RETURN_IF_FAIL(f, ...) \
-  ({									      \
-    int ret = f (__VA_ARGS__);						      \
-    if (ret != 0)							      \
-      {									      \
-	printf ("%s:%d: %s returned %d (errno = %d)\n", __FILE__, __LINE__,   \
-		#f, ret, errno);					      \
-	return ret;							      \
-      }									      \
-  })
-
-static int
-do_test (void)
-{
-  for (int i = 0; i < 10; i++)
-    {
-      pthread_attr_t attr;
-      cpu_set_t *cpuset = CPU_ALLOC (512);
-      size_t cpusetsize = CPU_ALLOC_SIZE (512);
-      CPU_ZERO_S (cpusetsize, cpuset);
-
-      RETURN_IF_FAIL (pthread_attr_init, &attr);
-      RETURN_IF_FAIL (pthread_attr_setaffinity_np, &attr, cpusetsize, cpuset);
-      CPU_FREE (cpuset);
-
-      cpuset = CPU_ALLOC (1);
-      cpusetsize = CPU_ALLOC_SIZE (1);
-      RETURN_IF_FAIL (pthread_attr_getaffinity_np, &attr, cpusetsize, cpuset);
-      CPU_FREE (cpuset);
-    }
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-pthread-getattr.c b/nptl/tst-pthread-getattr.c
deleted file mode 100644
index 86719f97ab..0000000000
--- a/nptl/tst-pthread-getattr.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* Make sure that the stackaddr returned by pthread_getattr_np is
-   reachable.
-
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/resource.h>
-#include <sys/param.h>
-#include <pthread.h>
-#include <alloca.h>
-#include <assert.h>
-#include <unistd.h>
-#include <inttypes.h>
-
-/* There is an obscure bug in the kernel due to which RLIMIT_STACK is sometimes
-   returned as unlimited when it is not, which may cause this test to fail.
-   There is also the other case where RLIMIT_STACK is intentionally set as
-   unlimited or very high, which may result in a vma that is too large and again
-   results in a test case failure.  To avoid these problems, we cap the stack
-   size to one less than 8M.  See the following mailing list threads for more
-   information about this problem:
-   <http://sourceware.org/ml/libc-alpha/2012-06/msg00599.html>
-   <http://sourceware.org/ml/libc-alpha/2012-06/msg00713.html>.  */
-#define MAX_STACK_SIZE (8192 * 1024 - 1)
-
-static size_t pagesize;
-
-/* Check if the page in which TARGET lies is accessible.  This will segfault
-   if it fails.  */
-static volatile char *
-allocate_and_test (char *target)
-{
-  volatile char *mem = (char *) &mem;
-  /* FIXME:  mem >= target for _STACK_GROWSUP.  */
-  mem = alloca ((size_t) (mem - target));
-
-  *mem = 42;
-  return mem;
-}
-
-static int
-get_self_pthread_attr (const char *id, void **stackaddr, size_t *stacksize)
-{
-  pthread_attr_t attr;
-  int ret;
-  pthread_t me = pthread_self ();
-
-  if ((ret = pthread_getattr_np (me, &attr)) < 0)
-    {
-      printf ("%s: pthread_getattr_np failed: %s\n", id, strerror (ret));
-      return 1;
-    }
-
-  if ((ret = pthread_attr_getstack (&attr, stackaddr, stacksize)) < 0)
-    {
-      printf ("%s: pthread_attr_getstack returned error: %s\n", id,
-	      strerror (ret));
-      return 1;
-    }
-
-  return 0;
-}
-
-/* Verify that the stack size returned by pthread_getattr_np is usable when
-   the returned value is subject to rlimit.  */
-static int
-check_stack_top (void)
-{
-  struct rlimit stack_limit;
-  void *stackaddr;
-  volatile void *mem;
-  size_t stacksize = 0;
-  int ret;
-  uintptr_t pagemask = ~(pagesize - 1);
-
-  puts ("Verifying that stack top is accessible");
-
-  ret = getrlimit (RLIMIT_STACK, &stack_limit);
-  if (ret)
-    {
-      perror ("getrlimit failed");
-      return 1;
-    }
-
-  printf ("current rlimit_stack is %zu\n", (size_t) stack_limit.rlim_cur);
-
-  if (get_self_pthread_attr ("check_stack_top", &stackaddr, &stacksize))
-    return 1;
-
-  /* Reduce the rlimit to a page less that what is currently being returned
-     (subject to a maximum of MAX_STACK_SIZE) so that we ensure that
-     pthread_getattr_np uses rlimit.  The figure is intentionally unaligned so
-     to verify that pthread_getattr_np returns an aligned stacksize that
-     correctly fits into the rlimit.  We don't bother about the case where the
-     stack is limited by the vma below it and not by the rlimit because the
-     stacksize returned in that case is computed from the end of that vma and is
-     hence safe.  */
-  stack_limit.rlim_cur = MIN (stacksize - pagesize + 1, MAX_STACK_SIZE);
-  printf ("Adjusting RLIMIT_STACK to %zu\n", (size_t) stack_limit.rlim_cur);
-  if ((ret = setrlimit (RLIMIT_STACK, &stack_limit)) < 0)
-    {
-      perror ("setrlimit failed");
-      return 1;
-    }
-
-  if (get_self_pthread_attr ("check_stack_top2", &stackaddr, &stacksize))
-    return 1;
-
-  printf ("Adjusted rlimit: stacksize=%zu, stackaddr=%p\n", stacksize,
-          stackaddr);
-
-  /* A lot of targets tend to write stuff on top of the user stack during
-     context switches, so we cannot possibly safely go up to the very top of
-     stack and test access there.  It is however sufficient to simply check if
-     the top page is accessible, so we target our access halfway up the top
-     page.  Thanks Chris Metcalf for this idea.  */
-  mem = allocate_and_test (stackaddr + pagesize / 2);
-
-  /* Before we celebrate, make sure we actually did test the same page.  */
-  if (((uintptr_t) stackaddr & pagemask) != ((uintptr_t) mem & pagemask))
-    {
-      printf ("We successfully wrote into the wrong page.\n"
-	      "Expected %#" PRIxPTR ", but got %#" PRIxPTR "\n",
-	      (uintptr_t) stackaddr & pagemask, (uintptr_t) mem & pagemask);
-
-      return 1;
-    }
-
-  puts ("Stack top tests done");
-
-  return 0;
-}
-
-/* TODO: Similar check for thread stacks once the thread stack sizes are
-   fixed.  */
-static int
-do_test (void)
-{
-  pagesize = sysconf (_SC_PAGESIZE);
-  return check_stack_top ();
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-pthread-mutexattr.c b/nptl/tst-pthread-mutexattr.c
deleted file mode 100644
index 4b42b01ef8..0000000000
--- a/nptl/tst-pthread-mutexattr.c
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Make sure that pthread_mutexattr_gettype returns a valid kind.
-
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <string.h>
-#include <pthread.h>
-
-static int
-do_test (void)
-{
-  pthread_mutexattr_t attr;
-  int kind;
-  int error;
-
-  error = pthread_mutexattr_init (&attr);
-  if (error)
-    {
-      printf ("pthread_mutexattr_init: %s\n", strerror (error));
-      return 1;
-    }
-  error = pthread_mutexattr_settype (&attr, PTHREAD_MUTEX_DEFAULT);
-  if (error)
-    {
-      printf ("pthread_mutexattr_settype (1): %s\n", strerror (error));
-      return 1;
-    }
-  error = pthread_mutexattr_gettype (&attr, &kind);
-  if (error)
-    {
-      printf ("pthread_mutexattr_gettype: %s\n", strerror (error));
-      return 1;
-    }
-  error = pthread_mutexattr_settype (&attr, kind);
-  if (error)
-    {
-      printf ("pthread_mutexattr_settype (2): %s\n", strerror (error));
-      return 1;
-    }
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-raise1.c b/nptl/tst-raise1.c
deleted file mode 100644
index 5d540b8cef..0000000000
--- a/nptl/tst-raise1.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <error.h>
-#include <signal.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-volatile int count;
-
-void
-sh (int sig)
-{
-  ++count;
-}
-
-int
-main (void)
-{
-  struct sigaction sa;
-  sa.sa_handler = sh;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-  if (sigaction (SIGUSR1, &sa, NULL) < 0)
-    {
-      printf ("sigaction failed: %m\n");
-      exit (1);
-    }
-  if (raise (SIGUSR1) < 0)
-    {
-      printf ("first raise failed: %m\n");
-      exit (1);
-    }
-  if (raise (SIGUSR1) < 0)
-    {
-      printf ("second raise failed: %m\n");
-      exit (1);
-    }
-  if (count != 2)
-    {
-      printf ("signal handler not called 2 times\n");
-      exit (1);
-    }
-  exit (0);
-}
diff --git a/nptl/tst-robust-fork.c b/nptl/tst-robust-fork.c
deleted file mode 100644
index 4a12ff000d..0000000000
--- a/nptl/tst-robust-fork.c
+++ /dev/null
@@ -1,184 +0,0 @@
-/* Test the interaction of fork and robust mutexes.
-   Copyright (C) 2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <support/check.h>
-#include <support/test-driver.h>
-#include <support/xthread.h>
-#include <support/xunistd.h>
-#include <sys/mman.h>
-
-/* Data shared between processes. */
-struct shared
-{
-  pthread_mutex_t parent_mutex;
-  pthread_mutex_t child_mutex;
-};
-
-/* These flags control which mutex settings are enabled in the parent
-   and child (separately).  */
-enum mutex_bits
-  {
-    mutex_pshared = 1,
-    mutex_robust = 2,
-    mutex_pi = 4,
-    mutex_check = 8,
-
-    /* All bits combined.  */
-    mutex_all_bits = 15,
-  };
-
-static void
-mutex_init (pthread_mutex_t *mutex, int bits)
-{
-  pthread_mutexattr_t attr;
-  xpthread_mutexattr_init (&attr);
-  if (bits & mutex_pshared)
-    xpthread_mutexattr_setpshared (&attr, PTHREAD_PROCESS_SHARED);
-  if (bits & mutex_robust)
-    xpthread_mutexattr_setrobust (&attr, PTHREAD_MUTEX_ROBUST);
-  if (bits & mutex_pi)
-    xpthread_mutexattr_setprotocol (&attr, PTHREAD_PRIO_INHERIT);
-  if (bits & mutex_check)
-    xpthread_mutexattr_settype (&attr, PTHREAD_MUTEX_ERRORCHECK);
-  xpthread_mutex_init (mutex, &attr);
-  xpthread_mutexattr_destroy (&attr);
-}
-
-static void
-one_test (int parent_bits, int child_bits, int nonshared_bits,
-          bool lock_nonshared, bool lock_child)
-{
-
-  struct shared *shared = xmmap (NULL, sizeof (*shared),
-                                 PROT_READ | PROT_WRITE,
-                                 MAP_ANONYMOUS | MAP_SHARED, -1);
-  mutex_init (&shared->parent_mutex, parent_bits);
-  mutex_init (&shared->child_mutex, child_bits);
-
-  /* Acquire the parent mutex in the parent.  */
-  xpthread_mutex_lock (&shared->parent_mutex);
-
-  pthread_mutex_t nonshared_mutex;
-  mutex_init (&nonshared_mutex, nonshared_bits);
-  if (lock_nonshared)
-    xpthread_mutex_lock (&nonshared_mutex);
-
-  pid_t pid = xfork ();
-  if (pid == 0)
-    {
-      /* Child process.  */
-      if (lock_child)
-        xpthread_mutex_lock (&shared->child_mutex);
-      else
-        xmunmap (shared, sizeof (*shared));
-      if (lock_nonshared)
-        /* Reinitialize the non-shared mutex if it was locked in the
-           parent.  */
-        mutex_init (&nonshared_mutex, nonshared_bits);
-      xpthread_mutex_lock (&nonshared_mutex);
-      /* For robust mutexes, the _exit call will perform the unlock
-         instead.  */
-      if (lock_child && !(child_bits & mutex_robust))
-        xpthread_mutex_unlock (&shared->child_mutex);
-      _exit (0);
-    }
-  /* Parent process. */
-  {
-    int status;
-    xwaitpid (pid, &status, 0);
-    TEST_VERIFY (status == 0);
-  }
-
-  if (parent_bits & mutex_check)
-    /* Test for expected self-deadlock.  This is only possible to
-       detect if the mutex is error-checking.  */
-    TEST_VERIFY_EXIT (pthread_mutex_lock (&shared->parent_mutex) == EDEADLK);
-
-  pid = xfork ();
-  if (pid == 0)
-    {
-      /* Child process.  We can perform some checks only if we are
-         dealing with process-shared mutexes.  */
-      if (parent_bits & mutex_pshared)
-        /* It must not be possible to acquire the parent mutex.
-
-           NB: This check touches a mutex which has been acquired in
-           the parent at fork time, so it might be deemed undefined
-           behavior, pending the resolution of Austin Groups issue
-           1112.  */
-        TEST_VERIFY_EXIT (pthread_mutex_trylock (&shared->parent_mutex)
-                          == EBUSY);
-      if (lock_child && (child_bits & mutex_robust))
-        {
-          if (!(child_bits & mutex_pshared))
-            /* No further tests possible.  */
-            _exit (0);
-          TEST_VERIFY_EXIT (pthread_mutex_lock (&shared->child_mutex)
-                            == EOWNERDEAD);
-          xpthread_mutex_consistent (&shared->child_mutex);
-        }
-      else
-        /* We did not acquire the lock in the first child process, or
-           we unlocked the mutex again because the mutex is not a
-           robust mutex.  */
-        xpthread_mutex_lock (&shared->child_mutex);
-      xpthread_mutex_unlock (&shared->child_mutex);
-      _exit (0);
-    }
-  /* Parent process. */
-  {
-    int status;
-    xwaitpid (pid, &status, 0);
-    TEST_VERIFY (status == 0);
-  }
-
-  if (lock_nonshared)
-    xpthread_mutex_unlock (&nonshared_mutex);
-  xpthread_mutex_unlock (&shared->parent_mutex);
-  xpthread_mutex_destroy (&shared->parent_mutex);
-  xpthread_mutex_destroy (&shared->child_mutex);
-  xpthread_mutex_destroy (&nonshared_mutex);
-  xmunmap (shared, sizeof (*shared));
-}
-
-static int
-do_test (void)
-{
-  for (int parent_bits = 0; parent_bits <= mutex_all_bits; ++parent_bits)
-    for (int child_bits = 0; child_bits <= mutex_all_bits; ++child_bits)
-      for (int nonshared_bits = 0; nonshared_bits <= mutex_all_bits;
-           ++nonshared_bits)
-        for (int lock_nonshared = 0; lock_nonshared < 2; ++lock_nonshared)
-          for (int lock_child = 0; lock_child < 2; ++lock_child)
-            {
-              if (test_verbose)
-                printf ("info: parent_bits=0x%x child_bits=0x%x"
-                        " nonshared_bits=0x%x%s%s\n",
-                        parent_bits, child_bits, nonshared_bits,
-                        lock_nonshared ? " lock_nonshared" : "",
-                        lock_child ? " lock_child" : "");
-              one_test (parent_bits, child_bits, nonshared_bits,
-                        lock_nonshared, lock_child);
-            }
-  return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/nptl/tst-robust1.c b/nptl/tst-robust1.c
deleted file mode 100644
index eb92e9cf69..0000000000
--- a/nptl/tst-robust1.c
+++ /dev/null
@@ -1,338 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t m1;
-static pthread_mutex_t m2;
-static pthread_barrier_t b;
-
-
-#ifndef LOCK
-# define LOCK(m) pthread_mutex_lock (m)
-#endif
-
-
-static void *
-tf (void *arg)
-{
-  long int round = (long int) arg;
-
-  if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, NULL) != 0)
-    {
-      printf ("%ld: setcancelstate failed\n", round);
-      exit (1);
-    }
-
-  int e = LOCK (&m1);
-  if (e != 0)
-    {
-      printf ("%ld: child: mutex_lock m1 failed with error %d\n", round, e);
-      exit (1);
-    }
-
-  e = LOCK (&m2);
-  if (e != 0)
-    {
-      printf ("%ld: child: mutex_lock m2 failed with error %d\n", round, e);
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("%ld: child: 1st barrier_wait failed\n", round);
-      exit (1);
-    }
-
-  e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("%ld: child: 2nd barrier_wait failed\n", round);
-      exit (1);
-    }
-
-  pthread_testcancel ();
-
-  printf ("%ld: testcancel returned\n", round);
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-#ifdef PREPARE_TMO
-  PREPARE_TMO;
-#endif
-
-  pthread_mutexattr_t a;
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-  if (pthread_mutexattr_setrobust_np (&a, PTHREAD_MUTEX_ROBUST_NP) != 0)
-    {
-      puts ("mutexattr_setrobust failed");
-      return 1;
-    }
-
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-  else
-    {
-      int e = pthread_mutex_init (&m1, &a);
-      if (e == ENOTSUP)
-	{
-	  puts ("PI robust mutexes not supported");
-	  return 0;
-	}
-      else if (e != 0)
-	{
-	  puts ("mutex_init m1 failed");
-	  return 1;
-	}
-      pthread_mutex_destroy (&m1);
-    }
-#endif
-
-#ifndef NOT_CONSISTENT
-  if (pthread_mutex_init (&m1, &a) != 0)
-    {
-      puts ("mutex_init m1 failed");
-      return 1;
-    }
-
-  if (pthread_mutex_init (&m2, &a) != 0)
-    {
-      puts ("mutex_init m2 failed");
-      return 1;
-    }
-#endif
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  for (long int round = 1; round < 5; ++round)
-    {
-#ifdef NOT_CONSISTENT
-      if (pthread_mutex_init (&m1 , &a) != 0)
-	{
-	  puts ("mutex_init m1 failed");
-	  return 1;
-	}
-      if (pthread_mutex_init (&m2 , &a) != 0)
-	{
-	  puts ("mutex_init m2 failed");
-	  return 1;
-	}
-#endif
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tf, (void *) round) != 0)
-	{
-	  printf ("%ld: create failed\n", round);
-	  return 1;
-	}
-
-      int e = pthread_barrier_wait (&b);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  printf ("%ld: parent: 1st barrier_wait failed\n", round);
-	  return 1;
-	}
-
-      if (pthread_cancel (th) != 0)
-	{
-	  printf ("%ld: cancel failed\n", round);
-	  return 1;
-	}
-
-      e = pthread_barrier_wait (&b);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  printf ("%ld: parent: 2nd barrier_wait failed\n", round);
-	  return 1;
-	}
-
-#ifndef AFTER_JOIN
-      if (round & 1)
-#endif
-	{
-	  void *res;
-	  if (pthread_join (th, &res) != 0)
-	    {
-	      printf ("%ld: join failed\n", round);
-	      return 1;
-	    }
-	  if (res != PTHREAD_CANCELED)
-	    {
-	      printf ("%ld: thread not canceled\n", round);
-	      return 1;
-	    }
-	}
-
-      e = LOCK (&m1);
-      if (e == 0)
-	{
-	  printf ("%ld: parent: mutex_lock m1 succeeded\n", round);
-	  return 1;
-	}
-      if (e != EOWNERDEAD)
-	{
-	  printf ("%ld: parent: mutex_lock m1 returned wrong code\n", round);
-	  return 1;
-	}
-
-      e = LOCK (&m2);
-      if (e == 0)
-	{
-	  printf ("%ld: parent: mutex_lock m2 succeeded\n", round);
-	  return 1;
-	}
-      if (e != EOWNERDEAD)
-	{
-	  printf ("%ld: parent: mutex_lock m2 returned wrong code\n", round);
-	  return 1;
-	}
-
-#ifndef AFTER_JOIN
-      if ((round & 1) == 0)
-	{
-	  void *res;
-	  if (pthread_join (th, &res) != 0)
-	    {
-	      printf ("%ld: join failed\n", round);
-	      return 1;
-	    }
-	  if (res != PTHREAD_CANCELED)
-	    {
-	      printf ("%ld: thread not canceled\n", round);
-	      return 1;
-	    }
-	}
-#endif
-
-#ifndef NOT_CONSISTENT
-      e = pthread_mutex_consistent_np (&m1);
-      if (e != 0)
-	{
-	  printf ("%ld: mutex_consistent m1 failed with error %d\n", round, e);
-	  return 1;
-	}
-
-      e = pthread_mutex_consistent_np (&m2);
-      if (e != 0)
-	{
-	  printf ("%ld: mutex_consistent m2 failed with error %d\n", round, e);
-	  return 1;
-	}
-#endif
-
-      e = pthread_mutex_unlock (&m1);
-      if (e != 0)
-	{
-	  printf ("%ld: mutex_unlock m1 failed with %d\n", round, e);
-	  return 1;
-	}
-
-      e = pthread_mutex_unlock (&m2);
-      if (e != 0)
-	{
-	  printf ("%ld: mutex_unlock m2 failed with %d\n", round, e);
-	  return 1;
-	}
-
-#ifdef NOT_CONSISTENT
-      e = LOCK (&m1);
-      if (e == 0)
-	{
-	  printf ("%ld: locking inconsistent mutex m1 succeeded\n", round);
-	  return 1;
-	}
-      if (e != ENOTRECOVERABLE)
-	{
-	  printf ("%ld: locking inconsistent mutex m1 failed with error %d\n",
-		  round, e);
-	  return 1;
-	}
-
-      if (pthread_mutex_destroy (&m1) != 0)
-	{
-	  puts ("mutex_destroy m1 failed");
-	  return 1;
-	}
-
-      e = LOCK (&m2);
-      if (e == 0)
-	{
-	  printf ("%ld: locking inconsistent mutex m2 succeeded\n", round);
-	  return 1;
-	}
-      if (e != ENOTRECOVERABLE)
-	{
-	  printf ("%ld: locking inconsistent mutex m2 failed with error %d\n",
-		  round, e);
-	  return 1;
-	}
-
-      if (pthread_mutex_destroy (&m2) != 0)
-	{
-	  puts ("mutex_destroy m2 failed");
-	  return 1;
-	}
-#endif
-    }
-
-#ifndef NOT_CONSISTENT
-  if (pthread_mutex_destroy (&m1) != 0)
-    {
-      puts ("mutex_destroy m1 failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&m2) != 0)
-    {
-      puts ("mutex_destroy m2 failed");
-      return 1;
-    }
-#endif
-
-  if (pthread_mutexattr_destroy (&a) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-robust10.c b/nptl/tst-robust10.c
deleted file mode 100644
index c56b420b01..0000000000
--- a/nptl/tst-robust10.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Test that pthread_mutex_timedlock properly times out.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-pthread_mutex_t mutex;
-
-static void *
-thr (void *arg)
-{
-  struct timespec abstime;
-  clock_gettime (CLOCK_REALTIME, &abstime);
-  abstime.tv_sec += 1;
-  int ret = pthread_mutex_timedlock (&mutex, &abstime);
-  if (ret == 0)
-    {
-      puts ("mutex_timedlock didn't fail");
-      exit (1);
-    }
-  if (ret != ETIMEDOUT)
-    {
-      printf ("mutex_timedlock failed: %s\n", strerror (ret));
-      exit (1);
-    }
-
-  return 0;
-}
-
-static int
-do_test (void)
-{
-  pthread_t pt;
-  pthread_mutexattr_t ma;
-
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 0;
-    }
-  if (pthread_mutexattr_setrobust_np (&ma, PTHREAD_MUTEX_ROBUST_NP) != 0)
-    {
-      puts ("mutexattr_setrobust failed");
-      return 1;
-    }
-  if (pthread_mutex_init (&mutex, &ma))
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&ma))
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&mutex))
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_create (&pt, NULL, thr, NULL))
-    {
-      puts ("pthread_create failed");
-      return 1;
-    }
-
-  if (pthread_join (pt, NULL))
-    {
-      puts ("pthread_join failed");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&mutex))
-    {
-      puts ("mutex_unlock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&mutex))
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-robust2.c b/nptl/tst-robust2.c
deleted file mode 100644
index cf603feb4d..0000000000
--- a/nptl/tst-robust2.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#define AFTER_JOIN 1
-#define LOCK(m) pthread_mutex_trylock (m)
-#include "tst-robust1.c"
diff --git a/nptl/tst-robust3.c b/nptl/tst-robust3.c
deleted file mode 100644
index e56f2762c7..0000000000
--- a/nptl/tst-robust3.c
+++ /dev/null
@@ -1,20 +0,0 @@
-#include <time.h>
-#include <sys/time.h>
-
-
-static struct timespec tmo;
-
-
-#define PREPARE_TMO \
-  do {									      \
-    struct timeval tv;							      \
-    gettimeofday (&tv, NULL);						      \
-									      \
-    /* Define the timeout as one hour in the future.  */		      \
-    tmo.tv_sec = tv.tv_sec + 3600;					      \
-    tmo.tv_nsec = 0;							      \
-  } while (0)
-
-
-#define LOCK(m) pthread_mutex_timedlock (m, &tmo)
-#include "tst-robust1.c"
diff --git a/nptl/tst-robust4.c b/nptl/tst-robust4.c
deleted file mode 100644
index b9c42b85b9..0000000000
--- a/nptl/tst-robust4.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define NOT_CONSISTENT 1
-#include "tst-robust1.c"
diff --git a/nptl/tst-robust5.c b/nptl/tst-robust5.c
deleted file mode 100644
index b83d3d66cb..0000000000
--- a/nptl/tst-robust5.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define NOT_CONSISTENT 1
-#include "tst-robust2.c"
diff --git a/nptl/tst-robust6.c b/nptl/tst-robust6.c
deleted file mode 100644
index 6713396de1..0000000000
--- a/nptl/tst-robust6.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define NOT_CONSISTENT 1
-#include "tst-robust3.c"
diff --git a/nptl/tst-robust7.c b/nptl/tst-robust7.c
deleted file mode 100644
index 6d414ad6f0..0000000000
--- a/nptl/tst-robust7.c
+++ /dev/null
@@ -1,212 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_barrier_t b;
-static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t m;
-static bool first = true;
-
-
-static void *
-tf (void *arg)
-{
-  long int n = (long int) arg;
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      printf ("thread %ld: mutex_lock failed\n", n + 1);
-      exit (1);
-    }
-
-  int e = pthread_barrier_wait (&b);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      printf ("thread %ld: barrier_wait failed\n", n + 1);
-      exit (1);
-    }
-
-  e = pthread_cond_wait (&c, &m);
-  if (first)
-    {
-      if (e != 0)
-	{
-	  printf ("thread %ld: cond_wait failed\n", n + 1);
-	  exit (1);
-	}
-      first = false;
-    }
-  else
-    {
-      if (e != EOWNERDEAD)
-	{
-	  printf ("thread %ld: cond_wait did not return EOWNERDEAD\n", n + 1);
-	  exit (1);
-	}
-    }
-
-  if (pthread_cancel (pthread_self ()) != 0)
-    {
-      printf ("thread %ld: cancel failed\n", n + 1);
-      exit (1);
-    }
-
-  pthread_testcancel ();
-
-  printf ("thread %ld: testcancel returned\n", n + 1);
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  pthread_mutexattr_t a;
-  if (pthread_mutexattr_init (&a) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setrobust_np (&a, PTHREAD_MUTEX_ROBUST_NP) != 0)
-    {
-      puts ("mutexattr_setrobust failed");
-      return 1;
-    }
-
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&a, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-
-  int e;
-  e = pthread_mutex_init (&m, &a);
-  if (e != 0)
-    {
-#ifdef ENABLE_PI
-      if (e == ENOTSUP)
-	{
-	  puts ("PI robust mutexes not supported");
-	  return 0;
-	}
-#endif
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_destroy (&a) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-#define N 5
-  pthread_t th[N];
-  for (long int n = 0; n < N; ++n)
-    {
-      if (pthread_create (&th[n], NULL, tf, (void *) n) != 0)
-	{
-	  printf ("pthread_create loop %ld failed\n", n + 1);
-	  return 1;
-	}
-
-      e = pthread_barrier_wait (&b);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  printf ("parent: barrier_wait failed in round %ld\n", n + 1);
-	  return 1;
-	}
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("parent: mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("parent: mutex_unlock failed");
-      return 1;
-    }
-
-  if (pthread_cond_broadcast (&c) != 0)
-    {
-      puts ("cond_broadcast failed");
-      return 1;
-    }
-
-  for (int n = 0; n < N; ++n)
-    {
-      void *res;
-      if (pthread_join (th[n], &res) != 0)
-	{
-	  printf ("join round %d failed\n", n + 1);
-	  return 1;
-	}
-      if (res != PTHREAD_CANCELED)
-	{
-	  printf ("thread %d not canceled\n", n + 1);
-	  return 1;
-	}
-    }
-
-  e = pthread_mutex_lock (&m);
-  if (e == 0)
-    {
-      puts ("parent: 2nd mutex_lock succeeded");
-      return 1;
-    }
-  if (e != EOWNERDEAD)
-    {
-      puts ("parent: mutex_lock did not return EOWNERDEAD");
-      return 1;
-    }
-
-  if (pthread_mutex_unlock (&m) != 0)
-    {
-      puts ("parent: 2nd mutex_unlock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_destroy (&m) != 0)
-    {
-      puts ("mutex_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-robust8.c b/nptl/tst-robust8.c
deleted file mode 100644
index 9c636250d4..0000000000
--- a/nptl/tst-robust8.c
+++ /dev/null
@@ -1,275 +0,0 @@
-#include <pthread.h>
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-
-
-static void prepare (void);
-#define PREPARE(argc, argv) prepare ()
-static int do_test (void);
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 5
-#include "../test-skeleton.c"
-
-
-static int fd;
-#define N 100
-
-static void
-prepare (void)
-{
-  fd = create_temp_file ("tst-robust8", NULL);
-  if (fd == -1)
-    exit (1);
-}
-
-
-#define THESIGNAL SIGKILL
-#define ROUNDS 5
-#define THREADS 9
-
-
-static const struct timespec before = { 0, 0 };
-
-
-static pthread_mutex_t *map;
-
-
-static void *
-tf (void *arg)
-{
-  long int nr = (long int) arg;
-  int fct = nr % 3;
-
-  uint8_t state[N];
-  memset (state, '\0', sizeof (state));
-
-  while (1)
-    {
-      int r = random () % N;
-      if (state[r] == 0)
-	{
-	  int e;
-
-	  switch (fct)
-	    {
-	    case 0:
-	      e = pthread_mutex_lock (&map[r]);
-	      if (e != 0)
-		{
-		  printf ("mutex_lock of %d in thread %ld failed with %d\n",
-			  r, nr, e);
-		  exit (1);
-		}
-	      state[r] = 1;
-	      break;
-	    case 1:
-	      e = pthread_mutex_timedlock (&map[r], &before);
-	      if (e != 0 && e != ETIMEDOUT)
-		{
-		  printf ("\
-mutex_timedlock of %d in thread %ld failed with %d\n",
-			  r, nr, e);
-		  exit (1);
-		}
-	      break;
-	    default:
-	      e = pthread_mutex_trylock (&map[r]);
-	      if (e != 0 && e != EBUSY)
-		{
-		  printf ("mutex_trylock of %d in thread %ld failed with %d\n",
-			  r, nr, e);
-		  exit (1);
-		}
-	      break;
-	    }
-
-	  if (e == EOWNERDEAD)
-	    pthread_mutex_consistent_np (&map[r]);
-
-	  if (e == 0 || e == EOWNERDEAD)
-	    state[r] = 1;
-	}
-      else
-	{
-	  int e = pthread_mutex_unlock (&map[r]);
-	  if (e != 0)
-	    {
-	      printf ("mutex_unlock of %d in thread %ld failed with %d\n",
-		      r, nr, e);
-	      exit (1);
-	    }
-
-	  state[r] = 0;
-	}
-    }
-}
-
-
-static void
-child (int round)
-{
-  for (int thread = 1; thread <= THREADS; ++thread)
-    {
-      pthread_t th;
-      if (pthread_create (&th, NULL, tf, (void *) (long int) thread) != 0)
-	{
-	  printf ("cannot create thread %d in round %d\n", thread, round);
-	  exit (1);
-	}
-    }
-
-  struct timespec ts;
-  ts.tv_sec = 0;
-  ts.tv_nsec = 1000000000 / ROUNDS;
-  while (nanosleep (&ts, &ts) != 0)
-    /* nothing */;
-
-  /* Time to die.  */
-  kill (getpid (), THESIGNAL);
-
-  /* We better never get here.  */
-  abort ();
-}
-
-
-static int
-do_test (void)
-{
-  if (ftruncate (fd, N * sizeof (pthread_mutex_t)) != 0)
-    {
-      puts ("cannot size new file");
-      return 1;
-    }
-
-  map = mmap (NULL, N * sizeof (pthread_mutex_t), PROT_READ | PROT_WRITE,
-	      MAP_SHARED, fd, 0);
-  if (map == MAP_FAILED)
-    {
-      puts ("mapping failed");
-      return 1;
-    }
-
-  pthread_mutexattr_t ma;
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("mutexattr_init failed");
-      return 0;
-    }
-  if (pthread_mutexattr_setrobust_np (&ma, PTHREAD_MUTEX_ROBUST_NP) != 0)
-    {
-      puts ("mutexattr_setrobust failed");
-      return 1;
-    }
-  if (pthread_mutexattr_setpshared (&ma, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("mutexattr_setpshared failed");
-      return 1;
-    }
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-
-  for (int round = 1; round <= ROUNDS; ++round)
-    {
-      for (int n = 0; n < N; ++n)
-	{
-	  int e = pthread_mutex_init (&map[n], &ma);
-	  if (e == ENOTSUP)
-	    {
-#ifdef ENABLE_PI
-	      puts ("cannot support pshared robust PI mutexes");
-#else
-	      puts ("cannot support pshared robust mutexes");
-#endif
-	      return 0;
-	    }
-	  if (e != 0)
-	    {
-	      printf ("mutex_init %d in round %d failed\n", n + 1, round);
-	      return 1;
-	    }
-	}
-
-      pid_t p = fork ();
-      if (p == -1)
-	{
-	  printf ("fork in round %d failed\n", round);
-	  return 1;
-	}
-      if (p == 0)
-	child (round);
-
-      int status;
-      if (TEMP_FAILURE_RETRY (waitpid (p, &status, 0)) != p)
-	{
-	  printf ("waitpid in round %d failed\n", round);
-	  return 1;
-	}
-      if (!WIFSIGNALED (status))
-	{
-	  printf ("child did not die of a signal in round %d\n", round);
-	  return 1;
-	}
-      if (WTERMSIG (status) != THESIGNAL)
-	{
-	  printf ("child did not die of signal %d in round %d\n",
-		  THESIGNAL, round);
-	  return 1;
-	}
-
-      for (int n = 0; n < N; ++n)
-	{
-	  int e = pthread_mutex_lock (&map[n]);
-	  if (e != 0 && e != EOWNERDEAD)
-	    {
-	      printf ("mutex_lock %d failed in round %d\n", n + 1, round);
-	      return 1;
-	    }
-	}
-
-      for (int n = 0; n < N; ++n)
-	if (pthread_mutex_unlock (&map[n]) != 0)
-	  {
-	    printf ("mutex_unlock %d failed in round %d\n", n + 1, round);
-	    return 1;
-	  }
-
-      for (int n = 0; n < N; ++n)
-	{
-	  int e = pthread_mutex_destroy (&map[n]);
-	  if (e != 0)
-	    {
-	      printf ("mutex_destroy %d in round %d failed with %d\n",
-		      n + 1, round, e);
-	      printf("nusers = %d\n", (int) map[n].__data.__nusers);
-	      return 1;
-	    }
-	}
-    }
-
-  if (pthread_mutexattr_destroy (&ma) != 0)
-    {
-      puts ("mutexattr_destroy failed");
-      return 1;
-    }
-
-  if (munmap (map, N * sizeof (pthread_mutex_t)) != 0)
-    {
-      puts ("munmap failed");
-      return 1;
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-robust9.c b/nptl/tst-robust9.c
deleted file mode 100644
index 1d6ba179be..0000000000
--- a/nptl/tst-robust9.c
+++ /dev/null
@@ -1,94 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <pthread.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static pthread_mutex_t m;
-
-static void *
-tf (void *data)
-{
-  int err = pthread_mutex_lock (&m);
-  if (err == EOWNERDEAD)
-    {
-      err = pthread_mutex_consistent_np (&m);
-      if (err)
-	{
-	  puts ("pthread_mutex_consistent_np");
-	  exit (1);
-	}
-    }
-  else if (err)
-    {
-      puts ("pthread_mutex_lock");
-      exit (1);
-    }
-  printf ("thread%ld got the lock.\n", (long int) data);
-  sleep (1);
-  /* exit without unlock */
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  int err, i;
-  pthread_t t[3];
-  pthread_mutexattr_t ma;
-
-  pthread_mutexattr_init (&ma);
-  err = pthread_mutexattr_setrobust_np (&ma, PTHREAD_MUTEX_ROBUST_NP);
-  if (err)
-    {
-      puts ("pthread_mutexattr_setrobust_np");
-      return 1;
-    }
-#ifdef ENABLE_PI
-  if (pthread_mutexattr_setprotocol (&ma, PTHREAD_PRIO_INHERIT) != 0)
-    {
-      puts ("pthread_mutexattr_setprotocol failed");
-      return 1;
-    }
-#endif
-  err = pthread_mutex_init (&m, &ma);
-#ifdef ENABLE_PI
-  if (err == ENOTSUP)
-    {
-      puts ("PI robust mutexes not supported");
-      return 0;
-    }
-#endif
-  if (err)
-    {
-      puts ("pthread_mutex_init");
-      return 1;
-    }
-
-  for (i = 0; i < sizeof (t) / sizeof (t[0]); i++)
-    {
-      err = pthread_create (&t[i], NULL, tf, (void *) (long int) i);
-      if (err)
-	{
-	  puts ("pthread_create");
-	  return 1;
-	}
-    }
-
-  for (i = 0; i < sizeof (t) / sizeof (t[0]); i++)
-    {
-      err = pthread_join (t[i], NULL);
-      if (err)
-	{
-	  puts ("pthread_join");
-	  return 1;
-	}
-    }
-  return 0;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-robustpi1.c b/nptl/tst-robustpi1.c
deleted file mode 100644
index 031291b296..0000000000
--- a/nptl/tst-robustpi1.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust1.c"
diff --git a/nptl/tst-robustpi2.c b/nptl/tst-robustpi2.c
deleted file mode 100644
index ac411c7736..0000000000
--- a/nptl/tst-robustpi2.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust2.c"
diff --git a/nptl/tst-robustpi3.c b/nptl/tst-robustpi3.c
deleted file mode 100644
index 7dcf691e82..0000000000
--- a/nptl/tst-robustpi3.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust3.c"
diff --git a/nptl/tst-robustpi4.c b/nptl/tst-robustpi4.c
deleted file mode 100644
index 6c7b0aa7be..0000000000
--- a/nptl/tst-robustpi4.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust4.c"
diff --git a/nptl/tst-robustpi5.c b/nptl/tst-robustpi5.c
deleted file mode 100644
index a494c332f1..0000000000
--- a/nptl/tst-robustpi5.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust5.c"
diff --git a/nptl/tst-robustpi6.c b/nptl/tst-robustpi6.c
deleted file mode 100644
index 3b1482fc22..0000000000
--- a/nptl/tst-robustpi6.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust6.c"
diff --git a/nptl/tst-robustpi7.c b/nptl/tst-robustpi7.c
deleted file mode 100644
index f8892f3521..0000000000
--- a/nptl/tst-robustpi7.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust7.c"
diff --git a/nptl/tst-robustpi8.c b/nptl/tst-robustpi8.c
deleted file mode 100644
index cbea3d6d77..0000000000
--- a/nptl/tst-robustpi8.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust8.c"
diff --git a/nptl/tst-robustpi9.c b/nptl/tst-robustpi9.c
deleted file mode 100644
index d059aa7d88..0000000000
--- a/nptl/tst-robustpi9.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define ENABLE_PI 1
-#include "tst-robust9.c"
diff --git a/nptl/tst-rwlock1.c b/nptl/tst-rwlock1.c
deleted file mode 100644
index c041a3ee4f..0000000000
--- a/nptl/tst-rwlock1.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
-  pthread_rwlock_t r;
-
-  if (pthread_rwlock_init (&r, NULL) != 0)
-    {
-      puts ("rwlock_init failed");
-      return 1;
-    }
-  puts ("rwlock_init succeeded");
-
-  if (pthread_rwlock_rdlock (&r) != 0)
-    {
-      puts ("1st rwlock_rdlock failed");
-      return 1;
-    }
-  puts ("1st rwlock_rdlock succeeded");
-
-  if (pthread_rwlock_rdlock (&r) != 0)
-    {
-      puts ("2nd rwlock_rdlock failed");
-      return 1;
-    }
-  puts ("2nd rwlock_rdlock succeeded");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("1st rwlock_unlock failed");
-      return 1;
-    }
-  puts ("1st rwlock_unlock succeeded");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("2nd rwlock_unlock failed");
-      return 1;
-    }
-  puts ("2nd rwlock_unlock succeeded");
-
-  if (pthread_rwlock_wrlock (&r) != 0)
-    {
-      puts ("1st rwlock_wrlock failed");
-      return 1;
-    }
-  puts ("1st rwlock_wrlock succeeded");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("3rd rwlock_unlock failed");
-      return 1;
-    }
-  puts ("3rd rwlock_unlock succeeded");
-
-  if (pthread_rwlock_wrlock (&r) != 0)
-    {
-      puts ("2nd rwlock_wrlock failed");
-      return 1;
-    }
-  puts ("2nd rwlock_wrlock succeeded");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("4th rwlock_unlock failed");
-      return 1;
-    }
-  puts ("4th rwlock_unlock succeeded");
-
-  if (pthread_rwlock_rdlock (&r) != 0)
-    {
-      puts ("3rd rwlock_rdlock failed");
-      return 1;
-    }
-  puts ("3rd rwlock_rdlock succeeded");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("5th rwlock_unlock failed");
-      return 1;
-    }
-  puts ("5th rwlock_unlock succeeded");
-
-  if (pthread_rwlock_destroy (&r) != 0)
-    {
-      puts ("rwlock_destroy failed");
-      return 1;
-    }
-  puts ("rwlock_destroy succeeded");
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock10.c b/nptl/tst-rwlock10.c
deleted file mode 100644
index 0726458a19..0000000000
--- a/nptl/tst-rwlock10.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test program for timedout read/write lock functions.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#define KIND PTHREAD_RWLOCK_PREFER_READER_NP
-#include "tst-rwlock8.c"
diff --git a/nptl/tst-rwlock11.c b/nptl/tst-rwlock11.c
deleted file mode 100644
index bcd435803a..0000000000
--- a/nptl/tst-rwlock11.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test program for timedout read/write lock functions.
-   Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#define KIND PTHREAD_RWLOCK_PREFER_READER_NP
-#include "tst-rwlock9.c"
diff --git a/nptl/tst-rwlock12.c b/nptl/tst-rwlock12.c
deleted file mode 100644
index cd9c176a23..0000000000
--- a/nptl/tst-rwlock12.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-rwlock12.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  pthread_mutex_t *m;
-  pthread_mutexattr_t ma;
-  pthread_rwlock_t *r;
-  pthread_rwlockattr_t ra;
-  pid_t pid;
-  int status = 0;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      return 1;
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      return 1;
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      return 1;
-    }
-
-  r = (pthread_rwlock_t *) (((uintptr_t) mem + __alignof (pthread_rwlock_t))
-			    & ~(__alignof (pthread_rwlock_t) - 1));
-  /* The following assumes alignment for a mutex is at least as high
-     as that for a rwlock.  Which is true in our case.  */
-  m = (pthread_mutex_t *) (r + 1);
-
-  if (pthread_rwlockattr_init (&ra) != 0)
-    {
-      puts ("rwlockattr_init failed");
-      return 1;
-    }
-
-  if (pthread_rwlockattr_setpshared (&ra, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("rwlockattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_rwlock_init (r, &ra) != 0)
-    {
-      puts ("rwlock_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_init (&ma) != 0)
-    {
-      puts ("rwlockattr_init failed");
-      return 1;
-    }
-
-  if (pthread_mutexattr_setpshared (&ma, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("mutexattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_mutex_init (m, &ma) != 0)
-    {
-      puts ("mutex_init failed");
-      return 1;
-    }
-
-  /* Lock the mutex.  */
-  if (pthread_mutex_lock (m) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-  else if (pid == 0)
-    {
-      /* Lock the mutex.  */
-      if (pthread_mutex_lock (m) != 0)
-	{
-	  puts ("child: mutex_lock failed");
-	  return 1;
-	}
-
-      /* Try to get the rwlock.  */
-      if (pthread_rwlock_trywrlock (r) == 0)
-	{
-	  puts ("rwlock_trywrlock succeeded");
-	  return 1;
-	}
-
-      /* Try again.  */
-      struct timespec ts = { .tv_sec = 0, .tv_nsec = 500000000 };
-      int e = pthread_rwlock_timedwrlock (r, &ts);
-      if (e == 0)
-	{
-	  puts ("rwlock_timedwrlock succeeded");
-	  return 1;
-	}
-      if (e != ETIMEDOUT)
-	{
-	  puts ("rwlock_timedwrlock didn't return ETIMEDOUT");
-	  status = 1;
-	}
-
-      if (pthread_rwlock_tryrdlock (r) == 0)
-	{
-	  puts ("rwlock_tryrdlock succeeded");
-	  return 1;
-	}
-
-      e = pthread_rwlock_timedrdlock (r, &ts);
-      if (e == 0)
-	{
-	  puts ("rwlock_timedrdlock succeeded");
-	  return 1;
-	}
-      if (e != ETIMEDOUT)
-	{
-	  puts ("rwlock_timedrdlock didn't return ETIMEDOUT");
-	  status = 1;
-	}
-    }
-  else
-    {
-      /* Lock the rwlock for writing.  */
-      if (pthread_rwlock_wrlock (r) != 0)
-	{
-	  puts ("rwlock_wrlock failed");
-	  kill (pid, SIGTERM);
-	  return 1;
-	}
-
-      /* Allow the child to run.  */
-      if (pthread_mutex_unlock (m) != 0)
-	{
-	  puts ("mutex_unlock failed");
-	  kill (pid, SIGTERM);
-	  return 1;
-	}
-
-      /* Just wait for the child.  */
-      if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-	{
-	  puts ("waitpid failed");
-	  kill (pid, SIGTERM);
-	  return 1;
-	}
-    }
-
-  return status;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock13.c b/nptl/tst-rwlock13.c
deleted file mode 100644
index bd2d7138d1..0000000000
--- a/nptl/tst-rwlock13.c
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static int
-do_test (void)
-{
-  pthread_rwlock_t r;
-  int ret;
-
-  memset (&r, 0xaa, sizeof (r));
-  if ((ret = pthread_rwlock_init (&r, NULL)) != 0)
-    {
-      printf ("rwlock_init failed: %d\n", ret);
-      return 1;
-    }
-
-  if ((ret = pthread_rwlock_rdlock (&r)) != 0)
-    {
-      printf ("rwlock_rdlock failed: %d\n", ret);
-      return 1;
-    }
-
-  if ((ret = pthread_rwlock_unlock (&r)) != 0)
-    {
-      printf ("rwlock_unlock failed: %d\n", ret);
-      return 1;
-    }
-
-  if ((ret = pthread_rwlock_wrlock (&r)) != 0)
-    {
-      printf ("rwlock_wrlock failed: %d\n", ret);
-      return 1;
-    }
-
-  if ((ret = pthread_rwlock_unlock (&r)) != 0)
-    {
-      printf ("second rwlock_unlock failed: %d\n", ret);
-      return 1;
-    }
-
-  if ((ret = pthread_rwlock_destroy (&r)) != 0)
-    {
-      printf ("second rwlock_destroy failed: %d\n", ret);
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock14.c b/nptl/tst-rwlock14.c
deleted file mode 100644
index 763b529eea..0000000000
--- a/nptl/tst-rwlock14.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-
-static pthread_barrier_t b;
-static pthread_rwlock_t r = PTHREAD_RWLOCK_INITIALIZER;
-
-
-static void *
-tf (void *arg)
-{
-  /* Lock the read-write lock.  */
-  if (pthread_rwlock_wrlock (&r) != 0)
-    {
-      puts ("tf: cannot lock rwlock");
-      exit (EXIT_FAILURE);
-    }
-
-  pthread_t mt = *(pthread_t *) arg;
-
-  pthread_barrier_wait (&b);
-
-  /* This call will never return.  */
-  pthread_join (mt, NULL);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  int result = 0;
-  struct timespec ts;
-
-  if (clock_gettime (CLOCK_REALTIME, &ts) != 0)
-    {
-      puts ("clock_gettime failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  pthread_t me = pthread_self ();
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, &me) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  /* Wait until the rwlock is locked.  */
-  pthread_barrier_wait (&b);
-
-  ts.tv_nsec = -1;
-
-  int e = pthread_rwlock_timedrdlock (&r, &ts);
-  if (e == 0)
-    {
-      puts ("first rwlock_timedrdlock did not fail");
-      result = 1;
-    }
-  else if (e != EINVAL)
-    {
-      puts ("first rwlock_timedrdlock did not return EINVAL");
-      result = 1;
-    }
-
-  e = pthread_rwlock_timedwrlock (&r, &ts);
-  if (e == 0)
-    {
-      puts ("first rwlock_timedwrlock did not fail");
-      result = 1;
-    }
-  else if (e != EINVAL)
-    {
-      puts ("first rwlock_timedwrlock did not return EINVAL");
-      result = 1;
-    }
-
-  ts.tv_nsec = 1000000000;
-
-  e = pthread_rwlock_timedrdlock (&r, &ts);
-  if (e == 0)
-    {
-      puts ("second rwlock_timedrdlock did not fail");
-      result = 1;
-    }
-  else if (e != EINVAL)
-    {
-      puts ("second rwlock_timedrdlock did not return EINVAL");
-      result = 1;
-    }
-
-  e = pthread_rwlock_timedrdlock (&r, &ts);
-  if (e == 0)
-    {
-      puts ("second rwlock_timedrdlock did not fail");
-      result = 1;
-    }
-  else if (e != EINVAL)
-    {
-      puts ("second rwlock_timedrdlock did not return EINVAL");
-      result = 1;
-    }
-
-  ts.tv_nsec = (__typeof (ts.tv_nsec)) 0x100001000LL;
-  if ((__typeof (ts.tv_nsec)) 0x100001000LL != 0x100001000LL)
-    ts.tv_nsec = 2000000000;
-
-  e = pthread_rwlock_timedrdlock (&r, &ts);
-  if (e == 0)
-    {
-      puts ("third rwlock_timedrdlock did not fail");
-      result = 1;
-    }
-  else if (e != EINVAL)
-    {
-      puts ("third rwlock_timedrdlock did not return EINVAL");
-      result = 1;
-    }
-
-  e = pthread_rwlock_timedrdlock (&r, &ts);
-  if (e == 0)
-    {
-      puts ("third rwlock_timedrdlock did not fail");
-      result = 1;
-    }
-  else if (e != EINVAL)
-    {
-      puts ("third rwlock_timedrdlock did not return EINVAL");
-      result = 1;
-    }
-
-  if (result == 0)
-    puts ("no bugs");
-
-  return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock15.c b/nptl/tst-rwlock15.c
deleted file mode 100644
index 78225fea27..0000000000
--- a/nptl/tst-rwlock15.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This tests that a writer that is preferred -- but times out due to a
-   reader being present -- does not miss to wake other readers blocked on the
-   writer's pending lock acquisition.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-
-/* The bug existed in the code that strictly prefers writers over readers.  */
-static pthread_rwlock_t r = PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP;
-
-static void *
-writer (void *arg)
-{
-  struct timespec ts;
-  if (clock_gettime (CLOCK_REALTIME, &ts) != 0)
-    {
-      puts ("clock_gettime failed");
-      exit (EXIT_FAILURE);
-    }
-  ts.tv_sec += 1;
-  int e = pthread_rwlock_timedwrlock (&r, &ts);
-  if (e != ETIMEDOUT)
-    {
-      puts ("timedwrlock did not time out");
-      exit (EXIT_FAILURE);
-    }
-  return NULL;
-}
-
-static void *
-reader (void *arg)
-{
-  /* This isn't a reliable way to get the interleaving we need (because a
-     failed trylock doesn't synchronize with the writer, and because we could
-     try to lock after the writer has already timed out).  However, both will
-     just lead to false positives.  */
-  int e;
-  while ((e = pthread_rwlock_tryrdlock (&r)) != EBUSY)
-    {
-      if (e != 0)
-	exit (EXIT_FAILURE);
-      pthread_rwlock_unlock (&r);
-    }
-  e = pthread_rwlock_rdlock (&r);
-  if (e != 0)
-    {
-      puts ("reader rdlock failed");
-      exit (EXIT_FAILURE);
-    }
-  pthread_rwlock_unlock (&r);
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  /* Grab a rdlock, then create a writer and a reader, and wait until they
-     finished.  */
-
-  if (pthread_rwlock_rdlock (&r) != 0)
-    {
-      puts ("initial rdlock failed");
-      return 1;
-    }
-
-  pthread_t thw;
-  if (pthread_create (&thw, NULL, writer, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-  pthread_t thr;
-  if (pthread_create (&thr, NULL, reader, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  if (pthread_join (thw, NULL) != 0)
-    {
-      puts ("writer join failed");
-      return 1;
-    }
-  if (pthread_join (thr, NULL) != 0)
-    {
-      puts ("reader join failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock16.c b/nptl/tst-rwlock16.c
deleted file mode 100644
index d19293198a..0000000000
--- a/nptl/tst-rwlock16.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This tests that with a reader-preferring rwlock, all readers are woken if
-   one reader "steals" lock ownership from a blocked writer.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <semaphore.h>
-#include <unistd.h>
-
-/* If we strictly prefer writers over readers, a program must not expect
-   that, in the presence of concurrent writers, one reader will also acquire
-   the lock when another reader has already done so.  Thus, use the
-   default rwlock type that does not strictly prefer writers.  */
-static pthread_rwlock_t r = PTHREAD_RWLOCK_INITIALIZER;
-
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t cv = PTHREAD_COND_INITIALIZER;
-
-/* Avoid using glibc-internal atomic operations.  */
-static sem_t stop;
-static int consumer_stop = 0;
-
-static void *
-writer (void *arg)
-{
-  int s;
-
-  do
-    {
-      if (pthread_rwlock_wrlock (&r) != 0)
-	{
-	  puts ("wrlock failed");
-	  exit (EXIT_FAILURE);
-	}
-      if (pthread_rwlock_unlock (&r) != 0)
-	{
-	  puts ("unlock failed");
-	  exit (EXIT_FAILURE);
-	}
-      sem_getvalue (&stop, &s);
-    }
-  while (s == 0);
-  return NULL;
-}
-
-static void *
-reader_producer (void *arg)
-{
-  int s;
-
-  do
-    {
-      if (pthread_rwlock_rdlock (&r) != 0)
-	{
-	  puts ("rdlock reader failed");
-	  exit (EXIT_FAILURE);
-	}
-
-      sem_getvalue (&stop, &s);
-
-      pthread_mutex_lock (&m);
-      if (s != 0)
-	consumer_stop = 1;
-      pthread_cond_signal (&cv);
-      pthread_mutex_unlock (&m);
-
-      if (pthread_rwlock_unlock (&r) != 0)
-	{
-	  puts ("unlock reader failed");
-	  exit (EXIT_FAILURE);
-	}
-    }
-  while (s == 0);
-  puts ("producer finished");
-  return NULL;
-}
-
-static void *
-reader_consumer (void *arg)
-{
-  int s;
-
-  do
-    {
-      if (pthread_rwlock_rdlock (&r) != 0)
-	{
-	  puts ("rdlock reader failed");
-	  exit (EXIT_FAILURE);
-	}
-
-      pthread_mutex_lock (&m);
-      s = consumer_stop;
-      if (s == 0)
-	pthread_cond_wait (&cv, &m);
-      pthread_mutex_unlock (&m);
-
-      if (pthread_rwlock_unlock (&r) != 0)
-	{
-	  puts ("unlock reader failed");
-	  exit (EXIT_FAILURE);
-	}
-    }
-  while (s == 0);
-    puts ("consumer finished");
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t w1, w2, rp, rc;
-
-  if (pthread_create (&w1, NULL, writer, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-  if (pthread_create (&w2, NULL, writer, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-  if (pthread_create (&rc, NULL, reader_consumer, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-  if (pthread_create (&rp, NULL, reader_producer, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  sleep (2);
-  sem_post (&stop);
-
-  if (pthread_join (w1, NULL) != 0)
-    {
-      puts ("w1 join failed");
-      return 1;
-    }
-  if (pthread_join (w2, NULL) != 0)
-    {
-      puts ("w2 join failed");
-      return 1;
-    }
-  if (pthread_join (rp, NULL) != 0)
-    {
-      puts ("reader_producer join failed");
-      return 1;
-    }
-  if (pthread_join (rc, NULL) != 0)
-    {
-      puts ("reader_consumer join failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock17.c b/nptl/tst-rwlock17.c
deleted file mode 100644
index 50c87e1f11..0000000000
--- a/nptl/tst-rwlock17.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Test program for timedout read/write lock functions.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#define KIND PTHREAD_RWLOCK_PREFER_WRITER_NP
-#include "tst-rwlock8.c"
diff --git a/nptl/tst-rwlock18.c b/nptl/tst-rwlock18.c
deleted file mode 100644
index c07935c56e..0000000000
--- a/nptl/tst-rwlock18.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Test program for timedout read/write lock functions.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#define KIND PTHREAD_RWLOCK_PREFER_WRITER_NP
-#include "tst-rwlock9.c"
diff --git a/nptl/tst-rwlock19.c b/nptl/tst-rwlock19.c
deleted file mode 100644
index 746d84d92f..0000000000
--- a/nptl/tst-rwlock19.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* Test rdlock overflow.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-#include <pthreadP.h>
-
-
-#define NREADERS 15
-#define READTRIES 5000
-
-#define DELAY   1000000
-
-static pthread_rwlock_t lock = PTHREAD_RWLOCK_INITIALIZER;
-static int eagain_returned = 0;
-static int success_returned = 0;
-
-static void *
-reader_thread (void *nr)
-{
-  struct timespec delay;
-  int n;
-
-  delay.tv_sec = 0;
-  delay.tv_nsec = DELAY;
-
-  for (n = 0; n < READTRIES; ++n)
-    {
-      int err = pthread_rwlock_rdlock (&lock);
-      if (err == EAGAIN)
-	{
-	  atomic_store_relaxed (&eagain_returned, 1);
-	  continue;
-	}
-      else if (err == 0)
-	atomic_store_relaxed (&success_returned, 1);
-      else
-	{
-	  puts ("rdlock failed");
-	  exit (1);
-	}
-
-      nanosleep (&delay, NULL);
-
-      if (pthread_rwlock_unlock (&lock) != 0)
-	{
-	  puts ("unlock for reader failed");
-	  exit (1);
-	}
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t thrd[NREADERS];
-  int n;
-  void *res;
-
-  /* Set the rwlock so that it's close to a reader overflow.
-     PTHREAD_RWLOCK_WRPHASE and PTHREAD_RWLOCK_WRLOCK are zero initially.  */
-  unsigned int readers = PTHREAD_RWLOCK_READER_OVERFLOW
-      - ((NREADERS / 3) << PTHREAD_RWLOCK_READER_SHIFT);
-  lock.__data.__readers = readers;
-
-  for (n = 0; n < NREADERS; ++n)
-    if (pthread_create (&thrd[n], NULL, reader_thread,
-			(void *) (long int) n) != 0)
-      {
-	puts ("reader create failed");
-	exit (1);
-      }
-
-  /* Wait for all the threads.  */
-  for (n = 0; n < NREADERS; ++n)
-    if (pthread_join (thrd[n], &res) != 0)
-      {
-	puts ("reader join failed");
-	exit (1);
-      }
-
-  if (atomic_load_relaxed (&eagain_returned) == 0)
-    {
-      puts ("EAGAIN has never been returned");
-      exit (1);
-    }
-
-  if (atomic_load_relaxed (&success_returned) == 0)
-    {
-      puts ("rdlock was never successfully acquired");
-      exit (1);
-    }
-
-  if (lock.__data.__readers != readers)
-    {
-      puts ("__readers in rwlock differs from initial value");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TIMEOUT 30
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock2.c b/nptl/tst-rwlock2.c
deleted file mode 100644
index 40462005ee..0000000000
--- a/nptl/tst-rwlock2.c
+++ /dev/null
@@ -1,168 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
-  pthread_rwlock_t r;
-  pthread_rwlockattr_t at;
-  int e;
-
-  if (pthread_rwlockattr_init (&at) != 0)
-    {
-      puts ("rwlockattr_init failed");
-      return 1;
-    }
-  puts ("rwlockattr_init succeeded");
-
-#ifndef TYPE
-# define TYPE PTHREAD_RWLOCK_PREFER_READER_NP
-#endif
-
-  if (pthread_rwlockattr_setkind_np (&at, TYPE) != 0)
-    {
-      puts ("rwlockattr_setkind failed");
-      return 1;
-    }
-  puts ("rwlockattr_setkind succeeded");
-
-  if (pthread_rwlock_init (&r, &at) != 0)
-    {
-      puts ("rwlock_init failed");
-      return 1;
-    }
-  puts ("rwlock_init succeeded");
-
-  if (pthread_rwlockattr_destroy (&at) != 0)
-    {
-      puts ("rwlockattr_destroy failed");
-      return 1;
-    }
-  puts ("rwlockattr_destroy succeeded");
-
-  if (pthread_rwlock_wrlock (&r) != 0)
-    {
-      puts ("1st rwlock_wrlock failed");
-      return 1;
-    }
-  puts ("1st rwlock_wrlock succeeded");
-
-  e = pthread_rwlock_tryrdlock (&r);
-  if (e == 0)
-    {
-      puts ("rwlock_tryrdlock on rwlock with writer succeeded");
-      return 1;
-    }
-  if (e != EBUSY)
-    {
-      puts ("rwlock_tryrdlock on rwlock with writer return value != EBUSY");
-      return 1;
-    }
-  puts ("rwlock_tryrdlock on rwlock with writer failed with EBUSY");
-
-  e = pthread_rwlock_trywrlock (&r);
-  if (e == 0)
-    {
-      puts ("rwlock_trywrlock on rwlock with writer succeeded");
-      return 1;
-    }
-  if (e != EBUSY)
-    {
-      puts ("rwlock_trywrlock on rwlock with writer return value != EBUSY");
-      return 1;
-    }
-  puts ("rwlock_trywrlock on rwlock with writer failed with EBUSY");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("1st rwlock_unlock failed");
-      return 1;
-    }
-  puts ("1st rwlock_unlock succeeded");
-
-  if (pthread_rwlock_tryrdlock (&r) != 0)
-    {
-      puts ("rwlock_tryrdlock on unlocked rwlock failed");
-      return 1;
-    }
-  puts ("rwlock_tryrdlock on unlocked rwlock succeeded");
-
-  e = pthread_rwlock_trywrlock (&r);
-  if (e == 0)
-    {
-      puts ("rwlock_trywrlock on rwlock with reader succeeded");
-      return 1;
-    }
-  if (e != EBUSY)
-    {
-      puts ("rwlock_trywrlock on rwlock with reader return value != EBUSY");
-      return 1;
-    }
-  puts ("rwlock_trywrlock on rwlock with reader failed with EBUSY");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("2nd rwlock_unlock failed");
-      return 1;
-    }
-  puts ("2nd rwlock_unlock succeeded");
-
-  if (pthread_rwlock_trywrlock (&r) != 0)
-    {
-      puts ("rwlock_trywrlock on unlocked rwlock failed");
-      return 1;
-    }
-  puts ("rwlock_trywrlock on unlocked rwlock succeeded");
-
-  e = pthread_rwlock_tryrdlock (&r);
-  if (e == 0)
-    {
-      puts ("rwlock_tryrdlock on rwlock with writer succeeded");
-      return 1;
-    }
-  if (e != EBUSY)
-    {
-      puts ("rwlock_tryrdlock on rwlock with writer return value != EBUSY");
-      return 1;
-    }
-  puts ("rwlock_tryrdlock on rwlock with writer failed with EBUSY");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("3rd rwlock_unlock failed");
-      return 1;
-    }
-  puts ("3rd rwlock_unlock succeeded");
-
-  if (pthread_rwlock_destroy (&r) != 0)
-    {
-      puts ("rwlock_destroy failed");
-      return 1;
-    }
-  puts ("rwlock_destroy succeeded");
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock2a.c b/nptl/tst-rwlock2a.c
deleted file mode 100644
index 615de5c015..0000000000
--- a/nptl/tst-rwlock2a.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TYPE PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
-#include "tst-rwlock2.c"
diff --git a/nptl/tst-rwlock2b.c b/nptl/tst-rwlock2b.c
deleted file mode 100644
index 5ebaa3a546..0000000000
--- a/nptl/tst-rwlock2b.c
+++ /dev/null
@@ -1,2 +0,0 @@
-#define TYPE PTHREAD_RWLOCK_PREFER_WRITER_NP
-#include "tst-rwlock2.c"
diff --git a/nptl/tst-rwlock3.c b/nptl/tst-rwlock3.c
deleted file mode 100644
index 45d83c3ef0..0000000000
--- a/nptl/tst-rwlock3.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* This test case checks more than standard compliance.  An
-   implementation may provide this service but it is not required to
-   do so.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
-  pthread_rwlock_t r;
-  int e;
-
-  if (pthread_rwlock_init (&r, NULL) != 0)
-    {
-      puts ("rwlock_init failed");
-      return 1;
-    }
-  puts ("rwlock_init succeeded");
-
-  if (pthread_rwlock_trywrlock (&r) != 0)
-    {
-      puts ("rwlock_trywrlock on unlocked rwlock failed");
-      return 1;
-    }
-  puts ("rwlock_trywrlock on unlocked rwlock succeeded");
-
-  e = pthread_rwlock_rdlock (&r);
-  if (e == 0)
-    {
-      puts ("rwlock_rdlock on rwlock with writer succeeded");
-      return 1;
-    }
-  if (e != EDEADLK)
-    {
-      puts ("rwlock_rdlock on rwlock with writer failed != EDEADLK");
-      return 1;
-    }
-  puts ("rwlock_rdlock on rwlock with writer failed with EDEADLK");
-
-  e = pthread_rwlock_wrlock (&r);
-  if (e == 0)
-    {
-      puts ("rwlock_wrlock on rwlock with writer succeeded");
-      return 1;
-    }
-  if (e != EDEADLK)
-    {
-      puts ("rwlock_wrlock on rwlock with writer failed != EDEADLK");
-      return 1;
-    }
-  puts ("rwlock_wrlock on rwlock with writer failed with EDEADLK");
-
-  if (pthread_rwlock_unlock (&r) != 0)
-    {
-      puts ("rwlock_unlock failed");
-      return 1;
-    }
-  puts ("rwlock_unlock succeeded");
-
-  if (pthread_rwlock_destroy (&r) != 0)
-    {
-      puts ("rwlock_destroy failed");
-      return 1;
-    }
-  puts ("rwlock_destroy succeeded");
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock4.c b/nptl/tst-rwlock4.c
deleted file mode 100644
index 73c301ba93..0000000000
--- a/nptl/tst-rwlock4.c
+++ /dev/null
@@ -1,189 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-rwlock4.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  pthread_rwlock_t *r;
-  pthread_rwlockattr_t a;
-  pid_t pid;
-  char *p;
-  int err;
-  int s;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      return 1;
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      return 1;
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      return 1;
-    }
-
-  r = (pthread_rwlock_t *) (((uintptr_t) mem + __alignof (pthread_rwlock_t))
-			    & ~(__alignof (pthread_rwlock_t) - 1));
-  p = (char *) (r + 1);
-
-  if (pthread_rwlockattr_init (&a) != 0)
-    {
-      puts ("rwlockattr_init failed");
-      return 1;
-    }
-
-  if (pthread_rwlockattr_getpshared (&a, &s) != 0)
-    {
-      puts ("1st rwlockattr_getpshared failed");
-      return 1;
-    }
-
-  if (s != PTHREAD_PROCESS_PRIVATE)
-    {
-      puts ("default pshared value wrong");
-      return 1;
-    }
-
-  if (pthread_rwlockattr_setpshared (&a, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("rwlockattr_setpshared failed");
-      return 1;
-    }
-
-  if (pthread_rwlockattr_getpshared (&a, &s) != 0)
-    {
-      puts ("2nd rwlockattr_getpshared failed");
-      return 1;
-    }
-
-  if (s != PTHREAD_PROCESS_SHARED)
-    {
-      puts ("pshared value after setpshared call wrong");
-      return 1;
-    }
-
-  if (pthread_rwlock_init (r, &a) != 0)
-    {
-      puts ("rwlock_init failed");
-      return 1;
-    }
-
-  if (pthread_rwlock_rdlock (r) != 0)
-    {
-      puts ("rwlock_rdlock failed");
-      return 1;
-    }
-
-  if (pthread_rwlockattr_destroy (&a) != 0)
-    {
-      puts ("rwlockattr_destroy failed");
-      return 1;
-    }
-
-  err = pthread_rwlock_trywrlock (r);
-  if (err == 0)
-    {
-      puts ("rwlock_trywrlock succeeded");
-      return 1;
-    }
-  else if (err != EBUSY)
-    {
-      puts ("rwlock_trywrlock didn't return EBUSY");
-      return 1;
-    }
-
-  *p = 0;
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-  else if (pid == 0)
-    {
-      /* Play some lock ping-pong.  It's our turn to unlock first.  */
-      if ((*p)++ != 0)
-	{
-	  puts ("child: *p != 0");
-	  return 1;
-	}
-
-      if (pthread_rwlock_unlock (r) != 0)
-	{
-	  puts ("child: 1st rwlock_unlock failed");
-	  return 1;
-	}
-
-      puts ("child done");
-    }
-  else
-    {
-      if (pthread_rwlock_wrlock (r) != 0)
-	{
-	  puts ("parent: rwlock_wrlock failed");
-	  return 1;
-	}
-
-      if (*p != 1)
-	{
-	  puts ("*p != 1");
-	  return 1;
-	}
-
-      puts ("parent done");
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock5.c b/nptl/tst-rwlock5.c
deleted file mode 100644
index ca95fc0714..0000000000
--- a/nptl/tst-rwlock5.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-static pthread_rwlock_t r;
-
-
-static void *
-tf (void *arg)
-{
-  if (pthread_rwlock_wrlock (&r) == 0)
-    {
-      puts ("child: rwlock_wrlock succeeded");
-      exit (1);
-    }
-
-  puts ("child: rwlock_wrlock returned");
-
-  exit (1);
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_rwlock_init (&r, NULL) != 0)
-    {
-      puts ("rwlock_init failed");
-      return 1;
-    }
-
-  if (pthread_rwlock_wrlock (&r) != 0)
-    {
-      puts ("rwlock_wrlock failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("mutex_lock failed");
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  delayed_exit (1);
-  /* This call should never return.  */
-  xpthread_mutex_lock (&m);
-
-  puts ("2nd mutex_lock returned");
-  return 1;
-}
diff --git a/nptl/tst-rwlock6.c b/nptl/tst-rwlock6.c
deleted file mode 100644
index 50906d893a..0000000000
--- a/nptl/tst-rwlock6.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/time.h>
-
-
-static int kind[] =
-  {
-    PTHREAD_RWLOCK_PREFER_READER_NP,
-    PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
-    PTHREAD_RWLOCK_PREFER_WRITER_NP,
-  };
-
-
-static void *
-tf (void *arg)
-{
-  pthread_rwlock_t *r = arg;
-
-  /* Timeout: 0.3 secs.  */
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_nsec += 300000000;
-  if (ts.tv_nsec >= 1000000000)
-    {
-      ts.tv_nsec -= 1000000000;
-      ++ts.tv_sec;
-    }
-
-  puts ("child calling timedrdlock");
-
-  int err = pthread_rwlock_timedrdlock (r, &ts);
-  if (err == 0)
-    {
-      puts ("rwlock_timedrdlock returned");
-      pthread_exit ((void *) 1l);
-    }
-
-  if (err != ETIMEDOUT)
-    {
-      printf ("err = %s (%d), expected %s (%d)\n",
-	      strerror (err), err, strerror (ETIMEDOUT), ETIMEDOUT);
-      pthread_exit ((void *) 1l);
-    }
-
-  puts ("1st child timedrdlock done");
-
-  struct timeval tv2;
-  (void) gettimeofday (&tv2, NULL);
-
-  timersub (&tv2, &tv, &tv);
-
-  if (tv.tv_usec < 200000)
-    {
-      puts ("timeout too short");
-      pthread_exit ((void *) 1l);
-    }
-
-  (void) gettimeofday (&tv, NULL);
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_sec += 10;
-  /* Note that the following operation makes ts invalid.  */
-  ts.tv_nsec += 1000000000;
-
-  err = pthread_rwlock_timedrdlock (r, &ts);
-  if (err == 0)
-    {
-      puts ("2nd timedrdlock succeeded");
-      pthread_exit ((void *) 1l);
-    }
-  if (err != EINVAL)
-    {
-      puts ("2nd timedrdlock did not return EINVAL");
-      pthread_exit ((void *) 1l);
-    }
-
-  puts ("2nd child timedrdlock done");
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  size_t cnt;
-  for (cnt = 0; cnt < sizeof (kind) / sizeof (kind[0]); ++cnt)
-    {
-      pthread_rwlock_t r;
-      pthread_rwlockattr_t a;
-
-      if (pthread_rwlockattr_init (&a) != 0)
-	{
-	  printf ("round %Zu: rwlockattr_t failed\n", cnt);
-	  exit (1);
-	}
-
-      if (pthread_rwlockattr_setkind_np (&a, kind[cnt]) != 0)
-	{
-	  printf ("round %Zu: rwlockattr_setkind failed\n", cnt);
-	  exit (1);
-	}
-
-      if (pthread_rwlock_init (&r, &a) != 0)
-	{
-	  printf ("round %Zu: rwlock_init failed\n", cnt);
-	  exit (1);
-	}
-
-      if (pthread_rwlockattr_destroy (&a) != 0)
-	{
-	  printf ("round %Zu: rwlockattr_destroy failed\n", cnt);
-	  exit (1);
-	}
-
-      struct timeval tv;
-      (void) gettimeofday (&tv, NULL);
-
-      struct timespec ts;
-      TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-      ++ts.tv_sec;
-
-      /* Get a write lock.  */
-      int e = pthread_rwlock_timedwrlock (&r, &ts);
-      if (e != 0)
-	{
-	  printf ("round %Zu: rwlock_timedwrlock failed (%d)\n", cnt, e);
-	  exit (1);
-	}
-
-      puts ("1st timedwrlock done");
-
-      (void) gettimeofday (&tv, NULL);
-      TIMEVAL_TO_TIMESPEC (&tv, &ts);
-      ++ts.tv_sec;
-      e = pthread_rwlock_timedrdlock (&r, &ts);
-      if (e == 0)
-	{
-	  puts ("timedrdlock succeeded");
-	  exit (1);
-	}
-      if (e != EDEADLK)
-	{
-	  puts ("timedrdlock did not return EDEADLK");
-	  exit (1);
-	}
-
-      puts ("1st timedrdlock done");
-
-      (void) gettimeofday (&tv, NULL);
-      TIMEVAL_TO_TIMESPEC (&tv, &ts);
-      ++ts.tv_sec;
-      e = pthread_rwlock_timedwrlock (&r, &ts);
-      if (e == 0)
-	{
-	  puts ("2nd timedwrlock succeeded");
-	  exit (1);
-	}
-      if (e != EDEADLK)
-	{
-	  puts ("2nd timedwrlock did not return EDEADLK");
-	  exit (1);
-	}
-
-      puts ("2nd timedwrlock done");
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tf, &r) != 0)
-	{
-	  printf ("round %Zu: create failed\n", cnt);
-	  exit (1);
-	}
-
-      puts ("started thread");
-
-      void *status;
-      if (pthread_join (th, &status) != 0)
-	{
-	  printf ("round %Zu: join failed\n", cnt);
-	  exit (1);
-	}
-      if (status != NULL)
-	{
-	  printf ("failure in round %Zu\n", cnt);
-	  exit (1);
-	}
-
-      puts ("joined thread");
-
-      if (pthread_rwlock_destroy (&r) != 0)
-	{
-	  printf ("round %Zu: rwlock_destroy failed\n", cnt);
-	  exit (1);
-	}
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock7.c b/nptl/tst-rwlock7.c
deleted file mode 100644
index 504e51c68a..0000000000
--- a/nptl/tst-rwlock7.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/time.h>
-
-
-static int kind[] =
-  {
-    PTHREAD_RWLOCK_PREFER_READER_NP,
-    PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
-    PTHREAD_RWLOCK_PREFER_WRITER_NP,
-  };
-
-
-static void *
-tf (void *arg)
-{
-  pthread_rwlock_t *r = arg;
-
-  /* Timeout: 0.3 secs.  */
-  struct timeval tv;
-  (void) gettimeofday (&tv, NULL);
-
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_nsec += 300000000;
-  if (ts.tv_nsec >= 1000000000)
-    {
-      ts.tv_nsec -= 1000000000;
-      ++ts.tv_sec;
-    }
-
-  int err = pthread_rwlock_timedwrlock (r, &ts);
-  if (err == 0)
-    {
-      puts ("rwlock_timedwrlock returned");
-      pthread_exit ((void *) 1l);
-    }
-
-  if (err != ETIMEDOUT)
-    {
-      printf ("err = %s (%d), expected %s (%d)\n",
-	      strerror (err), err, strerror (ETIMEDOUT), ETIMEDOUT);
-      pthread_exit ((void *) 1l);
-    }
-  puts ("child: timedwrlock failed with ETIMEDOUT");
-
-  struct timeval tv2;
-  (void) gettimeofday (&tv2, NULL);
-
-  timersub (&tv2, &tv, &tv);
-
-  if (tv.tv_usec < 200000)
-    {
-      puts ("timeout too short");
-      pthread_exit ((void *) 1l);
-    }
-
-  (void) gettimeofday (&tv, NULL);
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-  ts.tv_sec += 10;
-  /* Note that the following operation makes ts invalid.  */
-  ts.tv_nsec += 1000000000;
-
-  err = pthread_rwlock_timedwrlock (r, &ts);
-  if (err == 0)
-    {
-      puts ("2nd timedwrlock succeeded");
-      pthread_exit ((void *) 1l);
-    }
-  if (err != EINVAL)
-    {
-      puts ("2nd timedwrlock did not return EINVAL");
-      pthread_exit ((void *) 1l);
-    }
-  puts ("child: timedwrlock failed with EINVAL");
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  size_t cnt;
-  for (cnt = 0; cnt < sizeof (kind) / sizeof (kind[0]); ++cnt)
-    {
-      pthread_rwlock_t r;
-      pthread_rwlockattr_t a;
-
-      if (pthread_rwlockattr_init (&a) != 0)
-	{
-	  printf ("round %Zu: rwlockattr_t failed\n", cnt);
-	  exit (1);
-	}
-
-      if (pthread_rwlockattr_setkind_np (&a, kind[cnt]) != 0)
-	{
-	  printf ("round %Zu: rwlockattr_setkind failed\n", cnt);
-	  exit (1);
-	}
-
-      if (pthread_rwlock_init (&r, &a) != 0)
-	{
-	  printf ("round %Zu: rwlock_init failed\n", cnt);
-	  exit (1);
-	}
-
-      if (pthread_rwlockattr_destroy (&a) != 0)
-	{
-	  printf ("round %Zu: rwlockattr_destroy failed\n", cnt);
-	  exit (1);
-	}
-
-      struct timeval tv;
-      (void) gettimeofday (&tv, NULL);
-
-      struct timespec ts;
-      TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-      ++ts.tv_sec;
-
-      /* Get a read lock.  */
-      if (pthread_rwlock_timedrdlock (&r, &ts) != 0)
-	{
-	  printf ("round %Zu: rwlock_timedrdlock failed\n", cnt);
-	  exit (1);
-	}
-      printf ("%zu: got timedrdlock\n", cnt);
-
-      pthread_t th;
-      if (pthread_create (&th, NULL, tf, &r) != 0)
-	{
-	  printf ("round %Zu: create failed\n", cnt);
-	  exit (1);
-	}
-
-      void *status;
-      if (pthread_join (th, &status) != 0)
-	{
-	  printf ("round %Zu: join failed\n", cnt);
-	  exit (1);
-	}
-      if (status != NULL)
-	{
-	  printf ("failure in round %Zu\n", cnt);
-	  exit (1);
-	}
-
-      if (pthread_rwlock_destroy (&r) != 0)
-	{
-	  printf ("round %Zu: rwlock_destroy failed\n", cnt);
-	  exit (1);
-	}
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock8.c b/nptl/tst-rwlock8.c
deleted file mode 100644
index 5f3174d46a..0000000000
--- a/nptl/tst-rwlock8.c
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Test program for timedout read/write lock functions.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-
-
-#define NWRITERS 15
-#define WRITETRIES 10
-#define NREADERS 15
-#define READTRIES 15
-
-#define DELAY   1000000
-
-#ifndef KIND
-# define KIND PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
-#endif
-
-static pthread_rwlock_t lock;
-
-
-static void *
-writer_thread (void *nr)
-{
-  struct timespec delay;
-  int n;
-
-  delay.tv_sec = 0;
-  delay.tv_nsec = DELAY;
-
-  for (n = 0; n < WRITETRIES; ++n)
-    {
-      printf ("writer thread %ld tries again\n", (long int) nr);
-
-      if (pthread_rwlock_wrlock (&lock) != 0)
-	{
-	  puts ("wrlock failed");
-	  exit (1);
-	}
-
-      printf ("writer thread %ld succeeded\n", (long int) nr);
-
-      nanosleep (&delay, NULL);
-
-      if (pthread_rwlock_unlock (&lock) != 0)
-	{
-	  puts ("unlock for writer failed");
-	  exit (1);
-	}
-
-      printf ("writer thread %ld released\n", (long int) nr);
-    }
-
-  return NULL;
-}
-
-
-static void *
-reader_thread (void *nr)
-{
-  struct timespec delay;
-  int n;
-
-  delay.tv_sec = 0;
-  delay.tv_nsec = DELAY;
-
-  for (n = 0; n < READTRIES; ++n)
-    {
-      printf ("reader thread %ld tries again\n", (long int) nr);
-
-      if (pthread_rwlock_rdlock (&lock) != 0)
-	{
-	  puts ("rdlock failed");
-	  exit (1);
-	}
-
-      printf ("reader thread %ld succeeded\n", (long int) nr);
-
-      nanosleep (&delay, NULL);
-
-      if (pthread_rwlock_unlock (&lock) != 0)
-	{
-	  puts ("unlock for reader failed");
-	  exit (1);
-	}
-
-      printf ("reader thread %ld released\n", (long int) nr);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t thwr[NWRITERS];
-  pthread_t thrd[NREADERS];
-  int n;
-  void *res;
-  pthread_rwlockattr_t a;
-
-  if (pthread_rwlockattr_init (&a) != 0)
-    {
-      puts ("rwlockattr_t failed");
-      exit (1);
-    }
-
-  if (pthread_rwlockattr_setkind_np (&a, KIND) != 0)
-    {
-      puts ("rwlockattr_setkind failed");
-      exit (1);
-    }
-
-  if (pthread_rwlock_init (&lock, &a) != 0)
-    {
-      puts ("rwlock_init failed");
-      exit (1);
-    }
-
-  /* Make standard error the same as standard output.  */
-  dup2 (1, 2);
-
-  /* Make sure we see all message, even those on stdout.  */
-  setvbuf (stdout, NULL, _IONBF, 0);
-
-  for (n = 0; n < NWRITERS; ++n)
-    if (pthread_create (&thwr[n], NULL, writer_thread,
-			(void *) (long int) n) != 0)
-      {
-	puts ("writer create failed");
-	exit (1);
-      }
-
-  for (n = 0; n < NREADERS; ++n)
-    if (pthread_create (&thrd[n], NULL, reader_thread,
-			(void *) (long int) n) != 0)
-      {
-	puts ("reader create failed");
-	exit (1);
-      }
-
-  /* Wait for all the threads.  */
-  for (n = 0; n < NWRITERS; ++n)
-    if (pthread_join (thwr[n], &res) != 0)
-      {
-	puts ("writer join failed");
-	exit (1);
-      }
-  for (n = 0; n < NREADERS; ++n)
-    if (pthread_join (thrd[n], &res) != 0)
-      {
-	puts ("reader join failed");
-	exit (1);
-      }
-
-  return 0;
-}
-
-#define TIMEOUT 30
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-rwlock9.c b/nptl/tst-rwlock9.c
deleted file mode 100644
index a7ea34fae6..0000000000
--- a/nptl/tst-rwlock9.c
+++ /dev/null
@@ -1,221 +0,0 @@
-/* Test program for timedout read/write lock functions.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <error.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-#define NWRITERS 15
-#define WRITETRIES 10
-#define NREADERS 15
-#define READTRIES 15
-
-#define TIMEOUT 1000000
-#define DELAY   1000000
-
-#ifndef KIND
-# define KIND PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP
-#endif
-
-static pthread_rwlock_t lock;
-
-
-static void *
-writer_thread (void *nr)
-{
-  struct timespec ts;
-  struct timespec delay;
-  int n;
-
-  delay.tv_sec = 0;
-  delay.tv_nsec = DELAY;
-
-  for (n = 0; n < WRITETRIES; ++n)
-    {
-      int e;
-      do
-	{
-	  struct timeval tv;
-	  (void) gettimeofday (&tv, NULL);
-	  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-	  ts.tv_nsec += 2 * TIMEOUT;
-	  if (ts.tv_nsec >= 1000000000)
-	    {
-	      ts.tv_nsec -= 1000000000;
-	      ++ts.tv_sec;
-	    }
-
-	  printf ("writer thread %ld tries again\n", (long int) nr);
-
-	  e = pthread_rwlock_timedwrlock (&lock, &ts);
-	  if (e != 0 && e != ETIMEDOUT)
-	    {
-	      puts ("timedwrlock failed");
-	      exit (1);
-	    }
-	}
-      while (e == ETIMEDOUT);
-
-      printf ("writer thread %ld succeeded\n", (long int) nr);
-
-      nanosleep (&delay, NULL);
-
-      if (pthread_rwlock_unlock (&lock) != 0)
-	{
-	  puts ("unlock for writer failed");
-	  exit (1);
-	}
-
-      printf ("writer thread %ld released\n", (long int) nr);
-    }
-
-  return NULL;
-}
-
-
-static void *
-reader_thread (void *nr)
-{
-  struct timespec ts;
-  struct timespec delay;
-  int n;
-
-  delay.tv_sec = 0;
-  delay.tv_nsec = DELAY;
-
-  for (n = 0; n < READTRIES; ++n)
-    {
-      int e;
-      do
-	{
-	  struct timeval tv;
-	  (void) gettimeofday (&tv, NULL);
-	  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-	  ts.tv_nsec += TIMEOUT;
-	  if (ts.tv_nsec >= 1000000000)
-	    {
-	      ts.tv_nsec -= 1000000000;
-	      ++ts.tv_sec;
-	    }
-
-	  printf ("reader thread %ld tries again\n", (long int) nr);
-
-	  e = pthread_rwlock_timedrdlock (&lock, &ts);
-	  if (e != 0 && e != ETIMEDOUT)
-	    {
-	      puts ("timedrdlock failed");
-	      exit (1);
-	    }
-	}
-      while (e == ETIMEDOUT);
-
-      printf ("reader thread %ld succeeded\n", (long int) nr);
-
-      nanosleep (&delay, NULL);
-
-      if (pthread_rwlock_unlock (&lock) != 0)
-	{
-	  puts ("unlock for reader failed");
-	  exit (1);
-	}
-
-      printf ("reader thread %ld released\n", (long int) nr);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_t thwr[NWRITERS];
-  pthread_t thrd[NREADERS];
-  int n;
-  void *res;
-  pthread_rwlockattr_t a;
-
-  if (pthread_rwlockattr_init (&a) != 0)
-    {
-      puts ("rwlockattr_t failed");
-      exit (1);
-    }
-
-  if (pthread_rwlockattr_setkind_np (&a, KIND) != 0)
-    {
-      puts ("rwlockattr_setkind failed");
-      exit (1);
-    }
-
-  if (pthread_rwlock_init (&lock, &a) != 0)
-    {
-      puts ("rwlock_init failed");
-      exit (1);
-    }
-
-  /* Make standard error the same as standard output.  */
-  dup2 (1, 2);
-
-  /* Make sure we see all message, even those on stdout.  */
-  setvbuf (stdout, NULL, _IONBF, 0);
-
-  for (n = 0; n < NWRITERS; ++n)
-    if (pthread_create (&thwr[n], NULL, writer_thread,
-			(void *) (long int) n) != 0)
-      {
-	puts ("writer create failed");
-	exit (1);
-      }
-
-  for (n = 0; n < NREADERS; ++n)
-    if (pthread_create (&thrd[n], NULL, reader_thread,
-			(void *) (long int) n) != 0)
-      {
-	puts ("reader create failed");
-	exit (1);
-      }
-
-  /* Wait for all the threads.  */
-  for (n = 0; n < NWRITERS; ++n)
-    if (pthread_join (thwr[n], &res) != 0)
-      {
-	puts ("writer join failed");
-	exit (1);
-      }
-  for (n = 0; n < NREADERS; ++n)
-    if (pthread_join (thrd[n], &res) != 0)
-      {
-	puts ("reader join failed");
-	exit (1);
-      }
-
-  return 0;
-}
-
-#undef TIMEOUT
-#define TIMEOUT 30
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sched1.c b/nptl/tst-sched1.c
deleted file mode 100644
index 992abdb007..0000000000
--- a/nptl/tst-sched1.c
+++ /dev/null
@@ -1,97 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/types.h>
-
-
-static int global;
-
-static void *
-tf (void *a)
-{
-  global = 1;
-
-  return 0;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-  pthread_attr_t at;
-
-  if (pthread_attr_init (&at) != 0)
-    {
-      puts ("attr_init failed");
-      return 1;
-    }
-
-  if (pthread_attr_setschedpolicy (&at, SCHED_OTHER) != 0)
-    {
-      puts ("attr_setschedpolicy failed");
-      return 1;
-    }
-
-  struct sched_param pa;
-  if (sched_getparam (getpid (), &pa) != 0)
-    {
-      puts ("sched_getschedparam failed");
-      return 1;
-    }
-
-  if (pthread_attr_setschedparam (&at, &pa) != 0)
-    {
-      puts ("attr_setschedparam failed");
-      return 1;
-    }
-
-  if (pthread_attr_setinheritsched (&at, PTHREAD_EXPLICIT_SCHED) != 0)
-    {
-      puts ("attr_setinheritsched failed");
-      return 1;
-    }
-
-  if (pthread_create (&th, &at, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  int e = pthread_join (th, NULL);
-  if (e != 0)
-    {
-      printf ("join failed: %d\n", e);
-      return 1;
-    }
-
-  if (global == 0)
-    {
-      puts ("thread didn't run");
-      return 1;
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem1.c b/nptl/tst-sem1.c
deleted file mode 100644
index 29d1f5805e..0000000000
--- a/nptl/tst-sem1.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int
-do_test (void)
-{
-  sem_t s;
-
-  if (sem_init (&s, 0, 1) == -1)
-    {
-      puts ("init failed");
-      return 1;
-    }
-
-  if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
-    {
-      puts ("1st wait failed");
-      return 1;
-    }
-
-  if (sem_post (&s) == -1)
-    {
-      puts ("1st post failed");
-      return 1;
-    }
-
-  if (TEMP_FAILURE_RETRY (sem_trywait (&s)) == -1)
-    {
-      puts ("1st trywait failed");
-      return 1;
-    }
-
-  errno = 0;
-  if (TEMP_FAILURE_RETRY (sem_trywait (&s)) != -1)
-    {
-      puts ("2nd trywait succeeded");
-      return 1;
-    }
-  else if (errno != EAGAIN)
-    {
-      puts ("2nd trywait did not set errno to EAGAIN");
-      return 1;
-    }
-
-  if (sem_post (&s) == -1)
-    {
-      puts ("2nd post failed");
-      return 1;
-    }
-
-  if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
-    {
-      puts ("2nd wait failed");
-      return 1;
-    }
-
-  if (sem_destroy (&s) == -1)
-    {
-      puts ("destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem10.c b/nptl/tst-sem10.c
deleted file mode 100644
index 025363e22b..0000000000
--- a/nptl/tst-sem10.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (C) 2007-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2007.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static int
-do_test (void)
-{
-  sem_t s;
-  if (sem_init (&s, 0, 0) == -1)
-    {
-      puts ("sem_init failed");
-      return 1;
-    }
-
-  struct timeval tv;
-  if (gettimeofday (&tv, NULL) != 0)
-    {
-      puts ("gettimeofday failed");
-      return 1;
-    }
-
-  struct timespec ts;
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-  /* Set ts to yesterday.  */
-  ts.tv_sec -= 86400;
-
-  int type_before;
-  if (pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &type_before) != 0)
-    {
-      puts ("first pthread_setcanceltype failed");
-      return 1;
-    }
-
-  errno = 0;
-  if (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)) != -1)
-    {
-      puts ("sem_timedwait succeeded");
-      return 1;
-    }
-  if (errno != ETIMEDOUT)
-    {
-      printf ("sem_timedwait return errno = %d instead of ETIMEDOUT\n",
-	      errno);
-      return 1;
-    }
-
-  int type_after;
-  if (pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED, &type_after) != 0)
-    {
-      puts ("second pthread_setcanceltype failed");
-      return 1;
-    }
-  if (type_after != PTHREAD_CANCEL_DEFERRED)
-    {
-      puts ("sem_timedwait changed cancellation type");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem11-static.c b/nptl/tst-sem11-static.c
deleted file mode 100644
index 09b7698078..0000000000
--- a/nptl/tst-sem11-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-sem11.c"
diff --git a/nptl/tst-sem11.c b/nptl/tst-sem11.c
deleted file mode 100644
index 1a2dbafd89..0000000000
--- a/nptl/tst-sem11.c
+++ /dev/null
@@ -1,85 +0,0 @@
-#include <semaphore.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <internaltypes.h>
-
-#ifndef SEM_WAIT
-# define SEM_WAIT(s) sem_wait (s)
-#endif
-
-static void *
-tf (void *arg)
-{
-#ifdef PREPARE
-  PREPARE
-#endif
-  SEM_WAIT (arg);
-  return NULL;
-}
-
-int
-main (void)
-{
-  int tries = 5;
-  pthread_t th;
-  union
-  {
-    sem_t s;
-    struct new_sem ns;
-  } u;
- again:
-  if (sem_init (&u.s, 0, 0) != 0)
-    {
-      puts ("sem_init failed");
-      return 1;
-    }
-#if __HAVE_64B_ATOMICS
-  if ((u.ns.data >> SEM_NWAITERS_SHIFT) != 0)
-#else
-  if (u.ns.nwaiters != 0)
-#endif
-    {
-      puts ("nwaiters not initialized");
-      return 1;
-    }
-
-  if (pthread_create (&th, NULL, tf, &u.s) != 0)
-    {
-      puts ("pthread_create failed");
-      return 1;
-    }
-
-  sleep (1);
-
-  if (pthread_cancel (th) != 0)
-    {
-      puts ("pthread_cancel failed");
-      return 1;
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("pthread_join failed");
-      return 1;
-    }
-  if (r != PTHREAD_CANCELED && --tries > 0)
-    {
-      /* Maybe we get the scheduling right the next time.  */
-      sem_destroy (&u.s);
-      goto again;
-    }
-
-#if __HAVE_64B_ATOMICS
-  if ((u.ns.data >> SEM_NWAITERS_SHIFT) != 0)
-#else
-  if (u.ns.nwaiters != 0)
-#endif
-    {
-      puts ("nwaiters not reset");
-      return 1;
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-sem12-static.c b/nptl/tst-sem12-static.c
deleted file mode 100644
index c06349f2b6..0000000000
--- a/nptl/tst-sem12-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-sem12.c"
diff --git a/nptl/tst-sem12.c b/nptl/tst-sem12.c
deleted file mode 100644
index 71d02b70e9..0000000000
--- a/nptl/tst-sem12.c
+++ /dev/null
@@ -1,14 +0,0 @@
-#include <time.h>
-#include <sys/time.h>
-
-
-#define PREPARE \
-  struct timespec ts; \
-  struct timeval tv; \
-  gettimeofday (&tv, NULL); \
-  TIMEVAL_TO_TIMESPEC (&tv, &ts); \
-  ts.tv_sec += 60;
-
-#define SEM_WAIT(s) sem_timedwait (s, &ts)
-
-#include "tst-sem11.c"
diff --git a/nptl/tst-sem13.c b/nptl/tst-sem13.c
deleted file mode 100644
index 1560e91443..0000000000
--- a/nptl/tst-sem13.c
+++ /dev/null
@@ -1,75 +0,0 @@
-#include <errno.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <unistd.h>
-#include <pthread.h>
-#include <internaltypes.h>
-
-
-static int
-do_test (void)
-{
-  union
-  {
-    sem_t s;
-    struct new_sem ns;
-  } u;
-
-  if (sem_init (&u.s, 0, 0) != 0)
-    {
-      puts ("sem_init failed");
-      return 1;
-    }
-
-  struct timespec ts = { 0, 1000000001 };	/* Invalid.  */
-  errno = 0;
-  if (sem_timedwait (&u.s, &ts) >= 0)
-    {
-      puts ("sem_timedwait did not fail");
-      return 1;
-    }
-  if (errno != EINVAL)
-    {
-      perror ("sem_timedwait did not fail with EINVAL");
-      return 1;
-    }
-#if __HAVE_64B_ATOMICS
-  unsigned int nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT);
-#else
-  unsigned int nwaiters = u.ns.nwaiters;
-#endif
-  if (nwaiters != 0)
-    {
-      printf ("sem_timedwait modified nwaiters: %d\n", nwaiters);
-      return 1;
-    }
-
-  ts.tv_sec = /* Invalid.  */ -2;
-  ts.tv_nsec = 0;
-  errno = 0;
-  if (sem_timedwait (&u.s, &ts) >= 0)
-    {
-      puts ("2nd sem_timedwait did not fail");
-      return 1;
-    }
-  if (errno != ETIMEDOUT)
-    {
-      perror ("2nd sem_timedwait did not fail with ETIMEDOUT");
-      return 1;
-    }
-#if __HAVE_64B_ATOMICS
-  nwaiters = (u.ns.data >> SEM_NWAITERS_SHIFT);
-#else
-  nwaiters = u.ns.nwaiters;
-#endif
-  if (nwaiters != 0)
-    {
-      printf ("2nd sem_timedwait modified nwaiters: %d\n", nwaiters);
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem14.c b/nptl/tst-sem14.c
deleted file mode 100644
index 195d229fc9..0000000000
--- a/nptl/tst-sem14.c
+++ /dev/null
@@ -1,92 +0,0 @@
-/* Test for sem_post race: bug 14532.
-   Copyright (C) 2012-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <semaphore.h>
-#include <stdio.h>
-
-#define NTHREADS 10
-#define NITER 100000
-
-sem_t sem;
-int c;
-volatile int thread_fail;
-
-static void *
-tf (void *arg)
-{
-  for (int i = 0; i < NITER; i++)
-    {
-      if (sem_wait (&sem) != 0)
-	{
-	  perror ("sem_wait");
-	  thread_fail = 1;
-	}
-      ++c;
-      if (sem_post (&sem) != 0)
-	{
-	  perror ("sem_post");
-	  thread_fail = 1;
-	}
-    }
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  if (sem_init (&sem, 0, 0) != 0)
-    {
-      perror ("sem_init");
-      return 1;
-    }
-
-  pthread_t th[NTHREADS];
-  for (int i = 0; i < NTHREADS; i++)
-    {
-      if (pthread_create (&th[i], NULL, tf, NULL) != 0)
-	{
-	  puts ("pthread_create failed");
-	  return 1;
-	}
-    }
-
-  if (sem_post (&sem) != 0)
-    {
-      perror ("sem_post");
-      return 1;
-    }
-
-  for (int i = 0; i < NTHREADS; i++)
-    if (pthread_join (th[i], NULL) != 0)
-      {
-	puts ("pthread_join failed");
-	return 1;
-      }
-
-  if (c != NTHREADS * NITER)
-    {
-      printf ("c = %d, should be %d\n", c, NTHREADS * NITER);
-      return 1;
-    }
-  return thread_fail;
-}
-
-#define TIMEOUT 10
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem15.c b/nptl/tst-sem15.c
deleted file mode 100644
index 60c4e0f879..0000000000
--- a/nptl/tst-sem15.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/* Test for SEM_VALUE_MAX overflow detection: BZ #18434.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <limits.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-
-static int
-do_test (void)
-{
-  sem_t s;
-
-  if (sem_init (&s, 0, SEM_VALUE_MAX))
-    {
-      printf ("sem_init: %m\n");
-      return 1;
-    }
-
-  int result = 0;
-
-  int value = 0xdeadbeef;
-  if (sem_getvalue (&s, &value))
-    {
-      printf ("sem_getvalue: %m\n");
-      result = 1;
-    }
-  else
-    {
-      printf ("sem_getvalue after init: %d\n", value);
-      if (value != SEM_VALUE_MAX)
-	{
-	  printf ("\tshould be %d\n", SEM_VALUE_MAX);
-	  result = 1;
-	}
-    }
-
-  errno = 0;
-  if (sem_post(&s) == 0)
-    {
-      puts ("sem_post at SEM_VALUE_MAX succeeded!");
-      result = 1;
-    }
-  else
-    {
-      printf ("sem_post at SEM_VALUE_MAX: %m (%d)\n", errno);
-      if (errno != EOVERFLOW)
-	{
-	  printf ("\tshould be %s (EOVERFLOW = %d)\n",
-		  strerror (EOVERFLOW), EOVERFLOW);
-	  result = 1;
-	}
-    }
-
-  value = 0xbad1d00d;
-  if (sem_getvalue (&s, &value))
-    {
-      printf ("sem_getvalue: %m\n");
-      result = 1;
-    }
-  else
-    {
-      printf ("sem_getvalue after post: %d\n", value);
-      if (value != SEM_VALUE_MAX)
-	{
-	  printf ("\tshould be %d\n", SEM_VALUE_MAX);
-	  result = 1;
-	}
-    }
-
-  if (sem_destroy (&s))
-    {
-      printf ("sem_destroy: %m\n");
-      result = 1;
-    }
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem16.c b/nptl/tst-sem16.c
deleted file mode 100644
index 1b03fa4b1e..0000000000
--- a/nptl/tst-sem16.c
+++ /dev/null
@@ -1,130 +0,0 @@
-/* Test for sem_open cancellation handling: BZ #15765.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <sys/mman.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <errno.h>
-#include <stdlib.h>
-
-static sem_t sem;	/* Use to sync with thread start.  */
-static const char pipe_name[] = "/glibc-tst-sem16";
-
-static void
-remove_sem (int status, void *arg)
-{
-  sem_unlink (arg);
-}
-
-static void *
-tf (void *arg)
-{
-  pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, 0);
-
-  if (sem_wait (&sem) != 0)
-    {
-      printf ("error: sem_wait failed: %m");
-      exit (1);
-    }
-
-  if (pthread_setcancelstate (PTHREAD_CANCEL_ENABLE, 0) != 0)
-    {
-      printf ("error: pthread_setcancelstate failed: %m");
-      exit (1);
-    }
-
-  /* Neither sem_unlink or sem_open should act on thread cancellation.  */
-  sem_unlink (pipe_name);
-  on_exit (remove_sem, (void *) pipe_name);
-
-  sem_t *s = sem_open (pipe_name, O_CREAT, 0600, 1);
-  if (s == SEM_FAILED)
-    {
-      int exit_code;
-      if (errno == ENOSYS || errno == EACCES)
-	exit_code = 77;
-      else
-	exit_code = 1;
-      exit (exit_code);
-    }
-
-  if (pthread_setcancelstate (PTHREAD_CANCEL_DISABLE, 0) != 0)
-    {
-      printf ("error: pthread_setcancelstate failed: %m");
-      exit (1);
-    }
-
-  if (sem_close (s) != 0)
-    {
-      printf ("error: sem_close failed: %m");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  pthread_t td;
-
-  if (sem_init (&sem, 0, 0))
-    {
-      printf ("error: sem_init failed: %m\n");
-      exit (1);
-    }
-
-  if (pthread_create (&td, NULL, tf, NULL) != 0)
-    {
-      printf ("error: pthread_create failed: %m\n");
-      exit (1);
-    }
-
-  if (pthread_cancel (td) != 0)
-    {
-      printf ("error: pthread_cancel failed: %m\n");
-      exit (1);
-    }
-
-  if (sem_post (&sem) != 0)
-    {
-      printf ("error: sem_post failed: %m\n");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (td, &r) != 0)
-    {
-      printf ("error: pthread_join failed: %m\n");
-      exit (1);
-    }
-
-  if (r == PTHREAD_CANCELED)
-    {
-      puts ("error: pthread_join returned PTHREAD_CANCELED");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include <test-skeleton.c>
diff --git a/nptl/tst-sem2.c b/nptl/tst-sem2.c
deleted file mode 100644
index e36ef65bc1..0000000000
--- a/nptl/tst-sem2.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static int
-do_test (void)
-{
-  sem_t s;
-
-  if (sem_init (&s, 0, 0) == -1)
-    {
-      puts ("init failed");
-      return 1;
-    }
-
-  delayed_exit (1);
-
-  if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
-    {
-      puts ("wait failed");
-      return 1;
-    }
-
-  /* We should never get here.  */
-  puts ("wait succeeded");
-  return 1;
-}
diff --git a/nptl/tst-sem3.c b/nptl/tst-sem3.c
deleted file mode 100644
index aa9ca8cb3b..0000000000
--- a/nptl/tst-sem3.c
+++ /dev/null
@@ -1,144 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-sem3.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  sem_t *s;
-  pid_t pid;
-  char *p;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      return 1;
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      return 1;
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      return 1;
-    }
-
-  s = (sem_t *) (((uintptr_t) mem + __alignof (sem_t))
-		 & ~(__alignof (sem_t) - 1));
-  p = (char *) (s + 1);
-
-  if (sem_init (s, 1, 1) == -1)
-    {
-      puts ("init failed");
-      return 1;
-    }
-
-  if (TEMP_FAILURE_RETRY (sem_wait (s)) == -1)
-    {
-      puts ("1st wait failed");
-      return 1;
-    }
-
-  errno = 0;
-  if (TEMP_FAILURE_RETRY (sem_trywait (s)) != -1)
-    {
-      puts ("trywait succeeded");
-      return 1;
-    }
-  else if (errno != EAGAIN)
-    {
-      puts ("trywait didn't return EAGAIN");
-      return 1;
-    }
-
-  *p = 0;
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-  else if (pid == 0)
-    {
-      /* Play some lock ping-pong.  It's our turn to unlock first.  */
-      if ((*p)++ != 0)
-	{
-	  puts ("child: *p != 0");
-	  return 1;
-	}
-
-      if (sem_post (s) == -1)
-	{
-	  puts ("child: 1st post failed");
-	  return 1;
-	}
-
-      puts ("child done");
-    }
-  else
-    {
-      if (TEMP_FAILURE_RETRY (sem_wait (s)) == -1)
-	{
-	  printf ("parent: 2nd wait failed: %m\n");
-	  return 1;
-	}
-
-      if (*p != 1)
-	{
-	  puts ("*p != 1");
-	  return 1;
-	}
-
-      puts ("parent done");
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem4.c b/nptl/tst-sem4.c
deleted file mode 100644
index b4d1f49995..0000000000
--- a/nptl/tst-sem4.c
+++ /dev/null
@@ -1,153 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void
-remove_sem (int status, void *arg)
-{
-  sem_unlink (arg);
-}
-
-
-int
-do_test (void)
-{
-  sem_t *s;
-  sem_t *s2;
-  pid_t pid;
-  int val;
-
-  /* Start with a clean slate and register a clean-up action.  No need to
-     act if sem_unlink fails because we will catch the same problem during the
-     sem_open below.  */
-  sem_unlink ("/glibc-tst-sem4");
-  on_exit (remove_sem, (void *) "/glibc-tst-sem4");
-
-  s = sem_open ("/glibc-tst-sem4", O_CREAT, 0600, 1);
-  if (s == SEM_FAILED)
-    {
-      if (errno == ENOSYS)
-	{
-	  puts ("sem_open not supported.  Oh well.");
-	  return 0;
-	}
-
-      /* Maybe the shm filesystem has strict permissions.  */
-      if (errno == EACCES)
-	{
-	  puts ("sem_open not allowed.  Oh well.");
-	  return 0;
-	}
-
-      printf ("sem_open: %m\n");
-      return 1;
-    }
-
-  /* We have the semaphore object.  Now try again with O_EXCL, this
-     should fail.  */
-  s2 = sem_open ("/glibc-tst-sem4", O_CREAT | O_EXCL, 0600, 1);
-  if (s2 != SEM_FAILED)
-    {
-      puts ("2nd sem_open didn't fail");
-      return 1;
-    }
-  if (errno != EEXIST)
-    {
-      puts ("2nd sem_open returned wrong error");
-      return 1;
-    }
-
-  /* Check the value.  */
-  if (sem_getvalue (s, &val) == -1)
-    {
-      puts ("getvalue failed");
-      return 1;
-    }
-  if (val != 1)
-    {
-      printf ("initial value wrong: got %d, expected 1\n", val);
-      return 1;
-    }
-
-  if (TEMP_FAILURE_RETRY (sem_wait (s)) == -1)
-    {
-      puts ("1st sem_wait failed");
-      return 1;
-    }
-
-  pid = fork ();
-  if (pid == -1)
-    {
-      printf ("fork failed: %m\n");
-      return 1;
-    }
-
-  if (pid == 0)
-    {
-      /* Child.  */
-
-      /* Check the value.  */
-      if (sem_getvalue (s, &val) == -1)
-	{
-	  puts ("child: getvalue failed");
-	  return 1;
-	}
-      if (val != 0)
-	{
-	  printf ("child: value wrong: got %d, expect 0\n", val);
-	  return 1;
-	}
-
-      if (sem_post (s) == -1)
-	{
-	  puts ("child: post failed");
-	  return 1;
-	}
-    }
-  else
-    {
-      if (TEMP_FAILURE_RETRY (sem_wait (s)) == -1)
-	{
-	  puts ("2nd sem_wait failed");
-	  return 1;
-	}
-
-      if (sem_getvalue (s, &val) == -1)
-	{
-	  puts ("parent: 2nd getvalue failed");
-	  return 1;
-	}
-      if (val != 0)
-	{
-	  printf ("parent: value wrong: got %d, expected 0\n", val);
-	  return 1;
-	}
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem5.c b/nptl/tst-sem5.c
deleted file mode 100644
index 0aafed2b07..0000000000
--- a/nptl/tst-sem5.c
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/time.h>
-
-
-static int
-do_test (void)
-{
-  sem_t s;
-  struct timespec ts;
-  struct timeval tv;
-
-  if (sem_init (&s, 0, 1) == -1)
-    {
-      puts ("sem_init failed");
-      return 1;
-    }
-
-  if (TEMP_FAILURE_RETRY (sem_wait (&s)) == -1)
-    {
-      puts ("sem_wait failed");
-      return 1;
-    }
-
-  if (gettimeofday (&tv, NULL) != 0)
-    {
-      puts ("gettimeofday failed");
-      return 1;
-    }
-
-  TIMEVAL_TO_TIMESPEC (&tv, &ts);
-
-  /* We wait for half a second.  */
-  ts.tv_nsec += 500000000;
-  if (ts.tv_nsec >= 1000000000)
-    {
-      ++ts.tv_sec;
-      ts.tv_nsec -= 1000000000;
-    }
-
-  errno = 0;
-  if (TEMP_FAILURE_RETRY (sem_timedwait (&s, &ts)) != -1)
-    {
-      puts ("sem_timedwait succeeded");
-      return 1;
-    }
-  if (errno != ETIMEDOUT)
-    {
-      printf ("sem_timedwait return errno = %d instead of ETIMEDOUT\n",
-	      errno);
-      return 1;
-    }
-
-  struct timespec ts2;
-  if (clock_gettime (CLOCK_REALTIME, &ts2) != 0)
-    {
-      puts ("clock_gettime failed");
-      return 1;
-    }
-
-  if (ts2.tv_sec < ts.tv_sec
-      || (ts2.tv_sec == ts.tv_sec && ts2.tv_nsec < ts.tv_nsec))
-    {
-      puts ("timeout too short");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem6.c b/nptl/tst-sem6.c
deleted file mode 100644
index 5edb488cfc..0000000000
--- a/nptl/tst-sem6.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static void
-handler (int sig)
-{
-  struct sigaction sa;
-
-  sa.sa_handler = SIG_DFL;
-  sa.sa_flags = 0;
-  sigemptyset (&sa.sa_mask);
-
-  sigaction (SIGALRM, &sa, NULL);
-
-  /* Rearm the timer.  */
-  alarm (1);
-}
-
-
-static int
-do_test (void)
-{
-  sem_t s;
-  struct sigaction sa;
-
-  sa.sa_handler = handler;
-  sa.sa_flags = 0;
-  sigemptyset (&sa.sa_mask);
-
-  sigaction (SIGALRM, &sa, NULL);
-
-  if (sem_init (&s, 0, 0) == -1)
-    {
-      puts ("init failed");
-      return 1;
-    }
-
-  /* Set an alarm for 1 second.  The wrapper will expect this.  */
-  alarm (1);
-
-  int res = sem_wait (&s);
-  if (res == 0)
-    {
-      puts ("wait succeeded");
-      return 1;
-    }
-  if (res != -1 || errno != EINTR)
-    {
-      puts ("wait didn't fail with EINTR");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TIMEOUT 3
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem7.c b/nptl/tst-sem7.c
deleted file mode 100644
index d59ecd9f4b..0000000000
--- a/nptl/tst-sem7.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void
-remove_sem (int status, void *arg)
-{
-  sem_unlink (arg);
-}
-
-
-static int
-do_test (void)
-{
-  sem_t *s;
-  sem_t *s2;
-  sem_t *s3;
-
-  s = sem_open ("/glibc-tst-sem7", O_CREAT, 0600, 1);
-  if (s == SEM_FAILED)
-    {
-      if (errno == ENOSYS)
-	{
-	  puts ("sem_open not supported.  Oh well.");
-	  return 0;
-	}
-
-      /* Maybe the shm filesystem has strict permissions.  */
-      if (errno == EACCES)
-	{
-	  puts ("sem_open not allowed.  Oh well.");
-	  return 0;
-	}
-
-      printf ("sem_open: %m\n");
-      return 1;
-    }
-
-  on_exit (remove_sem, (void *) "/glibc-tst-sem7");
-
-  /* We have the semaphore object.  Now try again.  We should get the
-     same address.  */
-  s2 = sem_open ("/glibc-tst-sem7", O_CREAT, 0600, 1);
-  if (s2 == SEM_FAILED)
-    {
-      puts ("2nd sem_open failed");
-      return 1;
-    }
-  if (s != s2)
-    {
-      puts ("2nd sem_open didn't return the same address");
-      return 1;
-    }
-
-  /* And again, this time without O_CREAT.  */
-  s3 = sem_open ("/glibc-tst-sem7", 0);
-  if (s3 == SEM_FAILED)
-    {
-      puts ("3rd sem_open failed");
-      return 1;
-    }
-  if (s != s3)
-    {
-      puts ("3rd sem_open didn't return the same address");
-      return 1;
-    }
-
-  /* Now close the handle.  Three times.  */
-  if (sem_close (s2) != 0)
-    {
-      puts ("1st sem_close failed");
-      return 1;
-    }
-  if (sem_close (s) != 0)
-    {
-      puts ("2nd sem_close failed");
-      return 1;
-    }
-  if (sem_close (s3) != 0)
-    {
-      puts ("3rd sem_close failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem8.c b/nptl/tst-sem8.c
deleted file mode 100644
index 97de9850ca..0000000000
--- a/nptl/tst-sem8.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void
-remove_sem (int status, void *arg)
-{
-  sem_unlink (arg);
-}
-
-
-static int
-do_test (void)
-{
-  sem_t *s;
-  int i;
-
-  on_exit (remove_sem, (void *) "/glibc-tst-sem8");
-
-  for (i = 0; i < 3; ++i)
-    {
-      s = sem_open ("/glibc-tst-sem8", O_CREAT, 0600, 1);
-      if (s == SEM_FAILED)
-	{
-	  if (errno == ENOSYS)
-	    {
-	      puts ("sem_open not supported.  Oh well.");
-	      return 0;
-	    }
-
-	  /* Maybe the shm filesystem has strict permissions.  */
-	  if (errno == EACCES)
-	    {
-	      puts ("sem_open not allowed.  Oh well.");
-	      return 0;
-	    }
-
-	  printf ("sem_open: %m\n");
-	  return 1;
-	}
-
-      /* Now close the handle.  */
-      if (sem_close (s) != 0)
-	{
-	  puts ("sem_close failed");
-	  return 1;
-	}
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-sem9.c b/nptl/tst-sem9.c
deleted file mode 100644
index 7100b51155..0000000000
--- a/nptl/tst-sem9.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static void
-remove_sem (int status, void *arg)
-{
-  sem_unlink (arg);
-}
-
-
-static int
-do_test (void)
-{
-  sem_t *s;
-  int i;
-
-  on_exit (remove_sem, (void *) "/glibc-tst-sem9");
-
-  for (i = 0; i < 3; ++i)
-    {
-      s = sem_open ("/glibc-tst-sem9", O_CREAT, 0600, 1);
-      if (s == SEM_FAILED)
-	{
-	  if (errno == ENOSYS)
-	    {
-	      puts ("sem_open not supported.  Oh well.");
-	      return 0;
-	    }
-
-	  /* Maybe the shm filesystem has strict permissions.  */
-	  if (errno == EACCES)
-	    {
-	      puts ("sem_open not allowed.  Oh well.");
-	      return 0;
-	    }
-
-	  printf ("sem_open: %m\n");
-	  return 1;
-	}
-
-      /* Now close the handle.  */
-      if (sem_close (s) != 0)
-	{
-	  puts ("sem_close failed");
-	  return 1;
-	}
-
-      /* And remove it.  */
-      if (sem_unlink ("/glibc-tst-sem9") != 0)
-	{
-	  puts ("sem_unlink failed");
-	  return 1;
-	}
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-setuid1-static.c b/nptl/tst-setuid1-static.c
deleted file mode 100644
index 46d26f0991..0000000000
--- a/nptl/tst-setuid1-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-setuid1.c"
diff --git a/nptl/tst-setuid1.c b/nptl/tst-setuid1.c
deleted file mode 100644
index 1aa388438b..0000000000
--- a/nptl/tst-setuid1.c
+++ /dev/null
@@ -1,1084 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jaku@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <pwd.h>
-#include <grp.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <sys/wait.h>
-#include <unistd.h>
-
-
-static pthread_barrier_t b3, b4;
-static uid_t prev_ruid, prev_euid, prev_suid, nobody_uid;
-static gid_t prev_rgid, prev_egid, prev_sgid, nobody_gid;
-enum ACTION { PREPARE, SET, CHECK_BEFORE, CHECK_AFTER };
-#define TESTNO(arg) ((long int) (arg) & 0xff)
-#define THREADNO(arg) ((long int) (arg) >> 8)
-
-
-static void
-check_prev_uid (int tno)
-{
-  uid_t ruid, euid, suid;
-  if (getresuid (&ruid, &euid, &suid) < 0)
-    {
-      printf ("getresuid failed: %d %m\n", tno);
-      exit (1);
-    }
-
-  if (ruid != prev_ruid || euid != prev_euid || suid != prev_suid)
-    {
-      printf ("uids before in %d (%d %d %d) != (%d %d %d)\n", tno,
-	      ruid, euid, suid, prev_ruid, prev_euid, prev_suid);
-      exit (1);
-    }
-}
-
-
-static void
-check_prev_gid (int tno)
-{
-  gid_t rgid, egid, sgid;
-  if (getresgid (&rgid, &egid, &sgid) < 0)
-    {
-      printf ("getresgid failed: %d %m\n", tno);
-      exit (1);
-    }
-
-  if (rgid != prev_rgid || egid != prev_egid || sgid != prev_sgid)
-    {
-      printf ("gids before in %d (%d %d %d) != (%d %d %d)\n", tno,
-	      rgid, egid, sgid, prev_rgid, prev_egid, prev_sgid);
-      exit (1);
-    }
-}
-
-
-static void
-test_setuid1 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && setuid (nobody_uid) < 0)
-    {
-       printf ("setuid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (ruid != nobody_uid || euid != nobody_uid || suid != nobody_uid)
-	{
-	  printf ("after setuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, nobody_uid, nobody_uid, nobody_uid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setuid2 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    {
-      if (setresuid (nobody_uid, nobody_uid, -1) < 0)
-	{
-	  printf ("setresuid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_ruid = nobody_uid;
-      prev_euid = nobody_uid;
-      return;
-    }
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && setuid (prev_suid) < 0)
-    {
-      printf ("setuid failed: %m\n");
-      exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (ruid != nobody_uid || euid != prev_suid || suid != prev_suid)
-	{
-	  printf ("after setuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, nobody_uid, prev_suid, prev_suid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_seteuid1 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && seteuid (nobody_uid) < 0)
-    {
-       printf ("seteuid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (ruid != prev_ruid || euid != nobody_uid || suid != prev_suid)
-	{
-	  printf ("after seteuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, prev_ruid, nobody_uid, prev_suid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_seteuid2 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    {
-      if (setresuid (nobody_uid, nobody_uid, -1) < 0)
-	{
-	  printf ("setresuid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_ruid = nobody_uid;
-      prev_euid = nobody_uid;
-      nobody_uid = prev_suid;
-      return;
-    }
-
-  test_seteuid1 (action, tno);
-}
-
-
-static void
-test_setreuid1 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && setreuid (-1, nobody_uid) < 0)
-    {
-       printf ("setreuid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid, esuid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (prev_ruid != nobody_uid)
-	esuid = nobody_uid;
-      else
-	esuid = prev_suid;
-
-      if (ruid != prev_ruid || euid != nobody_uid || suid != esuid)
-	{
-	  printf ("after setreuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, prev_ruid, nobody_uid, esuid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setreuid2 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && setreuid (nobody_uid, -1) < 0)
-    {
-       printf ("setreuid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (ruid != nobody_uid || euid != prev_euid || suid != prev_euid)
-	{
-	  printf ("after setreuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, nobody_uid, prev_euid, prev_euid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setreuid3 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && setreuid (nobody_uid, nobody_uid) < 0)
-    {
-       printf ("setreuid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (ruid != nobody_uid || euid != nobody_uid || suid != nobody_uid)
-	{
-	  printf ("after setreuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, nobody_uid, nobody_uid, nobody_uid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setreuid4 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    {
-      if (setresuid (nobody_uid, nobody_uid, -1) < 0)
-	{
-	  printf ("setresuid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_ruid = nobody_uid;
-      prev_euid = nobody_uid;
-      nobody_uid = prev_suid;
-      return;
-    }
-
-  test_setreuid1 (action, tno);
-}
-
-
-static void
-test_setresuid1 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && setresuid (-1, nobody_uid, -1) < 0)
-    {
-       printf ("setresuid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (ruid != prev_ruid || euid != nobody_uid || suid != prev_suid)
-	{
-	  printf ("after setresuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, prev_ruid, nobody_uid, prev_suid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setresuid2 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && setresuid (prev_euid, nobody_uid, nobody_uid) < 0)
-    {
-       printf ("setresuid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (ruid != prev_euid || euid != nobody_uid || suid != nobody_uid)
-	{
-	  printf ("after setresuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, prev_euid, nobody_uid, nobody_uid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setresuid3 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_uid (tno);
-
-  if (action == SET && setresuid (nobody_uid, nobody_uid, nobody_uid) < 0)
-    {
-       printf ("setresuid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      uid_t ruid, euid, suid;
-      if (getresuid (&ruid, &euid, &suid) < 0)
-	{
-	  printf ("getresuid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (ruid != nobody_uid || euid != nobody_uid || suid != nobody_uid)
-	{
-	  printf ("after setresuid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  ruid, euid, suid, nobody_uid, nobody_uid, nobody_uid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setresuid4 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    {
-      if (setresuid (nobody_uid, nobody_uid, -1) < 0)
-	{
-	  printf ("setresuid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_ruid = nobody_uid;
-      prev_euid = nobody_uid;
-      nobody_uid = prev_suid;
-      return;
-    }
-
-  test_setresuid1 (action, tno);
-}
-
-
-static void
-test_setgid1 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setgid (nobody_gid) < 0)
-    {
-       printf ("setgid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (rgid != nobody_gid || egid != nobody_gid || sgid != nobody_gid)
-	{
-	  printf ("after setgid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, nobody_gid, nobody_gid, nobody_gid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setgid2 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    {
-      if (setresgid (nobody_gid, nobody_gid, -1) < 0)
-	{
-	  printf ("setresgid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_rgid = nobody_gid;
-      prev_egid = nobody_gid;
-
-      if (setresuid (nobody_uid, nobody_uid, -1) < 0)
-	{
-	  printf ("setresuid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_ruid = nobody_uid;
-      prev_euid = nobody_uid;
-      return;
-    }
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setgid (prev_sgid) < 0)
-    {
-      printf ("setgid failed: %m\n");
-      exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (rgid != nobody_gid || egid != prev_sgid || sgid != prev_sgid)
-	{
-	  printf ("after setgid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, nobody_gid, prev_sgid, prev_sgid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setegid1 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setegid (nobody_gid) < 0)
-    {
-       printf ("setegid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (rgid != prev_rgid || egid != nobody_gid || sgid != prev_sgid)
-	{
-	  printf ("after setegid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, prev_rgid, nobody_gid, prev_sgid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setegid2 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    {
-      if (setresgid (nobody_gid, nobody_gid, -1) < 0)
-	{
-	  printf ("setresgid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_rgid = nobody_gid;
-      prev_egid = nobody_gid;
-      nobody_gid = prev_sgid;
-      return;
-    }
-
-  test_setegid1 (action, tno);
-}
-
-
-static void
-test_setregid1 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setregid (-1, nobody_gid) < 0)
-    {
-       printf ("setregid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid, esgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (prev_rgid != nobody_gid)
-	esgid = nobody_gid;
-      else
-	esgid = prev_sgid;
-
-      if (rgid != prev_rgid || egid != nobody_gid || sgid != esgid)
-	{
-	  printf ("after setregid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, prev_rgid, nobody_gid, esgid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setregid2 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setregid (nobody_gid, -1) < 0)
-    {
-       printf ("setregid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (rgid != nobody_gid || egid != prev_egid || sgid != prev_egid)
-	{
-	  printf ("after setregid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, nobody_gid, prev_egid, prev_egid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setregid3 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setregid (nobody_gid, nobody_gid) < 0)
-    {
-       printf ("setregid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (rgid != nobody_gid || egid != nobody_gid || sgid != nobody_gid)
-	{
-	  printf ("after setregid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, nobody_gid, nobody_gid, nobody_gid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setregid4 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    {
-      if (setresgid (nobody_gid, nobody_gid, -1) < 0)
-	{
-	  printf ("setresgid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_rgid = nobody_gid;
-      prev_egid = nobody_gid;
-      nobody_gid = prev_sgid;
-      return;
-    }
-
-  test_setregid1 (action, tno);
-}
-
-
-static void
-test_setresgid1 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setresgid (-1, nobody_gid, -1) < 0)
-    {
-       printf ("setresgid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (rgid != prev_rgid || egid != nobody_gid || sgid != prev_sgid)
-	{
-	  printf ("after setresgid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, prev_rgid, nobody_gid, prev_sgid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setresgid2 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setresgid (prev_egid, nobody_gid, nobody_gid) < 0)
-    {
-       printf ("setresgid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (rgid != prev_egid || egid != nobody_gid || sgid != nobody_gid)
-	{
-	  printf ("after setresgid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, prev_egid, nobody_gid, nobody_gid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setresgid3 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    return;
-
-  if (action != CHECK_AFTER)
-    check_prev_gid (tno);
-
-  if (action == SET && setresgid (nobody_gid, nobody_gid, nobody_gid) < 0)
-    {
-       printf ("setresgid failed: %m\n");
-       exit (1);
-    }
-
-  if (action != CHECK_BEFORE)
-    {
-      gid_t rgid, egid, sgid;
-      if (getresgid (&rgid, &egid, &sgid) < 0)
-	{
-	  printf ("getresgid failed: %d %m\n", tno);
-	  exit (1);
-	}
-
-      if (rgid != nobody_gid || egid != nobody_gid || sgid != nobody_gid)
-	{
-	  printf ("after setresgid %d (%d %d %d) != (%d %d %d)\n", tno,
-		  rgid, egid, sgid, nobody_gid, nobody_gid, nobody_gid);
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-test_setresgid4 (enum ACTION action, int tno)
-{
-  if (action == PREPARE)
-    {
-      if (setresgid (nobody_gid, nobody_gid, -1) < 0)
-	{
-	  printf ("setresgid failed: %m\n");
-	  exit (1);
-	}
-
-      prev_rgid = nobody_gid;
-      prev_egid = nobody_gid;
-      nobody_gid = prev_sgid;
-      return;
-    }
-
-  test_setresgid1 (action, tno);
-}
-
-
-static struct setuid_test
-{
-  const char *name;
-  void (*test) (enum ACTION, int tno);
-} setuid_tests[] =
-{
-  { "setuid1", test_setuid1 },
-  { "setuid2", test_setuid2 },
-  { "seteuid1", test_seteuid1 },
-  { "seteuid2", test_seteuid2 },
-  { "setreuid1", test_setreuid1 },
-  { "setreuid2", test_setreuid2 },
-  { "setreuid3", test_setreuid3 },
-  { "setreuid4", test_setreuid4 },
-  { "setresuid1", test_setresuid1 },
-  { "setresuid2", test_setresuid2 },
-  { "setresuid3", test_setresuid3 },
-  { "setresuid4", test_setresuid4 },
-  { "setgid1", test_setgid1 },
-  { "setgid2", test_setgid2 },
-  { "setegid1", test_setegid1 },
-  { "setegid2", test_setegid2 },
-  { "setregid1", test_setregid1 },
-  { "setregid2", test_setregid2 },
-  { "setregid3", test_setregid3 },
-  { "setregid4", test_setregid4 },
-  { "setresgid1", test_setresgid1 },
-  { "setresgid2", test_setresgid2 },
-  { "setresgid3", test_setresgid3 },
-  { "setresgid4", test_setresgid4 }
-};
-
-
-static void *
-tf2 (void *arg)
-{
-  int e = pthread_barrier_wait (&b4);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  setuid_tests[TESTNO (arg)].test (CHECK_AFTER, THREADNO (arg));
-  return NULL;
-}
-
-
-static void *
-tf (void *arg)
-{
-  setuid_tests[TESTNO (arg)].test (CHECK_BEFORE, THREADNO (arg));
-
-  int e = pthread_barrier_wait (&b3);
-  if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      exit (1);
-    }
-
-  return tf2 (arg);
-}
-
-
-static int
-do_one_test (long int testno)
-{
-  printf ("%s test\n", setuid_tests[testno].name);
-
-  pid_t pid = fork ();
-  if (pid == 0)
-    {
-      setuid_tests[testno].test (PREPARE, 0);
-      setuid_tests[testno].test (SET, 0);
-      exit (0);
-    }
-
-  if (pid < 0)
-    {
-      printf ("fork failed: %m\n");
-      exit (1);
-    }
-
-  int status;
-  if (waitpid (pid, &status, 0) < 0)
-    {
-      printf ("waitpid failed: %m\n");
-      exit (1);
-    }
-
-  if (!WIFEXITED (status))
-    {
-      puts ("child did not exit");
-      exit (1);
-    }
-
-  if (WEXITSTATUS (status))
-    {
-      printf ("skipping %s test\n", setuid_tests[testno].name);
-      return 0;
-    }
-
-  pid = fork ();
-  if (pid == 0)
-    {
-      setuid_tests[testno].test (PREPARE, 0);
-
-      pthread_t th;
-      int e = pthread_create (&th, NULL, tf, (void *) (testno | 0x100L));
-      if (e != 0)
-	{
-	  printf ("create failed: %m\n");
-	  exit (1);
-	}
-
-      pthread_t th2;
-      e = pthread_create (&th2, NULL, tf, (void *) (testno | 0x200L));
-      if (e != 0)
-	{
-	  printf ("create failed: %m\n");
-	  exit (1);
-	}
-
-      e = pthread_barrier_wait (&b3);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("barrier_wait failed");
-	  exit (1);
-	}
-
-      setuid_tests[testno].test (SET, 0);
-
-      pthread_t th3;
-      e = pthread_create (&th3, NULL, tf2, (void *) (testno | 0x300L));
-      if (e != 0)
-	{
-	  printf ("create failed: %m\n");
-	  exit (1);
-	}
-
-      e = pthread_barrier_wait (&b4);
-      if (e != 0 && e != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("barrier_wait failed");
-	  exit (1);
-	}
-
-      exit (0);
-    }
-
-  if (pid < 0)
-    {
-      printf ("fork failed: %m\n");
-      exit (1);
-    }
-
-  if (waitpid (pid, &status, 0) < 0)
-    {
-      printf ("waitpid failed: %m\n");
-      exit (1);
-    }
-
-  if (!WIFEXITED (status))
-    {
-      puts ("second child did not exit");
-      exit (1);
-    }
-
-  if (WEXITSTATUS (status))
-    exit (WEXITSTATUS (status));
-
-  return 0;
-}
-
-
-static int
-do_test (void)
-{
-  struct passwd *pwd = getpwnam ("nobody");
-  if (pwd == NULL)
-    {
-      puts ("User nobody doesn't exist");
-      return 0;
-    }
-  nobody_uid = pwd->pw_uid;
-  nobody_gid = pwd->pw_gid;
-
-  if (getresuid (&prev_ruid, &prev_euid, &prev_suid) < 0)
-    {
-      printf ("getresuid failed: %m\n");
-      exit (1);
-    }
-
-  if (getresgid (&prev_rgid, &prev_egid, &prev_sgid) < 0)
-    {
-      printf ("getresgid failed: %m\n");
-      exit (1);
-    }
-
-  if (prev_ruid == nobody_uid || prev_euid == nobody_uid
-      || prev_suid == nobody_uid)
-    {
-      puts ("already running as user nobody, skipping tests");
-      exit (0);
-    }
-
-  if (prev_rgid == nobody_gid || prev_egid == nobody_gid
-      || prev_sgid == nobody_gid)
-    {
-      puts ("already running as group nobody, skipping tests");
-      exit (0);
-    }
-
-  if (pthread_barrier_init (&b3, NULL, 3) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (pthread_barrier_init (&b4, NULL, 4) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  for (unsigned long int testno = 0;
-       testno < sizeof (setuid_tests) / sizeof (setuid_tests[0]);
-       ++testno)
-    do_one_test (testno);
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-setuid2.c b/nptl/tst-setuid2.c
deleted file mode 100644
index 79cfbf4d60..0000000000
--- a/nptl/tst-setuid2.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <sys/syscall.h>
-#include <unistd.h>
-
-/* Check that a partial setuid failure aborts the process. */
-
-static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t cond_send;
-static void (*func_sent) (void);
-static pthread_cond_t cond_recv;
-
-#define FAIL(fmt, ...) \
-  do { printf ("FAIL: " fmt "\n", __VA_ARGS__); _exit (1); } while (0)
-
-static void *
-thread_func (void *ctx __attribute__ ((unused)))
-{
-  int ret = pthread_mutex_lock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_lock (thread): %d", ret);
-
-  while (true)
-    {
-      if (func_sent != NULL)
-	{
-	  void (*func) (void) = func_sent;
-	  ret = pthread_mutex_unlock (&mutex);
-	  if (ret != 0)
-	    FAIL ("pthread_mutex_unlock (thread): %d", ret);
-	  func ();
-	  ret = pthread_mutex_lock (&mutex);
-	  if (ret != 0)
-	    FAIL ("pthread_mutex_lock (thread): %d", ret);
-	  func_sent = NULL;
-	  ret = pthread_cond_signal (&cond_recv);
-	  if (ret != 0)
-	    FAIL ("pthread_cond_signal (recv): %d", ret);
-	}
-      ret = pthread_cond_wait (&cond_send, &mutex);
-      if (ret != 0)
-	FAIL ("pthread_cond_wait (send): %d", ret);
-    }
-  return NULL;
-}
-
-static void
-run_on_thread (void (*func) (void))
-{
-  int ret = pthread_mutex_lock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
-  func_sent = func;
-  ret = pthread_mutex_unlock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret);
-
-  ret = pthread_cond_signal (&cond_send);
-  if (ret != 0)
-    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
-
-  ret = pthread_mutex_lock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_lock (%s): %d", __func__, ret);
-
-  while (func_sent != NULL)
-    {
-      ret = pthread_cond_wait (&cond_recv, &mutex);
-      if (ret != 0)
-	FAIL ("pthread_mutex_wait (%s): %d", __func__, ret);
-    }
-  ret = pthread_mutex_unlock (&mutex);
-  if (ret != 0)
-    FAIL ("pthread_mutex_unlock (%s): %d", __func__, ret);
-}
-
-static void
-change_thread_ids (void)
-{
-  long ret = syscall (__NR_setresuid, 2001, 2002, 2003);
-  if (ret != 0)
-    FAIL ("setresuid (2001, 2002, 2003): %ld", ret);
-}
-
-static uid_t ruid, euid, suid;
-
-static void
-get_thread_ids (void)
-{
-  if (getresuid (&ruid, &euid, &suid) < 0)
-    FAIL ("getresuid: %m (%d)", errno);
-}
-
-static void
-abort_expected (int signal __attribute__ ((unused)))
-{
-  _exit (0);
-}
-
-static int
-do_test (void)
-{
-  pthread_t thread;
-  int ret = pthread_create (&thread, NULL, thread_func, NULL);
-  if (ret != 0)
-    FAIL ("pthread_create: %d", ret);
-
-  run_on_thread (change_thread_ids);
-
-  signal (SIGABRT, &abort_expected);
-  /* This should abort the process.  */
-  if (setresuid (1001, 1002, 1003) < 0)
-    FAIL ("setresuid: %m (%d)", errno);
-  signal (SIGABRT, SIG_DFL);
-
-  /* If we get here, check that the kernel did the right thing. */
-  run_on_thread (get_thread_ids);
-  if (ruid != 1001 || euid != 1002 || suid != 1003)
-    FAIL ("unexpected UIDs after setuid: %ld, %ld, %ld",
-	  (long) ruid, (long) euid, (long) suid);
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-setuid3.c b/nptl/tst-setuid3.c
deleted file mode 100644
index 079fdf3a51..0000000000
--- a/nptl/tst-setuid3.c
+++ /dev/null
@@ -1,118 +0,0 @@
-/* Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <errno.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <unistd.h>
-
-/* The test must run under a non-privileged user ID.  */
-static const uid_t test_uid = 1;
-
-static pthread_barrier_t barrier1;
-static pthread_barrier_t barrier2;
-
-#define FAIL(fmt, ...) \
-  do { printf ("FAIL: " fmt "\n", __VA_ARGS__); _exit (1); } while (0)
-
-#define FAIL_ERR(fmt, ...) \
-  do { printf ("FAIL: " fmt ": %m\n", __VA_ARGS__); _exit (1); } while (0)
-
-/* True if x is not a successful return code from pthread_barrier_wait.  */
-static inline bool
-is_invalid_barrier_ret (int x)
-{
-  return x != 0 && x != PTHREAD_BARRIER_SERIAL_THREAD;
-}
-
-static void *
-thread_func (void *ctx __attribute__ ((unused)))
-{
-  int ret = pthread_barrier_wait (&barrier1);
-  if (is_invalid_barrier_ret (ret))
-    FAIL ("pthread_barrier_wait (barrier1) (on thread): %d", ret);
-  ret = pthread_barrier_wait (&barrier2);
-  if (is_invalid_barrier_ret (ret))
-    FAIL ("pthread_barrier_wait (barrier2) (on thread): %d", ret);
-  return NULL;
-}
-
-static void
-setuid_failure (int phase)
-{
-  int ret = setuid (0);
-  switch (ret)
-    {
-    case 0:
-      FAIL ("setuid succeeded unexpectedly in phase %d", phase);
-    case -1:
-      if (errno != EPERM)
-	FAIL_ERR ("setuid phase %d", phase);
-      break;
-    default:
-      FAIL ("invalid setuid return value in phase %d: %d", phase, ret);
-    }
-}
-
-static int
-do_test (void)
-{
-  if (getuid () == 0)
-    if (setuid (test_uid) != 0)
-      FAIL_ERR ("setuid (%u)", (unsigned) test_uid);
-  if (setuid (getuid ()))
-    FAIL_ERR ("setuid (%s)", "getuid ()");
-  setuid_failure (1);
-
-  int ret = pthread_barrier_init (&barrier1, NULL, 2);
-  if (ret != 0)
-    FAIL ("pthread_barrier_init (barrier1): %d", ret);
-  ret = pthread_barrier_init (&barrier2, NULL, 2);
-  if (ret != 0)
-    FAIL ("pthread_barrier_init (barrier2): %d", ret);
-
-  pthread_t thread;
-  ret = pthread_create (&thread, NULL, thread_func, NULL);
-  if (ret != 0)
-    FAIL ("pthread_create: %d", ret);
-
-  /* Ensure that the thread is running properly.  */
-  ret = pthread_barrier_wait (&barrier1);
-  if (is_invalid_barrier_ret (ret))
-    FAIL ("pthread_barrier_wait (barrier1): %d", ret);
-
-  setuid_failure (2);
-
-  /* Check success case. */
-  if (setuid (getuid ()) != 0)
-    FAIL_ERR ("setuid (%s)", "getuid ()");
-
-  /* Shutdown.  */
-  ret = pthread_barrier_wait (&barrier2);
-  if (is_invalid_barrier_ret (ret))
-    FAIL ("pthread_barrier_wait (barrier2): %d", ret);
-
-  ret = pthread_join (thread, NULL);
-  if (ret != 0)
-    FAIL ("pthread_join: %d", ret);
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-signal1.c b/nptl/tst-signal1.c
deleted file mode 100644
index bfab0a9a66..0000000000
--- a/nptl/tst-signal1.c
+++ /dev/null
@@ -1,188 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static sigset_t ss;
-static pthread_barrier_t *b;
-
-
-static void *
-tf (void *arg)
-{
-  sigdelset (&ss, SIGINT);
-
-  if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
-    {
-      puts ("2nd pthread_sigmask failed");
-      exit (1);
-    }
-
-  pthread_barrier_wait (b);
-
-  int sig;
-  int res = sigwait (&ss, &sig);
-  if (res == 0)
-    {
-      printf ("sigwait returned successfully with signal %d\n", sig);
-      exit (1);
-    }
-
-  printf ("sigwait returned with %s (%d)\n", strerror (res), res);
-
-  return NULL;
-}
-
-
-static void
-receiver (void)
-{
-  pthread_t th;
-
-  /* Make sure the process doesn't run forever.  */
-  alarm (10);
-
-  sigfillset (&ss);
-
-  if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
-    {
-      puts ("1st pthread_sigmask failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("pthread_create failed");
-      exit (1);
-    }
-
-  if (pthread_join (th, NULL) == 0)
-    {
-      puts ("thread joined?!");
-      exit (1);
-    }
-
-  _exit (0);
-}
-
-
-static int
-do_test (void)
-{
-  char tmp[] = "/tmp/tst-signal1-XXXXXX";
-
-  int fd = mkstemp (tmp);
-  if (fd == -1)
-    {
-      puts ("mkstemp failed");
-      exit (1);
-    }
-
-  unlink (tmp);
-
-  int i;
-  for (i = 0; i < 20; ++i)
-    write (fd, "foobar xyzzy", 12);
-
-  b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE,
-	    MAP_SHARED, fd, 0);
-  if (b == MAP_FAILED)
-    {
-      puts ("mmap failed");
-      exit (1);
-    }
-
-  pthread_barrierattr_t ba;
-  if (pthread_barrierattr_init (&ba) != 0)
-    {
-      puts ("barrierattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_barrierattr_setpshared (&ba, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("barrierattr_setpshared failed");
-      exit (1);
-    }
-
-  if (pthread_barrier_init (b, &ba, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (pthread_barrierattr_destroy (&ba) != 0)
-    {
-      puts ("barrierattr_destroy failed");
-      exit (1);
-    }
-
-  pid_t pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      exit (1);
-    }
-
-  if (pid == 0)
-    receiver ();
-
-  pthread_barrier_wait (b);
-
-  /* Wait a bit more.  */
-  struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
-  nanosleep (&ts, NULL);
-
-  /* Send the signal.  */
-  puts ("sending the signal now");
-  kill (pid, SIGINT);
-
-  /* Wait for the process to terminate.  */
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-    {
-      puts ("wrong child reported terminated");
-      exit (1);
-    }
-
-  if (!WIFSIGNALED (status))
-    {
-      puts ("child wasn't signalled");
-      exit (1);
-    }
-
-  if (WTERMSIG (status) != SIGINT)
-    {
-      puts ("child not terminated with SIGINT");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-signal2.c b/nptl/tst-signal2.c
deleted file mode 100644
index b68ef52955..0000000000
--- a/nptl/tst-signal2.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-#include <string.h>
-
-
-static sigset_t ss;
-static pthread_barrier_t *b;
-
-
-static void *
-tf (void *arg)
-{
-  pthread_barrier_wait (b);
-
-  puts ("child: calling sigwait now");
-
-  int sig;
-  int err;
-  err = sigwait (&ss, &sig);
-  if (err != 0)
-    {
-      printf ("sigwait returned unsuccessfully: %s (%d)\n",
-	      strerror (err), err);
-      _exit (1);
-    }
-
-  puts ("sigwait returned");
-
-  if (sig != SIGINT)
-    {
-      printf ("caught signal %d, expected %d (SIGINT)\n", sig, SIGINT);
-      _exit (1);
-    }
-
-  puts ("child thread terminating now");
-
-  return NULL;
-}
-
-
-static void
-receiver (void)
-{
-  pthread_t th;
-
-  /* Make sure the process doesn't run forever.  */
-  alarm (10);
-
-  sigfillset (&ss);
-
-  if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
-    {
-      puts ("1st pthread_sigmask failed");
-      _exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("pthread_create failed");
-      _exit (1);
-    }
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("thread didn't join");
-      _exit (1);
-    }
-
-  puts ("join succeeded");
-
-  _exit (0);
-}
-
-
-static int
-do_test (void)
-{
-  char tmp[] = "/tmp/tst-signal1-XXXXXX";
-
-  int fd = mkstemp (tmp);
-  if (fd == -1)
-    {
-      puts ("mkstemp failed");
-      exit (1);
-    }
-
-  unlink (tmp);
-
-  int i;
-  for (i = 0; i < 20; ++i)
-    write (fd, "foobar xyzzy", 12);
-
-  b = mmap (NULL, sizeof (pthread_barrier_t), PROT_READ | PROT_WRITE,
-	    MAP_SHARED, fd, 0);
-  if (b == MAP_FAILED)
-    {
-      puts ("mmap failed");
-      exit (1);
-    }
-
-  pthread_barrierattr_t ba;
-  if (pthread_barrierattr_init (&ba) != 0)
-    {
-      puts ("barrierattr_init failed");
-      exit (1);
-    }
-
-  if (pthread_barrierattr_setpshared (&ba, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("barrierattr_setpshared failed");
-      exit (1);
-    }
-
-  if (pthread_barrier_init (b, &ba, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (pthread_barrierattr_destroy (&ba) != 0)
-    {
-      puts ("barrierattr_destroy failed");
-      exit (1);
-    }
-
-  pid_t pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      exit (1);
-    }
-
-  if (pid == 0)
-    receiver ();
-
-  pthread_barrier_wait (b);
-
-  /* Wait a bit more.  */
-  struct timespec ts = { .tv_sec = 0, .tv_nsec = 10000000 };
-  nanosleep (&ts, NULL);
-
-  /* Send the signal.  */
-  puts ("sending the signal now");
-  kill (pid, SIGINT);
-
-  /* Wait for the process to terminate.  */
-  int status;
-  if (TEMP_FAILURE_RETRY (waitpid (pid, &status, 0)) != pid)
-    {
-      puts ("wrong child reported terminated");
-      exit (1);
-    }
-
-  if (!WIFEXITED (status))
-    {
-      if (WIFSIGNALED (status))
-	printf ("child exited with signal %d\n", WTERMSIG (status));
-      else
-	puts ("child didn't exit normally");
-      exit (1);
-    }
-
-  if (WEXITSTATUS (status) != 0)
-    {
-      printf ("exit status %d != 0\n", WEXITSTATUS (status));
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-signal3.c b/nptl/tst-signal3.c
deleted file mode 100644
index a6e089fbfc..0000000000
--- a/nptl/tst-signal3.c
+++ /dev/null
@@ -1,266 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#ifdef SIGRTMIN
-
-/* Number of different signals to use.  Also is the number of threads.  */
-# define N 10
-/* Maximum number of threads in flight at any one time.  */
-# define INFLIGHT 5
-/* Number of signals sent in total.  */
-# define ROUNDS 10000
-
-
-static int received[N][N];
-static int nsig[N];
-static pthread_t th[N];
-static sem_t sem;
-static pthread_mutex_t lock[N];
-static pthread_t th_main;
-static int sig0;
-
-static void
-handler (int sig)
-{
-  int i;
-  for (i = 0; i < N; ++i)
-    if (pthread_equal (pthread_self (), th[i]))
-      break;
-
-  if (i == N)
-    {
-      if (pthread_equal (pthread_self (), th_main))
-	puts ("signal received by main thread");
-      else
-	printf ("signal received by unknown thread (%lx)\n",
-		(unsigned long int) pthread_self ());
-      exit (1);
-    }
-
-  ++received[i][sig - sig0];
-
-  sem_post (&sem);
-}
-
-
-static void *
-tf (void *arg)
-{
-  int idx = (long int) arg;
-
-  sigset_t ss;
-  sigemptyset (&ss);
-
-  int i;
-  for (i = 0; i <= idx; ++i)
-    sigaddset (&ss, sig0 + i);
-
-  if (pthread_sigmask (SIG_UNBLOCK, &ss, NULL) != 0)
-    {
-      printf ("thread %d: pthread_sigmask failed\n", i);
-      exit (1);
-    }
-
-  pthread_mutex_lock (&lock[idx]);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  /* Block all signals.  */
-  sigset_t ss;
-  sigfillset (&ss);
-
-  th_main = pthread_self ();
-
-  sig0 = SIGRTMIN;
-
-  if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
-    {
-      puts ("1st pthread_sigmask failed");
-      exit (1);
-    }
-
-  /* Install the handler.  */
-  int i;
-  for (i = 0; i < N; ++i)
-    {
-      struct sigaction sa =
-	{
-	  .sa_handler = handler,
-	  .sa_flags = 0
-	};
-      sigfillset (&sa.sa_mask);
-
-      if (sigaction (sig0 + i, &sa, NULL) != 0)
-	{
-	  printf ("sigaction for signal %d failed\n", i);
-	  exit (1);
-	}
-    }
-
-  if (sem_init (&sem, 0, INFLIGHT) != 0)
-    {
-      puts ("sem_init failed");
-      exit (1);
-    }
-
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  for (i = 0; i < N; ++i)
-    {
-      if (pthread_mutex_init (&lock[i], NULL) != 0)
-	{
-	  printf ("mutex_init[%d] failed\n", i);
-	}
-
-      if (pthread_mutex_lock (&lock[i]) != 0)
-	{
-	  printf ("mutex_lock[%d] failed\n", i);
-	}
-
-      if (pthread_create (&th[i], &a, tf, (void *) (long int) i) != 0)
-	{
-	  printf ("create of thread %d failed\n", i);
-	  exit (1);
-	}
-    }
-
-  if (pthread_attr_destroy (&a) != 0)
-    {
-      puts ("attr_destroy failed");
-      exit (1);
-    }
-
-  int result = 0;
-  unsigned int r = 42;
-  pid_t pid = getpid ();
-
-  for (i = 0; i < ROUNDS; ++i)
-    {
-      if (TEMP_FAILURE_RETRY (sem_wait (&sem)) != 0)
-	{
-	  printf ("sem_wait round %d failed: %m\n", i);
-	  exit (1);
-	}
-
-      int s = rand_r (&r) % N;
-
-      kill (pid, sig0 + s);
-    }
-
-  void *status;
-  for (i = 0; i < N; ++i)
-    {
-      if (pthread_mutex_unlock (&lock[i]) != 0)
-	{
-	  printf ("unlock %d failed\n", i);
-	  exit (1);
-	}
-
-      if (pthread_join (th[i], &status) != 0)
-	{
-	  printf ("join %d failed\n", i);
-	  result = 1;
-	}
-      else if (status != NULL)
-	{
-	  printf ("%d: result != NULL\n", i);
-	  result = 1;
-	}
-    }
-
-  int total = 0;
-  for (i = 0; i < N; ++i)
-    {
-      int j;
-
-      for (j = 0; j <= i; ++j)
-	total += received[i][j];
-
-      for (j = i + 1; j < N; ++j)
-	if (received[i][j] != 0)
-	  {
-	    printf ("thread %d received signal SIGRTMIN+%d\n", i, j);
-	    result = 1;
-	  }
-    }
-
-  if (total != ROUNDS)
-    {
-      printf ("total number of handled signals is %d, expected %d\n",
-	      total, ROUNDS);
-      result = 1;
-    }
-
-  printf ("A total of %d signals sent and received\n", total);
-  for (i = 0; i < N; ++i)
-    {
-      printf ("thread %2d:", i);
-
-      int j;
-      for (j = 0; j <= i; ++j)
-	{
-	  printf (" %5d", received[i][j]);
-	  nsig[j] += received[i][j];
-	}
-
-      putchar ('\n');
-
-    }
-
-  printf ("\nTotal    :");
-  for (i = 0; i < N; ++i)
-    printf (" %5d", nsig[i]);
-  putchar ('\n');
-
-  return result;
-}
-
-# define TIMEOUT 10
-# define TEST_FUNCTION do_test ()
-
-#else
-# define TEST_FUNCTION 0
-#endif
-
-#include "../test-skeleton.c"
diff --git a/nptl/tst-signal4.c b/nptl/tst-signal4.c
deleted file mode 100644
index 4dda025d58..0000000000
--- a/nptl/tst-signal4.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-static int
-do_test (void)
-{
-  sigset_t ss;
-
-  sigemptyset (&ss);
-
-  int i;
-  for (i = 0; i < 10000; ++i)
-    {
-      long int r = random ();
-
-      if (r != SIG_BLOCK && r != SIG_SETMASK && r != SIG_UNBLOCK)
-	{
-	  int e = pthread_sigmask (r, &ss, NULL);
-
-	  if (e == 0)
-	    {
-	      printf ("pthread_sigmask succeeded for how = %ld\n", r);
-	      exit (1);
-	    }
-
-	  if (e != EINVAL)
-	    {
-	      puts ("pthread_sigmask didn't return EINVAL");
-	      exit (1);
-	    }
-	}
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-signal5.c b/nptl/tst-signal5.c
deleted file mode 100644
index b47b76b1a6..0000000000
--- a/nptl/tst-signal5.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static sigset_t ss;
-
-
-static void *
-tf (void *arg)
-{
-  sigset_t ss2;
-  if (pthread_sigmask (SIG_SETMASK, NULL, &ss2) != 0)
-    {
-      puts ("child: sigmask failed");
-      exit (1);
-    }
-
-  int i;
-  for (i = 1; i < 32; ++i)
-    if (sigismember (&ss, i) && ! sigismember (&ss2, i))
-      {
-	printf ("signal %d set in parent mask, but not in child\n", i);
-	exit (1);
-      }
-    else if (! sigismember (&ss, i) && sigismember (&ss2, i))
-      {
-	printf ("signal %d set in child mask, but not in parent\n", i);
-	exit (1);
-      }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  sigemptyset (&ss);
-  sigaddset (&ss, SIGUSR1);
-  if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
-    {
-      puts ("1st sigmask failed");
-      exit (1);
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("1st create failed");
-      exit (1);
-    }
-
-  void *r;
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("1st join failed");
-      exit (1);
-    }
-
-  sigemptyset (&ss);
-  sigaddset (&ss, SIGUSR2);
-  sigaddset (&ss, SIGFPE);
-  if (pthread_sigmask (SIG_SETMASK, &ss, NULL) != 0)
-    {
-      puts ("2nd sigmask failed");
-      exit (1);
-    }
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("2nd create failed");
-      exit (1);
-    }
-
-  if (pthread_join (th, &r) != 0)
-    {
-      puts ("2nd join failed");
-      exit (1);
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-signal6.c b/nptl/tst-signal6.c
deleted file mode 100644
index 4172150eb8..0000000000
--- a/nptl/tst-signal6.c
+++ /dev/null
@@ -1,197 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#ifdef SIGRTMIN
-
-# define N 2
-static pthread_barrier_t bar;
-static struct
-{
-  void *p;
-  pthread_t s;
-} ti[N];
-static int sig1;
-
-
-static void
-handler (int sig)
-{
-  pthread_t self = pthread_self ();
-  size_t i;
-
-  for (i = 0; i < N; ++i)
-    if (ti[i].s == self)
-      {
-	if ((uintptr_t) ti[i].p <= (uintptr_t) &self
-	    && (uintptr_t) ti[i].p + 2 * MINSIGSTKSZ > (uintptr_t) &self)
-	  {
-	    puts ("alt stack not used");
-	    exit (1);
-	  }
-
-	printf ("thread %zu used alt stack for signal %d\n", i, sig);
-
-	return;
-      }
-
-  puts ("handler: thread not found");
-  exit (1);
-}
-
-
-static void *
-tf (void *arg)
-{
-  size_t nr = (uintptr_t) arg;
-  if (nr >= N)
-    {
-      puts ("wrong nr parameter");
-      exit (1);
-    }
-
-  sigset_t ss;
-  sigemptyset (&ss);
-  size_t i;
-  for (i = 0; i < N; ++i)
-    if (i != nr)
-      if (sigaddset (&ss, sig1 + i) != 0)
-	{
-	  puts ("tf: sigaddset failed");
-	  exit (1);
-	}
-  if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
-    {
-      puts ("tf: sigmask failed");
-      exit (1);
-    }
-
-  void *p = malloc (2 * MINSIGSTKSZ);
-  if (p == NULL)
-    {
-      puts ("tf: malloc failed");
-      exit (1);
-    }
-
-  stack_t s;
-  s.ss_sp = p;
-  s.ss_size = 2 * MINSIGSTKSZ;
-  s.ss_flags = 0;
-  if (sigaltstack (&s, NULL) != 0)
-    {
-      puts ("tf: sigaltstack failed");
-      exit (1);
-    }
-
-  ti[nr].p = p;
-  ti[nr].s = pthread_self ();
-
-  pthread_barrier_wait (&bar);
-
-  pthread_barrier_wait (&bar);
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  sig1 = SIGRTMIN;
-  if (sig1 + N > SIGRTMAX)
-    {
-      puts ("too few RT signals");
-      return 0;
-    }
-
-  struct sigaction sa;
-  sa.sa_handler = handler;
-  sa.sa_flags = 0;
-  sigemptyset (&sa.sa_mask);
-
-  if (sigaction (sig1, &sa, NULL) != 0
-      || sigaction (sig1 + 1, &sa, NULL) != 0
-      || sigaction (sig1 + 2, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&bar, NULL, 1 + N) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  pthread_t th[N];
-  size_t i;
-  for (i = 0; i < N; ++i)
-    if (pthread_create (&th[i], NULL, tf, (void *) (long int) i) != 0)
-      {
-	puts ("create failed");
-	return 1;
-      }
-
-  /* Block the three signals.  */
-  sigset_t ss;
-  sigemptyset (&ss);
-  for (i = 0; i <= N; ++i)
-    sigaddset (&ss, sig1 + i);
-  if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
-    {
-      puts ("main: sigmask failed");
-      return 1;
-    }
-
-  pthread_barrier_wait (&bar);
-
-  /* Send some signals.  */
-  pid_t me = getpid ();
-  kill (me, sig1 + N);
-  for (i = 0; i < N; ++i)
-    kill (me, sig1 + i);
-  kill (me, sig1 + N);
-
-  /* Give the signals a chance to be worked on.  */
-  sleep (1);
-
-  pthread_barrier_wait (&bar);
-
-  for (i = 0; i < N; ++i)
-    if (pthread_join (th[i], NULL) != 0)
-      {
-	puts ("join failed");
-	return 1;
-      }
-
-  return 0;
-}
-
-# define TEST_FUNCTION do_test ()
-
-#else
-# define TEST_FUNCTION 0
-#endif
-#include "../test-skeleton.c"
diff --git a/nptl/tst-signal7.c b/nptl/tst-signal7.c
deleted file mode 100644
index e1e291e116..0000000000
--- a/nptl/tst-signal7.c
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthreadP.h>
-#include <signal.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
-  int result = 0;
-
-#ifdef SIGCANCEL
-  errno = 0;
-  if (sigaction (SIGCANCEL, NULL, NULL) == 0)
-    {
-      puts ("sigaction(SIGCANCEL) did not fail");
-      result = 1;
-    }
-  else if (errno != EINVAL)
-    {
-      puts ("sigaction(SIGCANCEL) did not set errno to EINVAL");
-      result = 1;
-    }
-#endif
-
-#ifdef SIGSETXID
-  errno = 0;
-  if (sigaction (SIGSETXID, NULL, NULL) == 0)
-    {
-      puts ("sigaction(SIGSETXID) did not fail");
-      result = 1;
-    }
-  else if (errno != EINVAL)
-    {
-      puts ("sigaction(SIGSETXID) did not set errno to EINVAL");
-      result = 1;
-    }
-#endif
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-spin1.c b/nptl/tst-spin1.c
deleted file mode 100644
index a19f51dc2b..0000000000
--- a/nptl/tst-spin1.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-
-
-static int
-do_test (void)
-{
-  pthread_spinlock_t s;
-
-  if (pthread_spin_init (&s, PTHREAD_PROCESS_PRIVATE) != 0)
-    {
-      puts ("spin_init failed");
-      return 1;
-    }
-
-  if (pthread_spin_lock (&s) != 0)
-    {
-      puts ("spin_lock failed");
-      return 1;
-    }
-
-  if (pthread_spin_unlock (&s) != 0)
-    {
-      puts ("spin_unlock failed");
-      return 1;
-    }
-
-  if (pthread_spin_destroy (&s) != 0)
-    {
-      puts ("spin_destroy failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-spin2.c b/nptl/tst-spin2.c
deleted file mode 100644
index 1a8260d256..0000000000
--- a/nptl/tst-spin2.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/wait.h>
-
-
-static int
-do_test (void)
-{
-  size_t ps = sysconf (_SC_PAGESIZE);
-  char tmpfname[] = "/tmp/tst-spin2.XXXXXX";
-  char data[ps];
-  void *mem;
-  int fd;
-  pthread_spinlock_t *s;
-  pid_t pid;
-  char *p;
-  int err;
-
-  fd = mkstemp (tmpfname);
-  if (fd == -1)
-    {
-      printf ("cannot open temporary file: %m\n");
-      return 1;
-    }
-
-  /* Make sure it is always removed.  */
-  unlink (tmpfname);
-
-  /* Create one page of data.  */
-  memset (data, '\0', ps);
-
-  /* Write the data to the file.  */
-  if (write (fd, data, ps) != (ssize_t) ps)
-    {
-      puts ("short write");
-      return 1;
-    }
-
-  mem = mmap (NULL, ps, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-  if (mem == MAP_FAILED)
-    {
-      printf ("mmap failed: %m\n");
-      return 1;
-    }
-
-  s = (pthread_spinlock_t *) (((uintptr_t) mem
-			       + __alignof (pthread_spinlock_t))
-			      & ~(__alignof (pthread_spinlock_t) - 1));
-  p = (char *) (s + 1);
-
-  if (pthread_spin_init (s, PTHREAD_PROCESS_SHARED) != 0)
-    {
-      puts ("spin_init failed");
-      return 1;
-    }
-
-  if (pthread_spin_lock (s) != 0)
-    {
-      puts ("spin_lock failed");
-      return 1;
-    }
-
-  err = pthread_spin_trylock (s);
-  if (err == 0)
-    {
-      puts ("1st spin_trylock succeeded");
-      return 1;
-    }
-  else if (err != EBUSY)
-    {
-      puts ("1st spin_trylock didn't return EBUSY");
-      return 1;
-    }
-
-  err = pthread_spin_unlock (s);
-  if (err != 0)
-    {
-      puts ("parent: spin_unlock failed");
-      return 1;
-    }
-
-  err = pthread_spin_trylock (s);
-  if (err != 0)
-    {
-      puts ("2nd spin_trylock failed");
-      return 1;
-    }
-
-  *p = 0;
-
-  puts ("going to fork now");
-  pid = fork ();
-  if (pid == -1)
-    {
-      puts ("fork failed");
-      return 1;
-    }
-  else if (pid == 0)
-    {
-      /* Play some lock ping-pong.  It's our turn to unlock first.  */
-      if ((*p)++ != 0)
-	{
-	  puts ("child: *p != 0");
-	  return 1;
-	}
-
-      if (pthread_spin_unlock (s) != 0)
-	{
-	  puts ("child: 1st spin_unlock failed");
-	  return 1;
-	}
-
-      puts ("child done");
-    }
-  else
-    {
-      if (pthread_spin_lock (s) != 0)
-	{
-	  puts ("parent: 2nd spin_lock failed");
-	  return 1;
-	}
-
-      puts ("waiting for child");
-
-      waitpid (pid, NULL, 0);
-
-      puts ("parent done");
-    }
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-spin3.c b/nptl/tst-spin3.c
deleted file mode 100644
index d04b59de47..0000000000
--- a/nptl/tst-spin3.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static int
-do_test (void)
-{
-  pthread_spinlock_t s;
-
-  if (pthread_spin_init (&s, PTHREAD_PROCESS_PRIVATE) != 0)
-    {
-      puts ("spin_init failed");
-      return 1;
-    }
-
-  if (pthread_spin_lock (&s) != 0)
-    {
-      puts ("1st spin_lock failed");
-      return 1;
-    }
-
-  delayed_exit (1);
-
-  /* This call should never return.  */
-  xpthread_spin_lock (&s);
-
-  puts ("2nd spin_lock returned");
-  return 1;
-}
diff --git a/nptl/tst-spin4.c b/nptl/tst-spin4.c
deleted file mode 100644
index 5b23a172ca..0000000000
--- a/nptl/tst-spin4.c
+++ /dev/null
@@ -1,109 +0,0 @@
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-
-static int count = 0;
-
-static void *
-thread_add_one (void *arg)
-{
-  int tmp;
-  pthread_spinlock_t *lock = (pthread_spinlock_t *) arg;
-
-  /* When do_test holds the lock for 1 sec, the two thread will be
-     in contention for the lock. */
-  if (pthread_spin_lock (lock) != 0)
-    {
-      puts ("thread_add_one(): spin_lock failed");
-      pthread_exit ((void *) 1l);
-    }
-
-  /* sleep 1s before modifying count */
-  tmp = count;
-  sleep (1);
-  count = tmp + 1;
-
-  if (pthread_spin_unlock (lock) != 0)
-    {
-      puts ("thread_add_one(): spin_unlock failed");
-      pthread_exit ((void *) 1l);
-    }
-
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  pthread_t thr1, thr2;
-  pthread_spinlock_t lock;
-  int tmp;
-
-  if (pthread_spin_init (&lock, PTHREAD_PROCESS_PRIVATE) != 0)
-    {
-      puts ("spin_init failed");
-      return 1;
-    }
-
-  if (pthread_spin_lock (&lock) != 0)
-    {
-      puts ("1st spin_lock failed");
-      return 1;
-    }
-
-  if (pthread_create (&thr1, NULL, thread_add_one, (void *) &lock) != 0)
-    {
-      puts ("1st pthread_create failed");
-      return 1;
-    }
-
-  if (pthread_create (&thr2, NULL, thread_add_one, (void *) &lock) != 0)
-    {
-      puts ("2nd pthread_create failed");
-      return 1;
-    }
-
-  /* sleep 1s before modifying count */
-  tmp = count;
-  sleep (1);
-  count = tmp + 1;
-
-  if (pthread_spin_unlock (&lock) != 0)
-    {
-      puts ("1st spin_unlock failed");
-      return 1;
-    }
-
-  void *status;
-  if (pthread_join (thr1, &status) != 0)
-    {
-      puts ("1st pthread_join failed");
-      return 1;
-    }
-  if (status != NULL)
-    {
-      puts ("failure in the 1st thread");
-      return 1;
-    }
-  if (pthread_join (thr2, &status) != 0)
-    {
-      puts ("2nd pthread_join failed");
-      return 1;
-    }
-  if (status != NULL)
-    {
-      puts ("failure in the 2nd thread");
-      return 1;
-    }
-
-  if (count != 3)
-    {
-      printf ("count is %d, should be 3\n", count);
-      return 1;
-    }
-  return 0;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-stack1.c b/nptl/tst-stack1.c
deleted file mode 100644
index dc1a03e294..0000000000
--- a/nptl/tst-stack1.c
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <sys/param.h>
-#include <unistd.h>
-
-
-static void *stack;
-static size_t size;
-
-
-static void *
-tf (void *a)
-{
-  int result = 0;
-
-  puts ("child start");
-
-  pthread_attr_t attr;
-  if (pthread_getattr_np (pthread_self (), &attr) != 0)
-    {
-      puts ("getattr_np failed");
-      exit (1);
-    }
-
-  size_t test_size;
-  void *test_stack;
-  if (pthread_attr_getstack (&attr, &test_stack, &test_size) != 0)
-    {
-      puts ("attr_getstack failed");
-      exit (1);
-    }
-
-  if (test_size != size)
-    {
-      printf ("child: reported size differs: is %zu, expected %zu\n",
-	      test_size, size);
-      result = 1;
-    }
-
-  if (test_stack != stack)
-    {
-      printf ("child: reported stack address differs: is %p, expected %p\n",
-	      test_stack, stack);
-      result = 1;
-    }
-
-  puts ("child OK");
-
-  return result ? (void *) 1l : NULL;
-}
-
-
-int
-do_test (void)
-{
-  int result = 0;
-
-  size = MAX (4 * getpagesize (), PTHREAD_STACK_MIN);
-  if (posix_memalign (&stack, getpagesize (), size) != 0)
-    {
-      puts ("out of memory while allocating the stack memory");
-      exit (1);
-    }
-
-  pthread_attr_t attr;
-  if (pthread_attr_init (&attr) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  puts ("attr_setstack");
-  if (pthread_attr_setstack (&attr, stack, size) != 0)
-    {
-      puts ("attr_setstack failed");
-      exit (1);
-    }
-
-  size_t test_size;
-  void *test_stack;
-  puts ("attr_getstack");
-  if (pthread_attr_getstack (&attr, &test_stack, &test_size) != 0)
-    {
-      puts ("attr_getstack failed");
-      exit (1);
-    }
-
-  if (test_size != size)
-    {
-      printf ("reported size differs: is %zu, expected %zu\n",
-	      test_size, size);
-      result = 1;
-    }
-
-  if (test_stack != stack)
-    {
-      printf ("reported stack address differs: is %p, expected %p\n",
-	      test_stack, stack);
-      result = 1;
-    }
-
-  puts ("create");
-
-  pthread_t th;
-  if (pthread_create (&th, &attr, tf, NULL) != 0)
-    {
-      puts ("failed to create thread");
-      exit (1);
-    }
-
-  void *status;
-  if (pthread_join (th, &status) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  result |= status != NULL;
-
-  return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-stack2.c b/nptl/tst-stack2.c
deleted file mode 100644
index fe319572e8..0000000000
--- a/nptl/tst-stack2.c
+++ /dev/null
@@ -1,79 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Test whether it is possible to create a thread with PTHREAD_STACK_MIN
-   stack size.  */
-
-#include <pthread.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <limits.h>
-
-static int seen;
-
-static void *
-tf (void *p)
-{
-  ++seen;
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  pthread_attr_t attr;
-  pthread_attr_init (&attr);
-
-  int result = 0;
-  int res = pthread_attr_setstacksize (&attr, PTHREAD_STACK_MIN);
-  if (res)
-    {
-      printf ("pthread_attr_setstacksize failed %d\n", res);
-      result = 1;
-    }
-
-  /* Create the thread.  */
-  pthread_t th;
-  res = pthread_create (&th, &attr, tf, NULL);
-  if (res)
-    {
-      printf ("pthread_create failed %d\n", res);
-      result = 1;
-    }
-  else
-    {
-      res = pthread_join (th, NULL);
-      if (res)
-	{
-	  printf ("pthread_join failed %d\n", res);
-	  result = 1;
-	}
-    }
-
-  if (seen != 1)
-    {
-      printf ("seen %d != 1\n", seen);
-      result = 1;
-    }
-
-  return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-stack3.c b/nptl/tst-stack3.c
deleted file mode 100644
index fd5349671b..0000000000
--- a/nptl/tst-stack3.c
+++ /dev/null
@@ -1,100 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Test whether pthread_create/pthread_join with user defined stacks
-   doesn't leak memory.
-   NOTE: this tests functionality beyond POSIX.  In POSIX user defined
-   stacks cannot be ever freed once used by pthread_create nor they can
-   be reused for other thread.  */
-
-#include <limits.h>
-#include <mcheck.h>
-#include <pthread.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-
-static int seen;
-
-static void *
-tf (void *p)
-{
-  ++seen;
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  mtrace ();
-
-  void *stack;
-  int res = posix_memalign (&stack, getpagesize (), 4 * PTHREAD_STACK_MIN);
-  if (res)
-    {
-      printf ("malloc failed %s\n", strerror (res));
-      return 1;
-    }
-
-  pthread_attr_t attr;
-  pthread_attr_init (&attr);
-
-  int result = 0;
-  res = pthread_attr_setstack (&attr, stack, 4 * PTHREAD_STACK_MIN);
-  if (res)
-    {
-      printf ("pthread_attr_setstack failed %d\n", res);
-      result = 1;
-    }
-
-  for (int i = 0; i < 16; ++i)
-    {
-      /* Create the thread.  */
-      pthread_t th;
-      res = pthread_create (&th, &attr, tf, NULL);
-      if (res)
-	{
-	  printf ("pthread_create failed %d\n", res);
-	  result = 1;
-	}
-      else
-	{
-	  res = pthread_join (th, NULL);
-	  if (res)
-	    {
-	      printf ("pthread_join failed %d\n", res);
-	      result = 1;
-	    }
-	}
-    }
-
-  pthread_attr_destroy (&attr);
-
-  if (seen != 16)
-    {
-      printf ("seen %d != 16\n", seen);
-      result = 1;
-    }
-
-  free (stack);
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-stack4.c b/nptl/tst-stack4.c
deleted file mode 100644
index eed7c58a9d..0000000000
--- a/nptl/tst-stack4.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Test DTV size oveflow when pthread_create reuses old DTV and TLS is
-   used by dlopened shared object.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <stdint.h>
-#include <dlfcn.h>
-#include <assert.h>
-#include <pthread.h>
-
-/* The choices of thread count, and file counts are arbitary.
-   The point is simply to run enough threads that an exiting
-   thread has it's stack reused by another thread at the same
-   time as new libraries have been loaded.  */
-#define DSO_SHARED_FILES 20
-#define DSO_OPEN_THREADS 20
-#define DSO_EXEC_THREADS 2
-
-/* Used to make sure that only one thread is calling dlopen and dlclose
-   at a time.  */
-pthread_mutex_t g_lock;
-
-typedef void (*function) (void);
-
-void *
-dso_invoke(void *dso_fun)
-{
-  function *fun_vec = (function *) dso_fun;
-  int dso;
-
-  for (dso = 0; dso < DSO_SHARED_FILES; dso++)
-    (*fun_vec[dso]) ();
-
-  pthread_exit (NULL);
-}
-
-void *
-dso_process (void * p)
-{
-  void *handle[DSO_SHARED_FILES];
-  function fun_vec[DSO_SHARED_FILES];
-  char dso_path[DSO_SHARED_FILES][100];
-  int dso;
-  int t = (int) (uintptr_t) p;
-
-  /* Open DSOs and get a function.  */
-  for (dso = 0; dso < DSO_SHARED_FILES; dso++)
-    {
-      sprintf (dso_path[dso], "tst-stack4mod-%i-%i.so", t, dso);
-
-      pthread_mutex_lock (&g_lock);
-
-      handle[dso] = dlopen (dso_path[dso], RTLD_NOW);
-      assert (handle[dso]);
-
-      fun_vec[dso] = (function) dlsym (handle[dso], "function");
-      assert (fun_vec[dso]);
-
-      pthread_mutex_unlock (&g_lock);
-    }
-
-  /* Spawn workers.  */
-  pthread_t thread[DSO_EXEC_THREADS];
-  int i, ret;
-  uintptr_t result = 0;
-  for (i = 0; i < DSO_EXEC_THREADS; i++)
-    {
-      pthread_mutex_lock (&g_lock);
-      ret = pthread_create (&thread[i], NULL, dso_invoke, (void *) fun_vec);
-      if (ret != 0)
-	{
-	  printf ("pthread_create failed: %d\n", ret);
-	  result = 1;
-	}
-      pthread_mutex_unlock (&g_lock);
-    }
-
-  if (!result)
-    for (i = 0; i < DSO_EXEC_THREADS; i++)
-      {
-	ret = pthread_join (thread[i], NULL);
-	if (ret != 0)
-	  {
-	    printf ("pthread_join failed: %d\n", ret);
-	    result = 1;
-	  }
-      }
-
-  /* Close all DSOs.  */
-  for (dso = 0; dso < DSO_SHARED_FILES; dso++)
-    {
-      pthread_mutex_lock (&g_lock);
-      dlclose (handle[dso]);
-      pthread_mutex_unlock (&g_lock);
-    }
-
-  /* Exit.  */
-  pthread_exit ((void *) result);
-}
-
-static int
-do_test (void)
-{
-  pthread_t thread[DSO_OPEN_THREADS];
-  int i,j;
-  int ret;
-  int result = 0;
-
-  pthread_mutex_init (&g_lock, NULL);
-
-  /* 100 is arbitrary here and is known to trigger PR 13862.  */
-  for (j = 0; j < 100; j++)
-    {
-      for (i = 0; i < DSO_OPEN_THREADS; i++)
-	{
-	  ret = pthread_create (&thread[i], NULL, dso_process,
-				(void *) (uintptr_t) i);
-	  if (ret != 0)
-	    {
-	      printf ("pthread_create failed: %d\n", ret);
-	      result = 1;
-	    }
-	}
-
-      if (result)
-	break;
-
-      for (i = 0; i < DSO_OPEN_THREADS; i++)
-	{
-	  ret = pthread_join (thread[i], NULL);
-	  if (ret != 0)
-	    {
-	      printf ("pthread_join failed: %d\n", ret);
-	      result = 1;
-	    }
-	}
-    }
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#define TIMEOUT 100
-#include "../test-skeleton.c"
diff --git a/nptl/tst-stack4mod.c b/nptl/tst-stack4mod.c
deleted file mode 100644
index 319a8b51c3..0000000000
--- a/nptl/tst-stack4mod.c
+++ /dev/null
@@ -1,28 +0,0 @@
-/* This tests DTV usage with TLS in dlopened shared object.
-   Copyright (C) 2014-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* 256 is arbitrary here and is known to trigger PR 13862.  */
-__thread int var[256] attribute_hidden = {0};
-
-void
-function (void)
-{
-  int i;
-  for (i = 0; i < sizeof (var) / sizeof (int); i++)
-    var[i] = i;
-}
diff --git a/nptl/tst-stackguard1-static.c b/nptl/tst-stackguard1-static.c
deleted file mode 100644
index db1e21554d..0000000000
--- a/nptl/tst-stackguard1-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-stackguard1.c"
diff --git a/nptl/tst-stackguard1.c b/nptl/tst-stackguard1.c
deleted file mode 100644
index 0f21d0ddc3..0000000000
--- a/nptl/tst-stackguard1.c
+++ /dev/null
@@ -1,227 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stddef.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/wait.h>
-#include <stackguard-macros.h>
-#include <tls.h>
-#include <unistd.h>
-
-static const char *command;
-static bool child;
-static uintptr_t stack_chk_guard_copy;
-static bool stack_chk_guard_copy_set;
-static int fds[2];
-
-static void __attribute__ ((constructor))
-con (void)
-{
-  stack_chk_guard_copy = STACK_CHK_GUARD;
-  stack_chk_guard_copy_set = true;
-}
-
-static int
-uintptr_t_cmp (const void *a, const void *b)
-{
-  if (*(uintptr_t *) a < *(uintptr_t *) b)
-    return 1;
-  if (*(uintptr_t *) a > *(uintptr_t *) b)
-    return -1;
-  return 0;
-}
-
-static void *
-tf (void *arg)
-{
-  if (stack_chk_guard_copy != STACK_CHK_GUARD)
-    {
-      puts ("STACK_CHK_GUARD changed in thread");
-      return (void *) 1L;
-    }
-  return NULL;
-}
-
-static int
-do_test (void)
-{
-  if (!stack_chk_guard_copy_set)
-    {
-      puts ("constructor has not been run");
-      return 1;
-    }
-
-  if (stack_chk_guard_copy != STACK_CHK_GUARD)
-    {
-      puts ("STACK_CHK_GUARD changed between constructor and do_test");
-      return 1;
-    }
-
-  if (child)
-    {
-      int i;
-      pthread_t th[4];
-      void *ret;
-      for (i = 0; i < 4; ++i)
-	if (pthread_create (&th[i], NULL, tf, NULL))
-	  {
-	    puts ("thread creation failed");
-	    return 1;
-	  }
-      for (i = 0; i < 4; ++i)
-	if (pthread_join (th[i], &ret))
-	  {
-	    puts ("thread join failed");
-	    return 1;
-	  }
-	else if (ret != NULL)
-	  return 1;
-
-      write (2, &stack_chk_guard_copy, sizeof (stack_chk_guard_copy));
-      return 0;
-    }
-
-  if (command == NULL)
-    {
-      puts ("missing --command or --child argument");
-      return 1;
-    }
-
-#define N 16
-  uintptr_t child_stack_chk_guards[N + 1];
-  child_stack_chk_guards[N] = stack_chk_guard_copy;
-  int i;
-  for (i = 0; i < N; ++i)
-    {
-      if (pipe (fds) < 0)
-	{
-	  printf ("couldn't create pipe: %m\n");
-	  return 1;
-	}
-
-      pid_t pid = fork ();
-      if (pid < 0)
-	{
-	  printf ("fork failed: %m\n");
-	  return 1;
-	}
-
-      if (!pid)
-	{
-	  if (stack_chk_guard_copy != STACK_CHK_GUARD)
-	    {
-	      puts ("STACK_CHK_GUARD changed after fork");
-	      exit (1);
-	    }
-
-	  close (fds[0]);
-	  close (2);
-	  dup2 (fds[1], 2);
-	  close (fds[1]);
-
-	  system (command);
-	  exit (0);
-	}
-
-      close (fds[1]);
-
-      if (TEMP_FAILURE_RETRY (read (fds[0], &child_stack_chk_guards[i],
-				    sizeof (uintptr_t))) != sizeof (uintptr_t))
-	{
-	  puts ("could not read stack_chk_guard value from child");
-	  return 1;
-	}
-
-      close (fds[0]);
-
-      pid_t termpid;
-      int status;
-      termpid = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
-      if (termpid == -1)
-	{
-	  printf ("waitpid failed: %m\n");
-	  return 1;
-	}
-      else if (termpid != pid)
-	{
-	  printf ("waitpid returned %ld != %ld\n",
-		  (long int) termpid, (long int) pid);
-	  return 1;
-	}
-      else if (!WIFEXITED (status) || WEXITSTATUS (status))
-	{
-	  puts ("child hasn't exited with exit status 0");
-	  return 1;
-	}
-    }
-
-  qsort (child_stack_chk_guards, N + 1, sizeof (uintptr_t), uintptr_t_cmp);
-
-  uintptr_t default_guard = 0;
-  unsigned char *p = (unsigned char *) &default_guard;
-  p[sizeof (uintptr_t) - 1] = 255;
-  p[sizeof (uintptr_t) - 2] = '\n';
-  p[0] = 0;
-
-  /* Test if the stack guard canaries are either randomized,
-     or equal to the default stack guard canary value.
-     Even with randomized stack guards it might happen
-     that the random number generator generates the same
-     values, but if that happens in more than half from
-     the 16 runs, something is very wrong.  */
-  int ndifferences = 0;
-  int ndefaults = 0;
-  for (i = 0; i < N; ++i)
-    {
-      if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1])
-	ndifferences++;
-      else if (child_stack_chk_guards[i] == default_guard)
-	ndefaults++;
-    }
-
-  printf ("differences %d defaults %d\n", ndifferences, ndefaults);
-
-  if (ndifferences < N / 2 && ndefaults < N / 2)
-    {
-      puts ("stack guard canaries are not randomized enough");
-      puts ("nor equal to the default canary value");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define OPT_COMMAND	10000
-#define OPT_CHILD	10001
-#define CMDLINE_OPTIONS	\
-  { "command", required_argument, NULL, OPT_COMMAND },  \
-  { "child", no_argument, NULL, OPT_CHILD },
-#define CMDLINE_PROCESS	\
-  case OPT_COMMAND:	\
-    command = optarg;	\
-    break;		\
-  case OPT_CHILD:	\
-    child = true;	\
-    break;
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-stdio1.c b/nptl/tst-stdio1.c
deleted file mode 100644
index 355e716cd3..0000000000
--- a/nptl/tst-stdio1.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <unistd.h>
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static void *tf (void *a)
-{
-  flockfile (stdout);
-  /* This call should never return.  */
-  return a;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-
-  flockfile (stdout);
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      write_message ("create failed\n");
-      _exit (1);
-    }
-
-  delayed_exit (1);
-  xpthread_join (th);
-
-  puts ("join returned");
-
-  return 1;
-}
diff --git a/nptl/tst-stdio2.c b/nptl/tst-stdio2.c
deleted file mode 100644
index d7c0e13b6d..0000000000
--- a/nptl/tst-stdio2.c
+++ /dev/null
@@ -1,82 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-static void *tf (void *a)
-{
-  puts ("start tf");
-
-  /* Multiple locking, implicitly or explicitly, must be possible.  */
-  flockfile (stdout);
-
-  puts ("after first flockfile");
-
-  flockfile (stdout);
-
-  puts ("foo");
-
-  funlockfile (stdout);
-
-  puts ("after first funlockfile");
-
-  funlockfile (stdout);
-
-  puts ("all done");
-
-  return a;
-}
-
-
-int
-do_test (void)
-{
-  pthread_t th;
-
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      write_message ("create failed\n");
-      _exit (1);
-    }
-
-  void *result;
-  if (pthread_join (th, &result) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-  else if (result != NULL)
-    {
-      printf ("wrong return value: %p, expected %p\n", result, NULL);
-      exit (1);
-    }
-
-  puts ("join returned succsefully");
-
-  return 0;
-}
diff --git a/nptl/tst-sysconf.c b/nptl/tst-sysconf.c
deleted file mode 100644
index 291b1465a0..0000000000
--- a/nptl/tst-sysconf.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <unistd.h>
-
-
-static int
-do_test (void)
-{
-  puts ("We expect no limits");
-  /* We have no fixed limit on the number of threads.  Make sure the
-     headers tell the right story.  */
-#ifdef PTHREAD_THREADS_MAX
-  printf ("Header report maximum number of threads = %lu\n",
-	  (unsigned long int) PTHREAD_THREADS_MAX);
-  return 1;
-#else
-  long int r = sysconf (_SC_THREAD_THREADS_MAX);
-  if (r != -1)
-    {
-      printf ("sysconf(_SC_THREAD_THREADS_MAX) return %ld\n", r);
-      return 1;
-    }
-#endif
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-thread_local1.cc b/nptl/tst-thread_local1.cc
deleted file mode 100644
index e8249d4401..0000000000
--- a/nptl/tst-thread_local1.cc
+++ /dev/null
@@ -1,199 +0,0 @@
-/* Test basic thread_local support.
-   Copyright (C) 2015-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-
-#include <functional>
-#include <string>
-#include <thread>
-
-struct counter
-{
-  int constructed {};
-  int destructed {};
-
-  void reset ();
-};
-
-void
-counter::reset ()
-{
-  constructed = 0;
-  destructed = 0;
-}
-
-static std::string
-to_string (const counter &c)
-{
-  char buf[128];
-  snprintf (buf, sizeof (buf), "%d/%d",
-            c.constructed, c.destructed);
-  return buf;
-}
-
-template <counter *Counter>
-struct counting
-{
-  counting () __attribute__ ((noinline, noclone));
-  ~counting () __attribute__ ((noinline, noclone));
-  void operation () __attribute__ ((noinline, noclone));
-};
-
-template<counter *Counter>
-__attribute__ ((noinline, noclone))
-counting<Counter>::counting ()
-{
-  ++Counter->constructed;
-}
-
-template<counter *Counter>
-__attribute__ ((noinline, noclone))
-counting<Counter>::~counting ()
-{
-  ++Counter->destructed;
-}
-
-template<counter *Counter>
-void __attribute__ ((noinline, noclone))
-counting<Counter>::operation ()
-{
-  // Optimization barrier.
-  asm ("");
-}
-
-static counter counter_static;
-static counter counter_anonymous_namespace;
-static counter counter_extern;
-static counter counter_function_local;
-static bool errors (false);
-
-static std::string
-all_counters ()
-{
-  return to_string (counter_static)
-    + ' ' + to_string (counter_anonymous_namespace)
-    + ' ' + to_string (counter_extern)
-    + ' ' + to_string (counter_function_local);
-}
-
-static void
-check_counters (const char *name, const char *expected)
-{
-  std::string actual{all_counters ()};
-  if (actual != expected)
-    {
-      printf ("error: %s: (%s) != (%s)\n",
-              name, actual.c_str (), expected);
-      errors = true;
-    }
-}
-
-static void
-reset_all ()
-{
-  counter_static.reset ();
-  counter_anonymous_namespace.reset ();
-  counter_extern.reset ();
-  counter_function_local.reset ();
-}
-
-static thread_local counting<&counter_static> counting_static;
-namespace {
-  thread_local counting<&counter_anonymous_namespace>
-    counting_anonymous_namespace;
-}
-extern thread_local counting<&counter_extern> counting_extern;
-thread_local counting<&counter_extern> counting_extern;
-
-static void *
-thread_without_access (void *)
-{
-  return nullptr;
-}
-
-static void *
-thread_with_access (void *)
-{
-  thread_local counting<&counter_function_local> counting_function_local;
-  counting_function_local.operation ();
-  check_counters ("early in thread_with_access", "0/0 0/0 0/0 1/0");
-  counting_static.operation ();
-  counting_anonymous_namespace.operation ();
-  counting_extern.operation ();
-  check_counters ("in thread_with_access", "1/0 1/0 1/0 1/0");
-  return nullptr;
-}
-
-static int
-do_test (void)
-{
-  std::function<void (void *(void *))> do_pthread =
-    [](void *(func) (void *))
-    {
-      pthread_t thr;
-      int ret = pthread_create (&thr, nullptr, func, nullptr);
-      if (ret != 0)
-        {
-          errno = ret;
-          printf ("error: pthread_create: %m\n");
-          errors = true;
-          return;
-        }
-      ret = pthread_join (thr, nullptr);
-      if (ret != 0)
-        {
-          errno = ret;
-          printf ("error: pthread_join: %m\n");
-          errors = true;
-          return;
-        }
-    };
-  std::function<void (void *(void *))> do_std_thread =
-    [](void *(func) (void *))
-    {
-      std::thread thr{[func] {func (nullptr);}};
-      thr.join ();
-    };
-
-  std::array<std::pair<const char *, std::function<void (void *(void *))>>, 2>
-    do_thread_X
-      {{
-        {"pthread_create", do_pthread},
-        {"std::thread", do_std_thread},
-      }};
-
-  for (auto do_thread : do_thread_X)
-    {
-      printf ("info: testing %s\n", do_thread.first);
-      check_counters ("initial", "0/0 0/0 0/0 0/0");
-      do_thread.second (thread_without_access);
-      check_counters ("after thread_without_access", "0/0 0/0 0/0 0/0");
-      reset_all ();
-      do_thread.second (thread_with_access);
-      check_counters ("after thread_with_access", "1/1 1/1 1/1 1/1");
-      reset_all ();
-    }
-
-  return errors;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tls1.c b/nptl/tst-tls1.c
deleted file mode 100644
index 12799798a2..0000000000
--- a/nptl/tst-tls1.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-struct test_s
-{
-  int a;
-  int b;
-};
-
-#define INIT_A 1
-#define INIT_B 42
-/* Deliberately not static.  */
-__thread struct test_s s __attribute__ ((tls_model ("initial-exec"))) =
-{
-  .a = INIT_A,
-  .b = INIT_B
-};
-
-
-static void *
-tf (void *arg)
-{
-  if (s.a != INIT_A || s.b != INIT_B)
-    {
-      puts ("initial value of s in child thread wrong");
-      exit (1);
-    }
-
-  ++s.a;
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  if (s.a != INIT_A || s.b != INIT_B)
-    {
-      puts ("initial value of s in main thread wrong");
-      exit (1);
-    }
-
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-#define N 10
-  int i;
-  for (i = 0; i < N; ++i)
-    {
-#define M 10
-      pthread_t th[M];
-      int j;
-      for (j = 0; j < M; ++j, ++s.a)
-	if (pthread_create (&th[j], &a, tf, NULL) != 0)
-	  {
-	    puts ("pthread_create failed");
-	    exit (1);
-	  }
-
-      for (j = 0; j < M; ++j)
-	if (pthread_join (th[j], NULL) != 0)
-	  {
-	    puts ("pthread_join failed");
-	    exit (1);
-	  }
-    }
-
-  if (pthread_attr_destroy (&a) != 0)
-    {
-      puts ("attr_destroy failed");
-      exit (1);
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tls2.c b/nptl/tst-tls2.c
deleted file mode 100644
index fc434a1b50..0000000000
--- a/nptl/tst-tls2.c
+++ /dev/null
@@ -1,206 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <semaphore.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-#define N 10
-static pthread_t th[N];
-
-
-static int do_test (void);
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-#define CB(n) \
-static void								      \
-cb##n (void)								      \
-{									      \
-  if (th[n] != pthread_self ())						      \
-    {									      \
-      write_message ("wrong callback\n");				      \
-      _exit (1);							      \
-    }									      \
-}
-CB (0)
-CB (1)
-CB (2)
-CB (3)
-CB (4)
-CB (5)
-CB (6)
-CB (7)
-CB (8)
-CB (9)
-static void (*cbs[]) (void) =
-{
-  cb0, cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9
-};
-
-
-static __thread void (*fp) (void) __attribute__ ((tls_model ("local-exec")));
-
-
-static sem_t s;
-
-
-#define THE_SIG SIGUSR1
-static void
-handler (int sig)
-{
-  if (sig != THE_SIG)
-    {
-      write_message ("wrong signal\n");
-      _exit (1);
-    }
-
-  fp ();
-
-  if (sem_post (&s) != 0)
-    {
-      write_message ("sem_post failed\n");
-      _exit (1);
-    }
-}
-
-
-static pthread_barrier_t b;
-
-#define TOTAL_SIGS 1000
-static int nsigs;
-
-
-static void *
-tf (void *arg)
-{
-  fp = arg;
-
-  pthread_barrier_wait (&b);
-
-  pthread_barrier_wait (&b);
-
-  if (nsigs != TOTAL_SIGS)
-    {
-      puts ("barrier_wait prematurely returns");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-int
-do_test (void)
-{
-  if (pthread_barrier_init (&b, NULL, N + 1) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (sem_init (&s, 0, 0) != 0)
-    {
-      puts ("sem_init failed");
-      exit (1);
-    }
-
-  struct sigaction sa;
-  sa.sa_handler = handler;
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-  if (sigaction (THE_SIG, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      exit (1);
-    }
-
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  if (pthread_attr_setstacksize (&a, 1 * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  int i;
-  for (i = 0; i < N; ++i)
-    if (pthread_create (&th[i], &a, tf, cbs[i]) != 0)
-      {
-	puts ("pthread_create failed");
-	exit (1);
-      }
-
-  if (pthread_attr_destroy (&a) != 0)
-    {
-      puts ("attr_destroy failed");
-      exit (1);
-    }
-
-  pthread_barrier_wait (&b);
-
-  sigset_t ss;
-  sigemptyset (&ss);
-  sigaddset (&ss, THE_SIG);
-  if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
-    {
-      puts ("pthread_sigmask failed");
-      exit (1);
-    }
-
-  /* Start sending signals.  */
-  for (i = 0; i < TOTAL_SIGS; ++i)
-    {
-      if (kill (getpid (), THE_SIG) != 0)
-	{
-	  puts ("kill failed");
-	  exit (1);
-	}
-
-      if (TEMP_FAILURE_RETRY (sem_wait (&s)) != 0)
-	{
-	  puts ("sem_wait failed");
-	  exit (1);
-	}
-
-      ++nsigs;
-    }
-
-  pthread_barrier_wait (&b);
-
-  for (i = 0; i < N; ++i)
-    if (pthread_join (th[i], NULL) != 0)
-      {
-	puts ("join failed");
-	exit (1);
-      }
-
-  return 0;
-}
diff --git a/nptl/tst-tls3-malloc.c b/nptl/tst-tls3-malloc.c
deleted file mode 100644
index 527bb1793a..0000000000
--- a/nptl/tst-tls3-malloc.c
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Test TLS allocation with an interposed malloc.
-   Copyright (C) 2016-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Reuse the test.  */
-#define STACK_SIZE_MB 5
-#include "tst-tls3.c"
-
-/* Increase the thread stack size to 10 MiB, so that some thread
-   stacks are actually freed.  (The stack cache size is currently
-   hard-wired to 40 MiB in allocatestack.c.)  */
-static long stack_size_in_mb = 10;
-
-#include <sys/mman.h>
-
-#define INTERPOSE_THREADS 1
-#include "../malloc/tst-interpose-aux.c"
diff --git a/nptl/tst-tls3.c b/nptl/tst-tls3.c
deleted file mode 100644
index f768e88d54..0000000000
--- a/nptl/tst-tls3.c
+++ /dev/null
@@ -1,215 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <dlfcn.h>
-#include <errno.h>
-#include <pthread.h>
-#include <signal.h>
-#include <semaphore.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <pthreaddef.h>
-
-#define THE_SIG SIGUSR1
-
-/* The stack size can be overriden.  With a sufficiently large stack
-   size, thread stacks for terminated threads are freed, but this does
-   not happen with the default size of 1 MiB.  */
-enum { default_stack_size_in_mb = 1 };
-static long stack_size_in_mb;
-
-#define N 10
-static pthread_t th[N];
-
-
-static int do_test (void);
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
-
-#define CB(n) \
-static void								      \
-cb##n (void)								      \
-{									      \
-  if (th[n] != pthread_self ())						      \
-    {									      \
-      write_message ("wrong callback\n");				      \
-      _exit (1);							      \
-    }									      \
-}
-CB (0)
-CB (1)
-CB (2)
-CB (3)
-CB (4)
-CB (5)
-CB (6)
-CB (7)
-CB (8)
-CB (9)
-static void (*cbs[]) (void) =
-{
-  cb0, cb1, cb2, cb3, cb4, cb5, cb6, cb7, cb8, cb9
-};
-
-
-sem_t s;
-
-
-pthread_barrier_t b;
-
-#define TOTAL_SIGS 1000
-int nsigs;
-
-
-int
-do_test (void)
-{
-  if (stack_size_in_mb == 0)
-    stack_size_in_mb = default_stack_size_in_mb;
-
-  if ((uintptr_t) pthread_self () & (TCB_ALIGNMENT - 1))
-    {
-      puts ("initial thread's struct pthread not aligned enough");
-      exit (1);
-    }
-
-  if (pthread_barrier_init (&b, NULL, N + 1) != 0)
-    {
-      puts ("barrier_init failed");
-      exit (1);
-    }
-
-  if (sem_init (&s, 0, 0) != 0)
-    {
-      puts ("sem_init failed");
-      exit (1);
-    }
-
-  void *h = dlopen ("tst-tls3mod.so", RTLD_LAZY);
-  if (h == NULL)
-    {
-      puts ("dlopen failed");
-      exit (1);
-    }
-
-  void *(*tf) (void *) = dlsym (h, "tf");
-  if (tf == NULL)
-    {
-      puts ("dlsym for tf failed");
-      exit (1);
-    }
-
-  struct sigaction sa;
-  sa.sa_handler = dlsym (h, "handler");
-  if (sa.sa_handler == NULL)
-    {
-      puts ("dlsym for handler failed");
-      exit (1);
-    }
-  sigemptyset (&sa.sa_mask);
-  sa.sa_flags = 0;
-  if (sigaction (THE_SIG, &sa, NULL) != 0)
-    {
-      puts ("sigaction failed");
-      exit (1);
-    }
-
-  pthread_attr_t a;
-
-  if (pthread_attr_init (&a) != 0)
-    {
-      puts ("attr_init failed");
-      exit (1);
-    }
-
-  if (pthread_attr_setstacksize (&a, stack_size_in_mb * 1024 * 1024) != 0)
-    {
-      puts ("attr_setstacksize failed");
-      return 1;
-    }
-
-  int r;
-  for (r = 0; r < 10; ++r)
-    {
-      int i;
-      for (i = 0; i < N; ++i)
-	if (pthread_create (&th[i], &a, tf, cbs[i]) != 0)
-	  {
-	    puts ("pthread_create failed");
-	    exit (1);
-	  }
-
-      nsigs = 0;
-
-      pthread_barrier_wait (&b);
-
-      sigset_t ss;
-      sigemptyset (&ss);
-      sigaddset (&ss, THE_SIG);
-      if (pthread_sigmask (SIG_BLOCK, &ss, NULL) != 0)
-	{
-	  puts ("pthread_sigmask failed");
-	  exit (1);
-	}
-
-      /* Start sending signals.  */
-      for (i = 0; i < TOTAL_SIGS; ++i)
-	{
-	  if (kill (getpid (), THE_SIG) != 0)
-	    {
-	      puts ("kill failed");
-	      exit (1);
-	    }
-
-	  if (TEMP_FAILURE_RETRY (sem_wait (&s)) != 0)
-	    {
-	      puts ("sem_wait failed");
-	      exit (1);
-	    }
-
-	  ++nsigs;
-	}
-
-      pthread_barrier_wait (&b);
-
-      if (pthread_sigmask (SIG_UNBLOCK, &ss, NULL) != 0)
-	{
-	  puts ("pthread_sigmask failed");
-	  exit (1);
-	}
-
-      for (i = 0; i < N; ++i)
-	if (pthread_join (th[i], NULL) != 0)
-	  {
-	    puts ("join failed");
-	    exit (1);
-	  }
-    }
-
-  if (pthread_attr_destroy (&a) != 0)
-    {
-      puts ("attr_destroy failed");
-      exit (1);
-    }
-
-  return 0;
-}
diff --git a/nptl/tst-tls3mod.c b/nptl/tst-tls3mod.c
deleted file mode 100644
index 51e544bdeb..0000000000
--- a/nptl/tst-tls3mod.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <semaphore.h>
-#include <signal.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <pthreaddef.h>
-
-
-extern pthread_barrier_t b;
-
-#define TOTAL_SIGS 1000
-extern int nsigs;
-
-extern sem_t s;
-
-
-static __thread void (*fp) (void);
-
-
-#define THE_SIG SIGUSR1
-void
-handler (int sig)
-{
-  if (sig != THE_SIG)
-    {
-      write (STDOUT_FILENO, "wrong signal\n", 13);
-      _exit (1);
-    }
-
-  fp ();
-
-  if (sem_post (&s) != 0)
-    {
-      write (STDOUT_FILENO, "sem_post failed\n", 16);
-      _exit (1);
-    }
-}
-
-
-void *
-tf (void *arg)
-{
-  if ((uintptr_t) pthread_self () & (TCB_ALIGNMENT - 1))
-    {
-      puts ("thread's struct pthread not aligned enough");
-      exit (1);
-    }
-
-  if (fp != NULL)
-    {
-      puts ("fp not initially NULL");
-      exit (1);
-    }
-
-  fp = arg;
-
-  pthread_barrier_wait (&b);
-
-  pthread_barrier_wait (&b);
-
-  if (nsigs != TOTAL_SIGS)
-    {
-      puts ("barrier_wait prematurely returns");
-      exit (1);
-    }
-
-  return NULL;
-}
diff --git a/nptl/tst-tls4.c b/nptl/tst-tls4.c
deleted file mode 100644
index 15da980ea2..0000000000
--- a/nptl/tst-tls4.c
+++ /dev/null
@@ -1,181 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <dlfcn.h>
-#include <errno.h>
-#include <pthread.h>
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-#define N 3
-
-void (*test1) (void), (*test2) (void);
-
-pthread_barrier_t b2, b3;
-
-static void *
-tf (void *arg)
-{
-  int i;
-
-  for (i = 0; i <= (uintptr_t) arg; ++i)
-    {
-      int r = pthread_barrier_wait (&b3);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("tf: barrier_wait failed");
-	  exit (1);
-	}
-    }
-
-  test1 ();
-
-  for (i = 0; i < 3; ++i)
-    {
-      int r = pthread_barrier_wait (&b3);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("tf: barrier_wait failed");
-	  exit (1);
-	}
-    }
-
-  test2 ();
-
-  for (i = 0; i < 3 - (uintptr_t) arg; ++i)
-    {
-      int r = pthread_barrier_wait (&b3);
-      if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-	{
-	  puts ("tf: barrier_wait failed");
-	  exit (1);
-	}
-    }
-
-  return NULL;
-}
-
-static void *
-tf2 (void *arg)
-{
-  int r = pthread_barrier_wait (&b2);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("tf2: barrier_wait failed");
-      exit (1);
-    }
-
-  int i;
-  for (i = 0; i < N; ++i)
-    tf (arg);
-  return NULL;
-}
-
-int
-do_test (void)
-{
-  pthread_t th[2];
-  const char *modules[N]
-    = { "tst-tls4moda.so", "tst-tls4moda.so", "tst-tls4modb.so" };
-
-  if (pthread_barrier_init (&b2, NULL, 2) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_barrier_init (&b3, NULL, 3) != 0)
-    {
-      puts ("barrier_init failed");
-      return 1;
-    }
-
-  if (pthread_create (&th[0], NULL, tf2, (void *) (uintptr_t) 1))
-    {
-      puts ("pthread_create failed");
-      return 1;
-    }
-
-  int r = pthread_barrier_wait (&b2);
-  if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD)
-    {
-      puts ("barrier_wait failed");
-      return 1;
-    }
-
-  int i;
-  for (i = 0; i < N; ++i)
-    {
-      void *h = dlopen (modules[i], RTLD_LAZY);
-      if (h == NULL)
-	{
-	  printf ("dlopen failed %s\n", dlerror ());
-	  return 1;
-	}
-
-      test1 = dlsym (h, "test1");
-      if (test1 == NULL)
-	{
-	  printf ("dlsym for test1 failed %s\n", dlerror ());
-	  return 1;
-	}
-
-      test2 = dlsym (h, "test2");
-      if (test2 == NULL)
-	{
-	  printf ("dlsym for test2 failed %s\n", dlerror ());
-	  return 1;
-	}
-
-      if (pthread_create (&th[1], NULL, tf, (void *) (uintptr_t) 2))
-	{
-	  puts ("pthread_create failed");
-	  return 1;
-	}
-
-      tf ((void *) (uintptr_t) 0);
-
-      if (pthread_join (th[1], NULL) != 0)
-	{
-	  puts ("join failed");
-	  return 1;
-	}
-
-      if (dlclose (h))
-	{
-	  puts ("dlclose failed");
-	  return 1;
-	}
-
-      printf ("test %d with %s succeeded\n", i, modules[i]);
-    }
-
-  if (pthread_join (th[0], NULL) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  return 0;
-}
-
-#define TIMEOUT 5
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tls4moda.c b/nptl/tst-tls4moda.c
deleted file mode 100644
index cd44f4ec98..0000000000
--- a/nptl/tst-tls4moda.c
+++ /dev/null
@@ -1,49 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stddef.h>
-#include <stdlib.h>
-
-static __thread unsigned char foo [32]
-  __attribute__ ((tls_model ("initial-exec"), aligned (sizeof (void *))));
-
-void
-test1 (void)
-{
-  size_t s;
-
-  for (s = 0; s < sizeof (foo); ++s)
-    {
-      if (foo [s])
-	abort ();
-      foo [s] = s;
-    }
-}
-
-void
-test2 (void)
-{
-  size_t s;
-
-  for (s = 0; s < sizeof (foo); ++s)
-    {
-      if (foo [s] != s)
-	abort ();
-      foo [s] = sizeof (foo) - s;
-    }
-}
diff --git a/nptl/tst-tls4modb.c b/nptl/tst-tls4modb.c
deleted file mode 100644
index a0b1f623cb..0000000000
--- a/nptl/tst-tls4modb.c
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stddef.h>
-#include <stdlib.h>
-
-static int i;
-int bar;
-
-static __thread void *foo [32 / sizeof (void *)]
-  __attribute__ ((tls_model ("initial-exec"), aligned (sizeof (void *))))
-  = { &i, &bar };
-
-void
-test1 (void)
-{
-  size_t s;
-
-  if (foo [0] != &i || foo [1] != &bar)
-    abort ();
-
-  foo [0] = NULL;
-  foo [1] = NULL;
-  for (s = 0; s < sizeof (foo) / sizeof (void *); ++s)
-    {
-      if (foo [s])
-	abort ();
-      foo [s] = &foo[s];
-    }
-}
-
-void
-test2 (void)
-{
-  size_t s;
-
-  for (s = 0; s < sizeof (foo) / sizeof (void *); ++s)
-    {
-      if (foo [s] != &foo [s])
-	abort ();
-      foo [s] = &foo [s ^ 1];
-    }
-}
diff --git a/nptl/tst-tls5.c b/nptl/tst-tls5.c
deleted file mode 100644
index 0d94ec4d93..0000000000
--- a/nptl/tst-tls5.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Check alignment, overlapping and layout of TLS variables.  */
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <pthread.h>
-#include <pthreadP.h>
-#include <sys/param.h>
-
-#include "tst-tls5.h"
-
-#ifdef TLS_REGISTER
-
-struct tls_obj tls_registry[64];
-
-static int
-tls_addr_cmp (const void *a, const void *b)
-{
-  if (((struct tls_obj *)a)->addr < ((struct tls_obj *)b)->addr)
-    return -1;
-  if (((struct tls_obj *)a)->addr > ((struct tls_obj *)b)->addr)
-    return 1;
-  return 0;
-}
-
-static int
-do_test (void)
-{
-  size_t cnt, i;
-  int res = 0;
-  uintptr_t min_addr = ~(uintptr_t) 0, max_addr = 0;
-
-  for (cnt = 0; tls_registry[cnt].name; ++cnt);
-  tls_registry[cnt].name = NULL;
-  tls_registry[cnt].addr = (uintptr_t) pthread_self ();
-  tls_registry[cnt].size = sizeof (struct pthread);
-  tls_registry[cnt++].align = __alignof__ (struct pthread);
-
-  qsort (tls_registry, cnt, sizeof (struct tls_obj), tls_addr_cmp);
-
-  for (i = 0; i < cnt; ++i)
-    {
-      printf ("%s%s = %p, size %zd, align %zd",
-	      tls_registry[i].name ? "&" : "",
-	      tls_registry[i].name ?: "pthread_self ()",
-	      (void *) tls_registry[i].addr,
-	      tls_registry[i].size, tls_registry[i].align);
-      if (tls_registry[i].addr & (tls_registry[i].align - 1))
-	{
-	  fputs (", WRONG ALIGNMENT", stdout);
-	  res = 1;
-	}
-      if (i > 0
-	  && (tls_registry[i - 1].addr + tls_registry[i - 1].size
-	      > tls_registry[i].addr))
-	{
-	  fputs (", ADDRESS OVERLAP", stdout);
-	  res = 1;
-	}
-      puts ("");
-      if (tls_registry[i].name)
-	{
-	  min_addr = MIN (tls_registry[i].addr, min_addr);
-	  max_addr = MAX (tls_registry[i].addr + tls_registry[i].size,
-			  max_addr);
-	}
-    }
-
-  if (cnt > 1)
-    {
-#if TLS_TCB_AT_TP
-      if (tls_registry[cnt - 1].name)
-	{
-	  puts ("pthread_self () not larger than all TLS addresses");
-	  res = 1;
-	}
-      else
-	max_addr = MAX (tls_registry[cnt - 1].addr, max_addr);
-#elif TLS_DTV_AT_TP
-      if (tls_registry[0].name)
-	{
-	  puts ("pthread_self () not smaller than all TLS addresses");
-	  res = 1;
-	}
-#else
-      abort ();
-#endif
-      printf ("Initial TLS used block size %zd\n",
-	      (size_t) (max_addr - min_addr));
-    }
-  return res;
-}
-
-#define TEST_FUNCTION do_test ()
-
-#else
-
-#define TEST_FUNCTION 0
-
-#endif
-
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tls5.h b/nptl/tst-tls5.h
deleted file mode 100644
index 6c2e1b0d09..0000000000
--- a/nptl/tst-tls5.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#include <stdint.h>
-#include <stddef.h>
-
-struct tls_obj
-{
-  const char *name;
-  uintptr_t addr;
-  size_t size;
-  size_t align;
-};
-extern struct tls_obj tls_registry[];
-
-#define TLS_REGISTER(x)				\
-static void __attribute__((constructor))	\
-tls_register_##x (void)				\
-{						\
-  size_t i;					\
-  for (i = 0; tls_registry[i].name; ++i);	\
-  tls_registry[i].name = #x;			\
-  tls_registry[i].addr = (uintptr_t) &x;	\
-  tls_registry[i].size = sizeof (x);		\
-  tls_registry[i].align = __alignof__ (x);	\
-}
diff --git a/nptl/tst-tls5mod.c b/nptl/tst-tls5mod.c
deleted file mode 100644
index b308bd60e1..0000000000
--- a/nptl/tst-tls5mod.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <tst-tls5.h>
-
-#ifdef TLS_REGISTER
-/* Ensure tls_registry is exported from the binary.  */
-void *tst_tls5mod attribute_hidden = tls_registry;
-#endif
diff --git a/nptl/tst-tls5moda.c b/nptl/tst-tls5moda.c
deleted file mode 100644
index a035c96cdb..0000000000
--- a/nptl/tst-tls5moda.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <tst-tls5.h>
-
-#ifdef TLS_REGISTER
-static __thread char a [32] __attribute__ ((aligned (64)));
-TLS_REGISTER (a)
-#endif
diff --git a/nptl/tst-tls5modb.c b/nptl/tst-tls5modb.c
deleted file mode 100644
index 848a803630..0000000000
--- a/nptl/tst-tls5modb.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <tst-tls5.h>
-
-#ifdef TLS_REGISTER
-static __thread int b;
-TLS_REGISTER (b)
-#endif
diff --git a/nptl/tst-tls5modc.c b/nptl/tst-tls5modc.c
deleted file mode 100644
index d63ceff8d0..0000000000
--- a/nptl/tst-tls5modc.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <tst-tls5.h>
-
-#ifdef TLS_REGISTER
-static __thread int c;
-TLS_REGISTER (c)
-#endif
diff --git a/nptl/tst-tls5modd.c b/nptl/tst-tls5modd.c
deleted file mode 100644
index 202a66a15a..0000000000
--- a/nptl/tst-tls5modd.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include <tst-tls5.h>
-
-#ifdef TLS_REGISTER
-static __thread int d;
-TLS_REGISTER (d)
-#endif
diff --git a/nptl/tst-tls5mode.c b/nptl/tst-tls5mode.c
deleted file mode 100644
index 3e53ee1a6e..0000000000
--- a/nptl/tst-tls5mode.c
+++ /dev/null
@@ -1,8 +0,0 @@
-#include <tst-tls5.h>
-
-#ifdef TLS_REGISTER
-static __thread int e1 = 24;
-static __thread char e2 [32] __attribute__ ((aligned (64)));
-TLS_REGISTER (e1)
-TLS_REGISTER (e2)
-#endif
diff --git a/nptl/tst-tls5modf.c b/nptl/tst-tls5modf.c
deleted file mode 100644
index 8e50962de7..0000000000
--- a/nptl/tst-tls5modf.c
+++ /dev/null
@@ -1,9 +0,0 @@
-#include <tst-tls5.h>
-
-#ifdef TLS_REGISTER
-char tst_tls5modf[60] attribute_hidden = { 26 };
-static __thread int f1 = 24;
-static __thread char f2 [32] __attribute__ ((aligned (64)));
-TLS_REGISTER (f1)
-TLS_REGISTER (f2)
-#endif
diff --git a/nptl/tst-tls6.sh b/nptl/tst-tls6.sh
deleted file mode 100755
index fde169f7b3..0000000000
--- a/nptl/tst-tls6.sh
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-# A tls test.
-# Copyright (C) 2003-2017 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-set -e
-
-common_objpfx=$1; shift
-test_via_rtld_prefix=$1; shift
-test_wrapper_env=$1; shift
-run_program_env=$1; shift
-logfile=$common_objpfx/nptl/tst-tls6.out
-
-# We have to find libc and nptl
-library_path=${common_objpfx}:${common_objpfx}nptl
-tst_tls5="${test_via_rtld_prefix} ${common_objpfx}/nptl/tst-tls5"
-
-> $logfile
-fail=0
-
-for aligned in a e f; do
-  echo "preload tst-tls5mod{$aligned,b,c,d}.so" >> $logfile
-  echo "===============" >> $logfile
-  ${test_wrapper_env} \
-  ${run_program_env} \
-  LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{$aligned,b,c,d}.so \
-	      | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
-  echo >> $logfile
-
-  echo "preload tst-tls5mod{b,$aligned,c,d}.so" >> $logfile
-  echo "===============" >> $logfile
-  ${test_wrapper_env} \
-  ${run_program_env} \
-  LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{b,$aligned,c,d}.so \
-	      | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
-  echo >> $logfile
-
-  echo "preload tst-tls5mod{b,c,d,$aligned}.so" >> $logfile
-  echo "===============" >> $logfile
-  ${test_wrapper_env} \
-  ${run_program_env} \
-  LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{b,c,d,$aligned}.so \
-	      | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
-  echo >> $logfile
-done
-
-echo "preload tst-tls5mod{d,a,b,c,e}" >> $logfile
-echo "===============" >> $logfile
-${test_wrapper_env} \
-${run_program_env} \
-LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{d,a,b,c,e}.so \
-	    | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
-echo >> $logfile
-
-echo "preload tst-tls5mod{d,a,b,e,f}" >> $logfile
-echo "===============" >> $logfile
-${test_wrapper_env} \
-${run_program_env} \
-LD_PRELOAD="`echo ${common_objpfx}nptl/tst-tls5mod{d,a,b,e,f}.so \
-	    | sed 's/:$//;s/: /:/g'`" ${tst_tls5} >> $logfile || fail=1
-echo >> $logfile
-
-exit $fail
diff --git a/nptl/tst-tpp.h b/nptl/tst-tpp.h
deleted file mode 100644
index 708bcb7e0d..0000000000
--- a/nptl/tst-tpp.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/* Copyright (C) 2006-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>, 2006.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <sched.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/syscall.h>
-
-/* This test is Linux specific.  */
-#define CHECK_TPP_PRIORITY(normal, boosted) \
-  do								\
-    {								\
-      pid_t tid = syscall (__NR_gettid);			\
-								\
-      struct sched_param cep_sp;				\
-      int cep_policy;						\
-      if (pthread_getschedparam (pthread_self (), &cep_policy,	\
-				 &cep_sp) != 0)			\
-	{							\
-	  puts ("getschedparam failed");			\
-	  ret = 1;						\
-	}							\
-      else if (cep_sp.sched_priority != (normal))		\
-	{							\
-	  printf ("unexpected priority %d != %d\n",		\
-		  cep_sp.sched_priority, (normal));		\
-	}							\
-      if (syscall (__NR_sched_getparam, tid, &cep_sp) == 0	\
-	  && cep_sp.sched_priority != (boosted))		\
-	{							\
-	  printf ("unexpected boosted priority %d != %d\n",	\
-		  cep_sp.sched_priority, (boosted));		\
-	  ret = 1;						\
-	}							\
-    }								\
-  while (0)
-
-int fifo_min, fifo_max;
-
-void
-init_tpp_test (void)
-{
-  fifo_min = sched_get_priority_min (SCHED_FIFO);
-  if (fifo_min < 0)
-    {
-      printf ("couldn't get min priority for SCHED_FIFO: %m\n");
-      exit (1);
-    }
-
-  fifo_max = sched_get_priority_max (SCHED_FIFO);
-  if (fifo_max < 0)
-    {
-      printf ("couldn't get max priority for SCHED_FIFO: %m\n");
-      exit (1);
-    }
-
-  if (fifo_min > 4 || fifo_max < 10)
-    {
-      printf ("%d..%d SCHED_FIFO priority interval not suitable for this test\n",
-	      fifo_min, fifo_max);
-      exit (0);
-    }
-
-  struct sched_param sp;
-  memset (&sp, 0, sizeof (sp));
-  sp.sched_priority = 4;
-  int e = pthread_setschedparam (pthread_self (), SCHED_FIFO, &sp);
-  if (e != 0)
-    {
-      errno = e;
-      printf ("cannot set scheduling params: %m\n");
-      exit (0);
-    }
-}
diff --git a/nptl/tst-tsd1.c b/nptl/tst-tsd1.c
deleted file mode 100644
index 0c870473bc..0000000000
--- a/nptl/tst-tsd1.c
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static int
-do_test (void)
-{
-  pthread_key_t key1;
-  pthread_key_t key2;
-  void *value;
-  int result = 0;
-  int err;
-
-  err = pthread_key_create (&key1, NULL);
-  if (err != 0)
-    {
-      printf ("1st key_create failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  /* Initial value must be NULL.  */
-  value = pthread_getspecific (key1);
-  if (value != NULL)
-    {
-      puts ("1st getspecific != NULL");
-      result = 1;
-    }
-
-  err = pthread_setspecific (key1, (void *) -2l);
-  if (err != 0)
-    {
-      printf ("1st setspecific failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  value = pthread_getspecific (key1);
-  if (value == NULL)
-    {
-      puts ("2nd getspecific == NULL\n");
-      result = 1;
-    }
-  else if (value != (void *) -2l)
-    {
-      puts ("2nd getspecific != -2l\n");
-      result = 1;
-    }
-
-  err = pthread_setspecific (key1, (void *) -3l);
-  if (err != 0)
-    {
-      printf ("2nd setspecific failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  value = pthread_getspecific (key1);
-  if (value == NULL)
-    {
-      puts ("3rd getspecific == NULL\n");
-      result = 1;
-    }
-  else if (value != (void *) -3l)
-    {
-      puts ("3rd getspecific != -2l\n");
-      result = 1;
-    }
-
-  err = pthread_key_delete (key1);
-  if (err != 0)
-    {
-      printf ("key_delete failed: %s\n", strerror (err));
-      result = 1;
-    }
-
-
-  err = pthread_key_create (&key2, NULL);
-  if (err != 0)
-    {
-      printf ("2nd key_create failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  if (key1 != key2)
-    puts ("key1 != key2; no more tests performed");
-  else
-    {
-      value = pthread_getspecific (key2);
-      if (value != NULL)
-	{
-	  puts ("4th getspecific != NULL");
-	  result = 1;
-	}
-    }
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tsd2.c b/nptl/tst-tsd2.c
deleted file mode 100644
index 14e8e1c7ce..0000000000
--- a/nptl/tst-tsd2.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <string.h>
-
-
-static int result;
-
-
-static void
-destr (void *arg)
-{
-  if (arg != (void *) -2l)
-    result = 2;
-  else
-    result = 0;
-}
-
-
-static void *
-tf (void *arg)
-{
-  pthread_key_t key = (pthread_key_t) (long int) arg;
-  int err;
-
-  err = pthread_setspecific (key, (void *) -2l);
-  if (err != 0)
-    result = 3;
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_key_t key;
-  pthread_t th;
-  int err;
-
-  err = pthread_key_create (&key, destr);
-  if (err != 0)
-    {
-      printf ("key_create failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  result = 1;
-
-  err = pthread_create (&th, NULL, tf, (void *) (long int) key);
-  if (err != 0)
-    {
-      printf ("create failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  /* Wait for the thread to terminate.  */
-  err = pthread_join (th, NULL);
-  if (err != 0)
-    {
-      printf ("join failed: %s\n", strerror (err));
-      return 1;
-    }
-
-  if (result == 1)
-    puts ("destructor not called");
-  else if (result == 2)
-    puts ("destructor got passed a wrong value");
-  else if (result == 3)
-    puts ("setspecific in child failed");
-  else if (result != 0)
-    puts ("result != 0");
-
-  return result;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tsd3.c b/nptl/tst-tsd3.c
deleted file mode 100644
index 1b15432c8c..0000000000
--- a/nptl/tst-tsd3.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static pthread_key_t key1;
-static pthread_key_t key2;
-
-
-static int left;
-
-
-static void
-destr1 (void *arg)
-{
-  if (--left > 0)
-    {
-      puts ("set key2");
-
-      if (pthread_setspecific (key2, (void *) 1l) != 0)
-	{
-	  puts ("destr1: setspecific failed");
-	  exit (1);
-	}
-    }
-}
-
-
-static void
-destr2 (void *arg)
-{
-  if (--left > 0)
-    {
-      puts ("set key1");
-
-      if (pthread_setspecific (key1, (void *) 1l) != 0)
-	{
-	  puts ("destr2: setspecific failed");
-	  exit (1);
-	}
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  /* Let the destructors work.  */
-  left = 7;
-
-  if (pthread_setspecific (key1, (void *) 1l) != 0
-      || pthread_setspecific (key2, (void *) 1l) != 0)
-    {
-      puts ("tf: setspecific failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-static int
-do_test (void)
-{
-  /* Allocate two keys, both with destructors.  */
-  if (pthread_key_create (&key1, destr1) != 0
-      || pthread_key_create (&key2, destr2) != 0)
-    {
-      puts ("key_create failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (left != 0)
-    {
-      printf ("left == %d\n", left);
-      return 1;
-    }
-
-  if (pthread_getspecific (key1) != NULL)
-    {
-      puts ("key1 data != NULL");
-      return 1;
-    }
-  if (pthread_getspecific (key2) != NULL)
-    {
-      puts ("key2 data != NULL");
-      return 1;
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tsd4.c b/nptl/tst-tsd4.c
deleted file mode 100644
index 2423ab3dbc..0000000000
--- a/nptl/tst-tsd4.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <limits.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-
-
-static pthread_key_t key;
-
-
-static int rounds;
-
-
-static void
-destr (void *arg)
-{
-  ++rounds;
-
-  if (pthread_setspecific (key, (void *) 1l) != 0)
-    {
-      puts ("destr: setspecific failed");
-      exit (1);
-    }
-}
-
-
-static void *
-tf (void *arg)
-{
-  if (pthread_setspecific (key, (void *) 1l) != 0)
-    {
-      puts ("tf: setspecific failed");
-      exit (1);
-    }
-
-  return NULL;
-}
-
-
-/* This test check non-standard behavior.  The standard does not
-   require that the implementation has to stop calling TSD destructors
-   when they are set over and over again.  But NPTL does.  */
-static int
-do_test (void)
-{
-  /* Allocate two keys, both with destructors.  */
-  if (pthread_key_create (&key, destr) != 0)
-    {
-      puts ("key_create failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  if (pthread_join (th, NULL) != 0)
-    {
-      puts ("join failed");
-      return 1;
-    }
-
-  if (rounds < PTHREAD_DESTRUCTOR_ITERATIONS)
-    {
-      printf ("rounds == %d, PTHREAD_DESTRUCTOR_ITERATIONS = %d\n",
-	      rounds, PTHREAD_DESTRUCTOR_ITERATIONS);
-      return 1;
-    }
-
-  if (pthread_getspecific (key) != NULL)
-    {
-      puts ("key data != NULL");
-      return 1;
-    }
-
-  return 0;
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tsd5.c b/nptl/tst-tsd5.c
deleted file mode 100644
index 7eae4c38a3..0000000000
--- a/nptl/tst-tsd5.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2004.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-
-static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-
-
-static void
-cl (void *p)
-{
-  pthread_mutex_unlock (&m);
-}
-
-
-static void *
-tf (void *arg)
-{
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("2nd mutex_lock failed");
-      exit (1);
-    }
-
-  exit (0);
-}
-
-
-static int
-do_test (void)
-{
-  pthread_key_t k;
-  if (pthread_key_create (&k, cl) != 0)
-    {
-      puts ("key_create failed");
-      return 1;
-    }
-  if (pthread_setspecific (k, (void *) 1) != 0)
-    {
-      puts ("setspecific failed");
-      return 1;
-    }
-
-  if (pthread_mutex_lock (&m) != 0)
-    {
-      puts ("1st mutex_lock failed");
-      return 1;
-    }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, NULL) != 0)
-    {
-      puts ("create failed");
-      return 1;
-    }
-
-  pthread_exit (NULL);
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-tsd6.c b/nptl/tst-tsd6.c
deleted file mode 100644
index debb1dd367..0000000000
--- a/nptl/tst-tsd6.c
+++ /dev/null
@@ -1,89 +0,0 @@
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/wait.h>
-
-#define NKEYS 100
-static pthread_key_t keys[NKEYS];
-static pthread_barrier_t b;
-
-
-static void *
-tf (void *arg)
-{
-  void *res = NULL;
-  for (int i = 0; i < NKEYS; ++i)
-    {
-      void *p = pthread_getspecific (keys[i]);
-      pthread_setspecific (keys[i], (void *) 7);
-      if (p != NULL)
-	res = p;
-    }
-  if (arg != NULL)
-    {
-      pthread_barrier_wait (arg);
-      pthread_barrier_wait (arg);
-    }
-  return res;
-}
-
-
-static int
-do_test (void)
-{
-  pthread_barrier_init (&b, NULL, 2);
-
-  for (int i = 0; i < NKEYS; ++i)
-    if (pthread_key_create (&keys[i], NULL) != 0)
-      {
-	puts ("cannot create keys");
-	return 1;
-      }
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, &b) != 0)
-    {
-      puts ("cannot create thread in parent");
-      return 1;
-    }
-
-  pthread_barrier_wait (&b);
-
-  pid_t pid = fork ();
-  if (pid == 0)
-    {
-      if (pthread_create (&th, NULL, tf, NULL) != 0)
-	{
-	  puts ("cannot create thread in child");
-	  exit (1);
-	}
-
-      void *res;
-      pthread_join (th, &res);
-
-      exit (res != NULL);
-    }
-  else if (pid == -1)
-    {
-      puts ("cannot create child process");
-      return 1;
-    }
-
-  int s;
-  if (TEMP_FAILURE_RETRY (waitpid (pid, &s, 0)) != pid)
-    {
-      puts ("failing to wait for child process");
-      return 1;
-    }
-
-  pthread_barrier_wait (&b);
-  pthread_join (th, NULL);
-
-  return !WIFEXITED (s) ? 2 : WEXITSTATUS (s);
-}
-
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-typesizes.c b/nptl/tst-typesizes.c
deleted file mode 100644
index 78ed7738b6..0000000000
--- a/nptl/tst-typesizes.c
+++ /dev/null
@@ -1,95 +0,0 @@
-/* Copyright (C) 2005-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2005.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <stdio.h>
-#include <pthreadP.h>
-#include <semaphore.h>
-
-static const struct
-{
-  const char *name;
-  size_t expected;
-  size_t is;
-} types[] =
-  {
-#define T(t, c) \
-    { #t, c, sizeof (t) }
-    T (pthread_attr_t, __SIZEOF_PTHREAD_ATTR_T),
-    T (pthread_mutex_t, __SIZEOF_PTHREAD_MUTEX_T),
-    T (pthread_mutexattr_t, __SIZEOF_PTHREAD_MUTEXATTR_T),
-    T (pthread_cond_t, __SIZEOF_PTHREAD_COND_T),
-    T (pthread_condattr_t, __SIZEOF_PTHREAD_CONDATTR_T),
-    T (pthread_rwlock_t, __SIZEOF_PTHREAD_RWLOCK_T),
-    T (pthread_rwlockattr_t, __SIZEOF_PTHREAD_RWLOCKATTR_T),
-    T (pthread_barrier_t, __SIZEOF_PTHREAD_BARRIER_T),
-    T (pthread_barrierattr_t, __SIZEOF_PTHREAD_BARRIERATTR_T)
-  };
-
-static int
-do_test (void)
-{
-  int result = 0;
-
-#define TEST_TYPE(name) \
-  printf ("%s: ", #name);						      \
-  if (sizeof (name) != sizeof (((name *) 0)->__size))			      \
-    {									      \
-      printf ("expected %zu, is %zu\n",					      \
-	      sizeof (((name *) 0)->__size), sizeof (name));		      \
-      result = 1;							      \
-    }									      \
-  else									      \
-    puts ("OK")
-
-  TEST_TYPE (pthread_mutex_t);
-  TEST_TYPE (pthread_cond_t);
-  TEST_TYPE (pthread_rwlock_t);
-
-#define TEST_TYPE2(name, internal)					      \
-  printf ("%s: ", #name);						      \
-  if (sizeof (((name *) 0)->__size) < sizeof (internal))		      \
-    {									      \
-      printf ("expected %zu, is %zu\n",					      \
-	      sizeof (((name *) 0)->__size), sizeof (internal));	      \
-      result = 1;							      \
-    }									      \
-  else									      \
-    puts ("OK")
-
-  TEST_TYPE2 (pthread_attr_t, struct pthread_attr);
-  TEST_TYPE2 (pthread_mutexattr_t, struct pthread_mutexattr);
-  TEST_TYPE2 (pthread_condattr_t, struct pthread_condattr);
-  TEST_TYPE2 (pthread_rwlockattr_t, struct pthread_rwlockattr);
-  TEST_TYPE2 (pthread_barrier_t, struct pthread_barrier);
-  TEST_TYPE2 (pthread_barrierattr_t, struct pthread_barrierattr);
-  TEST_TYPE2 (sem_t, struct new_sem);
-  TEST_TYPE2 (sem_t, struct old_sem);
-
-  for (size_t i = 0; i < sizeof (types) / sizeof (types[0]); ++i)
-    if (types[i].expected != types[i].is)
-      {
-	printf ("%s: expected %zu, is %zu\n",
-		types[i].name, types[i].expected, types[i].is);
-	result = 1;
-      }
-
-  return result;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-umask1.c b/nptl/tst-umask1.c
deleted file mode 100644
index 074717f060..0000000000
--- a/nptl/tst-umask1.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <fcntl.h>
-#include <pthread.h>
-#include <stdbool.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/stat.h>
-
-
-static struct
-{
-  int (*fp) (const char *, mode_t);
-  const char *name;
-  bool is_fd;
-} fcts[] =
-{
-  { creat, "creat", true },
-  { mkdir, "mkdir", false },
-  { mkfifo, "mkfifo", false },
-};
-#define nfcts (sizeof (fcts) / sizeof (fcts[0]))
-
-
-static int
-work (const char *fname, int mask)
-{
-  int result = 0;
-  size_t i;
-  for (i = 0; i < nfcts; ++i)
-    {
-      remove (fname);
-      int fd = fcts[i].fp (fname, 0777);
-      if (fd == -1)
-	{
-	  printf ("cannot %s %s: %m\n", fcts[i].name, fname);
-	  exit (1);
-	}
-      if (fcts[i].is_fd)
-	close (fd);
-      struct stat64 st;
-      if (stat64 (fname, &st) == -1)
-	{
-	  printf ("cannot stat %s after %s: %m\n", fname, fcts[i].name);
-	  exit (1);
-	}
-
-      if ((st.st_mode & mask) != 0)
-	{
-	  printf ("mask not successful after %s: %x still set\n",
-		  fcts[i].name, (unsigned int) (st.st_mode & mask));
-	  result = 1;
-	}
-    }
-
-  return result;
-}
-
-
-static pthread_barrier_t bar;
-
-
-static void *
-tf (void *arg)
-{
-  pthread_barrier_wait (&bar);
-
-  int result = work (arg, 022);
-
-  pthread_barrier_wait (&bar);
-
-  pthread_barrier_wait (&bar);
-
-  return (work (arg, 0) | result) ? (void *) -1l : NULL;
-}
-
-
-static int
-do_test (const char *fname)
-{
-  int result = 0;
-
-  umask (0);
-  result |= work (fname, 0);
-
-  pthread_barrier_init (&bar, NULL, 2);
-
-  pthread_t th;
-  if (pthread_create (&th, NULL, tf, (void *) fname) != 0)
-    {
-      puts ("cannot create thread");
-      exit (1);
-    }
-
-  umask (022);
-  result |= work (fname, 022);
-
-  pthread_barrier_wait (&bar);
-
-  pthread_barrier_wait (&bar);
-
-  umask (0);
-
-  pthread_barrier_wait (&bar);
-
-  void *res;
-  if (pthread_join (th, &res) != 0)
-    {
-      puts ("join failed");
-      exit (1);
-    }
-
-  remove (fname);
-
-  return result || res != NULL;
-}
-
-#define TEST_FUNCTION do_test (argc < 2 ? "/tmp/tst-umask.tmp" : argv[1])
-#include "../test-skeleton.c"
diff --git a/nptl/tst-unload.c b/nptl/tst-unload.c
deleted file mode 100644
index bf13026e39..0000000000
--- a/nptl/tst-unload.c
+++ /dev/null
@@ -1,47 +0,0 @@
-/* Tests for non-unloading of libpthread.
-   Copyright (C) 2000-2017 Free Software Foundation, Inc.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2000.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <gnu/lib-names.h>
-
-static int
-do_test (void)
-{
-  void *p = dlopen (LIBPTHREAD_SO, RTLD_LAZY);
-
-  if (p == NULL)
-    {
-      puts ("failed to load " LIBPTHREAD_SO);
-      return 1;
-    }
-
-  if (dlclose (p) != 0)
-    {
-      puts ("dlclose (" LIBPTHREAD_SO ") failed");
-      return 1;
-    }
-
-  puts ("seems to work");
-
-  return 0;
-}
-
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-vfork1.c b/nptl/tst-vfork1.c
deleted file mode 100644
index f409ec49b3..0000000000
--- a/nptl/tst-vfork1.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <posix/tst-vfork1.c>
diff --git a/nptl/tst-vfork1x.c b/nptl/tst-vfork1x.c
deleted file mode 100644
index f409ec49b3..0000000000
--- a/nptl/tst-vfork1x.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <posix/tst-vfork1.c>
diff --git a/nptl/tst-vfork2.c b/nptl/tst-vfork2.c
deleted file mode 100644
index 5356e83115..0000000000
--- a/nptl/tst-vfork2.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <posix/tst-vfork2.c>
diff --git a/nptl/tst-vfork2x.c b/nptl/tst-vfork2x.c
deleted file mode 100644
index 5356e83115..0000000000
--- a/nptl/tst-vfork2x.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <posix/tst-vfork2.c>
diff --git a/nptl/unregister-atfork.c b/nptl/unregister-atfork.c
deleted file mode 100644
index 1eb11d60c6..0000000000
--- a/nptl/unregister-atfork.c
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <stdlib.h>
-#include <fork.h>
-#include <atomic.h>
-#include <futex-internal.h>
-
-
-void
-__unregister_atfork (void *dso_handle)
-{
-  /* Check whether there is any entry in the list which we have to
-     remove.  It is likely that this is not the case so don't bother
-     getting the lock.
-
-     We do not worry about other threads adding entries for this DSO
-     right this moment.  If this happens this is a race and we can do
-     whatever we please.  The program will crash anyway seen.  */
-  struct fork_handler *runp = __fork_handlers;
-  struct fork_handler *lastp = NULL;
-
-  while (runp != NULL)
-    if (runp->dso_handle == dso_handle)
-      break;
-    else
-      {
-	lastp = runp;
-	runp = runp->next;
-      }
-
-  if (runp == NULL)
-    /* Nothing to do.  */
-    return;
-
-  /* Get the lock to not conflict with additions or deletions.  Note
-     that there couldn't have been another thread deleting something.
-     The __unregister_atfork function is only called from the
-     dlclose() code which itself serializes the operations.  */
-  lll_lock (__fork_lock, LLL_PRIVATE);
-
-  /* We have to create a new list with all the entries we don't remove.  */
-  struct deleted_handler
-  {
-    struct fork_handler *handler;
-    struct deleted_handler *next;
-  } *deleted = NULL;
-
-  /* Remove the entries for the DSO which is unloaded from the list.
-     It's a single linked list so readers are.  */
-  do
-    {
-    again:
-      if (runp->dso_handle == dso_handle)
-	{
-	  if (lastp == NULL)
-	    {
-	      /* We have to use an atomic operation here because
-		 __linkin_atfork also uses one.  */
-	      if (catomic_compare_and_exchange_bool_acq (&__fork_handlers,
-							 runp->next, runp)
-		  != 0)
-		{
-		  runp = __fork_handlers;
-		  goto again;
-		}
-	    }
-	  else
-	    lastp->next = runp->next;
-
-	  /* We cannot overwrite the ->next element now.  Put the deleted
-	     entries in a separate list.  */
-	  struct deleted_handler *newp = alloca (sizeof (*newp));
-	  newp->handler = runp;
-	  newp->next = deleted;
-	  deleted = newp;
-	}
-      else
-	lastp = runp;
-
-      runp = runp->next;
-    }
-  while (runp != NULL);
-
-  /* Release the lock.  */
-  lll_unlock (__fork_lock, LLL_PRIVATE);
-
-  /* Walk the list of all entries which have to be deleted.  */
-  while (deleted != NULL)
-    {
-      /* We need to be informed by possible current users.  */
-      deleted->handler->need_signal = 1;
-      /* Make sure this gets written out first.  */
-      atomic_write_barrier ();
-
-      /* Decrement the reference counter.  If it does not reach zero
-	 wait for the last user.  */
-      atomic_decrement (&deleted->handler->refcntr);
-      unsigned int val;
-      while ((val = deleted->handler->refcntr) != 0)
-	futex_wait_simple (&deleted->handler->refcntr, val, FUTEX_PRIVATE);
-
-      deleted = deleted->next;
-    }
-}
diff --git a/nptl/unwind.c b/nptl/unwind.c
deleted file mode 100644
index db3108ff64..0000000000
--- a/nptl/unwind.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/* Copyright (C) 2003-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>
-   and Richard Henderson <rth@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <setjmp.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include "pthreadP.h"
-#include <jmpbuf-unwind.h>
-
-#ifdef _STACK_GROWS_DOWN
-# define FRAME_LEFT(frame, other, adj) \
-  ((uintptr_t) frame - adj >= (uintptr_t) other - adj)
-#elif _STACK_GROWS_UP
-# define FRAME_LEFT(frame, other, adj) \
-  ((uintptr_t) frame - adj <= (uintptr_t) other - adj)
-#else
-# error "Define either _STACK_GROWS_DOWN or _STACK_GROWS_UP"
-#endif
-
-static _Unwind_Reason_Code
-unwind_stop (int version, _Unwind_Action actions,
-	     _Unwind_Exception_Class exc_class,
-	     struct _Unwind_Exception *exc_obj,
-	     struct _Unwind_Context *context, void *stop_parameter)
-{
-  struct pthread_unwind_buf *buf = stop_parameter;
-  struct pthread *self = THREAD_SELF;
-  struct _pthread_cleanup_buffer *curp = THREAD_GETMEM (self, cleanup);
-  int do_longjump = 0;
-
-  /* Adjust all pointers used in comparisons, so that top of thread's
-     stack is at the top of address space.  Without that, things break
-     if stack is allocated above the main stack.  */
-  uintptr_t adj = (uintptr_t) self->stackblock + self->stackblock_size;
-
-  /* Do longjmp if we're at "end of stack", aka "end of unwind data".
-     We assume there are only C frame without unwind data in between
-     here and the jmp_buf target.  Otherwise simply note that the CFA
-     of a function is NOT within it's stack frame; it's the SP of the
-     previous frame.  */
-  if ((actions & _UA_END_OF_STACK)
-      || ! _JMPBUF_CFA_UNWINDS_ADJ (buf->cancel_jmp_buf[0].jmp_buf, context,
-				    adj))
-    do_longjump = 1;
-
-  if (__glibc_unlikely (curp != NULL))
-    {
-      /* Handle the compatibility stuff.  Execute all handlers
-	 registered with the old method which would be unwound by this
-	 step.  */
-      struct _pthread_cleanup_buffer *oldp = buf->priv.data.cleanup;
-      void *cfa = (void *) (_Unwind_Ptr) _Unwind_GetCFA (context);
-
-      if (curp != oldp && (do_longjump || FRAME_LEFT (cfa, curp, adj)))
-	{
-	  do
-	    {
-	      /* Pointer to the next element.  */
-	      struct _pthread_cleanup_buffer *nextp = curp->__prev;
-
-	      /* Call the handler.  */
-	      curp->__routine (curp->__arg);
-
-	      /* To the next.  */
-	      curp = nextp;
-	    }
-	  while (curp != oldp
-		 && (do_longjump || FRAME_LEFT (cfa, curp, adj)));
-
-	  /* Mark the current element as handled.  */
-	  THREAD_SETMEM (self, cleanup, curp);
-	}
-    }
-
-  if (do_longjump)
-    __libc_unwind_longjmp ((struct __jmp_buf_tag *) buf->cancel_jmp_buf, 1);
-
-  return _URC_NO_REASON;
-}
-
-
-static void
-unwind_cleanup (_Unwind_Reason_Code reason, struct _Unwind_Exception *exc)
-{
-  /* When we get here a C++ catch block didn't rethrow the object.  We
-     cannot handle this case and therefore abort.  */
-  __libc_fatal ("FATAL: exception not rethrown\n");
-}
-
-
-void
-__cleanup_fct_attribute __attribute ((noreturn))
-__pthread_unwind (__pthread_unwind_buf_t *buf)
-{
-  struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
-  struct pthread *self = THREAD_SELF;
-
-  /* This is not a catchable exception, so don't provide any details about
-     the exception type.  We do need to initialize the field though.  */
-  THREAD_SETMEM (self, exc.exception_class, 0);
-  THREAD_SETMEM (self, exc.exception_cleanup, &unwind_cleanup);
-
-  _Unwind_ForcedUnwind (&self->exc, unwind_stop, ibuf);
-  /* NOTREACHED */
-
-  /* We better do not get here.  */
-  abort ();
-}
-hidden_def (__pthread_unwind)
-
-
-void
-__cleanup_fct_attribute __attribute ((noreturn))
-__pthread_unwind_next (__pthread_unwind_buf_t *buf)
-{
-  struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
-
-  __pthread_unwind ((__pthread_unwind_buf_t *) ibuf->priv.data.prev);
-}
-hidden_def (__pthread_unwind_next)
diff --git a/nptl/unwindbuf.sym b/nptl/unwindbuf.sym
deleted file mode 100644
index 8044b4078c..0000000000
--- a/nptl/unwindbuf.sym
+++ /dev/null
@@ -1,7 +0,0 @@
-#include <pthread.h>
-#include <stddef.h>
-
---
-
-UNWINDBUFSIZE	sizeof (__pthread_unwind_buf_t)
-UWJMPBUF	offsetof (__pthread_unwind_buf_t, __cancel_jmp_buf)
diff --git a/nptl/vars.c b/nptl/vars.c
deleted file mode 100644
index 198f463404..0000000000
--- a/nptl/vars.c
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Copyright (C) 2004-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-#include <stdlib.h>
-#include <tls.h>
-#include <unistd.h>
-
-/* Default thread attributes for the case when the user does not
-   provide any.  */
-struct pthread_attr __default_pthread_attr attribute_hidden;
-
-/* Mutex protecting __default_pthread_attr.  */
-int __default_pthread_attr_lock = LLL_LOCK_INITIALIZER;
-
-/* Flag whether the machine is SMP or not.  */
-int __is_smp attribute_hidden;
-
-#ifndef TLS_MULTIPLE_THREADS_IN_TCB
-/* Variable set to a nonzero value either if more than one thread runs or ran,
-   or if a single-threaded process is trying to cancel itself.  See
-   nptl/descr.h for more context on the single-threaded process case.  */
-int __pthread_multiple_threads attribute_hidden;
-#endif
-
-/* Table of the key information.  */
-struct pthread_key_struct __pthread_keys[PTHREAD_KEYS_MAX]
-  __attribute__ ((nocommon));
-hidden_data_def (__pthread_keys)
diff --git a/nptl/version.c b/nptl/version.c
deleted file mode 100644
index d9513fb84f..0000000000
--- a/nptl/version.c
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Entry point for libpthread DSO.
-   Copyright (C) 2002-2017 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <unistd.h>
-#include <sysdep.h>
-
-
-static const char banner[] =
-#include "banner.h"
-"Copyright (C) 2017 Free Software Foundation, Inc.\n\
-This is free software; see the source for copying conditions.\n\
-There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A\n\
-PARTICULAR PURPOSE.\n"
-"Forced unwind support included.\n"
-;
-
-
-/* This is made the e_entry of libpthread.so by LDFLAGS-pthread.so.  */
-__attribute__ ((noreturn))
-void
-__nptl_main (void)
-{
-  __libc_write (STDOUT_FILENO, banner, sizeof banner - 1);
-  _exit (0);
-}