about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2020-02-09 19:17:51 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2020-02-09 19:24:44 +0000
commitd8f1f2d9ab2144b589fdac3e381cd86e71871e43 (patch)
tree586832da5c77a4635006cfecb4515e23956ddaa6 /nptl
parentfaae4b2bdd692d929037c80c3315f716f02f3b00 (diff)
downloadglibc-d8f1f2d9ab2144b589fdac3e381cd86e71871e43.tar.gz
glibc-d8f1f2d9ab2144b589fdac3e381cd86e71871e43.tar.xz
glibc-d8f1f2d9ab2144b589fdac3e381cd86e71871e43.zip
pthread: Move most cond tests from nptl to sysdeps/pthread
So they can be checked with htl too.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/Makefile11
-rw-r--r--nptl/tst-cond-except.c109
-rw-r--r--nptl/tst-cond1.c96
-rw-r--r--nptl/tst-cond10.c172
-rw-r--r--nptl/tst-cond11-static.c1
-rw-r--r--nptl/tst-cond11.c122
-rw-r--r--nptl/tst-cond12.c195
-rw-r--r--nptl/tst-cond13.c2
-rw-r--r--nptl/tst-cond14.c116
-rw-r--r--nptl/tst-cond15.c158
-rw-r--r--nptl/tst-cond16.c106
-rw-r--r--nptl/tst-cond17.c2
-rw-r--r--nptl/tst-cond18.c119
-rw-r--r--nptl/tst-cond19.c75
-rw-r--r--nptl/tst-cond2.c162
-rw-r--r--nptl/tst-cond22.c162
-rw-r--r--nptl/tst-cond23.c183
-rw-r--r--nptl/tst-cond24.c248
-rw-r--r--nptl/tst-cond25.c288
-rw-r--r--nptl/tst-cond26.c77
-rw-r--r--nptl/tst-cond27.c66
-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
29 files changed, 3 insertions, 3772 deletions
diff --git a/nptl/Makefile b/nptl/Makefile
index 51a0be008b..8fadd1d025 100644
--- a/nptl/Makefile
+++ b/nptl/Makefile
@@ -239,12 +239,7 @@ tests = tst-attr2 tst-attr3 tst-default-attr \
 	tst-mutex7robust tst-mutexpi1 tst-mutexpi2 tst-mutexpi3 tst-mutexpi4 \
 	tst-mutexpi5 tst-mutexpi5a tst-mutexpi6 tst-mutexpi7 tst-mutexpi7a \
 	tst-mutexpi9 \
-	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-cond26 tst-cond27 \
-	tst-cond-except \
+	tst-cond11 tst-cond20 tst-cond21 tst-cond22 tst-cond26 tst-cond27 \
 	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 \
@@ -450,12 +445,12 @@ 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-cancel21-static tst-cancel24-static \
 		tst-mutex8-static tst-mutexpi8-static tst-sem11-static \
 		tst-sem12-static tst-cond11-static
 
 tests += tst-cancel21-static tst-cancel24-static \
-	 tst-cond8-static tst-cond11-static
+	 tst-cond11-static
 tests-internal += tst-sem11-static tst-sem12-static tst-stackguard1-static
 xtests-static += tst-setuid1-static
 
