about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
Diffstat (limited to 'nptl')
-rw-r--r--nptl/createthread.c (renamed from nptl/sysdeps/pthread/createthread.c)0
-rw-r--r--nptl/pt-longjmp.c (renamed from nptl/sysdeps/pthread/pt-longjmp.c)0
-rw-r--r--nptl/sysdeps/pthread/Makefile41
-rw-r--r--nptl/sysdeps/pthread/Subdirs2
-rw-r--r--nptl/sysdeps/pthread/aio_misc.h74
-rw-r--r--nptl/sysdeps/pthread/allocalim.h29
-rw-r--r--nptl/sysdeps/pthread/bits/libc-lock.h187
-rw-r--r--nptl/sysdeps/pthread/bits/libc-lockP.h424
-rw-r--r--nptl/sysdeps/pthread/bits/sigthread.h43
-rw-r--r--nptl/sysdeps/pthread/bits/stdio-lock.h110
-rw-r--r--nptl/sysdeps/pthread/configure89
-rw-r--r--nptl/sysdeps/pthread/configure.ac49
-rw-r--r--nptl/sysdeps/pthread/flockfile.c32
-rw-r--r--nptl/sysdeps/pthread/ftrylockfile.c32
-rw-r--r--nptl/sysdeps/pthread/funlockfile.c32
-rw-r--r--nptl/sysdeps/pthread/gai_misc.h121
-rw-r--r--nptl/sysdeps/pthread/librt-cancellation.c24
-rw-r--r--nptl/sysdeps/pthread/list.h117
-rw-r--r--nptl/sysdeps/pthread/malloc-machine.h73
-rw-r--r--nptl/sysdeps/pthread/posix-timer.h196
-rw-r--r--nptl/sysdeps/pthread/pthread-functions.h117
-rw-r--r--nptl/sysdeps/pthread/pthread.h1163
-rw-r--r--nptl/sysdeps/pthread/pthread_sigmask.c57
-rw-r--r--nptl/sysdeps/pthread/setxid.h62
-rw-r--r--nptl/sysdeps/pthread/sigfillset.c20
-rw-r--r--nptl/sysdeps/pthread/tcb-offsets.h1
-rw-r--r--nptl/sysdeps/pthread/timer_create.c169
-rw-r--r--nptl/sysdeps/pthread/timer_delete.c69
-rw-r--r--nptl/sysdeps/pthread/timer_getoverr.c44
-rw-r--r--nptl/sysdeps/pthread/timer_gettime.c76
-rw-r--r--nptl/sysdeps/pthread/timer_routines.c577
-rw-r--r--nptl/sysdeps/pthread/timer_settime.c136
-rw-r--r--nptl/sysdeps/pthread/tst-mqueue8x.c1
-rw-r--r--nptl/sysdeps/pthread/tst-timer.c159
-rw-r--r--nptl/sysdeps/pthread/unwind-forcedunwind.c151
-rw-r--r--nptl/sysdeps/unix/sysv/linux/Implies1
-rw-r--r--nptl/sysdeps/unix/sysv/linux/createthread.c2
37 files changed, 1 insertions, 4479 deletions
diff --git a/nptl/sysdeps/pthread/createthread.c b/nptl/createthread.c
index 28c1ea67d3..28c1ea67d3 100644
--- a/nptl/sysdeps/pthread/createthread.c
+++ b/nptl/createthread.c
diff --git a/nptl/sysdeps/pthread/pt-longjmp.c b/nptl/pt-longjmp.c
index 09b3c7eb86..09b3c7eb86 100644
--- a/nptl/sysdeps/pthread/pt-longjmp.c
+++ b/nptl/pt-longjmp.c
diff --git a/nptl/sysdeps/pthread/Makefile b/nptl/sysdeps/pthread/Makefile
deleted file mode 100644
index 60d525e9d7..0000000000
--- a/nptl/sysdeps/pthread/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (C) 2002-2014 Free Software Foundation, Inc.
-# This file is part of the GNU C Library.
-# Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-# The GNU C Library is free software; you can redistribute it and/or
-# modify it under the terms of the GNU Lesser General Public
-# License as published by the Free Software Foundation; either
-# version 2.1 of the License, or (at your option) any later version.
-
-# The GNU C Library is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# Lesser General Public License for more details.
-
-# You should have received a copy of the GNU Lesser General Public
-# License along with the GNU C Library; if not, see
-# <http://www.gnu.org/licenses/>.
-
-ifeq ($(subdir),nptl)
-libpthread-sysdep_routines += errno-loc
-endif
-
-ifeq ($(subdir),rt)
-librt-sysdep_routines += timer_routines librt-cancellation
-CFLAGS-librt-cancellation.c += -fexceptions -fasynchronous-unwind-tables
-
-ifeq (yes,$(build-shared))
-$(objpfx)tst-timer: $(objpfx)librt.so $(shared-thread-library)
-else
-$(objpfx)tst-timer: $(objpfx)librt.a $(static-thread-library)
-endif
-
-ifeq ($(have-forced-unwind),yes)
-tests += tst-mqueue8x
-CFLAGS-tst-mqueue8x.c += -fexceptions
-endif
-endif
-
-ifeq ($(subdir),posix)
-CFLAGS-confstr.c += -DLIBPTHREAD_VERSION='"NPTL $(version)"'
-endif
diff --git a/nptl/sysdeps/pthread/Subdirs b/nptl/sysdeps/pthread/Subdirs
deleted file mode 100644
index 36266c1e69..0000000000
--- a/nptl/sysdeps/pthread/Subdirs
+++ /dev/null
@@ -1,2 +0,0 @@
-nptl
-nptl_db
diff --git a/nptl/sysdeps/pthread/aio_misc.h b/nptl/sysdeps/pthread/aio_misc.h
deleted file mode 100644
index ac3488c57e..0000000000
--- a/nptl/sysdeps/pthread/aio_misc.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright (C) 2006-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* We define a special synchronization primitive for AIO.  POSIX
-   conditional variables would be ideal but the pthread_cond_*wait
-   operations do not return on EINTR.  This is a requirement for
-   correct aio_suspend and lio_listio implementations.  */
-
-#include <assert.h>
-#include <pthreadP.h>
-#include <lowlevellock.h>
-
-#define DONT_NEED_AIO_MISC_COND	1
-
-#define AIO_MISC_NOTIFY(waitlist) \
-  do {									      \
-    if (*waitlist->counterp > 0 && --*waitlist->counterp == 0)		      \
-      lll_futex_wake (waitlist->counterp, 1, LLL_PRIVATE);		      \
-  } while (0)
-
-#define AIO_MISC_WAIT(result, futex, timeout, cancel)			      \
-  do {									      \
-    volatile int *futexaddr = &futex;					      \
-    int oldval = futex;							      \
-									      \
-    if (oldval != 0)							      \
-      {									      \
-	pthread_mutex_unlock (&__aio_requests_mutex);			      \
-									      \
-	int oldtype;							      \
-	if (cancel)							      \
-	  oldtype = LIBC_CANCEL_ASYNC ();				      \
-									      \
-	int status;							      \
-	do								      \
-	  {								      \
-	    status = lll_futex_timed_wait (futexaddr, oldval, timeout,	      \
-					   LLL_PRIVATE);		      \
-	    if (status != -EWOULDBLOCK)					      \
-	      break;							      \
-									      \
-	    oldval = *futexaddr;					      \
-	  }								      \
-	while (oldval != 0);						      \
-									      \
-	if (cancel)							      \
-	  LIBC_CANCEL_RESET (oldtype);					      \
-									      \
-	if (status == -EINTR)						      \
-	  result = EINTR;						      \
-	else if (status == -ETIMEDOUT)					      \
-	  result = EAGAIN;						      \
-	else								      \
-	  assert (status == 0 || status == -EWOULDBLOCK);		      \
-									      \
-	pthread_mutex_lock (&__aio_requests_mutex);			      \
-      }									      \
-  } while (0)
-
-#include_next <aio_misc.h>
diff --git a/nptl/sysdeps/pthread/allocalim.h b/nptl/sysdeps/pthread/allocalim.h
deleted file mode 100644
index 407d4007e7..0000000000
--- a/nptl/sysdeps/pthread/allocalim.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Determine whether block of given size can be allocated on the stack or not.
-   Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <alloca.h>
-#include <limits.h>
-
-
-extern __always_inline
-int
-__libc_use_alloca (size_t size)
-{
-  return (__builtin_expect (size <= PTHREAD_STACK_MIN / 4, 1)
-	  || __builtin_expect (__libc_alloca_cutoff (size), 1));
-}
diff --git a/nptl/sysdeps/pthread/bits/libc-lock.h b/nptl/sysdeps/pthread/bits/libc-lock.h
deleted file mode 100644
index 532cf2c701..0000000000
--- a/nptl/sysdeps/pthread/bits/libc-lock.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/* libc-internal interface for mutex locks.  NPTL version.
-   Copyright (C) 1996-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_LIBC_LOCK_H
-#define _BITS_LIBC_LOCK_H 1
-
-#include <pthread.h>
-#define __need_NULL
-#include <stddef.h>
-
-
-/* Mutex type.  */
-#if defined _LIBC || defined _IO_MTSAFE_IO
-# if (defined NOT_IN_libc && !defined IS_IN_libpthread) || !defined _LIBC
-typedef struct { pthread_mutex_t mutex; } __libc_lock_recursive_t;
-# else
-typedef struct { int lock; int cnt; void *owner; } __libc_lock_recursive_t;
-# endif
-#else
-typedef struct __libc_lock_recursive_opaque__ __libc_lock_recursive_t;
-#endif
-
-/* Define a lock variable NAME with storage class CLASS.  The lock must be
-   initialized with __libc_lock_init before it can be used (or define it
-   with __libc_lock_define_initialized, below).  Use `extern' for CLASS to
-   declare a lock defined in another module.  In public structure
-   definitions you must use a pointer to the lock structure (i.e., NAME
-   begins with a `*'), because its storage size will not be known outside
-   of libc.  */
-#define __libc_lock_define_recursive(CLASS,NAME) \
-  CLASS __libc_lock_recursive_t NAME;
-
-/* Define an initialized recursive lock variable NAME with storage
-   class CLASS.  */
-#if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)
-# define __libc_lock_define_initialized_recursive(CLASS, NAME) \
-  CLASS __libc_lock_recursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER;
-# define _LIBC_LOCK_RECURSIVE_INITIALIZER \
-  { LLL_LOCK_INITIALIZER, 0, NULL }
-#else
-# define __libc_lock_define_initialized_recursive(CLASS,NAME) \
-  CLASS __libc_lock_recursive_t NAME = _LIBC_LOCK_RECURSIVE_INITIALIZER;
-# define _LIBC_LOCK_RECURSIVE_INITIALIZER \
-  {PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
-#endif
-
-/* Initialize a recursive mutex.  */
-#if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)
-# define __libc_lock_init_recursive(NAME) \
-  ((NAME) = (__libc_lock_recursive_t) _LIBC_LOCK_RECURSIVE_INITIALIZER, 0)
-#else
-# define __libc_lock_init_recursive(NAME) \
-  do {									      \
-    if (__pthread_mutex_init != NULL)					      \
-      {									      \
-	pthread_mutexattr_t __attr;					      \
-	__pthread_mutexattr_init (&__attr);				      \
-	__pthread_mutexattr_settype (&__attr, PTHREAD_MUTEX_RECURSIVE_NP);    \
-	__pthread_mutex_init (&(NAME).mutex, &__attr);			      \
-	__pthread_mutexattr_destroy (&__attr);				      \
-      }									      \
-  } while (0)
-#endif
-
-/* Finalize recursive named lock.  */
-#if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)
-# define __libc_lock_fini_recursive(NAME) ((void) 0)
-#else
-# define __libc_lock_fini_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_destroy, (&(NAME).mutex), 0)
-#endif
-
-/* Lock the recursive named lock variable.  */
-#if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)
-# define __libc_lock_lock_recursive(NAME) \
-  do {									      \
-    void *self = THREAD_SELF;						      \
-    if ((NAME).owner != self)						      \
-      {									      \
-	lll_lock ((NAME).lock, LLL_PRIVATE);				      \
-	(NAME).owner = self;						      \
-      }									      \
-    ++(NAME).cnt;							      \
-  } while (0)
-#else
-# define __libc_lock_lock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0)
-#endif
-
-/* Try to lock the recursive named lock variable.  */
-#if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)
-# define __libc_lock_trylock_recursive(NAME) \
-  ({									      \
-    int result = 0;							      \
-    void *self = THREAD_SELF;						      \
-    if ((NAME).owner != self)						      \
-      {									      \
-	if (lll_trylock ((NAME).lock) == 0)				      \
-	  {								      \
-	    (NAME).owner = self;					      \
-	    (NAME).cnt = 1;						      \
-	  }								      \
-	else								      \
-	  result = EBUSY;						      \
-      }									      \
-    else								      \
-      ++(NAME).cnt;							      \
-    result;								      \
-  })
-#else
-# define __libc_lock_trylock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_trylock, (&(NAME).mutex), 0)
-#endif
-
-/* Unlock the recursive named lock variable.  */
-#if defined _LIBC && (!defined NOT_IN_libc || defined IS_IN_libpthread)
-/* We do no error checking here.  */
-# define __libc_lock_unlock_recursive(NAME) \
-  do {									      \
-    if (--(NAME).cnt == 0)						      \
-      {									      \
-	(NAME).owner = NULL;						      \
-	lll_unlock ((NAME).lock, LLL_PRIVATE);				      \
-      }									      \
-  } while (0)
-#else
-# define __libc_lock_unlock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0)
-#endif
-
-/* Note that for I/O cleanup handling we are using the old-style
-   cancel handling.  It does not have to be integrated with C++ since
-   no C++ code is called in the middle.  The old-style handling is
-   faster and the support is not going away.  */
-extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
-					 void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
-					  int execute);
-
-/* Start critical region with cleanup.  */
-#define __libc_cleanup_region_start(DOIT, FCT, ARG) \
-  { struct _pthread_cleanup_buffer _buffer;				      \
-    int _avail;								      \
-    if (DOIT) {								      \
-      _avail = PTFAVAIL (_pthread_cleanup_push_defer);			      \
-      if (_avail) {							      \
-	__libc_ptf_call_always (_pthread_cleanup_push_defer, (&_buffer, FCT,  \
-							      ARG));	      \
-      } else {								      \
-	_buffer.__routine = (FCT);					      \
-	_buffer.__arg = (ARG);						      \
-      }									      \
-    } else {								      \
-      _avail = 0;							      \
-    }
-
-/* End critical region with cleanup.  */
-#define __libc_cleanup_region_end(DOIT) \
-    if (_avail) {							      \
-      __libc_ptf_call_always (_pthread_cleanup_pop_restore, (&_buffer, DOIT));\
-    } else if (DOIT)							      \
-      _buffer.__routine (_buffer.__arg);				      \
-  }
-
-
-/* Hide the definitions which are only supposed to be used inside libc in
-   a separate file.  This file is not present in the installation!  */
-#ifdef _LIBC
-# include "libc-lockP.h"
-#endif
-
-#endif	/* bits/libc-lock.h */
diff --git a/nptl/sysdeps/pthread/bits/libc-lockP.h b/nptl/sysdeps/pthread/bits/libc-lockP.h
deleted file mode 100644
index ec202713d6..0000000000
--- a/nptl/sysdeps/pthread/bits/libc-lockP.h
+++ /dev/null
@@ -1,424 +0,0 @@
-/* Private libc-internal interface for mutex locks.  NPTL version.
-   Copyright (C) 1996-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_LIBC_LOCKP_H
-#define _BITS_LIBC_LOCKP_H 1
-
-#include <pthread.h>
-#define __need_NULL
-#include <stddef.h>
-
-
-/* Fortunately Linux now has a mean to do locking which is realtime
-   safe without the aid of the thread library.  We also need no fancy
-   options like error checking mutexes etc.  We only need simple
-   locks, maybe recursive.  This can be easily and cheaply implemented
-   using futexes.  We will use them everywhere except in ld.so since
-   ld.so might be used on old kernels with a different libc.so.  */
-#include <lowlevellock.h>
-#include <tls.h>
-#include <pthread-functions.h>
-
-/* Mutex type.  */
-#if defined NOT_IN_libc && !defined IS_IN_libpthread
-typedef pthread_mutex_t __libc_lock_t;
-#else
-typedef int __libc_lock_t;
-#endif
-typedef struct { pthread_mutex_t mutex; } __rtld_lock_recursive_t;
-typedef pthread_rwlock_t __libc_rwlock_t;
-
-/* Type for key to thread-specific data.  */
-typedef pthread_key_t __libc_key_t;
-
-/* Define a lock variable NAME with storage class CLASS.  The lock must be
-   initialized with __libc_lock_init before it can be used (or define it
-   with __libc_lock_define_initialized, below).  Use `extern' for CLASS to
-   declare a lock defined in another module.  In public structure
-   definitions you must use a pointer to the lock structure (i.e., NAME
-   begins with a `*'), because its storage size will not be known outside
-   of libc.  */
-#define __libc_lock_define(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-#define __libc_rwlock_define(CLASS,NAME) \
-  CLASS __libc_rwlock_t NAME;
-#define __rtld_lock_define_recursive(CLASS,NAME) \
-  CLASS __rtld_lock_recursive_t NAME;
-
-/* Define an initialized lock variable NAME with storage class CLASS.
-
-   For the C library we take a deeper look at the initializer.  For
-   this implementation all fields are initialized to zero.  Therefore
-   we don't initialize the variable which allows putting it into the
-   BSS section.  (Except on PA-RISC and other odd architectures, where
-   initialized locks must be set to one due to the lack of normal
-   atomic operations.) */
-
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
-# if LLL_LOCK_INITIALIZER == 0
-#  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-# else
-#  define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME = LLL_LOCK_INITIALIZER;
-# endif
-#else
-# define __libc_lock_define_initialized(CLASS,NAME) \
-  CLASS __libc_lock_t NAME;
-#endif
-
-#define __libc_rwlock_define_initialized(CLASS,NAME) \
-  CLASS __libc_rwlock_t NAME = PTHREAD_RWLOCK_INITIALIZER;
-
-#define __rtld_lock_define_initialized_recursive(CLASS,NAME) \
-  CLASS __rtld_lock_recursive_t NAME = _RTLD_LOCK_RECURSIVE_INITIALIZER;
-#define _RTLD_LOCK_RECURSIVE_INITIALIZER \
-  {PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP}
-
-#define __rtld_lock_initialize(NAME) \
-  (void) ((NAME) = (__rtld_lock_recursive_t) _RTLD_LOCK_RECURSIVE_INITIALIZER)
-
-/* If we check for a weakly referenced symbol and then perform a
-   normal jump to it te code generated for some platforms in case of
-   PIC is unnecessarily slow.  What would happen is that the function
-   is first referenced as data and then it is called indirectly
-   through the PLT.  We can make this a direct jump.  */
-#ifdef __PIC__
-# define __libc_maybe_call(FUNC, ARGS, ELSE) \
-  (__extension__ ({ __typeof (FUNC) *_fn = (FUNC); \
-		    _fn != NULL ? (*_fn) ARGS : ELSE; }))
-#else
-# define __libc_maybe_call(FUNC, ARGS, ELSE) \
-  (FUNC != NULL ? FUNC ARGS : ELSE)
-#endif
-
-/* Call thread functions through the function pointer table.  */
-#if defined SHARED && !defined NOT_IN_libc
-# define PTFAVAIL(NAME) __libc_pthread_functions_init
-# define __libc_ptf_call(FUNC, ARGS, ELSE) \
-  (__libc_pthread_functions_init ? PTHFCT_CALL (ptr_##FUNC, ARGS) : ELSE)
-# define __libc_ptf_call_always(FUNC, ARGS) \
-  PTHFCT_CALL (ptr_##FUNC, ARGS)
-#else
-# define PTFAVAIL(NAME) (NAME != NULL)
-# define __libc_ptf_call(FUNC, ARGS, ELSE) \
-  __libc_maybe_call (FUNC, ARGS, ELSE)
-# define __libc_ptf_call_always(FUNC, ARGS) \
-  FUNC ARGS
-#endif
-
-
-/* Initialize the named lock variable, leaving it in a consistent, unlocked
-   state.  */
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
-# define __libc_lock_init(NAME) ((NAME) = LLL_LOCK_INITIALIZER, 0)
-#else
-# define __libc_lock_init(NAME) \
-  __libc_maybe_call (__pthread_mutex_init, (&(NAME), NULL), 0)
-#endif
-#if defined SHARED && !defined NOT_IN_libc
-/* ((NAME) = (__libc_rwlock_t) PTHREAD_RWLOCK_INITIALIZER, 0) is
-   inefficient.  */
-# define __libc_rwlock_init(NAME) \
-  (__builtin_memset (&(NAME), '\0', sizeof (NAME)), 0)
-#else
-# define __libc_rwlock_init(NAME) \
-  __libc_maybe_call (__pthread_rwlock_init, (&(NAME), NULL), 0)
-#endif
-
-/* Finalize the named lock variable, which must be locked.  It cannot be
-   used again until __libc_lock_init is called again on it.  This must be
-   called on a lock variable before the containing storage is reused.  */
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
-# define __libc_lock_fini(NAME) ((void) 0)
-#else
-# define __libc_lock_fini(NAME) \
-  __libc_maybe_call (__pthread_mutex_destroy, (&(NAME)), 0)
-#endif
-#if defined SHARED && !defined NOT_IN_libc
-# define __libc_rwlock_fini(NAME) ((void) 0)
-#else
-# define __libc_rwlock_fini(NAME) \
-  __libc_maybe_call (__pthread_rwlock_destroy, (&(NAME)), 0)
-#endif
-
-/* Lock the named lock variable.  */
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
-# ifndef __libc_lock_lock
-#  define __libc_lock_lock(NAME) \
-  ({ lll_lock (NAME, LLL_PRIVATE); 0; })
-# endif
-#else
-# undef __libc_lock_lock
-# define __libc_lock_lock(NAME) \
-  __libc_maybe_call (__pthread_mutex_lock, (&(NAME)), 0)
-#endif
-#define __libc_rwlock_rdlock(NAME) \
-  __libc_ptf_call (__pthread_rwlock_rdlock, (&(NAME)), 0)
-#define __libc_rwlock_wrlock(NAME) \
-  __libc_ptf_call (__pthread_rwlock_wrlock, (&(NAME)), 0)
-
-/* Try to lock the named lock variable.  */
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
-# ifndef __libc_lock_trylock
-#  define __libc_lock_trylock(NAME) \
-  lll_trylock (NAME)
-# endif
-#else
-# undef __libc_lock_trylock
-# define __libc_lock_trylock(NAME) \
-  __libc_maybe_call (__pthread_mutex_trylock, (&(NAME)), 0)
-#endif
-#define __libc_rwlock_tryrdlock(NAME) \
-  __libc_maybe_call (__pthread_rwlock_tryrdlock, (&(NAME)), 0)
-#define __libc_rwlock_trywrlock(NAME) \
-  __libc_maybe_call (__pthread_rwlock_trywrlock, (&(NAME)), 0)
-
-#define __rtld_lock_trylock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_trylock, (&(NAME).mutex), 0)
-
-/* Unlock the named lock variable.  */
-#if !defined NOT_IN_libc || defined IS_IN_libpthread
-# define __libc_lock_unlock(NAME) \
-  lll_unlock (NAME, LLL_PRIVATE)
-#else
-# define __libc_lock_unlock(NAME) \
-  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME)), 0)
-#endif
-#define __libc_rwlock_unlock(NAME) \
-  __libc_ptf_call (__pthread_rwlock_unlock, (&(NAME)), 0)
-
-#ifdef SHARED
-# define __rtld_lock_default_lock_recursive(lock) \
-  ++((pthread_mutex_t *)(lock))->__data.__count;
-
-# define __rtld_lock_default_unlock_recursive(lock) \
-  --((pthread_mutex_t *)(lock))->__data.__count;
-
-# define __rtld_lock_lock_recursive(NAME) \
-  GL(dl_rtld_lock_recursive) (&(NAME).mutex)
-
-# define __rtld_lock_unlock_recursive(NAME) \
-  GL(dl_rtld_unlock_recursive) (&(NAME).mutex)
-#else
-# define __rtld_lock_lock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_lock, (&(NAME).mutex), 0)
-
-# define __rtld_lock_unlock_recursive(NAME) \
-  __libc_maybe_call (__pthread_mutex_unlock, (&(NAME).mutex), 0)
-#endif
-
-/* Define once control variable.  */
-#if PTHREAD_ONCE_INIT == 0
-/* Special case for static variables where we can avoid the initialization
-   if it is zero.  */
-# define __libc_once_define(CLASS, NAME) \
-  CLASS pthread_once_t NAME
-#else
-# define __libc_once_define(CLASS, NAME) \
-  CLASS pthread_once_t NAME = PTHREAD_ONCE_INIT
-#endif
-
-/* Call handler iff the first call.  */
-#define __libc_once(ONCE_CONTROL, INIT_FUNCTION) \
-  do {									      \
-    if (PTFAVAIL (__pthread_once))					      \
-      __libc_ptf_call_always (__pthread_once, (&(ONCE_CONTROL),		      \
-					       INIT_FUNCTION));		      \
-    else if ((ONCE_CONTROL) == PTHREAD_ONCE_INIT) {			      \
-      INIT_FUNCTION ();							      \
-      (ONCE_CONTROL) |= 2;						      \
-    }									      \
-  } while (0)
-
-/* Get once control variable.  */
-#define __libc_once_get(ONCE_CONTROL)	((ONCE_CONTROL) != PTHREAD_ONCE_INIT)
-
-/* Note that for I/O cleanup handling we are using the old-style
-   cancel handling.  It does not have to be integrated with C++ snce
-   no C++ code is called in the middle.  The old-style handling is
-   faster and the support is not going away.  */
-extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
-				   void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
-				  int execute);
-extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
-					 void (*routine) (void *), void *arg);
-extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
-					  int execute);
-
-/* Sometimes we have to exit the block in the middle.  */
-#define __libc_cleanup_end(DOIT) \
-    if (_avail) {							      \
-      __libc_ptf_call_always (_pthread_cleanup_pop_restore, (&_buffer, DOIT));\
-    } else if (DOIT)							      \
-      _buffer.__routine (_buffer.__arg)
-
-
-/* Normal cleanup handling, based on C cleanup attribute.  */
-__extern_inline void
-__libc_cleanup_routine (struct __pthread_cleanup_frame *f)
-{
-  if (f->__do_it)
-    f->__cancel_routine (f->__cancel_arg);
-}
-
-#define __libc_cleanup_push(fct, arg) \
-  do {									      \
-    struct __pthread_cleanup_frame __clframe				      \
-      __attribute__ ((__cleanup__ (__libc_cleanup_routine)))		      \
-      = { .__cancel_routine = (fct), .__cancel_arg = (arg),		      \
-	  .__do_it = 1 };
-
-#define __libc_cleanup_pop(execute) \
-    __clframe.__do_it = (execute);					      \
-  } while (0)
-
-
-/* Create thread-specific key.  */
-#define __libc_key_create(KEY, DESTRUCTOR) \
-  __libc_ptf_call (__pthread_key_create, (KEY, DESTRUCTOR), 1)
-
-/* Get thread-specific data.  */
-#define __libc_getspecific(KEY) \
-  __libc_ptf_call (__pthread_getspecific, (KEY), NULL)
-
-/* Set thread-specific data.  */
-#define __libc_setspecific(KEY, VALUE) \
-  __libc_ptf_call (__pthread_setspecific, (KEY, VALUE), 0)
-
-
-/* Register handlers to execute before and after `fork'.  Note that the
-   last parameter is NULL.  The handlers registered by the libc are
-   never removed so this is OK.  */
-#define __libc_atfork(PREPARE, PARENT, CHILD) \
-  __register_atfork (PREPARE, PARENT, CHILD, NULL)
-extern int __register_atfork (void (*__prepare) (void),
-			      void (*__parent) (void),
-			      void (*__child) (void),
-			      void *__dso_handle);
-
-/* Functions that are used by this file and are internal to the GNU C
-   library.  */
-
-extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
-				 const pthread_mutexattr_t *__mutex_attr);
-
-extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex);
-
-extern int __pthread_mutexattr_init (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_destroy (pthread_mutexattr_t *__attr);
-
-extern int __pthread_mutexattr_settype (pthread_mutexattr_t *__attr,
-					int __kind);
-
-extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
-				  const pthread_rwlockattr_t *__attr);
-
-extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_rwlock_unlock (pthread_rwlock_t *__rwlock);
-
-extern int __pthread_key_create (pthread_key_t *__key,
-				 void (*__destr_function) (void *));
-
-extern int __pthread_setspecific (pthread_key_t __key,
-				  const void *__pointer);
-
-extern void *__pthread_getspecific (pthread_key_t __key);
-
-extern int __pthread_once (pthread_once_t *__once_control,
-			   void (*__init_routine) (void));
-
-extern int __pthread_atfork (void (*__prepare) (void),
-			     void (*__parent) (void),
-			     void (*__child) (void));
-
-
-
-/* Make the pthread functions weak so that we can elide them from
-   single-threaded processes.  */
-#ifndef __NO_WEAK_PTHREAD_ALIASES
-# ifdef weak_extern
-weak_extern (__pthread_mutex_init)
-weak_extern (__pthread_mutex_destroy)
-weak_extern (__pthread_mutex_lock)
-weak_extern (__pthread_mutex_trylock)
-weak_extern (__pthread_mutex_unlock)
-weak_extern (__pthread_mutexattr_init)
-weak_extern (__pthread_mutexattr_destroy)
-weak_extern (__pthread_mutexattr_settype)
-weak_extern (__pthread_rwlock_init)
-weak_extern (__pthread_rwlock_destroy)
-weak_extern (__pthread_rwlock_rdlock)
-weak_extern (__pthread_rwlock_tryrdlock)
-weak_extern (__pthread_rwlock_wrlock)
-weak_extern (__pthread_rwlock_trywrlock)
-weak_extern (__pthread_rwlock_unlock)
-weak_extern (__pthread_key_create)
-weak_extern (__pthread_setspecific)
-weak_extern (__pthread_getspecific)
-weak_extern (__pthread_once)
-weak_extern (__pthread_initialize)
-weak_extern (__pthread_atfork)
-weak_extern (_pthread_cleanup_push_defer)
-weak_extern (_pthread_cleanup_pop_restore)
-weak_extern (pthread_setcancelstate)
-# else
-#  pragma weak __pthread_mutex_init
-#  pragma weak __pthread_mutex_destroy
-#  pragma weak __pthread_mutex_lock
-#  pragma weak __pthread_mutex_trylock
-#  pragma weak __pthread_mutex_unlock
-#  pragma weak __pthread_mutexattr_init
-#  pragma weak __pthread_mutexattr_destroy
-#  pragma weak __pthread_mutexattr_settype
-#  pragma weak __pthread_rwlock_destroy
-#  pragma weak __pthread_rwlock_rdlock
-#  pragma weak __pthread_rwlock_tryrdlock
-#  pragma weak __pthread_rwlock_wrlock
-#  pragma weak __pthread_rwlock_trywrlock
-#  pragma weak __pthread_rwlock_unlock
-#  pragma weak __pthread_key_create
-#  pragma weak __pthread_setspecific
-#  pragma weak __pthread_getspecific
-#  pragma weak __pthread_once
-#  pragma weak __pthread_initialize
-#  pragma weak __pthread_atfork
-#  pragma weak _pthread_cleanup_push_defer
-#  pragma weak _pthread_cleanup_pop_restore
-#  pragma weak pthread_setcancelstate
-# endif
-#endif
-
-#endif	/* bits/libc-lockP.h */
diff --git a/nptl/sysdeps/pthread/bits/sigthread.h b/nptl/sysdeps/pthread/bits/sigthread.h
deleted file mode 100644
index 0048d7fd76..0000000000
--- a/nptl/sysdeps/pthread/bits/sigthread.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/* Signal handling function for threaded programs.
-   Copyright (C) 1998-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_SIGTHREAD_H
-#define _BITS_SIGTHREAD_H	1
-
-#if !defined _SIGNAL_H && !defined _PTHREAD_H
-# error "Never include this file directly.  Use <pthread.h> instead"
-#endif
-
-/* Functions for handling signals. */
-
-/* Modify the signal mask for the calling thread.  The arguments have
-   the same meaning as for sigprocmask(2). */
-extern int pthread_sigmask (int __how,
-			    const __sigset_t *__restrict __newmask,
-			    __sigset_t *__restrict __oldmask)__THROW;
-
-/* Send signal SIGNO to the given thread. */
-extern int pthread_kill (pthread_t __threadid, int __signo) __THROW;
-
-#ifdef __USE_GNU
-/* Queue signal and data to a thread.  */
-extern int pthread_sigqueue (pthread_t __threadid, int __signo,
-			     const union sigval __value) __THROW;
-#endif
-
-#endif	/* bits/sigthread.h */
diff --git a/nptl/sysdeps/pthread/bits/stdio-lock.h b/nptl/sysdeps/pthread/bits/stdio-lock.h
deleted file mode 100644
index e2678cc918..0000000000
--- a/nptl/sysdeps/pthread/bits/stdio-lock.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/* Thread package specific definitions of stream lock type.  NPTL version.
-   Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_STDIO_LOCK_H
-#define _BITS_STDIO_LOCK_H 1
-
-#include <bits/libc-lock.h>
-#include <lowlevellock.h>
-
-
-/* The locking here is very inexpensive, even for inlining.  */
-#define _IO_lock_inexpensive	1
-
-typedef struct { int lock; int cnt; void *owner; } _IO_lock_t;
-
-#define _IO_lock_initializer { LLL_LOCK_INITIALIZER, 0, NULL }
-
-#define _IO_lock_init(_name) \
-  ((_name) = (_IO_lock_t) _IO_lock_initializer , 0)
-
-#define _IO_lock_fini(_name) \
-  ((void) 0)
-
-#define _IO_lock_lock(_name) \
-  do {									      \
-    void *__self = THREAD_SELF;						      \
-    if ((_name).owner != __self)					      \
-      {									      \
-	lll_lock ((_name).lock, LLL_PRIVATE);				      \
-        (_name).owner = __self;						      \
-      }									      \
-    ++(_name).cnt;							      \
-  } while (0)
-
-#define _IO_lock_trylock(_name) \
-  ({									      \
-    int __result = 0;							      \
-    void *__self = THREAD_SELF;						      \
-    if ((_name).owner != __self)					      \
-      {									      \
-        if (lll_trylock ((_name).lock) == 0)				      \
-          {								      \
-            (_name).owner = __self;					      \
-            (_name).cnt = 1;						      \
-          }								      \
-        else								      \
-          __result = EBUSY;						      \
-      }									      \
-    else								      \
-      ++(_name).cnt;							      \
-    __result;								      \
-  })
-
-#define _IO_lock_unlock(_name) \
-  do {									      \
-    if (--(_name).cnt == 0)						      \
-      {									      \
-        (_name).owner = NULL;						      \
-	lll_unlock ((_name).lock, LLL_PRIVATE);				      \
-      }									      \
-  } while (0)
-
-
-
-#define _IO_cleanup_region_start(_fct, _fp) \
-  __libc_cleanup_region_start (((_fp)->_flags & _IO_USER_LOCK) == 0, _fct, _fp)
-#define _IO_cleanup_region_start_noarg(_fct) \
-  __libc_cleanup_region_start (1, _fct, NULL)
-#define _IO_cleanup_region_end(_doit) \
-  __libc_cleanup_region_end (_doit)
-
-#if defined _LIBC && !defined NOT_IN_libc
-
-# ifdef __EXCEPTIONS
-#  define _IO_acquire_lock(_fp) \
-  do {									      \
-    _IO_FILE *_IO_acquire_lock_file					      \
-	__attribute__((cleanup (_IO_acquire_lock_fct)))			      \
-	= (_fp);							      \
-    _IO_flockfile (_IO_acquire_lock_file);
-#  define _IO_acquire_lock_clear_flags2(_fp) \
-  do {									      \
-    _IO_FILE *_IO_acquire_lock_file					      \
-	__attribute__((cleanup (_IO_acquire_lock_clear_flags2_fct)))	      \
-	= (_fp);							      \
-    _IO_flockfile (_IO_acquire_lock_file);
-# else
-#  define _IO_acquire_lock(_fp) _IO_acquire_lock_needs_exceptions_enabled
-#  define _IO_acquire_lock_clear_flags2(_fp) _IO_acquire_lock (_fp)
-# endif
-# define _IO_release_lock(_fp) ; } while (0)
-
-#endif
-
-#endif /* bits/stdio-lock.h */
diff --git a/nptl/sysdeps/pthread/configure b/nptl/sysdeps/pthread/configure
deleted file mode 100644
index 239a039e3a..0000000000
--- a/nptl/sysdeps/pthread/configure
+++ /dev/null
@@ -1,89 +0,0 @@
-# This file is generated from configure.ac by Autoconf.  DO NOT EDIT!
-
-if test "x$libc_cv_gcc___thread" != xyes; then
-  as_fn_error $? "compiler support for __thread is required" "$LINENO" 5
-fi
-
-if test "x${libc_cv_visibility_attribute}" != xyes ||
-   test "x${libc_cv_broken_visibility_attribute}" != xno; then
-  as_fn_error $? "working compiler support for visibility attribute is required" "$LINENO" 5
-fi
-
-if test "x$libc_cv_asm_cfi_directives" != xyes; then
-    case "$base_machine" in
-    i386 | x86_64 | powerpc | s390)
-      as_fn_error $? "CFI directive support in assembler is required" "$LINENO" 5 ;;
-    *) ;;
-  esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for forced unwind support" >&5
-$as_echo_n "checking for forced unwind support... " >&6; }
-if ${libc_cv_forced_unwind+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <unwind.h>
-int
-main ()
-{
-
-struct _Unwind_Exception exc;
-struct _Unwind_Context *context;
-_Unwind_GetCFA (context)
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  libc_cv_forced_unwind=yes
-else
-  libc_cv_forced_unwind=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_forced_unwind" >&5
-$as_echo "$libc_cv_forced_unwind" >&6; }
-if test $libc_cv_forced_unwind = yes; then
-  $as_echo "#define HAVE_FORCED_UNWIND 1" >>confdefs.h
-
-  old_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -Werror -fexceptions"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C cleanup handling" >&5
-$as_echo_n "checking for C cleanup handling... " >&6; }
-if ${libc_cv_c_cleanup+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-extern void some_function (void);
-void cl (void *a) { }
-int
-main ()
-{
-
-  int a __attribute__ ((cleanup (cl)));
-  some_function ()
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  libc_cv_c_cleanup=yes
-else
-  libc_cv_c_cleanup=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_c_cleanup" >&5
-$as_echo "$libc_cv_c_cleanup" >&6; }
-  CFLAGS="$old_CFLAGS"
-  if test $libc_cv_c_cleanup = no; then
-    as_fn_error $? "the compiler must support C cleanup handling" "$LINENO" 5
-  fi
-else
-  as_fn_error $? "forced unwind support is required" "$LINENO" 5
-fi
diff --git a/nptl/sysdeps/pthread/configure.ac b/nptl/sysdeps/pthread/configure.ac
deleted file mode 100644
index 413af96799..0000000000
--- a/nptl/sysdeps/pthread/configure.ac
+++ /dev/null
@@ -1,49 +0,0 @@
-dnl configure fragment for new libpthread implementation.
-GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
-
-if test "x$libc_cv_gcc___thread" != xyes; then
-  AC_MSG_ERROR(compiler support for __thread is required)
-fi
-
-if test "x${libc_cv_visibility_attribute}" != xyes ||
-   test "x${libc_cv_broken_visibility_attribute}" != xno; then
-  AC_MSG_ERROR(working compiler support for visibility attribute is required)
-fi
-
-if test "x$libc_cv_asm_cfi_directives" != xyes; then
-  dnl We need this only for some architectures.
-  case "$base_machine" in
-    i386 | x86_64 | powerpc | s390)
-      AC_MSG_ERROR(CFI directive support in assembler is required) ;;
-    *) ;;
-  esac
-fi
-
-dnl Iff <unwind.h> is available, make sure it is the right one and it
-dnl contains struct _Unwind_Exception.
-AC_CACHE_CHECK(dnl
-for forced unwind support, libc_cv_forced_unwind, [dnl
-AC_TRY_COMPILE([#include <unwind.h>], [
-struct _Unwind_Exception exc;
-struct _Unwind_Context *context;
-_Unwind_GetCFA (context)],
-libc_cv_forced_unwind=yes, libc_cv_forced_unwind=no)])
-if test $libc_cv_forced_unwind = yes; then
-  AC_DEFINE(HAVE_FORCED_UNWIND)
-dnl Check for C cleanup handling.
-  old_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -Werror -fexceptions"
-  AC_CACHE_CHECK([for C cleanup handling], libc_cv_c_cleanup, [dnl
-  AC_TRY_COMPILE([
-extern void some_function (void);
-void cl (void *a) { }], [
-  int a __attribute__ ((cleanup (cl)));
-  some_function ()],
-libc_cv_c_cleanup=yes, libc_cv_c_cleanup=no)])
-  CFLAGS="$old_CFLAGS"
-  if test $libc_cv_c_cleanup = no; then
-    AC_MSG_ERROR([the compiler must support C cleanup handling])
-  fi
-else
-  AC_MSG_ERROR(forced unwind support is required)
-fi
diff --git a/nptl/sysdeps/pthread/flockfile.c b/nptl/sysdeps/pthread/flockfile.c
deleted file mode 100644
index da26824cc7..0000000000
--- a/nptl/sysdeps/pthread/flockfile.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <libio.h>
-#include <bits/stdio-lock.h>
-
-
-void
-__flockfile (stream)
-     FILE *stream;
-{
-  _IO_lock_lock (*stream->_lock);
-}
-strong_alias (__flockfile, _IO_flockfile)
-weak_alias (__flockfile, flockfile)
diff --git a/nptl/sysdeps/pthread/ftrylockfile.c b/nptl/sysdeps/pthread/ftrylockfile.c
deleted file mode 100644
index 7921d607ef..0000000000
--- a/nptl/sysdeps/pthread/ftrylockfile.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdio.h>
-#include <bits/stdio-lock.h>
-
-
-int
-__ftrylockfile (stream)
-     FILE *stream;
-{
-  return _IO_lock_trylock (*stream->_lock);
-}
-strong_alias (__ftrylockfile, _IO_ftrylockfile)
-weak_alias (__ftrylockfile, ftrylockfile)
diff --git a/nptl/sysdeps/pthread/funlockfile.c b/nptl/sysdeps/pthread/funlockfile.c
deleted file mode 100644
index 2b367db112..0000000000
--- a/nptl/sysdeps/pthread/funlockfile.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthread.h>
-#include <stdio.h>
-#include <libio.h>
-#include <bits/stdio-lock.h>
-
-
-void
-__funlockfile (stream)
-     FILE *stream;
-{
-  _IO_lock_unlock (*stream->_lock);
-}
-strong_alias (__funlockfile, _IO_funlockfile)
-weak_alias (__funlockfile, funlockfile)
diff --git a/nptl/sysdeps/pthread/gai_misc.h b/nptl/sysdeps/pthread/gai_misc.h
deleted file mode 100644
index 946275ed75..0000000000
--- a/nptl/sysdeps/pthread/gai_misc.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/* Copyright (C) 2006-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* We define a special synchronization primitive for AIO.  POSIX
-   conditional variables would be ideal but the pthread_cond_*wait
-   operations do not return on EINTR.  This is a requirement for
-   correct aio_suspend and lio_listio implementations.  */
-
-#include <assert.h>
-#include <signal.h>
-#include <pthreadP.h>
-#include <lowlevellock.h>
-
-#define DONT_NEED_GAI_MISC_COND	1
-
-#define GAI_MISC_NOTIFY(waitlist) \
-  do {									      \
-    if (*waitlist->counterp > 0 && --*waitlist->counterp == 0)		      \
-      lll_futex_wake (waitlist->counterp, 1, LLL_PRIVATE);		      \
-  } while (0)
-
-#define GAI_MISC_WAIT(result, futex, timeout, cancel) \
-  do {									      \
-    volatile int *futexaddr = &futex;					      \
-    int oldval = futex;							      \
-									      \
-    if (oldval != 0)							      \
-      {									      \
-	pthread_mutex_unlock (&__gai_requests_mutex);			      \
-									      \
-	int oldtype;							      \
-	if (cancel)							      \
-	  oldtype = LIBC_CANCEL_ASYNC ();				      \
-									      \
-	int status;							      \
-	do								      \
-	  {								      \
-	    status = lll_futex_timed_wait (futexaddr, oldval, timeout,	      \
-					   LLL_PRIVATE);		      \
-	    if (status != -EWOULDBLOCK)					      \
-	      break;							      \
-									      \
-	    oldval = *futexaddr;					      \
-	  }								      \
-	while (oldval != 0);						      \
-									      \
-	if (cancel)							      \
-	  LIBC_CANCEL_RESET (oldtype);					      \
-									      \
-	if (status == -EINTR)						      \
-	  result = EINTR;						      \
-	else if (status == -ETIMEDOUT)					      \
-	  result = EAGAIN;						      \
-	else								      \
-	  assert (status == 0 || status == -EWOULDBLOCK);		      \
-									      \
-	pthread_mutex_lock (&__gai_requests_mutex);			      \
-      }									      \
-  } while (0)
-
-
-#define gai_start_notify_thread __gai_start_notify_thread
-#define gai_create_helper_thread __gai_create_helper_thread
-
-extern inline void
-__gai_start_notify_thread (void)
-{
-  sigset_t ss;
-  sigemptyset (&ss);
-  INTERNAL_SYSCALL_DECL (err);
-  INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
-}
-
-extern inline int
-__gai_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
-			    void *arg)
-{
-  pthread_attr_t attr;
-
-  /* Make sure the thread is created detached.  */
-  pthread_attr_init (&attr);
-  pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED);
-
-  /* The helper thread needs only very little resources.  */
-  (void) pthread_attr_setstacksize (&attr,
-				    __pthread_get_minstack (&attr)
-				    + 4 * PTHREAD_STACK_MIN);
-
-  /* Block all signals in the helper thread.  To do this thoroughly we
-     temporarily have to block all signals here.  */
-  sigset_t ss;
-  sigset_t oss;
-  sigfillset (&ss);
-  INTERNAL_SYSCALL_DECL (err);
-  INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8);
-
-  int ret = pthread_create (threadp, &attr, tf, arg);
-
-  /* Restore the signal mask.  */
-  INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &oss, NULL,
-		    _NSIG / 8);
-
-  (void) pthread_attr_destroy (&attr);
-  return ret;
-}
-
-#include_next <gai_misc.h>
diff --git a/nptl/sysdeps/pthread/librt-cancellation.c b/nptl/sysdeps/pthread/librt-cancellation.c
deleted file mode 100644
index e512929fbe..0000000000
--- a/nptl/sysdeps/pthread/librt-cancellation.c
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include "pthreadP.h"
-
-
-#define __pthread_enable_asynccancel __librt_enable_asynccancel
-#define __pthread_disable_asynccancel __librt_disable_asynccancel
-#include <nptl/cancellation.c>
diff --git a/nptl/sysdeps/pthread/list.h b/nptl/sysdeps/pthread/list.h
deleted file mode 100644
index 749c727175..0000000000
--- a/nptl/sysdeps/pthread/list.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _LIST_H
-
-#ifndef __need_list_t
-# define _LIST_H	1
-#endif
-
-/* The definitions of this file are adopted from those which can be
-   found in the Linux kernel headers to enable people familiar with
-   the latter find their way in these sources as well.  */
-
-
-#if defined __need_list_t || defined _LIST_H
-# ifndef __list_t_defined
-#  define __list_t_defined
-/* Basic type for the double-link list.  */
-typedef struct list_head
-{
-  struct list_head *next;
-  struct list_head *prev;
-} list_t;
-# endif
-# undef __need_list_t
-#endif
-
-#ifdef _LIST_H
-
-# include <atomic.h>
-
-/* Define a variable with the head and tail of the list.  */
-# define LIST_HEAD(name) \
-  list_t name = { &(name), &(name) }
-
-/* Initialize a new list head.  */
-# define INIT_LIST_HEAD(ptr) \
-  (ptr)->next = (ptr)->prev = (ptr)
-
-
-/* Add new element at the head of the list.  */
-static inline void
-list_add (list_t *newp, list_t *head)
-{
-  newp->next = head->next;
-  newp->prev = head;
-  head->next->prev = newp;
-  atomic_write_barrier ();
-  head->next = newp;
-}
-
-
-/* Remove element from list.  */
-static inline void
-list_del (list_t *elem)
-{
-  elem->next->prev = elem->prev;
-  elem->prev->next = elem->next;
-}
-
-
-/* Join two lists.  */
-static inline void
-list_splice (list_t *add, list_t *head)
-{
-  /* Do nothing if the list which gets added is empty.  */
-  if (add != add->next)
-    {
-      add->next->prev = head;
-      add->prev->next = head->next;
-      head->next->prev = add->prev;
-      head->next = add->next;
-    }
-}
-
-
-/* Get typed element from list at a given position.  */
-# define list_entry(ptr, type, member) \
-  ((type *) ((char *) (ptr) - (unsigned long) (&((type *) 0)->member)))
-
-
-
-/* Iterate forward over the elements of the list.  */
-# define list_for_each(pos, head) \
-  for (pos = (head)->next; pos != (head); pos = pos->next)
-
-
-/* Iterate forward over the elements of the list.  */
-# define list_for_each_prev(pos, head) \
-  for (pos = (head)->prev; pos != (head); pos = pos->prev)
-
-
-/* Iterate backwards over the elements list.  The list elements can be
-   removed from the list while doing this.  */
-# define list_for_each_prev_safe(pos, p, head) \
-  for (pos = (head)->prev, p = pos->prev; \
-       pos != (head); \
-       pos = p, p = pos->prev)
-
-#endif /* _LIST_H */
-
-#endif	/* list.h */
diff --git a/nptl/sysdeps/pthread/malloc-machine.h b/nptl/sysdeps/pthread/malloc-machine.h
deleted file mode 100644
index ad480a37d8..0000000000
--- a/nptl/sysdeps/pthread/malloc-machine.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/* Basic platform-independent macro definitions for mutexes,
-   thread-specific data and parameters for malloc.
-   Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _MALLOC_MACHINE_H
-#define _MALLOC_MACHINE_H
-
-#undef thread_atfork_static
-
-#include <atomic.h>
-#include <bits/libc-lock.h>
-
-__libc_lock_define (typedef, mutex_t)
-
-#define mutex_init(m)		__libc_lock_init (*(m))
-#define mutex_lock(m)		__libc_lock_lock (*(m))
-#define mutex_trylock(m)	__libc_lock_trylock (*(m))
-#define mutex_unlock(m)		__libc_lock_unlock (*(m))
-#define MUTEX_INITIALIZER	LLL_LOCK_INITIALIZER
-
-/* This is defined by newer gcc version unique for each module.  */
-extern void *__dso_handle __attribute__ ((__weak__));
-
-#include <fork.h>
-
-#define ATFORK_MEM static struct fork_handler atfork_mem
-
-#ifdef SHARED
-# define thread_atfork(prepare, parent, child) \
-  atfork_mem.prepare_handler = prepare;					      \
-  atfork_mem.parent_handler = parent;					      \
-  atfork_mem.child_handler = child;					      \
-  atfork_mem.dso_handle = __dso_handle;					      \
-  atfork_mem.refcntr = 1;						      \
-  __linkin_atfork (&atfork_mem)
-#else
-# define thread_atfork(prepare, parent, child) \
-  atfork_mem.prepare_handler = prepare;					      \
-  atfork_mem.parent_handler = parent;					      \
-  atfork_mem.child_handler = child;					      \
-  atfork_mem.dso_handle = &__dso_handle == NULL ? NULL : __dso_handle;	      \
-  atfork_mem.refcntr = 1;						      \
-  __linkin_atfork (&atfork_mem)
-#endif
-
-/* thread specific data for glibc */
-
-#include <bits/libc-tsd.h>
-
-typedef int tsd_key_t[1];	/* no key data structure, libc magic does it */
-__libc_tsd_define (static, void *, MALLOC)	/* declaration/common definition */
-#define tsd_key_create(key, destr)	((void) (key))
-#define tsd_setspecific(key, data)	__libc_tsd_set (void *, MALLOC, (data))
-#define tsd_getspecific(key, vptr)	((vptr) = __libc_tsd_get (void *, MALLOC))
-
-#include <sysdeps/generic/malloc-machine.h>
-
-#endif /* !defined(_MALLOC_MACHINE_H) */
diff --git a/nptl/sysdeps/pthread/posix-timer.h b/nptl/sysdeps/pthread/posix-timer.h
deleted file mode 100644
index 1076110344..0000000000
--- a/nptl/sysdeps/pthread/posix-timer.h
+++ /dev/null
@@ -1,196 +0,0 @@
-/* Definitions for POSIX timer implementation on top of NPTL.
-   Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <limits.h>
-#include <signal.h>
-
-/* Double linked list.  */
-struct list_links
-{
-  struct list_links *next;
-  struct list_links *prev;
-};
-
-
-/* Forward declaration.  */
-struct timer_node;
-
-
-/* Definitions for an internal thread of the POSIX timer implementation.  */
-struct thread_node
-{
-  struct list_links links;
-  pthread_attr_t attr;
-  pthread_t id;
-  unsigned int exists;
-  struct list_links timer_queue;
-  pthread_cond_t cond;
-  struct timer_node *current_timer;
-  pthread_t captured;
-  clockid_t clock_id;
-};
-
-
-/* Internal representation of a timer.  */
-struct timer_node
-{
-  struct list_links links;
-  struct sigevent event;
-  clockid_t clock;
-  struct itimerspec value;
-  struct timespec expirytime;
-  pthread_attr_t attr;
-  unsigned int abstime;
-  unsigned int armed;
-  enum {
-    TIMER_FREE, TIMER_INUSE, TIMER_DELETED
-  } inuse;
-  struct thread_node *thread;
-  pid_t creator_pid;
-  int refcount;
-  int overrun_count;
-};
-
-
-/* The limit is not published if we are compiled with kernel timer support.
-   But we still compiled in this implementation with its limit unless built
-   to require the kernel support.  */
-#ifndef TIMER_MAX
-# define TIMER_MAX 256
-#endif
-
-/* Static array with the structures for all the timers.  */
-extern struct timer_node __timer_array[TIMER_MAX];
-
-/* Global lock to protect operation on the lists.  */
-extern pthread_mutex_t __timer_mutex;
-
-/* Variable to protext initialization.  */
-extern pthread_once_t __timer_init_once_control;
-
-/* Nonzero if initialization of timer implementation failed.  */
-extern int __timer_init_failed;
-
-/* Node for the thread used to deliver signals.  */
-extern struct thread_node __timer_signal_thread_rclk;
-
-
-/* Return pointer to timer structure corresponding to ID.  */
-#define timer_id2ptr(timerid) ((struct timer_node *) timerid)
-#define timer_ptr2id(timerid) ((void *) timerid)
-
-/* Check whether timer is valid; global mutex must be held. */
-static inline int
-timer_valid (struct timer_node *timer)
-{
-  return timer && timer->inuse == TIMER_INUSE;
-}
-
-/* Timer refcount functions; need global mutex. */
-extern void __timer_dealloc (struct timer_node *timer);
-
-static inline void
-timer_addref (struct timer_node *timer)
-{
-  timer->refcount++;
-}
-
-static inline void
-timer_delref (struct timer_node *timer)
-{
-  if (--timer->refcount == 0)
-    __timer_dealloc (timer);
-}
-
-/* Timespec helper routines.  */
-static inline int
-__attribute ((always_inline))
-timespec_compare (const struct timespec *left, const struct timespec *right)
-{
-  if (left->tv_sec < right->tv_sec)
-    return -1;
-  if (left->tv_sec > right->tv_sec)
-    return 1;
-
-  if (left->tv_nsec < right->tv_nsec)
-    return -1;
-  if (left->tv_nsec > right->tv_nsec)
-    return 1;
-
-  return 0;
-}
-
-static inline void
-timespec_add (struct timespec *sum, const struct timespec *left,
-	      const struct timespec *right)
-{
-  sum->tv_sec = left->tv_sec + right->tv_sec;
-  sum->tv_nsec = left->tv_nsec + right->tv_nsec;
-
-  if (sum->tv_nsec >= 1000000000)
-    {
-      ++sum->tv_sec;
-      sum->tv_nsec -= 1000000000;
-    }
-}
-
-static inline void
-timespec_sub (struct timespec *diff, const struct timespec *left,
-	      const struct timespec *right)
-{
-  diff->tv_sec = left->tv_sec - right->tv_sec;
-  diff->tv_nsec = left->tv_nsec - right->tv_nsec;
-
-  if (diff->tv_nsec < 0)
-    {
-      --diff->tv_sec;
-      diff->tv_nsec += 1000000000;
-    }
-}
-
-
-/* We need one of the list functions in the other modules.  */
-static inline void
-list_unlink_ip (struct list_links *list)
-{
-  struct list_links *lnext = list->next, *lprev = list->prev;
-
-  lnext->prev = lprev;
-  lprev->next = lnext;
-
-  /* The suffix ip means idempotent; list_unlink_ip can be called
-   * two or more times on the same node.
-   */
-
-  list->next = list;
-  list->prev = list;
-}
-
-
-/* Functions in the helper file.  */
-extern void __timer_mutex_cancel_handler (void *arg);
-extern void __timer_init_once (void);
-extern struct timer_node *__timer_alloc (void);
-extern int __timer_thread_start (struct thread_node *thread);
-extern struct thread_node *__timer_thread_find_matching (const pthread_attr_t *desired_attr, clockid_t);
-extern struct thread_node *__timer_thread_alloc (const pthread_attr_t *desired_attr, clockid_t);
-extern void __timer_thread_dealloc (struct thread_node *thread);
-extern int __timer_thread_queue_timer (struct thread_node *thread,
-				       struct timer_node *insert);
-extern void __timer_thread_wakeup (struct thread_node *thread);
diff --git a/nptl/sysdeps/pthread/pthread-functions.h b/nptl/sysdeps/pthread/pthread-functions.h
deleted file mode 100644
index 631442585a..0000000000
--- a/nptl/sysdeps/pthread/pthread-functions.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _PTHREAD_FUNCTIONS_H
-#define _PTHREAD_FUNCTIONS_H	1
-
-#include <pthread.h>
-#include <setjmp.h>
-#include <internaltypes.h>
-#include <sysdep.h>
-
-struct xid_command;
-
-/* Data type shared with libc.  The libc uses it to pass on calls to
-   the thread functions.  */
-struct pthread_functions
-{
-  int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
-  int (*ptr___pthread_attr_init_2_0) (pthread_attr_t *);
-  int (*ptr___pthread_attr_init_2_1) (pthread_attr_t *);
-  int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *);
-  int (*ptr_pthread_attr_setdetachstate) (pthread_attr_t *, int);
-  int (*ptr_pthread_attr_getinheritsched) (const pthread_attr_t *, int *);
-  int (*ptr_pthread_attr_setinheritsched) (pthread_attr_t *, int);
-  int (*ptr_pthread_attr_getschedparam) (const pthread_attr_t *,
-					 struct sched_param *);
-  int (*ptr_pthread_attr_setschedparam) (pthread_attr_t *,
-					 const struct sched_param *);
-  int (*ptr_pthread_attr_getschedpolicy) (const pthread_attr_t *, int *);
-  int (*ptr_pthread_attr_setschedpolicy) (pthread_attr_t *, int);
-  int (*ptr_pthread_attr_getscope) (const pthread_attr_t *, int *);
-  int (*ptr_pthread_attr_setscope) (pthread_attr_t *, int);
-  int (*ptr_pthread_condattr_destroy) (pthread_condattr_t *);
-  int (*ptr_pthread_condattr_init) (pthread_condattr_t *);
-  int (*ptr___pthread_cond_broadcast) (pthread_cond_t *);
-  int (*ptr___pthread_cond_destroy) (pthread_cond_t *);
-  int (*ptr___pthread_cond_init) (pthread_cond_t *,
-				  const pthread_condattr_t *);
-  int (*ptr___pthread_cond_signal) (pthread_cond_t *);
-  int (*ptr___pthread_cond_wait) (pthread_cond_t *, pthread_mutex_t *);
-  int (*ptr___pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
-				       const struct timespec *);
-  int (*ptr___pthread_cond_broadcast_2_0) (pthread_cond_2_0_t *);
-  int (*ptr___pthread_cond_destroy_2_0) (pthread_cond_2_0_t *);
-  int (*ptr___pthread_cond_init_2_0) (pthread_cond_2_0_t *,
-				      const pthread_condattr_t *);
-  int (*ptr___pthread_cond_signal_2_0) (pthread_cond_2_0_t *);
-  int (*ptr___pthread_cond_wait_2_0) (pthread_cond_2_0_t *, pthread_mutex_t *);
-  int (*ptr___pthread_cond_timedwait_2_0) (pthread_cond_2_0_t *,
-					   pthread_mutex_t *,
-					   const struct timespec *);
-  int (*ptr_pthread_equal) (pthread_t, pthread_t);
-  void (*ptr___pthread_exit) (void *) __attribute__ ((__noreturn__));
-  int (*ptr_pthread_getschedparam) (pthread_t, int *, struct sched_param *);
-  int (*ptr_pthread_setschedparam) (pthread_t, int,
-				    const struct sched_param *);
-  int (*ptr_pthread_mutex_destroy) (pthread_mutex_t *);
-  int (*ptr_pthread_mutex_init) (pthread_mutex_t *,
-				 const pthread_mutexattr_t *);
-  int (*ptr_pthread_mutex_lock) (pthread_mutex_t *);
-  int (*ptr_pthread_mutex_unlock) (pthread_mutex_t *);
-  pthread_t (*ptr_pthread_self) (void);
-  int (*ptr_pthread_setcancelstate) (int, int *);
-  int (*ptr_pthread_setcanceltype) (int, int *);
-  void (*ptr___pthread_cleanup_upto) (__jmp_buf, char *);
-  int (*ptr___pthread_once) (pthread_once_t *, void (*) (void));
-  int (*ptr___pthread_rwlock_rdlock) (pthread_rwlock_t *);
-  int (*ptr___pthread_rwlock_wrlock) (pthread_rwlock_t *);
-  int (*ptr___pthread_rwlock_unlock) (pthread_rwlock_t *);
-  int (*ptr___pthread_key_create) (pthread_key_t *, void (*) (void *));
-  void *(*ptr___pthread_getspecific) (pthread_key_t);
-  int (*ptr___pthread_setspecific) (pthread_key_t, const void *);
-  void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer *,
-					   void (*) (void *), void *);
-  void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer *,
-					    int);
-#define HAVE_PTR_NTHREADS
-  unsigned int *ptr_nthreads;
-  void (*ptr___pthread_unwind) (__pthread_unwind_buf_t *)
-       __attribute ((noreturn)) __cleanup_fct_attribute;
-  void (*ptr__nptl_deallocate_tsd) (void);
-  int (*ptr__nptl_setxid) (struct xid_command *);
-  void (*ptr_freeres) (void);
-  void (*ptr_set_robust) (struct pthread *);
-};
-
-/* Variable in libc.so.  */
-extern struct pthread_functions __libc_pthread_functions attribute_hidden;
-extern int __libc_pthread_functions_init attribute_hidden;
-
-#ifdef PTR_DEMANGLE
-# define PTHFCT_CALL(fct, params) \
-  ({ __typeof (__libc_pthread_functions.fct) __p;			      \
-     __p = __libc_pthread_functions.fct;				      \
-     PTR_DEMANGLE (__p);						      \
-     __p params; })
-#else
-# define PTHFCT_CALL(fct, params) \
-  __libc_pthread_functions.fct params
-#endif
-
-#endif	/* pthread-functions.h */
diff --git a/nptl/sysdeps/pthread/pthread.h b/nptl/sysdeps/pthread/pthread.h
deleted file mode 100644
index 40a3e215cc..0000000000
--- a/nptl/sysdeps/pthread/pthread.h
+++ /dev/null
@@ -1,1163 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef _PTHREAD_H
-#define _PTHREAD_H	1
-
-#include <features.h>
-#include <endian.h>
-#include <sched.h>
-#include <time.h>
-
-#include <bits/pthreadtypes.h>
-#include <bits/setjmp.h>
-#include <bits/wordsize.h>
-
-
-/* Detach state.  */
-enum
-{
-  PTHREAD_CREATE_JOINABLE,
-#define PTHREAD_CREATE_JOINABLE	PTHREAD_CREATE_JOINABLE
-  PTHREAD_CREATE_DETACHED
-#define PTHREAD_CREATE_DETACHED	PTHREAD_CREATE_DETACHED
-};
-
-
-/* Mutex types.  */
-enum
-{
-  PTHREAD_MUTEX_TIMED_NP,
-  PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_ADAPTIVE_NP
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
-  ,
-  PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
-  PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
-  PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
-  PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
-#endif
-#ifdef __USE_GNU
-  /* For compatibility.  */
-  , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
-#endif
-};
-
-
-#ifdef __USE_XOPEN2K
-/* Robust mutex or not flags.  */
-enum
-{
-  PTHREAD_MUTEX_STALLED,
-  PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
-  PTHREAD_MUTEX_ROBUST,
-  PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
-};
-#endif
-
-
-#if defined __USE_POSIX199506 || defined __USE_UNIX98
-/* Mutex protocols.  */
-enum
-{
-  PTHREAD_PRIO_NONE,
-  PTHREAD_PRIO_INHERIT,
-  PTHREAD_PRIO_PROTECT
-};
-#endif
-
-
-#ifdef __PTHREAD_MUTEX_HAVE_PREV
-# define PTHREAD_MUTEX_INITIALIZER \
-  { { 0, 0, 0, 0, 0, __PTHREAD_SPINS, { 0, 0 } } }
-# ifdef __USE_GNU
-#  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
-#  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, __PTHREAD_SPINS, { 0, 0 } } }
-#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
-#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, __PTHREAD_SPINS, { 0, 0 } } }
-
-# endif
-#else
-# define PTHREAD_MUTEX_INITIALIZER \
-  { { 0, 0, 0, 0, 0, { __PTHREAD_SPINS } } }
-# ifdef __USE_GNU
-#  define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_RECURSIVE_NP, 0, { __PTHREAD_SPINS } } }
-#  define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_ERRORCHECK_NP, 0, { __PTHREAD_SPINS } } }
-#  define PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP \
-  { { 0, 0, 0, PTHREAD_MUTEX_ADAPTIVE_NP, 0, { __PTHREAD_SPINS } } }
-
-# endif
-#endif
-
-
-/* Read-write lock types.  */
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-enum
-{
-  PTHREAD_RWLOCK_PREFER_READER_NP,
-  PTHREAD_RWLOCK_PREFER_WRITER_NP,
-  PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
-  PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
-};
-
-/* Define __PTHREAD_RWLOCK_INT_FLAGS_SHARED to 1 if pthread_rwlock_t
-   has the shared field.  All 64-bit architectures have the shared field
-   in pthread_rwlock_t.  */
-#ifndef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
-# if __WORDSIZE == 64
-#  define __PTHREAD_RWLOCK_INT_FLAGS_SHARED 1
-# endif
-#endif
-
-/* Read-write lock initializers.  */
-# define PTHREAD_RWLOCK_INITIALIZER \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }
-# ifdef __USE_GNU
-#  ifdef __PTHREAD_RWLOCK_INT_FLAGS_SHARED
-#   define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,					      \
-	PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP } }
-#  else
-#   if __BYTE_ORDER == __LITTLE_ENDIAN
-#    define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
-  { { 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, \
-      0, 0, 0, 0 } }
-#   else
-#    define PTHREAD_RWLOCK_WRITER_NONRECURSIVE_INITIALIZER_NP \
-  { { 0, 0, 0, 0, 0, 0, 0, 0, 0, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,\
-      0 } }
-#   endif
-#  endif
-# endif
-#endif  /* Unix98 or XOpen2K */
-
-
-/* Scheduler inheritance.  */
-enum
-{
-  PTHREAD_INHERIT_SCHED,
-#define PTHREAD_INHERIT_SCHED   PTHREAD_INHERIT_SCHED
-  PTHREAD_EXPLICIT_SCHED
-#define PTHREAD_EXPLICIT_SCHED  PTHREAD_EXPLICIT_SCHED
-};
-
-
-/* Scope handling.  */
-enum
-{
-  PTHREAD_SCOPE_SYSTEM,
-#define PTHREAD_SCOPE_SYSTEM    PTHREAD_SCOPE_SYSTEM
-  PTHREAD_SCOPE_PROCESS
-#define PTHREAD_SCOPE_PROCESS   PTHREAD_SCOPE_PROCESS
-};
-
-
-/* Process shared or private flag.  */
-enum
-{
-  PTHREAD_PROCESS_PRIVATE,
-#define PTHREAD_PROCESS_PRIVATE PTHREAD_PROCESS_PRIVATE
-  PTHREAD_PROCESS_SHARED
-#define PTHREAD_PROCESS_SHARED  PTHREAD_PROCESS_SHARED
-};
-
-
-
-/* Conditional variable handling.  */
-#define PTHREAD_COND_INITIALIZER { { 0, 0, 0, 0, 0, (void *) 0, 0, 0 } }
-
-
-/* Cleanup buffers */
-struct _pthread_cleanup_buffer
-{
-  void (*__routine) (void *);             /* Function to call.  */
-  void *__arg;                            /* Its argument.  */
-  int __canceltype;                       /* Saved cancellation type. */
-  struct _pthread_cleanup_buffer *__prev; /* Chaining of cleanup functions.  */
-};
-
-/* Cancellation */
-enum
-{
-  PTHREAD_CANCEL_ENABLE,
-#define PTHREAD_CANCEL_ENABLE   PTHREAD_CANCEL_ENABLE
-  PTHREAD_CANCEL_DISABLE
-#define PTHREAD_CANCEL_DISABLE  PTHREAD_CANCEL_DISABLE
-};
-enum
-{
-  PTHREAD_CANCEL_DEFERRED,
-#define PTHREAD_CANCEL_DEFERRED	PTHREAD_CANCEL_DEFERRED
-  PTHREAD_CANCEL_ASYNCHRONOUS
-#define PTHREAD_CANCEL_ASYNCHRONOUS	PTHREAD_CANCEL_ASYNCHRONOUS
-};
-#define PTHREAD_CANCELED ((void *) -1)
-
-
-/* Single execution handling.  */
-#define PTHREAD_ONCE_INIT 0
-
-
-#ifdef __USE_XOPEN2K
-/* Value returned by 'pthread_barrier_wait' for one of the threads after
-   the required number of threads have called this function.
-   -1 is distinct from 0 and all errno constants */
-# define PTHREAD_BARRIER_SERIAL_THREAD -1
-#endif
-
-
-__BEGIN_DECLS
-
-/* Create a new thread, starting with execution of START-ROUTINE
-   getting passed ARG.  Creation attributed come from ATTR.  The new
-   handle is stored in *NEWTHREAD.  */
-extern int pthread_create (pthread_t *__restrict __newthread,
-			   const pthread_attr_t *__restrict __attr,
-			   void *(*__start_routine) (void *),
-			   void *__restrict __arg) __THROWNL __nonnull ((1, 3));
-
-/* Terminate calling thread.
-
-   The registered cleanup handlers are called via exception handling
-   so we cannot mark this function with __THROW.*/
-extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
-
-/* Make calling thread wait for termination of the thread TH.  The
-   exit status of the thread is stored in *THREAD_RETURN, if THREAD_RETURN
-   is not NULL.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int pthread_join (pthread_t __th, void **__thread_return);
-
-#ifdef __USE_GNU
-/* Check whether thread TH has terminated.  If yes return the status of
-   the thread in *THREAD_RETURN, if THREAD_RETURN is not NULL.  */
-extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __THROW;
-
-/* Make calling thread wait for termination of the thread TH, but only
-   until TIMEOUT.  The exit status of the thread is stored in
-   *THREAD_RETURN, if THREAD_RETURN is not NULL.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
-				 const struct timespec *__abstime);
-#endif
-
-/* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
-   The resources of TH will therefore be freed immediately when it
-   terminates, instead of waiting for another thread to perform PTHREAD_JOIN
-   on it.  */
-extern int pthread_detach (pthread_t __th) __THROW;
-
-
-/* Obtain the identifier of the current thread.  */
-extern pthread_t pthread_self (void) __THROW __attribute__ ((__const__));
-
-/* Compare two thread identifiers.  */
-extern int pthread_equal (pthread_t __thread1, pthread_t __thread2)
-  __THROW __attribute__ ((__const__));
-
-
-/* Thread attribute handling.  */
-
-/* Initialize thread attribute *ATTR with default attributes
-   (detachstate is PTHREAD_JOINABLE, scheduling policy is SCHED_OTHER,
-    no user-provided stack).  */
-extern int pthread_attr_init (pthread_attr_t *__attr) __THROW __nonnull ((1));
-
-/* Destroy thread attribute *ATTR.  */
-extern int pthread_attr_destroy (pthread_attr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Get detach state attribute.  */
-extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
-					int *__detachstate)
-     __THROW __nonnull ((1, 2));
-
-/* Set detach state attribute.  */
-extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
-					int __detachstate)
-     __THROW __nonnull ((1));
-
-
-/* Get the size of the guard area created for stack overflow protection.  */
-extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
-				      size_t *__guardsize)
-     __THROW __nonnull ((1, 2));
-
-/* Set the size of the guard area created for stack overflow protection.  */
-extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
-				      size_t __guardsize)
-     __THROW __nonnull ((1));
-
-
-/* Return in *PARAM the scheduling parameters of *ATTR.  */
-extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict __attr,
-				       struct sched_param *__restrict __param)
-     __THROW __nonnull ((1, 2));
-
-/* Set scheduling parameters (priority, etc) in *ATTR according to PARAM.  */
-extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
-				       const struct sched_param *__restrict
-				       __param) __THROW __nonnull ((1, 2));
-
-/* Return in *POLICY the scheduling policy of *ATTR.  */
-extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
-					__attr, int *__restrict __policy)
-     __THROW __nonnull ((1, 2));
-
-/* Set scheduling policy in *ATTR according to POLICY.  */
-extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
-     __THROW __nonnull ((1));
-
-/* Return in *INHERIT the scheduling inheritance mode of *ATTR.  */
-extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
-					 __attr, int *__restrict __inherit)
-     __THROW __nonnull ((1, 2));
-
-/* Set scheduling inheritance mode in *ATTR according to INHERIT.  */
-extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
-					 int __inherit)
-     __THROW __nonnull ((1));
-
-
-/* Return in *SCOPE the scheduling contention scope of *ATTR.  */
-extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
-				  int *__restrict __scope)
-     __THROW __nonnull ((1, 2));
-
-/* Set scheduling contention scope in *ATTR according to SCOPE.  */
-extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
-     __THROW __nonnull ((1));
-
-/* Return the previously set address for the stack.  */
-extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
-				      __attr, void **__restrict __stackaddr)
-     __THROW __nonnull ((1, 2)) __attribute_deprecated__;
-
-/* Set the starting address of the stack of the thread to be created.
-   Depending on whether the stack grows up or down the value must either
-   be higher or lower than all the address in the memory block.  The
-   minimal size of the block must be PTHREAD_STACK_MIN.  */
-extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
-				      void *__stackaddr)
-     __THROW __nonnull ((1)) __attribute_deprecated__;
-
-/* Return the currently used minimal stack size.  */
-extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
-				      __attr, size_t *__restrict __stacksize)
-     __THROW __nonnull ((1, 2));
-
-/* Add information about the minimum stack size needed for the thread
-   to be started.  This size must never be less than PTHREAD_STACK_MIN
-   and must also not exceed the system limits.  */
-extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
-				      size_t __stacksize)
-     __THROW __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Return the previously set address for the stack.  */
-extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
-				  void **__restrict __stackaddr,
-				  size_t *__restrict __stacksize)
-     __THROW __nonnull ((1, 2, 3));
-
-/* The following two interfaces are intended to replace the last two.  They
-   require setting the address as well as the size since only setting the
-   address will make the implementation on some architectures impossible.  */
-extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
-				  size_t __stacksize) __THROW __nonnull ((1));
-#endif
-
-#ifdef __USE_GNU
-/* Thread created with attribute ATTR will be limited to run only on
-   the processors represented in CPUSET.  */
-extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
-					size_t __cpusetsize,
-					const cpu_set_t *__cpuset)
-     __THROW __nonnull ((1, 3));
-
-/* Get bit set in CPUSET representing the processors threads created with
-   ATTR can run on.  */
-extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
-					size_t __cpusetsize,
-					cpu_set_t *__cpuset)
-     __THROW __nonnull ((1, 3));
-
-/* Get the default attributes used by pthread_create in this process.  */
-extern int pthread_getattr_default_np (pthread_attr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Set the default attributes to be used by pthread_create in this
-   process.  */
-extern int pthread_setattr_default_np (const pthread_attr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Initialize thread attribute *ATTR with attributes corresponding to the
-   already running thread TH.  It shall be called on uninitialized ATTR
-   and destroyed with pthread_attr_destroy when no longer needed.  */
-extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
-     __THROW __nonnull ((2));
-#endif
-
-
-/* Functions for scheduling control.  */
-
-/* Set the scheduling parameters for TARGET_THREAD according to POLICY
-   and *PARAM.  */
-extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
-				  const struct sched_param *__param)
-     __THROW __nonnull ((3));
-
-/* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
-extern int pthread_getschedparam (pthread_t __target_thread,
-				  int *__restrict __policy,
-				  struct sched_param *__restrict __param)
-     __THROW __nonnull ((2, 3));
-
-/* Set the scheduling priority for TARGET_THREAD.  */
-extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
-     __THROW;
-
-
-#ifdef __USE_GNU
-/* Get thread name visible in the kernel and its interfaces.  */
-extern int pthread_getname_np (pthread_t __target_thread, char *__buf,
-			       size_t __buflen)
-     __THROW __nonnull ((2));
-
-/* Set thread name visible in the kernel and its interfaces.  */
-extern int pthread_setname_np (pthread_t __target_thread, const char *__name)
-     __THROW __nonnull ((2));
-#endif
-
-
-#ifdef __USE_UNIX98
-/* Determine level of concurrency.  */
-extern int pthread_getconcurrency (void) __THROW;
-
-/* Set new concurrency level to LEVEL.  */
-extern int pthread_setconcurrency (int __level) __THROW;
-#endif
-
-#ifdef __USE_GNU
-/* Yield the processor to another thread or process.
-   This function is similar to the POSIX `sched_yield' function but
-   might be differently implemented in the case of a m-on-n thread
-   implementation.  */
-extern int pthread_yield (void) __THROW;
-
-
-/* Limit specified thread TH to run only on the processors represented
-   in CPUSET.  */
-extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
-				   const cpu_set_t *__cpuset)
-     __THROW __nonnull ((3));
-
-/* Get bit set in CPUSET representing the processors TH can run on.  */
-extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
-				   cpu_set_t *__cpuset)
-     __THROW __nonnull ((3));
-#endif
-
-
-/* Functions for handling initialization.  */
-
-/* Guarantee that the initialization function INIT_ROUTINE will be called
-   only once, even if pthread_once is executed several times with the
-   same ONCE_CONTROL argument. ONCE_CONTROL must point to a static or
-   extern variable initialized to PTHREAD_ONCE_INIT.
-
-   The initialization functions might throw exception which is why
-   this function is not marked with __THROW.  */
-extern int pthread_once (pthread_once_t *__once_control,
-			 void (*__init_routine) (void)) __nonnull ((1, 2));
-
-
-/* Functions for handling cancellation.
-
-   Note that these functions are explicitly not marked to not throw an
-   exception in C++ code.  If cancellation is implemented by unwinding
-   this is necessary to have the compiler generate the unwind information.  */
-
-/* Set cancelability state of current thread to STATE, returning old
-   state in *OLDSTATE if OLDSTATE is not NULL.  */
-extern int pthread_setcancelstate (int __state, int *__oldstate);
-
-/* Set cancellation state of current thread to TYPE, returning the old
-   type in *OLDTYPE if OLDTYPE is not NULL.  */
-extern int pthread_setcanceltype (int __type, int *__oldtype);
-
-/* Cancel THREAD immediately or at the next possibility.  */
-extern int pthread_cancel (pthread_t __th);
-
-/* Test for pending cancellation for the current thread and terminate
-   the thread as per pthread_exit(PTHREAD_CANCELED) if it has been
-   cancelled.  */
-extern void pthread_testcancel (void);
-
-
-/* Cancellation handling with integration into exception handling.  */
-
-typedef struct
-{
-  struct
-  {
-    __jmp_buf __cancel_jmp_buf;
-    int __mask_was_saved;
-  } __cancel_jmp_buf[1];
-  void *__pad[4];
-} __pthread_unwind_buf_t __attribute__ ((__aligned__));
-
-/* No special attributes by default.  */
-#ifndef __cleanup_fct_attribute
-# define __cleanup_fct_attribute
-#endif
-
-
-/* Structure to hold the cleanup handler information.  */
-struct __pthread_cleanup_frame
-{
-  void (*__cancel_routine) (void *);
-  void *__cancel_arg;
-  int __do_it;
-  int __cancel_type;
-};
-
-#if defined __GNUC__ && defined __EXCEPTIONS
-# ifdef __cplusplus
-/* Class to handle cancellation handler invocation.  */
-class __pthread_cleanup_class
-{
-  void (*__cancel_routine) (void *);
-  void *__cancel_arg;
-  int __do_it;
-  int __cancel_type;
-
- public:
-  __pthread_cleanup_class (void (*__fct) (void *), void *__arg)
-    : __cancel_routine (__fct), __cancel_arg (__arg), __do_it (1) { }
-  ~__pthread_cleanup_class () { if (__do_it) __cancel_routine (__cancel_arg); }
-  void __setdoit (int __newval) { __do_it = __newval; }
-  void __defer () { pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,
-					   &__cancel_type); }
-  void __restore () const { pthread_setcanceltype (__cancel_type, 0); }
-};
-
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
-   when the thread is canceled or calls pthread_exit.  ROUTINE will also
-   be called with arguments ARG when the matching pthread_cleanup_pop
-   is executed with non-zero EXECUTE argument.
-
-   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
-   be used in matching pairs at the same nesting level of braces.  */
-#  define pthread_cleanup_push(routine, arg) \
-  do {									      \
-    __pthread_cleanup_class __clframe (routine, arg)
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
-   If EXECUTE is non-zero, the handler function is called. */
-#  define pthread_cleanup_pop(execute) \
-    __clframe.__setdoit (execute);					      \
-  } while (0)
-
-#  ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
-   saves the current cancellation type and sets it to deferred
-   cancellation.  */
-#   define pthread_cleanup_push_defer_np(routine, arg) \
-  do {									      \
-    __pthread_cleanup_class __clframe (routine, arg);			      \
-    __clframe.__defer ()
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
-   restores the cancellation type that was in effect when the matching
-   pthread_cleanup_push_defer was called.  */
-#   define pthread_cleanup_pop_restore_np(execute) \
-    __clframe.__restore ();						      \
-    __clframe.__setdoit (execute);					      \
-  } while (0)
-#  endif
-# else
-/* Function called to call the cleanup handler.  As an extern inline
-   function the compiler is free to decide inlining the change when
-   needed or fall back on the copy which must exist somewhere
-   else.  */
-__extern_inline void
-__pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
-{
-  if (__frame->__do_it)
-    __frame->__cancel_routine (__frame->__cancel_arg);
-}
-
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
-   when the thread is canceled or calls pthread_exit.  ROUTINE will also
-   be called with arguments ARG when the matching pthread_cleanup_pop
-   is executed with non-zero EXECUTE argument.
-
-   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
-   be used in matching pairs at the same nesting level of braces.  */
-#  define pthread_cleanup_push(routine, arg) \
-  do {									      \
-    struct __pthread_cleanup_frame __clframe				      \
-      __attribute__ ((__cleanup__ (__pthread_cleanup_routine)))		      \
-      = { .__cancel_routine = (routine), .__cancel_arg = (arg),	 	      \
-	  .__do_it = 1 };
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
-   If EXECUTE is non-zero, the handler function is called. */
-#  define pthread_cleanup_pop(execute) \
-    __clframe.__do_it = (execute);					      \
-  } while (0)
-
-#  ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
-   saves the current cancellation type and sets it to deferred
-   cancellation.  */
-#   define pthread_cleanup_push_defer_np(routine, arg) \
-  do {									      \
-    struct __pthread_cleanup_frame __clframe				      \
-      __attribute__ ((__cleanup__ (__pthread_cleanup_routine)))		      \
-      = { .__cancel_routine = (routine), .__cancel_arg = (arg),		      \
-	  .__do_it = 1 };						      \
-    (void) pthread_setcanceltype (PTHREAD_CANCEL_DEFERRED,		      \
-				  &__clframe.__cancel_type)
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
-   restores the cancellation type that was in effect when the matching
-   pthread_cleanup_push_defer was called.  */
-#   define pthread_cleanup_pop_restore_np(execute) \
-    (void) pthread_setcanceltype (__clframe.__cancel_type, NULL);	      \
-    __clframe.__do_it = (execute);					      \
-  } while (0)
-#  endif
-# endif
-#else
-/* Install a cleanup handler: ROUTINE will be called with arguments ARG
-   when the thread is canceled or calls pthread_exit.  ROUTINE will also
-   be called with arguments ARG when the matching pthread_cleanup_pop
-   is executed with non-zero EXECUTE argument.
-
-   pthread_cleanup_push and pthread_cleanup_pop are macros and must always
-   be used in matching pairs at the same nesting level of braces.  */
-# define pthread_cleanup_push(routine, arg) \
-  do {									      \
-    __pthread_unwind_buf_t __cancel_buf;				      \
-    void (*__cancel_routine) (void *) = (routine);			      \
-    void *__cancel_arg = (arg);						      \
-    int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)     \
-					__cancel_buf.__cancel_jmp_buf, 0);    \
-    if (__glibc_unlikely (__not_first_call))				      \
-      {									      \
-	__cancel_routine (__cancel_arg);				      \
-	__pthread_unwind_next (&__cancel_buf);				      \
-	/* NOTREACHED */						      \
-      }									      \
-									      \
-    __pthread_register_cancel (&__cancel_buf);				      \
-    do {
-extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute;
-
-/* Remove a cleanup handler installed by the matching pthread_cleanup_push.
-   If EXECUTE is non-zero, the handler function is called. */
-# define pthread_cleanup_pop(execute) \
-      do { } while (0);/* Empty to allow label before pthread_cleanup_pop.  */\
-    } while (0);							      \
-    __pthread_unregister_cancel (&__cancel_buf);			      \
-    if (execute)							      \
-      __cancel_routine (__cancel_arg);					      \
-  } while (0)
-extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
-  __cleanup_fct_attribute;
-
-# ifdef __USE_GNU
-/* Install a cleanup handler as pthread_cleanup_push does, but also
-   saves the current cancellation type and sets it to deferred
-   cancellation.  */
-#  define pthread_cleanup_push_defer_np(routine, arg) \
-  do {									      \
-    __pthread_unwind_buf_t __cancel_buf;				      \
-    void (*__cancel_routine) (void *) = (routine);			      \
-    void *__cancel_arg = (arg);						      \
-    int __not_first_call = __sigsetjmp ((struct __jmp_buf_tag *) (void *)     \
-					__cancel_buf.__cancel_jmp_buf, 0);    \
-    if (__glibc_unlikely (__not_first_call))				      \
-      {									      \
-	__cancel_routine (__cancel_arg);				      \
-	__pthread_unwind_next (&__cancel_buf);				      \
-	/* NOTREACHED */						      \
-      }									      \
-									      \
-    __pthread_register_cancel_defer (&__cancel_buf);			      \
-    do {
-extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute;
-
-/* Remove a cleanup handler as pthread_cleanup_pop does, but also
-   restores the cancellation type that was in effect when the matching
-   pthread_cleanup_push_defer was called.  */
-#  define pthread_cleanup_pop_restore_np(execute) \
-      do { } while (0);/* Empty to allow label before pthread_cleanup_pop.  */\
-    } while (0);							      \
-    __pthread_unregister_cancel_restore (&__cancel_buf);		      \
-    if (execute)							      \
-      __cancel_routine (__cancel_arg);					      \
-  } while (0)
-extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
-  __cleanup_fct_attribute;
-# endif
-
-/* Internal interface to initiate cleanup.  */
-extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
-     __cleanup_fct_attribute __attribute__ ((__noreturn__))
-# ifndef SHARED
-     __attribute__ ((__weak__))
-# endif
-     ;
-#endif
-
-/* Function used in the macros.  */
-struct __jmp_buf_tag;
-extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __THROWNL;
-
-
-/* Mutex handling.  */
-
-/* Initialize a mutex.  */
-extern int pthread_mutex_init (pthread_mutex_t *__mutex,
-			       const pthread_mutexattr_t *__mutexattr)
-     __THROW __nonnull ((1));
-
-/* Destroy a mutex.  */
-extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
-
-/* Try locking a mutex.  */
-extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
-     __THROWNL __nonnull ((1));
-
-/* Lock a mutex.  */
-extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
-     __THROWNL __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Wait until lock becomes available, or specified time passes. */
-extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
-				    const struct timespec *__restrict
-				    __abstime) __THROWNL __nonnull ((1, 2));
-#endif
-
-/* Unlock a mutex.  */
-extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
-     __THROWNL __nonnull ((1));
-
-
-/* Get the priority ceiling of MUTEX.  */
-extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
-					 __restrict __mutex,
-					 int *__restrict __prioceiling)
-     __THROW __nonnull ((1, 2));
-
-/* Set the priority ceiling of MUTEX to PRIOCEILING, return old
-   priority ceiling value in *OLD_CEILING.  */
-extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
-					 int __prioceiling,
-					 int *__restrict __old_ceiling)
-     __THROW __nonnull ((1, 3));
-
-
-#ifdef __USE_XOPEN2K8
-/* Declare the state protected by MUTEX as consistent.  */
-extern int pthread_mutex_consistent (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
-# ifdef __USE_GNU
-extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
-     __THROW __nonnull ((1));
-# endif
-#endif
-
-
-/* Functions for handling mutex attributes.  */
-
-/* Initialize mutex attribute object ATTR with default attributes
-   (kind is PTHREAD_MUTEX_TIMED_NP).  */
-extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Destroy mutex attribute object ATTR.  */
-extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Get the process-shared flag of the mutex attribute ATTR.  */
-extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
-					 __restrict __attr,
-					 int *__restrict __pshared)
-     __THROW __nonnull ((1, 2));
-
-/* Set the process-shared flag of the mutex attribute ATTR.  */
-extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
-					 int __pshared)
-     __THROW __nonnull ((1));
-
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K8
-/* Return in *KIND the mutex kind attribute in *ATTR.  */
-extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
-				      __attr, int *__restrict __kind)
-     __THROW __nonnull ((1, 2));
-
-/* Set the mutex kind attribute in *ATTR to KIND (either PTHREAD_MUTEX_NORMAL,
-   PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_ERRORCHECK, or
-   PTHREAD_MUTEX_DEFAULT).  */
-extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
-     __THROW __nonnull ((1));
-#endif
-
-/* Return in *PROTOCOL the mutex protocol attribute in *ATTR.  */
-extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
-					  __restrict __attr,
-					  int *__restrict __protocol)
-     __THROW __nonnull ((1, 2));
-
-/* Set the mutex protocol attribute in *ATTR to PROTOCOL (either
-   PTHREAD_PRIO_NONE, PTHREAD_PRIO_INHERIT, or PTHREAD_PRIO_PROTECT).  */
-extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
-					  int __protocol)
-     __THROW __nonnull ((1));
-
-/* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR.  */
-extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
-					     __restrict __attr,
-					     int *__restrict __prioceiling)
-     __THROW __nonnull ((1, 2));
-
-/* Set the mutex prioceiling attribute in *ATTR to PRIOCEILING.  */
-extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
-					     int __prioceiling)
-     __THROW __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Get the robustness flag of the mutex attribute ATTR.  */
-extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
-					int *__robustness)
-     __THROW __nonnull ((1, 2));
-# ifdef __USE_GNU
-extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
-					   int *__robustness)
-     __THROW __nonnull ((1, 2));
-# endif
-
-/* Set the robustness flag of the mutex attribute ATTR.  */
-extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
-					int __robustness)
-     __THROW __nonnull ((1));
-# ifdef __USE_GNU
-extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
-					   int __robustness)
-     __THROW __nonnull ((1));
-# endif
-#endif
-
-
-#if defined __USE_UNIX98 || defined __USE_XOPEN2K
-/* Functions for handling read-write locks.  */
-
-/* Initialize read-write lock RWLOCK using attributes ATTR, or use
-   the default values if later is NULL.  */
-extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
-				const pthread_rwlockattr_t *__restrict
-				__attr) __THROW __nonnull ((1));
-
-/* Destroy read-write lock RWLOCK.  */
-extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
-     __THROW __nonnull ((1));
-
-/* Acquire read lock for RWLOCK.  */
-extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
-     __THROWNL __nonnull ((1));
-
-/* Try to acquire read lock for RWLOCK.  */
-extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
-  __THROWNL __nonnull ((1));
-
-# ifdef __USE_XOPEN2K
-/* Try to acquire read lock for RWLOCK or return after specfied time.  */
-extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
-				       const struct timespec *__restrict
-				       __abstime) __THROWNL __nonnull ((1, 2));
-# endif
-
-/* Acquire write lock for RWLOCK.  */
-extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
-     __THROWNL __nonnull ((1));
-
-/* Try to acquire write lock for RWLOCK.  */
-extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
-     __THROWNL __nonnull ((1));
-
-# ifdef __USE_XOPEN2K
-/* Try to acquire write lock for RWLOCK or return after specfied time.  */
-extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
-				       const struct timespec *__restrict
-				       __abstime) __THROWNL __nonnull ((1, 2));
-# endif
-
-/* Unlock RWLOCK.  */
-extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
-     __THROWNL __nonnull ((1));
-
-
-/* Functions for handling read-write lock attributes.  */
-
-/* Initialize attribute object ATTR with default values.  */
-extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Destroy attribute object ATTR.  */
-extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Return current setting of process-shared attribute of ATTR in PSHARED.  */
-extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
-					  __restrict __attr,
-					  int *__restrict __pshared)
-     __THROW __nonnull ((1, 2));
-
-/* Set process-shared attribute of ATTR to PSHARED.  */
-extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
-					  int __pshared)
-     __THROW __nonnull ((1));
-
-/* Return current setting of reader/writer preference.  */
-extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
-					  __restrict __attr,
-					  int *__restrict __pref)
-     __THROW __nonnull ((1, 2));
-
-/* Set reader/write preference.  */
-extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
-					  int __pref) __THROW __nonnull ((1));
-#endif
-
-
-/* Functions for handling conditional variables.  */
-
-/* Initialize condition variable COND using attributes ATTR, or use
-   the default values if later is NULL.  */
-extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
-			      const pthread_condattr_t *__restrict __cond_attr)
-     __THROW __nonnull ((1));
-
-/* Destroy condition variable COND.  */
-extern int pthread_cond_destroy (pthread_cond_t *__cond)
-     __THROW __nonnull ((1));
-
-/* Wake up one thread waiting for condition variable COND.  */
-extern int pthread_cond_signal (pthread_cond_t *__cond)
-     __THROWNL __nonnull ((1));
-
-/* Wake up all threads waiting for condition variables COND.  */
-extern int pthread_cond_broadcast (pthread_cond_t *__cond)
-     __THROWNL __nonnull ((1));
-
-/* Wait for condition variable COND to be signaled or broadcast.
-   MUTEX is assumed to be locked before.
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
-			      pthread_mutex_t *__restrict __mutex)
-     __nonnull ((1, 2));
-
-/* Wait for condition variable COND to be signaled or broadcast until
-   ABSTIME.  MUTEX is assumed to be locked before.  ABSTIME is an
-   absolute time specification; zero is the beginning of the epoch
-   (00:00:00 GMT, January 1, 1970).
-
-   This function is a cancellation point and therefore not marked with
-   __THROW.  */
-extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
-				   pthread_mutex_t *__restrict __mutex,
-				   const struct timespec *__restrict __abstime)
-     __nonnull ((1, 2, 3));
-
-/* Functions for handling condition variable attributes.  */
-
-/* Initialize condition variable attribute ATTR.  */
-extern int pthread_condattr_init (pthread_condattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Destroy condition variable attribute ATTR.  */
-extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Get the process-shared flag of the condition variable attribute ATTR.  */
-extern int pthread_condattr_getpshared (const pthread_condattr_t *
-					__restrict __attr,
-					int *__restrict __pshared)
-     __THROW __nonnull ((1, 2));
-
-/* Set the process-shared flag of the condition variable attribute ATTR.  */
-extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
-					int __pshared) __THROW __nonnull ((1));
-
-#ifdef __USE_XOPEN2K
-/* Get the clock selected for the condition variable attribute ATTR.  */
-extern int pthread_condattr_getclock (const pthread_condattr_t *
-				      __restrict __attr,
-				      __clockid_t *__restrict __clock_id)
-     __THROW __nonnull ((1, 2));
-
-/* Set the clock selected for the condition variable attribute ATTR.  */
-extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
-				      __clockid_t __clock_id)
-     __THROW __nonnull ((1));
-#endif
-
-
-#ifdef __USE_XOPEN2K
-/* Functions to handle spinlocks.  */
-
-/* Initialize the spinlock LOCK.  If PSHARED is nonzero the spinlock can
-   be shared between different processes.  */
-extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
-     __THROW __nonnull ((1));
-
-/* Destroy the spinlock LOCK.  */
-extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
-     __THROW __nonnull ((1));
-
-/* Wait until spinlock LOCK is retrieved.  */
-extern int pthread_spin_lock (pthread_spinlock_t *__lock)
-     __THROWNL __nonnull ((1));
-
-/* Try to lock spinlock LOCK.  */
-extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
-     __THROWNL __nonnull ((1));
-
-/* Release spinlock LOCK.  */
-extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
-     __THROWNL __nonnull ((1));
-
-
-/* Functions to handle barriers.  */
-
-/* Initialize BARRIER with the attributes in ATTR.  The barrier is
-   opened when COUNT waiters arrived.  */
-extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
-				 const pthread_barrierattr_t *__restrict
-				 __attr, unsigned int __count)
-     __THROW __nonnull ((1));
-
-/* Destroy a previously dynamically initialized barrier BARRIER.  */
-extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
-     __THROW __nonnull ((1));
-
-/* Wait on barrier BARRIER.  */
-extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
-     __THROWNL __nonnull ((1));
-
-
-/* Initialize barrier attribute ATTR.  */
-extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Destroy previously dynamically initialized barrier attribute ATTR.  */
-extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
-     __THROW __nonnull ((1));
-
-/* Get the process-shared flag of the barrier attribute ATTR.  */
-extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
-					   __restrict __attr,
-					   int *__restrict __pshared)
-     __THROW __nonnull ((1, 2));
-
-/* Set the process-shared flag of the barrier attribute ATTR.  */
-extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
-					   int __pshared)
-     __THROW __nonnull ((1));
-#endif
-
-
-/* Functions for handling thread-specific data.  */
-
-/* Create a key value identifying a location in the thread-specific
-   data area.  Each thread maintains a distinct thread-specific data
-   area.  DESTR_FUNCTION, if non-NULL, is called with the value
-   associated to that key when the key is destroyed.
-   DESTR_FUNCTION is not called if the value associated is NULL when
-   the key is destroyed.  */
-extern int pthread_key_create (pthread_key_t *__key,
-			       void (*__destr_function) (void *))
-     __THROW __nonnull ((1));
-
-/* Destroy KEY.  */
-extern int pthread_key_delete (pthread_key_t __key) __THROW;
-
-/* Return current value of the thread-specific data slot identified by KEY.  */
-extern void *pthread_getspecific (pthread_key_t __key) __THROW;
-
-/* Store POINTER in the thread-specific data slot identified by KEY. */
-extern int pthread_setspecific (pthread_key_t __key,
-				const void *__pointer) __THROW ;
-
-
-#ifdef __USE_XOPEN2K
-/* Get ID of CPU-time clock for thread THREAD_ID.  */
-extern int pthread_getcpuclockid (pthread_t __thread_id,
-				  __clockid_t *__clock_id)
-     __THROW __nonnull ((2));
-#endif
-
-
-/* Install handlers to be called when a new process is created with FORK.
-   The PREPARE handler is called in the parent process just before performing
-   FORK. The PARENT handler is called in the parent process just after FORK.
-   The CHILD handler is called in the child process.  Each of the three
-   handlers can be NULL, meaning that no handler needs to be called at that
-   point.
-   PTHREAD_ATFORK can be called several times, in which case the PREPARE
-   handlers are called in LIFO order (last added with PTHREAD_ATFORK,
-   first called before FORK), and the PARENT and CHILD handlers are called
-   in FIFO (first added, first called).  */
-
-extern int pthread_atfork (void (*__prepare) (void),
-			   void (*__parent) (void),
-			   void (*__child) (void)) __THROW;
-
-
-#ifdef __USE_EXTERN_INLINES
-/* Optimizations.  */
-__extern_inline int
-__NTH (pthread_equal (pthread_t __thread1, pthread_t __thread2))
-{
-  return __thread1 == __thread2;
-}
-#endif
-
-__END_DECLS
-
-#endif	/* pthread.h */
diff --git a/nptl/sysdeps/pthread/pthread_sigmask.c b/nptl/sysdeps/pthread/pthread_sigmask.c
deleted file mode 100644
index 21f0665460..0000000000
--- a/nptl/sysdeps/pthread/pthread_sigmask.c
+++ /dev/null
@@ -1,57 +0,0 @@
-/* Copyright (C) 2002-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <pthreadP.h>
-#include <sysdep.h>
-
-
-int
-pthread_sigmask (how, newmask, oldmask)
-     int how;
-     const sigset_t *newmask;
-     sigset_t *oldmask;
-{
-  sigset_t local_newmask;
-
-  /* The only thing we have to make sure here is that SIGCANCEL and
-     SIGSETXID is not blocked.  */
-  if (newmask != NULL
-      && (__builtin_expect (__sigismember (newmask, SIGCANCEL), 0)
-	  || __builtin_expect (__sigismember (newmask, SIGSETXID), 0)))
-    {
-      local_newmask = *newmask;
-      __sigdelset (&local_newmask, SIGCANCEL);
-      __sigdelset (&local_newmask, SIGSETXID);
-      newmask = &local_newmask;
-    }
-
-#ifdef INTERNAL_SYSCALL
-  /* We know that realtime signals are available if NPTL is used.  */
-  INTERNAL_SYSCALL_DECL (err);
-  int result = INTERNAL_SYSCALL (rt_sigprocmask, err, 4, how, newmask,
-				 oldmask, _NSIG / 8);
-
-  return (INTERNAL_SYSCALL_ERROR_P (result, err)
-	  ? INTERNAL_SYSCALL_ERRNO (result, err)
-	  : 0);
-#else
-  return sigprocmask (how, newmask, oldmask) == -1 ? errno : 0;
-#endif
-}
diff --git a/nptl/sysdeps/pthread/setxid.h b/nptl/sysdeps/pthread/setxid.h
deleted file mode 100644
index 76c88e0feb..0000000000
--- a/nptl/sysdeps/pthread/setxid.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* Copyright (C) 2004-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <pthreadP.h>
-#include <sysdep.h>
-
-#define __SETXID_1(cmd, arg1) \
-  cmd.id[0] = (long int) arg1
-#define __SETXID_2(cmd, arg1, arg2) \
-  __SETXID_1 (cmd, arg1); cmd.id[1] = (long int) arg2
-#define __SETXID_3(cmd, arg1, arg2, arg3) \
-  __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = (long int) arg3
-
-#ifdef SINGLE_THREAD
-# define INLINE_SETXID_SYSCALL(name, nr, args...) \
-  INLINE_SYSCALL (name, nr, args)
-#elif defined SHARED
-# define INLINE_SETXID_SYSCALL(name, nr, args...) \
-  ({									\
-    int __result;							\
-    if (__builtin_expect (__libc_pthread_functions_init, 0))		\
-      {									\
-	struct xid_command __cmd;					\
-	__cmd.syscall_no = __NR_##name;					\
-	__SETXID_##nr (__cmd, args);					\
-	__result = PTHFCT_CALL (ptr__nptl_setxid, (&__cmd));		\
-	}								\
-    else								\
-      __result = INLINE_SYSCALL (name, nr, args);			\
-    __result;								\
-   })
-#else
-# define INLINE_SETXID_SYSCALL(name, nr, args...) \
-  ({									\
-    extern __typeof (__nptl_setxid) __nptl_setxid __attribute__((weak));\
-    int __result;							\
-    if (__glibc_unlikely (__nptl_setxid	!= NULL))			      \
-      {									\
-	struct xid_command __cmd;					\
-	__cmd.syscall_no = __NR_##name;					\
-	__SETXID_##nr (__cmd, args);					\
-	__result =__nptl_setxid (&__cmd);				\
-      }									\
-    else								\
-      __result = INLINE_SYSCALL (name, nr, args);			\
-    __result;								\
-   })
-#endif
diff --git a/nptl/sysdeps/pthread/sigfillset.c b/nptl/sysdeps/pthread/sigfillset.c
deleted file mode 100644
index 9ab12c7a3e..0000000000
--- a/nptl/sysdeps/pthread/sigfillset.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#include <nptl/pthreadP.h>
-
-#include <signal/sigfillset.c>
diff --git a/nptl/sysdeps/pthread/tcb-offsets.h b/nptl/sysdeps/pthread/tcb-offsets.h
deleted file mode 100644
index 3fe13702ea..0000000000
--- a/nptl/sysdeps/pthread/tcb-offsets.h
+++ /dev/null
@@ -1 +0,0 @@
-/* This is overridden by generated tcb-offsets.h on arches which need it.  */
diff --git a/nptl/sysdeps/pthread/timer_create.c b/nptl/sysdeps/pthread/timer_create.c
deleted file mode 100644
index 461d28e353..0000000000
--- a/nptl/sysdeps/pthread/timer_create.c
+++ /dev/null
@@ -1,169 +0,0 @@
-/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <pthread.h>
-#include <time.h>
-#include <unistd.h>
-
-#include "posix-timer.h"
-
-
-/* Create new per-process timer using CLOCK.  */
-int
-timer_create (clock_id, evp, timerid)
-     clockid_t clock_id;
-     struct sigevent *evp;
-     timer_t *timerid;
-{
-  int retval = -1;
-  struct timer_node *newtimer = NULL;
-  struct thread_node *thread = NULL;
-
-  if (0
-#if defined _POSIX_CPUTIME && _POSIX_CPUTIME >= 0
-      || clock_id == CLOCK_PROCESS_CPUTIME_ID
-#endif
-#if defined _POSIX_THREAD_CPUTIME && _POSIX_THREAD_CPUTIME >= 0
-      || clock_id == CLOCK_THREAD_CPUTIME_ID
-#endif
-      )
-    {
-      /* We don't allow timers for CPU clocks.  At least not in the
-	 moment.  */
-      __set_errno (ENOTSUP);
-      return -1;
-    }
-
-  if (clock_id != CLOCK_REALTIME)
-    {
-      __set_errno (EINVAL);
-      return -1;
-    }
-
-  pthread_once (&__timer_init_once_control, __timer_init_once);
-
-  if (__timer_init_failed)
-    {
-      __set_errno (ENOMEM);
-      return -1;
-    }
-
-  pthread_mutex_lock (&__timer_mutex);
-
-  newtimer = __timer_alloc ();
-  if (__glibc_unlikely (newtimer == NULL))
-    {
-      __set_errno (EAGAIN);
-      goto unlock_bail;
-    }
-
-  if (evp != NULL)
-    newtimer->event = *evp;
-  else
-    {
-      newtimer->event.sigev_notify = SIGEV_SIGNAL;
-      newtimer->event.sigev_signo = SIGALRM;
-      newtimer->event.sigev_value.sival_ptr = timer_ptr2id (newtimer);
-      newtimer->event.sigev_notify_function = 0;
-    }
-
-  newtimer->event.sigev_notify_attributes = &newtimer->attr;
-  newtimer->creator_pid = getpid ();
-
-  switch (__builtin_expect (newtimer->event.sigev_notify, SIGEV_SIGNAL))
-    {
-    case SIGEV_NONE:
-    case SIGEV_SIGNAL:
-      /* We have a global thread for delivering timed signals.
-	 If it is not running, try to start it up.  */
-      thread = &__timer_signal_thread_rclk;
-      if (! thread->exists)
-	{
-	  if (__builtin_expect (__timer_thread_start (thread),
-				1) < 0)
-	    {
-	      __set_errno (EAGAIN);
-	      goto unlock_bail;
-            }
-        }
-      break;
-
-    case SIGEV_THREAD:
-      /* Copy over thread attributes or set up default ones.  */
-      if (evp->sigev_notify_attributes)
-	newtimer->attr = *(pthread_attr_t *) evp->sigev_notify_attributes;
-      else
-	pthread_attr_init (&newtimer->attr);
-
-      /* Ensure thread attributes call for deatched thread.  */
-      pthread_attr_setdetachstate (&newtimer->attr, PTHREAD_CREATE_DETACHED);
-
-      /* Try to find existing thread having the right attributes.  */
-      thread = __timer_thread_find_matching (&newtimer->attr, clock_id);
-
-      /* If no existing thread has these attributes, try to allocate one.  */
-      if (thread == NULL)
-	thread = __timer_thread_alloc (&newtimer->attr, clock_id);
-
-      /* Out of luck; no threads are available.  */
-      if (__glibc_unlikely (thread == NULL))
-	{
-	  __set_errno (EAGAIN);
-	  goto unlock_bail;
-	}
-
-      /* If the thread is not running already, try to start it.  */
-      if (! thread->exists
-	  && __builtin_expect (! __timer_thread_start (thread), 0))
-	{
-	  __set_errno (EAGAIN);
-	  goto unlock_bail;
-	}
-      break;
-
-    default:
-      __set_errno (EINVAL);
-      goto unlock_bail;
-    }
-
-  newtimer->clock = clock_id;
-  newtimer->abstime = 0;
-  newtimer->armed = 0;
-  newtimer->thread = thread;
-
-  *timerid = timer_ptr2id (newtimer);
-  retval = 0;
-
-  if (__builtin_expect (retval, 0) == -1)
-    {
-    unlock_bail:
-      if (thread != NULL)
-	__timer_thread_dealloc (thread);
-      if (newtimer != NULL)
-	{
-	  timer_delref (newtimer);
-	  __timer_dealloc (newtimer);
-	}
-    }
-
-  pthread_mutex_unlock (&__timer_mutex);
-
-  return retval;
-}
diff --git a/nptl/sysdeps/pthread/timer_delete.c b/nptl/sysdeps/pthread/timer_delete.c
deleted file mode 100644
index 99e4cc180e..0000000000
--- a/nptl/sysdeps/pthread/timer_delete.c
+++ /dev/null
@@ -1,69 +0,0 @@
-/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-
-#include "posix-timer.h"
-
-
-/* Delete timer TIMERID.  */
-int
-timer_delete (timerid)
-     timer_t timerid;
-{
-  struct timer_node *timer;
-  int retval = -1;
-
-  pthread_mutex_lock (&__timer_mutex);
-
-  timer = timer_id2ptr (timerid);
-  if (! timer_valid (timer))
-    /* Invalid timer ID or the timer is not in use.  */
-    __set_errno (EINVAL);
-  else
-    {
-      if (timer->armed && timer->thread != NULL)
-	{
-	  struct thread_node *thread = timer->thread;
-	  assert (thread != NULL);
-
-	  /* If thread is cancelled while waiting for handler to terminate,
-	     the mutex is unlocked and timer_delete is aborted.  */
-	  pthread_cleanup_push (__timer_mutex_cancel_handler, &__timer_mutex);
-
-	  /* If timer is currently being serviced, wait for it to finish.  */
-	  while (thread->current_timer == timer)
-	    pthread_cond_wait (&thread->cond, &__timer_mutex);
-
-	  pthread_cleanup_pop (0);
-        }
-
-      /* Remove timer from whatever queue it may be on and deallocate it.  */
-      timer->inuse = TIMER_DELETED;
-      list_unlink_ip (&timer->links);
-      timer_delref (timer);
-      retval = 0;
-    }
-
-  pthread_mutex_unlock (&__timer_mutex);
-
-  return retval;
-}
diff --git a/nptl/sysdeps/pthread/timer_getoverr.c b/nptl/sysdeps/pthread/timer_getoverr.c
deleted file mode 100644
index 159ebf27f0..0000000000
--- a/nptl/sysdeps/pthread/timer_getoverr.c
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-
-#include "posix-timer.h"
-
-
-/* Get expiration overrun for timer TIMERID.  */
-int
-timer_getoverrun (timerid)
-     timer_t timerid;
-{
-  struct timer_node *timer;
-  int retval = -1;
-
-  pthread_mutex_lock (&__timer_mutex);
-
-  if (! timer_valid (timer = timer_id2ptr (timerid)))
-    __set_errno (EINVAL);
-  else
-    retval = timer->overrun_count;
-
-  pthread_mutex_unlock (&__timer_mutex);
-
-  return retval;
-}
diff --git a/nptl/sysdeps/pthread/timer_gettime.c b/nptl/sysdeps/pthread/timer_gettime.c
deleted file mode 100644
index 1e0ea69ad0..0000000000
--- a/nptl/sysdeps/pthread/timer_gettime.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-
-#include "posix-timer.h"
-
-
-/* Get current value of timer TIMERID and store it in VLAUE.  */
-int
-timer_gettime (timerid, value)
-     timer_t timerid;
-     struct itimerspec *value;
-{
-  struct timer_node *timer;
-  struct timespec now, expiry;
-  int retval = -1, armed = 0, valid;
-  clock_t clock = 0;
-
-  pthread_mutex_lock (&__timer_mutex);
-
-  timer = timer_id2ptr (timerid);
-  valid = timer_valid (timer);
-
-  if (valid) {
-    armed = timer->armed;
-    expiry = timer->expirytime;
-    clock = timer->clock;
-    value->it_interval = timer->value.it_interval;
-  }
-
-  pthread_mutex_unlock (&__timer_mutex);
-
-  if (valid)
-    {
-      if (armed)
-	{
-	  clock_gettime (clock, &now);
-	  if (timespec_compare (&now, &expiry) < 0)
-	    timespec_sub (&value->it_value, &expiry, &now);
-	  else
-	    {
-	      value->it_value.tv_sec = 0;
-	      value->it_value.tv_nsec = 0;
-	    }
-	}
-      else
-	{
-	  value->it_value.tv_sec = 0;
-	  value->it_value.tv_nsec = 0;
-	}
-
-      retval = 0;
-    }
-  else
-    __set_errno (EINVAL);
-
-  return retval;
-}
diff --git a/nptl/sysdeps/pthread/timer_routines.c b/nptl/sysdeps/pthread/timer_routines.c
deleted file mode 100644
index ce1aa417cd..0000000000
--- a/nptl/sysdeps/pthread/timer_routines.c
+++ /dev/null
@@ -1,577 +0,0 @@
-/* Helper code for POSIX timer implementation on NPTL.
-   Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <assert.h>
-#include <errno.h>
-#include <pthread.h>
-#include <stddef.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sysdep.h>
-#include <time.h>
-#include <unistd.h>
-#include <sys/syscall.h>
-
-#include "posix-timer.h"
-#include <pthreadP.h>
-
-
-/* Number of threads used.  */
-#define THREAD_MAXNODES	16
-
-/* Array containing the descriptors for the used threads.  */
-static struct thread_node thread_array[THREAD_MAXNODES];
-
-/* Static array with the structures for all the timers.  */
-struct timer_node __timer_array[TIMER_MAX];
-
-/* Global lock to protect operation on the lists.  */
-pthread_mutex_t __timer_mutex = PTHREAD_MUTEX_INITIALIZER;
-
-/* Variable to protext initialization.  */
-pthread_once_t __timer_init_once_control = PTHREAD_ONCE_INIT;
-
-/* Nonzero if initialization of timer implementation failed.  */
-int __timer_init_failed;
-
-/* Node for the thread used to deliver signals.  */
-struct thread_node __timer_signal_thread_rclk;
-
-/* Lists to keep free and used timers and threads.  */
-struct list_links timer_free_list;
-struct list_links thread_free_list;
-struct list_links thread_active_list;
-
-
-#ifdef __NR_rt_sigqueueinfo
-extern int __syscall_rt_sigqueueinfo (int, int, siginfo_t *);
-#endif
-
-
-/* List handling functions.  */
-static inline void
-list_init (struct list_links *list)
-{
-  list->next = list->prev = list;
-}
-
-static inline void
-list_append (struct list_links *list, struct list_links *newp)
-{
-  newp->prev = list->prev;
-  newp->next = list;
-  list->prev->next = newp;
-  list->prev = newp;
-}
-
-static inline void
-list_insbefore (struct list_links *list, struct list_links *newp)
-{
-  list_append (list, newp);
-}
-
-/*
- * Like list_unlink_ip, except that calling it on a node that
- * is already unlinked is disastrous rather than a noop.
- */
-
-static inline void
-list_unlink (struct list_links *list)
-{
-  struct list_links *lnext = list->next, *lprev = list->prev;
-
-  lnext->prev = lprev;
-  lprev->next = lnext;
-}
-
-static inline struct list_links *
-list_first (struct list_links *list)
-{
-  return list->next;
-}
-
-static inline struct list_links *
-list_null (struct list_links *list)
-{
-  return list;
-}
-
-static inline struct list_links *
-list_next (struct list_links *list)
-{
-  return list->next;
-}
-
-static inline int
-list_isempty (struct list_links *list)
-{
-  return list->next == list;
-}
-
-
-/* Functions build on top of the list functions.  */
-static inline struct thread_node *
-thread_links2ptr (struct list_links *list)
-{
-  return (struct thread_node *) ((char *) list
-				 - offsetof (struct thread_node, links));
-}
-
-static inline struct timer_node *
-timer_links2ptr (struct list_links *list)
-{
-  return (struct timer_node *) ((char *) list
-				- offsetof (struct timer_node, links));
-}
-
-
-/* Initialize a newly allocated thread structure.  */
-static void
-thread_init (struct thread_node *thread, const pthread_attr_t *attr, clockid_t clock_id)
-{
-  if (attr != NULL)
-    thread->attr = *attr;
-  else
-    {
-      pthread_attr_init (&thread->attr);
-      pthread_attr_setdetachstate (&thread->attr, PTHREAD_CREATE_DETACHED);
-    }
-
-  thread->exists = 0;
-  list_init (&thread->timer_queue);
-  pthread_cond_init (&thread->cond, 0);
-  thread->current_timer = 0;
-  thread->captured = pthread_self ();
-  thread->clock_id = clock_id;
-}
-
-
-/* Initialize the global lists, and acquire global resources.  Error
-   reporting is done by storing a non-zero value to the global variable
-   timer_init_failed.  */
-static void
-init_module (void)
-{
-  int i;
-
-  list_init (&timer_free_list);
-  list_init (&thread_free_list);
-  list_init (&thread_active_list);
-
-  for (i = 0; i < TIMER_MAX; ++i)
-    {
-      list_append (&timer_free_list, &__timer_array[i].links);
-      __timer_array[i].inuse = TIMER_FREE;
-    }
-
-  for (i = 0; i < THREAD_MAXNODES; ++i)
-    list_append (&thread_free_list, &thread_array[i].links);
-
-  thread_init (&__timer_signal_thread_rclk, 0, CLOCK_REALTIME);
-}
-
-
-/* This is a handler executed in a child process after a fork()
-   occurs.  It reinitializes the module, resetting all of the data
-   structures to their initial state.  The mutex is initialized in
-   case it was locked in the parent process.  */
-static void
-reinit_after_fork (void)
-{
-  init_module ();
-  pthread_mutex_init (&__timer_mutex, 0);
-}
-
-
-/* Called once form pthread_once in timer_init. This initializes the
-   module and ensures that reinit_after_fork will be executed in any
-   child process.  */
-void
-__timer_init_once (void)
-{
-  init_module ();
-  pthread_atfork (0, 0, reinit_after_fork);
-}
-
-
-/* Deinitialize a thread that is about to be deallocated.  */
-static void
-thread_deinit (struct thread_node *thread)
-{
-  assert (list_isempty (&thread->timer_queue));
-  pthread_cond_destroy (&thread->cond);
-}
-
-
-/* Allocate a thread structure from the global free list.  Global
-   mutex lock must be held by caller.  The thread is moved to
-   the active list. */
-struct thread_node *
-__timer_thread_alloc (const pthread_attr_t *desired_attr, clockid_t clock_id)
-{
-  struct list_links *node = list_first (&thread_free_list);
-
-  if (node != list_null (&thread_free_list))
-    {
-      struct thread_node *thread = thread_links2ptr (node);
-      list_unlink (node);
-      thread_init (thread, desired_attr, clock_id);
-      list_append (&thread_active_list, node);
-      return thread;
-    }
-
-  return 0;
-}
-
-
-/* Return a thread structure to the global free list.  Global lock
-   must be held by caller.  */
-void
-__timer_thread_dealloc (struct thread_node *thread)
-{
-  thread_deinit (thread);
-  list_unlink (&thread->links);
-  list_append (&thread_free_list, &thread->links);
-}
-
-
-/* Each of our threads which terminates executes this cleanup
-   handler. We never terminate threads ourselves; if a thread gets here
-   it means that the evil application has killed it.  If the thread has
-   timers, these require servicing and so we must hire a replacement
-   thread right away.  We must also unblock another thread that may
-   have been waiting for this thread to finish servicing a timer (see
-   timer_delete()).  */
-
-static void
-thread_cleanup (void *val)
-{
-  if (val != NULL)
-    {
-      struct thread_node *thread = val;
-
-      /* How did the signal thread get killed?  */
-      assert (thread != &__timer_signal_thread_rclk);
-
-      pthread_mutex_lock (&__timer_mutex);
-
-      thread->exists = 0;
-
-      /* We are no longer processing a timer event.  */
-      thread->current_timer = 0;
-
-      if (list_isempty (&thread->timer_queue))
-	__timer_thread_dealloc (thread);
-      else
-	(void) __timer_thread_start (thread);
-
-      pthread_mutex_unlock (&__timer_mutex);
-
-      /* Unblock potentially blocked timer_delete().  */
-      pthread_cond_broadcast (&thread->cond);
-    }
-}
-
-
-/* Handle a timer which is supposed to go off now.  */
-static void
-thread_expire_timer (struct thread_node *self, struct timer_node *timer)
-{
-  self->current_timer = timer; /* Lets timer_delete know timer is running. */
-
-  pthread_mutex_unlock (&__timer_mutex);
-
-  switch (__builtin_expect (timer->event.sigev_notify, SIGEV_SIGNAL))
-    {
-    case SIGEV_NONE:
-      break;
-
-    case SIGEV_SIGNAL:
-#ifdef __NR_rt_sigqueueinfo
-      {
-	siginfo_t info;
-
-	/* First, clear the siginfo_t structure, so that we don't pass our
-	   stack content to other tasks.  */
-	memset (&info, 0, sizeof (siginfo_t));
-	/* We must pass the information about the data in a siginfo_t
-           value.  */
-	info.si_signo = timer->event.sigev_signo;
-	info.si_code = SI_TIMER;
-	info.si_pid = timer->creator_pid;
-	info.si_uid = getuid ();
-	info.si_value = timer->event.sigev_value;
-
-	INLINE_SYSCALL (rt_sigqueueinfo, 3, info.si_pid, info.si_signo, &info);
-      }
-#else
-      if (pthread_kill (self->captured, timer->event.sigev_signo) != 0)
-	{
-	  if (pthread_kill (self->id, timer->event.sigev_signo) != 0)
-	    abort ();
-        }
-#endif
-      break;
-
-    case SIGEV_THREAD:
-      timer->event.sigev_notify_function (timer->event.sigev_value);
-      break;
-
-    default:
-      assert (! "unknown event");
-      break;
-    }
-
-  pthread_mutex_lock (&__timer_mutex);
-
-  self->current_timer = 0;
-
-  pthread_cond_broadcast (&self->cond);
-}
-
-
-/* Thread function; executed by each timer thread. The job of this
-   function is to wait on the thread's timer queue and expire the
-   timers in chronological order as close to their scheduled time as
-   possible.  */
-static void
-__attribute__ ((noreturn))
-thread_func (void *arg)
-{
-  struct thread_node *self = arg;
-
-  /* Register cleanup handler, in case rogue application terminates
-     this thread.  (This cannot happen to __timer_signal_thread, which
-     doesn't invoke application callbacks). */
-
-  pthread_cleanup_push (thread_cleanup, self);
-
-  pthread_mutex_lock (&__timer_mutex);
-
-  while (1)
-    {
-      struct list_links *first;
-      struct timer_node *timer = NULL;
-
-      /* While the timer queue is not empty, inspect the first node.  */
-      first = list_first (&self->timer_queue);
-      if (first != list_null (&self->timer_queue))
-	{
-	  struct timespec now;
-
-	  timer = timer_links2ptr (first);
-
-	  /* This assumes that the elements of the list of one thread
-	     are all for the same clock.  */
-	  clock_gettime (timer->clock, &now);
-
-	  while (1)
-	    {
-	      /* If the timer is due or overdue, remove it from the queue.
-		 If it's a periodic timer, re-compute its new time and
-		 requeue it.  Either way, perform the timer expiry. */
-	      if (timespec_compare (&now, &timer->expirytime) < 0)
-		break;
-
-	      list_unlink_ip (first);
-
-	      if (__builtin_expect (timer->value.it_interval.tv_sec, 0) != 0
-		  || timer->value.it_interval.tv_nsec != 0)
-		{
-		  timer->overrun_count = 0;
-		  timespec_add (&timer->expirytime, &timer->expirytime,
-				&timer->value.it_interval);
-		  while (timespec_compare (&timer->expirytime, &now) < 0)
-		    {
-		      timespec_add (&timer->expirytime, &timer->expirytime,
-				    &timer->value.it_interval);
-		      if (timer->overrun_count < DELAYTIMER_MAX)
-			++timer->overrun_count;
-		    }
-		  __timer_thread_queue_timer (self, timer);
-		}
-
-	      thread_expire_timer (self, timer);
-
-	      first = list_first (&self->timer_queue);
-	      if (first == list_null (&self->timer_queue))
-		break;
-
-	      timer = timer_links2ptr (first);
-	    }
-	}
-
-      /* If the queue is not empty, wait until the expiry time of the
-	 first node.  Otherwise wait indefinitely.  Insertions at the
-	 head of the queue must wake up the thread by broadcasting
-	 this condition variable.  */
-      if (timer != NULL)
-	pthread_cond_timedwait (&self->cond, &__timer_mutex,
-				&timer->expirytime);
-      else
-	pthread_cond_wait (&self->cond, &__timer_mutex);
-    }
-  /* This macro will never be executed since the while loop loops
-     forever - but we have to add it for proper nesting.  */
-  pthread_cleanup_pop (1);
-}
-
-
-/* Enqueue a timer in wakeup order in the thread's timer queue.
-   Returns 1 if the timer was inserted at the head of the queue,
-   causing the queue's next wakeup time to change. */
-
-int
-__timer_thread_queue_timer (struct thread_node *thread,
-			    struct timer_node *insert)
-{
-  struct list_links *iter;
-  int athead = 1;
-
-  for (iter = list_first (&thread->timer_queue);
-       iter != list_null (&thread->timer_queue);
-        iter = list_next (iter))
-    {
-      struct timer_node *timer = timer_links2ptr (iter);
-
-      if (timespec_compare (&insert->expirytime, &timer->expirytime) < 0)
-	  break;
-      athead = 0;
-    }
-
-  list_insbefore (iter, &insert->links);
-  return athead;
-}
-
-
-/* Start a thread and associate it with the given thread node.  Global
-   lock must be held by caller.  */
-int
-__timer_thread_start (struct thread_node *thread)
-{
-  int retval = 1;
-
-  assert (!thread->exists);
-  thread->exists = 1;
-
-  if (pthread_create (&thread->id, &thread->attr,
-		      (void *(*) (void *)) thread_func, thread) != 0)
-    {
-      thread->exists = 0;
-      retval = -1;
-    }
-
-  return retval;
-}
-
-
-void
-__timer_thread_wakeup (struct thread_node *thread)
-{
-  pthread_cond_broadcast (&thread->cond);
-}
-
-
-/* Compare two pthread_attr_t thread attributes for exact equality.
-   Returns 1 if they are equal, otherwise zero if they are not equal
-   or contain illegal values.  This version is NPTL-specific for
-   performance reason.  One could use the access functions to get the
-   values of all the fields of the attribute structure.  */
-static int
-thread_attr_compare (const pthread_attr_t *left, const pthread_attr_t *right)
-{
-  struct pthread_attr *ileft = (struct pthread_attr *) left;
-  struct pthread_attr *iright = (struct pthread_attr *) right;
-
-  return (ileft->flags == iright->flags
-	  && ileft->schedpolicy == iright->schedpolicy
-	  && (ileft->schedparam.sched_priority
-	      == iright->schedparam.sched_priority)
-	  && ileft->guardsize == iright->guardsize
-	  && ileft->stackaddr == iright->stackaddr
-	  && ileft->stacksize == iright->stacksize
-	  && ((ileft->cpuset == NULL && iright->cpuset == NULL)
-	      || (ileft->cpuset != NULL && iright->cpuset != NULL
-		  && ileft->cpusetsize == iright->cpusetsize
-		  && memcmp (ileft->cpuset, iright->cpuset,
-			     ileft->cpusetsize) == 0)));
-}
-
-
-/* Search the list of active threads and find one which has matching
-   attributes.  Global mutex lock must be held by caller.  */
-struct thread_node *
-__timer_thread_find_matching (const pthread_attr_t *desired_attr,
-			      clockid_t desired_clock_id)
-{
-  struct list_links *iter = list_first (&thread_active_list);
-
-  while (iter != list_null (&thread_active_list))
-    {
-      struct thread_node *candidate = thread_links2ptr (iter);
-
-      if (thread_attr_compare (desired_attr, &candidate->attr)
-	  && desired_clock_id == candidate->clock_id)
-	return candidate;
-
-      iter = list_next (iter);
-    }
-
-  return NULL;
-}
-
-
-/* Grab a free timer structure from the global free list.  The global
-   lock must be held by the caller.  */
-struct timer_node *
-__timer_alloc (void)
-{
-  struct list_links *node = list_first (&timer_free_list);
-
-  if (node != list_null (&timer_free_list))
-    {
-      struct timer_node *timer = timer_links2ptr (node);
-      list_unlink_ip (node);
-      timer->inuse = TIMER_INUSE;
-      timer->refcount = 1;
-      return timer;
-    }
-
-  return NULL;
-}
-
-
-/* Return a timer structure to the global free list.  The global lock
-   must be held by the caller.  */
-void
-__timer_dealloc (struct timer_node *timer)
-{
-  assert (timer->refcount == 0);
-  timer->thread = NULL;	/* Break association between timer and thread.  */
-  timer->inuse = TIMER_FREE;
-  list_append (&timer_free_list, &timer->links);
-}
-
-
-/* Thread cancellation handler which unlocks a mutex.  */
-void
-__timer_mutex_cancel_handler (void *arg)
-{
-  pthread_mutex_unlock (arg);
-}
diff --git a/nptl/sysdeps/pthread/timer_settime.c b/nptl/sysdeps/pthread/timer_settime.c
deleted file mode 100644
index 5d3c1664f7..0000000000
--- a/nptl/sysdeps/pthread/timer_settime.c
+++ /dev/null
@@ -1,136 +0,0 @@
-/* Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <pthread.h>
-#include <time.h>
-
-#include "posix-timer.h"
-
-
-/* Set timer TIMERID to VALUE, returning old value in OVLAUE.  */
-int
-timer_settime (timerid, flags, value, ovalue)
-     timer_t timerid;
-     int flags;
-     const struct itimerspec *value;
-     struct itimerspec *ovalue;
-{
-  struct timer_node *timer;
-  struct thread_node *thread = NULL;
-  struct timespec now;
-  int have_now = 0, need_wakeup = 0;
-  int retval = -1;
-
-  timer = timer_id2ptr (timerid);
-  if (timer == NULL)
-    {
-      __set_errno (EINVAL);
-      goto bail;
-    }
-
-  if (value->it_interval.tv_nsec < 0
-      || value->it_interval.tv_nsec >= 1000000000
-      || value->it_value.tv_nsec < 0
-      || value->it_value.tv_nsec >= 1000000000)
-    {
-      __set_errno (EINVAL);
-      goto bail;
-    }
-
-  /* Will need to know current time since this is a relative timer;
-     might as well make the system call outside of the lock now! */
-
-  if ((flags & TIMER_ABSTIME) == 0)
-    {
-      clock_gettime (timer->clock, &now);
-      have_now = 1;
-    }
-
-  pthread_mutex_lock (&__timer_mutex);
-  timer_addref (timer);
-
-  /* One final check of timer validity; this one is possible only
-     until we have the mutex, because it accesses the inuse flag. */
-
-  if (! timer_valid(timer))
-    {
-      __set_errno (EINVAL);
-      goto unlock_bail;
-    }
-
-  if (ovalue != NULL)
-    {
-      ovalue->it_interval = timer->value.it_interval;
-
-      if (timer->armed)
-	{
-	  if (! have_now)
-	    {
-	      pthread_mutex_unlock (&__timer_mutex);
-	      clock_gettime (timer->clock, &now);
-	      have_now = 1;
-	      pthread_mutex_lock (&__timer_mutex);
-	      timer_addref (timer);
-	    }
-
-	  timespec_sub (&ovalue->it_value, &timer->expirytime, &now);
-	}
-      else
-	{
-	  ovalue->it_value.tv_sec = 0;
-	  ovalue->it_value.tv_nsec = 0;
-	}
-    }
-
-  timer->value = *value;
-
-  list_unlink_ip (&timer->links);
-  timer->armed = 0;
-
-  thread = timer->thread;
-
-  /* A value of { 0, 0 } causes the timer to be stopped. */
-  if (value->it_value.tv_sec != 0
-      || __builtin_expect (value->it_value.tv_nsec != 0, 1))
-    {
-      if ((flags & TIMER_ABSTIME) != 0)
-	/* The user specified the expiration time.  */
-	timer->expirytime = value->it_value;
-      else
-	timespec_add (&timer->expirytime, &now, &value->it_value);
-
-      /* Only need to wake up the thread if timer is inserted
-	 at the head of the queue. */
-      if (thread != NULL)
-	need_wakeup = __timer_thread_queue_timer (thread, timer);
-      timer->armed = 1;
-    }
-
-  retval = 0;
-
-unlock_bail:
-  timer_delref (timer);
-  pthread_mutex_unlock (&__timer_mutex);
-
-bail:
-  if (thread != NULL && need_wakeup)
-    __timer_thread_wakeup (thread);
-
-  return retval;
-}
diff --git a/nptl/sysdeps/pthread/tst-mqueue8x.c b/nptl/sysdeps/pthread/tst-mqueue8x.c
deleted file mode 100644
index ca280394f7..0000000000
--- a/nptl/sysdeps/pthread/tst-mqueue8x.c
+++ /dev/null
@@ -1 +0,0 @@
-#include <rt/tst-mqueue8.c>
diff --git a/nptl/sysdeps/pthread/tst-timer.c b/nptl/sysdeps/pthread/tst-timer.c
deleted file mode 100644
index 16adf3c199..0000000000
--- a/nptl/sysdeps/pthread/tst-timer.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* Tests for POSIX timer implementation.
-   Copyright (C) 2000-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Kaz Kylheku <kaz@ashi.footprints.net>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <errno.h>
-#include <signal.h>
-#include <stdio.h>
-#include <time.h>
-#include <unistd.h>
-#include <stdlib.h>
-
-
-static void
-notify_func1 (union sigval sigval)
-{
-  puts ("notify_func1");
-}
-
-
-static void
-notify_func2 (union sigval sigval)
-{
-  puts ("notify_func2");
-}
-
-
-static void
-signal_func (int sig)
-{
-  static const char text[] = "signal_func\n";
-  signal (sig, signal_func);
-  write (STDOUT_FILENO, text, sizeof text - 1);
-}
-
-static void
-intr_sleep (int sec)
-{
-  struct timespec ts;
-
-  ts.tv_sec = sec;
-  ts.tv_nsec = 0;
-
-  while (nanosleep (&ts, &ts) == -1 && errno == EINTR)
-    ;
-}
-
-#define ZSIGALRM 14
-
-
-int
-main (void)
-{
-  struct timespec ts;
-  timer_t timer_sig, timer_thr1, timer_thr2;
-  int retval;
-  struct sigevent sigev1 =
-  {
-    .sigev_notify = SIGEV_SIGNAL,
-    .sigev_signo = ZSIGALRM
-  };
-  struct sigevent sigev2;
-  struct itimerspec itimer1 = { { 0, 200000000 }, { 0, 200000000 } };
-  struct itimerspec itimer2 = { { 0, 100000000 }, { 0, 500000000 } };
-  struct itimerspec itimer3 = { { 0, 150000000 }, { 0, 300000000 } };
-  struct itimerspec old;
-
-  retval = clock_gettime (CLOCK_REALTIME, &ts);
-
-  sigev2.sigev_notify = SIGEV_THREAD;
-  sigev2.sigev_notify_function = notify_func1;
-  sigev2.sigev_notify_attributes = NULL;
-  /* It is unnecessary to do the following but to set a good example
-     we do it anyhow.  */
-  sigev2.sigev_value.sival_ptr = NULL;
-
-  setvbuf (stdout, 0, _IOLBF, 0);
-
-  printf ("clock_gettime returned %d, timespec = { %ld, %ld }\n",
-	  retval, ts.tv_sec, ts.tv_nsec);
-
-  retval = clock_getres (CLOCK_REALTIME, &ts);
-
-  printf ("clock_getres returned %d, timespec = { %ld, %ld }\n",
-	  retval, ts.tv_sec, ts.tv_nsec);
-
-  if (timer_create (CLOCK_REALTIME, &sigev1, &timer_sig) != 0)
-    {
-      printf ("timer_create for timer_sig failed: %m\n");
-      exit (1);
-    }
-  if (timer_create (CLOCK_REALTIME, &sigev2, &timer_thr1) != 0)
-    {
-      printf ("timer_create for timer_thr1 failed: %m\n");
-      exit (1);
-    }
-  sigev2.sigev_notify_function = notify_func2;
-  if (timer_create (CLOCK_REALTIME, &sigev2, &timer_thr2) != 0)
-    {
-      printf ("timer_create for timer_thr2 failed: %m\n");
-      exit (1);
-    }
-
-  if (timer_settime (timer_thr1, 0, &itimer2, &old) != 0)
-    {
-      printf ("timer_settime for timer_thr1 failed: %m\n");
-      exit (1);
-    }
-  if (timer_settime (timer_thr2, 0, &itimer3, &old) != 0)
-    {
-      printf ("timer_settime for timer_thr2 failed: %m\n");
-      exit (1);
-    }
-
-  signal (ZSIGALRM, signal_func);
-
-  if (timer_settime (timer_sig, 0, &itimer1, &old) != 0)
-    {
-      printf ("timer_settime for timer_sig failed: %m\n");
-      exit (1);
-    }
-
-  intr_sleep (3);
-
-  if (timer_delete (timer_sig) != 0)
-    {
-      printf ("timer_delete for timer_sig failed: %m\n");
-      exit (1);
-    }
-  if (timer_delete (timer_thr1) != 0)
-    {
-      printf ("timer_delete for timer_thr1 failed: %m\n");
-      exit (1);
-    }
-
-  intr_sleep (3);
-
-  if (timer_delete (timer_thr2) != 0)
-    {
-      printf ("timer_delete for timer_thr2 failed: %m\n");
-      exit (1);
-    }
-
-  return 0;
-}
diff --git a/nptl/sysdeps/pthread/unwind-forcedunwind.c b/nptl/sysdeps/pthread/unwind-forcedunwind.c
deleted file mode 100644
index 9d7bdc5b90..0000000000
--- a/nptl/sysdeps/pthread/unwind-forcedunwind.c
+++ /dev/null
@@ -1,151 +0,0 @@
-/* Copyright (C) 2003-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-   Contributed by Jakub Jelinek <jakub@redhat.com>.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License as
-   published by the Free Software Foundation; either version 2.1 of the
-   License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; see the file COPYING.LIB.  If
-   not, see <http://www.gnu.org/licenses/>.  */
-
-#include <dlfcn.h>
-#include <stdio.h>
-#include <unwind.h>
-#include <pthreadP.h>
-#include <sysdep.h>
-#include <gnu/lib-names.h>
-
-static void *libgcc_s_handle;
-static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
-static _Unwind_Reason_Code (*libgcc_s_personality)
-  (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
-   struct _Unwind_Context *);
-static _Unwind_Reason_Code (*libgcc_s_forcedunwind)
-  (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *);
-static _Unwind_Word (*libgcc_s_getcfa) (struct _Unwind_Context *);
-
-void
-__attribute_noinline__
-pthread_cancel_init (void)
-{
-  void *resume;
-  void *personality;
-  void *forcedunwind;
-  void *getcfa;
-  void *handle;
-
-  if (__glibc_likely (libgcc_s_handle != NULL))
-    {
-      /* Force gcc to reload all values.  */
-      asm volatile ("" ::: "memory");
-      return;
-    }
-
-  handle = __libc_dlopen (LIBGCC_S_SO);
-
-  if (handle == NULL
-      || (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL
-      || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL
-      || (forcedunwind = __libc_dlsym (handle, "_Unwind_ForcedUnwind"))
-	 == NULL
-      || (getcfa = __libc_dlsym (handle, "_Unwind_GetCFA")) == NULL
-#ifdef ARCH_CANCEL_INIT
-      || ARCH_CANCEL_INIT (handle)
-#endif
-      )
-    __libc_fatal (LIBGCC_S_SO " must be installed for pthread_cancel to work\n");
-
-  PTR_MANGLE (resume);
-  libgcc_s_resume = resume;
-  PTR_MANGLE (personality);
-  libgcc_s_personality = personality;
-  PTR_MANGLE (forcedunwind);
-  libgcc_s_forcedunwind = forcedunwind;
-  PTR_MANGLE (getcfa);
-  libgcc_s_getcfa = getcfa;
-  /* Make sure libgcc_s_handle is written last.  Otherwise,
-     pthread_cancel_init might return early even when the pointer the
-     caller is interested in is not initialized yet.  */
-  atomic_write_barrier ();
-  libgcc_s_handle = handle;
-}
-
-void
-__libc_freeres_fn_section
-__unwind_freeres (void)
-{
-  void *handle = libgcc_s_handle;
-  if (handle != NULL)
-    {
-      libgcc_s_handle = NULL;
-      __libc_dlclose (handle);
-    }
-}
-
-void
-_Unwind_Resume (struct _Unwind_Exception *exc)
-{
-  if (__glibc_unlikely (libgcc_s_handle == NULL))
-    pthread_cancel_init ();
-  else
-    atomic_read_barrier ();
-
-  void (*resume) (struct _Unwind_Exception *exc) = libgcc_s_resume;
-  PTR_DEMANGLE (resume);
-  resume (exc);
-}
-
-_Unwind_Reason_Code
-__gcc_personality_v0 (int version, _Unwind_Action actions,
-		      _Unwind_Exception_Class exception_class,
-		      struct _Unwind_Exception *ue_header,
-		      struct _Unwind_Context *context)
-{
-  if (__glibc_unlikely (libgcc_s_handle == NULL))
-    pthread_cancel_init ();
-  else
-    atomic_read_barrier ();
-
-  _Unwind_Reason_Code (*personality)
-    (int, _Unwind_Action, _Unwind_Exception_Class, struct _Unwind_Exception *,
-     struct _Unwind_Context *) = libgcc_s_personality;
-  PTR_DEMANGLE (personality);
-  return personality (version, actions, exception_class, ue_header, context);
-}
-
-_Unwind_Reason_Code
-_Unwind_ForcedUnwind (struct _Unwind_Exception *exc, _Unwind_Stop_Fn stop,
-		      void *stop_argument)
-{
-  if (__glibc_unlikely (libgcc_s_handle == NULL))
-    pthread_cancel_init ();
-  else
-    atomic_read_barrier ();
-
-  _Unwind_Reason_Code (*forcedunwind)
-    (struct _Unwind_Exception *, _Unwind_Stop_Fn, void *)
-    = libgcc_s_forcedunwind;
-  PTR_DEMANGLE (forcedunwind);
-  return forcedunwind (exc, stop, stop_argument);
-}
-
-_Unwind_Word
-_Unwind_GetCFA (struct _Unwind_Context *context)
-{
-  if (__glibc_unlikely (libgcc_s_handle == NULL))
-    pthread_cancel_init ();
-  else
-    atomic_read_barrier ();
-
-  _Unwind_Word (*getcfa) (struct _Unwind_Context *) = libgcc_s_getcfa;
-  PTR_DEMANGLE (getcfa);
-  return getcfa (context);
-}
diff --git a/nptl/sysdeps/unix/sysv/linux/Implies b/nptl/sysdeps/unix/sysv/linux/Implies
deleted file mode 100644
index f1b3e8939c..0000000000
--- a/nptl/sysdeps/unix/sysv/linux/Implies
+++ /dev/null
@@ -1 +0,0 @@
-pthread
diff --git a/nptl/sysdeps/unix/sysv/linux/createthread.c b/nptl/sysdeps/unix/sysv/linux/createthread.c
index c2f09025b4..9a21f3997a 100644
--- a/nptl/sysdeps/unix/sysv/linux/createthread.c
+++ b/nptl/sysdeps/unix/sysv/linux/createthread.c
@@ -20,4 +20,4 @@
 #define TLS_VALUE pd
 
 /* Get the real implementation.	 */
-#include <nptl/sysdeps/pthread/createthread.c>
+#include <nptl/createthread.c>