diff --git a/nptl/tst-cond-except.c b/nptl/tst-cond-except.c
deleted file mode 100644
index 8526e241e6..0000000000
--- a/nptl/tst-cond-except.c
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Verify that exception table for pthread_cond_wait is correct.
-   Copyright (C) 2012-2020 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
-   <https://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 ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond1.c b/nptl/tst-cond1.c
deleted file mode 100644
index 47c68d443b..0000000000
--- a/nptl/tst-cond1.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/* Copyright (C) 2002-2020 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
-   <https://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 b89c452467..0000000000
--- a/nptl/tst-cond10.c
+++ /dev/null
@@ -1,172 +0,0 @@
-/* Copyright (C) 2003-2020 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
-   <https://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-static.c b/nptl/tst-cond11-static.c
deleted file mode 100644
index 9bccb8ec8b..0000000000
--- a/nptl/tst-cond11-static.c
+++ /dev/null
@@ -1 +0,0 @@
-#include "tst-cond11.c"
diff --git a/nptl/tst-cond11.c b/nptl/tst-cond11.c
deleted file mode 100644
index 209e2f0c8d..0000000000
--- a/nptl/tst-cond11.c
+++ /dev/null
@@ -1,122 +0,0 @@
-/* Copyright (C) 2003-2020 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
-   <https://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <support/check.h>
-#include <support/test-driver.h>
-#include <support/timespec.h>
-#include <support/xthread.h>
-#include <support/xtime.h>
-
-/* A bogus clock value that tells run_test to use pthread_cond_timedwait
-   rather than pthread_condclockwait.  */
-#define CLOCK_USE_ATTR_CLOCK (-1)
-
-#if defined _POSIX_CLOCK_SELECTION && _POSIX_CLOCK_SELECTION >= 0
-static int
-run_test (clockid_t attr_clock, clockid_t wait_clock)
-{
-  pthread_condattr_t condattr;
-  pthread_cond_t cond;
-  pthread_mutexattr_t mutattr;
-  pthread_mutex_t mut;
-
-  verbose_printf ("attr_clock = %d\n", (int) attr_clock);
-
-  TEST_COMPARE (pthread_condattr_init (&condattr), 0);
-  TEST_COMPARE (pthread_condattr_setclock (&condattr, attr_clock), 0);
-
-  clockid_t attr_clock_read;
-  TEST_COMPARE (pthread_condattr_getclock (&condattr, &attr_clock_read), 0);
-  TEST_COMPARE (attr_clock, attr_clock_read);
-
-  TEST_COMPARE (pthread_cond_init (&cond, &condattr), 0);
-  TEST_COMPARE (pthread_condattr_destroy (&condattr), 0);
-
-  xpthread_mutexattr_init (&mutattr);
-  xpthread_mutexattr_settype (&mutattr, PTHREAD_MUTEX_ERRORCHECK);
-  xpthread_mutex_init (&mut, &mutattr);
-  xpthread_mutexattr_destroy (&mutattr);
-
-  xpthread_mutex_lock (&mut);
-  TEST_COMPARE (pthread_mutex_lock (&mut), EDEADLK);
-
-  struct timespec ts_timeout;
-  xclock_gettime (wait_clock == CLOCK_USE_ATTR_CLOCK ? attr_clock : wait_clock,
-                  &ts_timeout);
-
-  /* Wait one second.  */
-  ++ts_timeout.tv_sec;
-
-  if (wait_clock == CLOCK_USE_ATTR_CLOCK) {
-    TEST_COMPARE (pthread_cond_timedwait (&cond, &mut, &ts_timeout), ETIMEDOUT);
-    TEST_TIMESPEC_BEFORE_NOW (ts_timeout, attr_clock);
-  } else {
-    TEST_COMPARE (pthread_cond_clockwait (&cond, &mut, wait_clock, &ts_timeout),
-                  ETIMEDOUT);
-    TEST_TIMESPEC_BEFORE_NOW (ts_timeout, wait_clock);
-  }
-
-  xpthread_mutex_unlock (&mut);
-  xpthread_mutex_destroy (&mut);
-  TEST_COMPARE (pthread_cond_destroy (&cond), 0);
-
-  return 0;
-}
-#endif
-
-
-static int
-do_test (void)
-{
-#if !defined _POSIX_CLOCK_SELECTION || _POSIX_CLOCK_SELECTION == -1
-
-  FAIL_UNSUPPORTED ("_POSIX_CLOCK_SELECTION not supported, test skipped");
-
-#else
-
-  run_test (CLOCK_REALTIME, CLOCK_USE_ATTR_CLOCK);
-
-# 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)
-      FAIL_RET ("sysconf (_SC_MONOTONIC_CLOCK) must not return 0");
-  else
-    {
-#  endif
-      run_test (CLOCK_MONOTONIC, CLOCK_USE_ATTR_CLOCK);
-      run_test (CLOCK_REALTIME, CLOCK_MONOTONIC);
-      run_test (CLOCK_MONOTONIC, CLOCK_MONOTONIC);
-      run_test (CLOCK_MONOTONIC, CLOCK_REALTIME);
-    }
-# else
-  puts ("_POSIX_MONOTONIC_CLOCK not defined");
-# endif
-
-  return 0;
-#endif
-}
-
-#include <support/test-driver.c>
diff --git a/nptl/tst-cond12.c b/nptl/tst-cond12.c
deleted file mode 100644
index 474bedc39c..0000000000
--- a/nptl/tst-cond12.c
+++ /dev/null
@@ -1,195 +0,0 @@
-/* Copyright (C) 2003-2020 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
-   <https://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 e2d897ac3b..0000000000
--- a/nptl/tst-cond14.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/* Copyright (C) 2004-2020 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
-   <https://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 ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond15.c b/nptl/tst-cond15.c
deleted file mode 100644
index fefab95996..0000000000
--- a/nptl/tst-cond15.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Copyright (C) 2004-2020 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
-   <https://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 ()
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond16.c b/nptl/tst-cond16.c
deleted file mode 100644
index 61e3cbe980..0000000000
--- a/nptl/tst-cond16.c
+++ /dev/null
@@ -1,106 +0,0 @@
-/* Copyright (C) 2004-2020 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
-   <https://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;
-enum { count = 8 };		/* Number of worker threads.  */
-
-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;
-    }
-
-  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 f984c3ce88..0000000000
--- a/nptl/tst-cond18.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Copyright (C) 2004-2020 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
-   <https://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, spins, nn;
-enum { count = 8 };		/* Number of worker threads.  */
-
-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;
-    }
-
-  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 e6c1caeeea..0000000000
--- a/nptl/tst-cond19.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* Copyright (C) 2004-2020 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
-   <https://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 6752cca05f..0000000000
--- a/nptl/tst-cond2.c
+++ /dev/null
@@ -1,162 +0,0 @@
-/* Copyright (C) 2002-2020 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
-   <https://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-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 7ffe2ec1a9..0000000000
--- a/nptl/tst-cond23.c
+++ /dev/null
@@ -1,183 +0,0 @@
-/* Copyright (C) 2008-2020 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
-   <https://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 a2896f32cc..0000000000
--- a/nptl/tst-cond24.c
+++ /dev/null
@@ -1,248 +0,0 @@
-/* Verify that condition variables synchronized by PI mutexes don't hang.
-   Copyright (C) 2012-2020 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
-   <https://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 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 72954f893c..0000000000
--- a/nptl/tst-cond25.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/* Verify that condition variables synchronized by PI mutexes don't hang on
-   on cancellation.
-   Copyright (C) 2012-2020 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
-   <https://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);
-}
-
-#include "../test-skeleton.c"
diff --git a/nptl/tst-cond26.c b/nptl/tst-cond26.c
deleted file mode 100644
index e647da00c2..0000000000
--- a/nptl/tst-cond26.c
+++ /dev/null
@@ -1,77 +0,0 @@
-/* Test unsupported/bad clocks passed to pthread_cond_clockwait.
-
-   Copyright (C) 2019-2020 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
-   <https://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <support/check.h>
-#include <support/timespec.h>
-#include <support/xthread.h>
-
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-static pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
-
-#define NOT_A_VALID_CLOCK 123456
-
-static int
-do_test (void)
-{
-  xpthread_mutex_lock (&mut);
-
-  const struct timespec ts = make_timespec (0, 0);
-
-  /* These clocks are meaningless to sem_clockwait.  */
-#if defined(CLOCK_PROCESS_CPUTIME_ID)
-  TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
-                                        CLOCK_PROCESS_CPUTIME_ID, &ts), EINVAL);
-#endif
-#if defined(CLOCK_THREAD_CPUTIME_ID)
-  TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
-                                        CLOCK_THREAD_CPUTIME_ID, &ts), EINVAL);
-#endif
-
-  /* These clocks might be meaningful, but are currently unsupported
-     by pthread_cond_clockwait.  */
-#if defined(CLOCK_REALTIME_COARSE)
-  TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
-                                        CLOCK_REALTIME_COARSE, &ts), EINVAL);
-#endif
-#if defined(CLOCK_MONOTONIC_RAW)
-  TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
-                                        CLOCK_MONOTONIC_RAW, &ts), EINVAL);
-#endif
-#if defined(CLOCK_MONOTONIC_COARSE)
-  TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
-                                        CLOCK_MONOTONIC_COARSE, &ts), EINVAL);
-#endif
-#if defined(CLOCK_BOOTTIME)
-  TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
-                                        CLOCK_BOOTTIME, &ts), EINVAL);
-#endif
-
-  /* This is a completely invalid clock.  */
-  TEST_COMPARE (pthread_cond_clockwait (&cond, &mut,
-                                        NOT_A_VALID_CLOCK, &ts), EINVAL);
-
-  return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/nptl/tst-cond27.c b/nptl/tst-cond27.c
deleted file mode 100644
index c8142abf9e..0000000000
--- a/nptl/tst-cond27.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/* Test pthread_cond_clockwait timeout.
-
-   Copyright (C) 2019-2020 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
-   <https://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>
-#include <support/check.h>
-#include <support/timespec.h>
-#include <support/xthread.h>
-
-
-static pthread_mutex_t mut = PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP;
-static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
-
-
-static int
-do_test_clock (clockid_t clockid)
-{
-  /* Get the mutex.  */
-  xpthread_mutex_lock (&mut);
-
-  /* Waiting for the condition will fail.  But we want the timeout here.  */
-  const struct timespec ts_now = xclock_now (clockid);
-  const struct timespec ts_timeout =
-    timespec_add (ts_now, make_timespec (0, 500000000));
-
-  /* In theory pthread_cond_clockwait could return zero here due to
-     spurious wakeup. However that can't happen without a signal or an
-     additional waiter.  */
-  TEST_COMPARE (pthread_cond_clockwait (&cond, &mut, clockid, &ts_timeout),
-                ETIMEDOUT);
-
-  xpthread_mutex_unlock (&mut);
-
-  return 0;
-}
-
-static int
-do_test (void)
-{
-  do_test_clock (CLOCK_MONOTONIC);
-  do_test_clock (CLOCK_REALTIME);
-  return 0;
-}
-
-#include <support/test-driver.c>
diff --git a/nptl/tst-cond3.c b/nptl/tst-cond3.c
deleted file mode 100644
index fb4209d0bb..0000000000
--- a/nptl/tst-cond3.c
+++ /dev/null
@@ -1,111 +0,0 @@
-/* Copyright (C) 2002-2020 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
-   <https://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 4d4bad3a76..0000000000
--- a/nptl/tst-cond4.c
+++ /dev/null
@@ -1,263 +0,0 @@
-/* Copyright (C) 2002-2020 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
-   <https://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 e2ea541c46..0000000000
--- a/nptl/tst-cond5.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/* Copyright (C) 2002-2020 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
-   <https://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 0c9426d0d7..0000000000
--- a/nptl/tst-cond6.c
+++ /dev/null
@@ -1,233 +0,0 @@
-/* Copyright (C) 2002-2020 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
-   <https://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 48502bd720..0000000000
--- a/nptl/tst-cond7.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Copyright (C) 2003-2020 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
-   <https://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 61f7583844..0000000000
--- a/nptl/tst-cond8.c
+++ /dev/null
@@ -1,276 +0,0 @@
-/* Copyright (C) 2003-2020 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
-   <https://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 e83870d393..0000000000
--- a/nptl/tst-cond9.c
+++ /dev/null
@@ -1,149 +0,0 @@
-/* Copyright (C) 2003-2020 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
-   <https://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"