summaryrefslogtreecommitdiff
path: root/libpthread
diff options
context:
space:
mode:
Diffstat (limited to 'libpthread')
-rw-r--r--libpthread/linuxthreads/Makefile.in2
-rw-r--r--libpthread/linuxthreads/sysdeps/m68k/pspinlock.c20
-rw-r--r--libpthread/linuxthreads/sysdeps/m68k/pt-machine.h11
-rw-r--r--libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c2
-rw-r--r--libpthread/linuxthreads/sysdeps/s390/pspinlock.c90
-rw-r--r--libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h119
-rw-r--r--libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h124
-rw-r--r--libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym4
-rw-r--r--libpthread/linuxthreads/sysdeps/s390/tls.h144
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h71
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c153
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h136
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S68
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c136
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c1
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h115
-rw-r--r--libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S53
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-vfork.S7
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S37
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S67
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S37
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S48
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S48
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-vfork.S5
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/sh/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S64
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch2
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/Makefile.arch15
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/bits/pthreadtypes.h184
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/bits/semaphore.h35
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/clone.S3
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/createthread.c24
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/fork.c (renamed from libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S)23
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/lowlevellock.c132
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/lowlevellock.h293
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/pt-initfini.c134
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/pthread_once.c89
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/sysdep-cancel.h108
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/xtensa/vfork.S59
-rw-r--r--libpthread/nptl/sysdeps/xtensa/Makefile.arch40
-rw-r--r--libpthread/nptl/sysdeps/xtensa/dl-tls.h58
-rw-r--r--libpthread/nptl/sysdeps/xtensa/jmpbuf-unwind.h (renamed from libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S)36
-rw-r--r--libpthread/nptl/sysdeps/xtensa/libc-tls.c (renamed from libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-vfork.S)48
-rw-r--r--libpthread/nptl/sysdeps/xtensa/pthread_spin_lock.S37
-rw-r--r--libpthread/nptl/sysdeps/xtensa/pthread_spin_trylock.S (renamed from libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S)55
-rw-r--r--libpthread/nptl/sysdeps/xtensa/pthreaddef.h39
-rw-r--r--libpthread/nptl/sysdeps/xtensa/tcb-offsets.sym7
-rw-r--r--libpthread/nptl/sysdeps/xtensa/tls.h159
-rw-r--r--libpthread/nptl/sysdeps/xtensa/tlsdesc.sym10
57 files changed, 1527 insertions, 1643 deletions
diff --git a/libpthread/linuxthreads/Makefile.in b/libpthread/linuxthreads/Makefile.in
index 4a499f78e..c1ec1c9c7 100644
--- a/libpthread/linuxthreads/Makefile.in
+++ b/libpthread/linuxthreads/Makefile.in
@@ -65,7 +65,7 @@ CFLAGS-OMIT-libc_pthread_init.c := $(CFLAGS-dir_linuxthreads)
libpthread_libc_CSRC := \
forward.c libc-cancellation.c libc_pthread_init.c # alloca_cutoff.c
libpthread_libc_OBJ := $(patsubst %.c, $(libpthread_OUT)/%.o,$(libpthread_libc_CSRC))
-libc-static-y += $(libpthread_OUT)/libc_pthread_init.o
+libc-static-y += $(libpthread_OUT)/libc_pthread_init.o $(libpthread_OUT)/libc-cancellation.o
libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
libpthread-static-y += $(patsubst %,$(libpthread_OUT)/%.o,$(libpthread_static_SRC))
diff --git a/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c b/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
index c26a2786f..af77c2a9d 100644
--- a/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
+++ b/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
@@ -27,10 +27,15 @@ __pthread_spin_lock (pthread_spinlock_t *lock)
unsigned int val;
do
- __asm__ __volatile__ ("tas %1; sne %0"
- : "=dm" (val), "=m" (*lock)
- : "m" (*lock)
- : "cc");
+ __asm__ __volatile__ (
+#if !defined(__mcoldfire__) && !defined(__mcf5200__) && !defined(__m68000)
+ "tas %1; sne %0"
+#else
+ "bset #7,%1; sne %0"
+#endif
+ : "=dm" (val), "=m" (*lock)
+ : "m" (*lock)
+ : "cc");
while (val);
return 0;
@@ -43,7 +48,12 @@ __pthread_spin_trylock (pthread_spinlock_t *lock)
{
unsigned int val;
- __asm__ __volatile__ ("tas %1; sne %0"
+ __asm__ __volatile__ (
+#if !defined(__mcoldfire__) && !defined(__mcf5200__) && !defined(__m68000)
+ "tas %1; sne %0"
+#else
+ "bset #7,%1; sne %0"
+#endif
: "=dm" (val), "=m" (*lock)
: "m" (*lock)
: "cc");
diff --git a/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h b/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
index e2d7bdc81..1eb9fd57b 100644
--- a/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
+++ b/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
@@ -28,12 +28,18 @@
#endif
/* Spinlock implementation; required. */
+PT_EI long int testandset (int *spinlock);
PT_EI long int
testandset (int *spinlock)
{
char ret;
- __asm__ __volatile__("tas %1; sne %0"
+ __asm__ __volatile__(
+#if !defined(__mcoldfire__) && !defined(__mcf5200__) && !defined(__m68000)
+ "tas %1; sne %0"
+#else
+ "bset #7,%1; sne %0"
+#endif
: "=dm"(ret), "=m"(*spinlock)
: "m"(*spinlock)
: "cc");
@@ -50,6 +56,7 @@ register char * stack_pointer __asm__ ("%sp");
/* Compare-and-swap for semaphores. */
+#if !defined(__mcoldfire__) && !defined(__mcf5200__) && !defined(__mc68000)
#define HAS_COMPARE_AND_SWAP
PT_EI int
__compare_and_swap (long int *p, long int oldval, long int newval)
@@ -63,5 +70,5 @@ __compare_and_swap (long int *p, long int oldval, long int newval)
return ret;
}
-
+#endif
#endif /* pt-machine.h */
diff --git a/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c b/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
index 706faeff3..634c75245 100644
--- a/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
+++ b/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
@@ -16,7 +16,9 @@
<http://www.gnu.org/licenses/>. */
#include <netdb.h>
+#ifdef __UCLIBC_HAS_TLS__
#include <tls.h>
+#endif
#include <linuxthreads/internals.h>
#include <sysdep-cancel.h>
diff --git a/libpthread/linuxthreads/sysdeps/s390/pspinlock.c b/libpthread/linuxthreads/sysdeps/s390/pspinlock.c
deleted file mode 100644
index be7578642..000000000
--- a/libpthread/linuxthreads/sysdeps/s390/pspinlock.c
+++ /dev/null
@@ -1,90 +0,0 @@
-/* POSIX spinlock implementation. S/390 version.
- Copyright (C) 2000, 2004 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- This file is part of the GNU C Library.
-
- The GNU C Library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public License as
- published by the Free Software Foundation; either version 2.1 of the
- License, or (at your option) any later version.
-
- The GNU C Library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with the GNU C Library; see the file COPYING.LIB. If
- not, see <http://www.gnu.org/licenses/>. */
-
-#include <errno.h>
-#include <pthread.h>
-#include "internals.h"
-
-/* This implementation is similar to the one used in the Linux kernel.
- But the kernel is byte instructions for the memory access. This is
- faster but unusable here. The problem is that only 128
- threads/processes could use the spinlock at the same time. If (by
- a design error in the program) a thread/process would hold the
- spinlock for a time long enough to accumulate 128 waiting
- processes, the next one will find a positive value in the spinlock
- and assume it is unlocked. We cannot accept that. */
-
-int
-__pthread_spin_lock (pthread_spinlock_t *lock)
-{
- __asm__ __volatile__(" basr 1,0\n"
- "0: slr 0,0\n"
- " cs 0,1,%1\n"
- " jl 0b\n"
- : "=m" (*lock)
- : "m" (*lock) : "0", "1", "cc" );
- return 0;
-}
-weak_alias (__pthread_spin_lock, pthread_spin_lock)
-
-int
-__pthread_spin_trylock (pthread_spinlock_t *lock)
-{
- int oldval;
-
- __asm__ __volatile__(" slr %1,%1\n"
- " basr 1,0\n"
- "0: cs %1,1,%0"
- : "=m" (*lock), "=&d" (oldval)
- : "m" (*lock) : "1", "cc" );
- return oldval == 0 ? 0 : EBUSY;
-}
-weak_alias (__pthread_spin_trylock, pthread_spin_trylock)
-
-
-int
-__pthread_spin_unlock (pthread_spinlock_t *lock)
-{
- __asm__ __volatile__(" xc 0(4,%0),0(%0)\n"
- " bcr 15,0"
- : : "a" (lock) : "memory" );
- return 0;
-}
-weak_alias (__pthread_spin_unlock, pthread_spin_unlock)
-
-
-int
-__pthread_spin_init (pthread_spinlock_t *lock, int pshared)
-{
- /* We can ignore the `pshared' parameter. Since we are busy-waiting
- all processes which can access the memory location `lock' points
- to can use the spinlock. */
- *lock = 0;
- return 0;
-}
-weak_alias (__pthread_spin_init, pthread_spin_init)
-
-
-int
-__pthread_spin_destroy (pthread_spinlock_t *lock)
-{
- /* Nothing to do. */
- return 0;
-}
-weak_alias (__pthread_spin_destroy, pthread_spin_destroy)
diff --git a/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h b/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h
deleted file mode 100644
index 51505a97d..000000000
--- a/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Machine-dependent pthreads configuration and inline functions.
- S390 version.
- Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- 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 _PT_MACHINE_H
-#define _PT_MACHINE_H 1
-
-#ifndef PT_EI
-# define PT_EI __extern_always_inline
-#endif
-
-extern long int testandset (int *spinlock);
-extern int __compare_and_swap (long int *p, long int oldval, long int newval);
-
-/* For multiprocessor systems, we want to ensure all memory accesses
- are completed before we reset a lock. On other systems, we still
- need to make sure that the compiler has flushed everything to memory. */
-#define MEMORY_BARRIER() __asm__ __volatile__ ("bcr 15,0" : : : "memory")
-
-/* Spinlock implementation; required. */
-PT_EI long int
-testandset (int *spinlock)
-{
- int ret;
-
- __asm__ __volatile__(
- " la 1,%1\n"
- " lhi 0,1\n"
- " l %0,%1\n"
- "0: cs %0,0,0(1)\n"
- " jl 0b"
- : "=&d" (ret), "+m" (*spinlock)
- : : "0", "1", "cc");
-
- return ret;
-}
-
-
-/* Get some notion of the current stack. Need not be exactly the top
- of the stack, just something somewhere in the current frame. */
-#define CURRENT_STACK_FRAME stack_pointer
-register char * stack_pointer __asm__ ("15");
-
-#ifdef __UCLIBC_HAS_TLS__
-/* Return the thread descriptor for the current thread. */
-# define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ())
-
-/* Initialize the thread-unique value. */
-#define INIT_THREAD_SELF(descr, nr) __builtin_set_thread_pointer (descr)
-#else
-/* Return the thread descriptor for the current thread.
- S/390 registers uses access register 0 as "thread register". */
-#define THREAD_SELF ({ \
- register pthread_descr __self; \
- __asm__ ("ear %0,%%a0" : "=d" (__self) ); \
- __self; \
-})
-
-/* Initialize the thread-unique value. */
-#define INIT_THREAD_SELF(descr, nr) ({ \
- __asm__ ("sar %%a0,%0" : : "d" (descr) ); \
-})
-#endif
-
-/* Access to data in the thread descriptor is easy. */
-#define THREAD_GETMEM(descr, member) \
- ((void) sizeof (descr), THREAD_SELF->member)
-#define THREAD_GETMEM_NC(descr, member) \
- ((void) sizeof (descr), THREAD_SELF->member)
-#define THREAD_SETMEM(descr, member, value) \
- ((void) sizeof (descr), THREAD_SELF->member = (value))
-#define THREAD_SETMEM_NC(descr, member, value) \
- ((void) sizeof (descr), THREAD_SELF->member = (value))
-
-/* We want the OS to assign stack addresses. */
-#define FLOATING_STACKS 1
-
-/* Maximum size of the stack if the rlimit is unlimited. */
-#define ARCH_STACK_MAX_SIZE 8*1024*1024
-
-/* Compare-and-swap for semaphores. */
-
-#define HAS_COMPARE_AND_SWAP
-
-PT_EI int
-__compare_and_swap(long int *p, long int oldval, long int newval)
-{
- int retval;
-
- __asm__ __volatile__(
- " la 1,%1\n"
- " lr 0,%2\n"
- " cs 0,%3,0(1)\n"
- " ipm %0\n"
- " srl %0,28\n"
- "0:"
- : "=&d" (retval), "+m" (*p)
- : "d" (oldval) , "d" (newval)
- : "cc", "0", "1" );
- return retval == 0;
-}
-
-#endif /* pt-machine.h */
diff --git a/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h b/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h
deleted file mode 100644
index 4bff85aec..000000000
--- a/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/* Machine-dependent pthreads configuration and inline functions.
- 64 bit S/390 version.
- Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
- Contributed by Martin Schwidefsky (schwidefsky@de.ibm.com).
- 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 _PT_MACHINE_H
-#define _PT_MACHINE_H 1
-
-#ifndef PT_EI
-# define PT_EI __extern_always_inline
-#endif
-
-extern long int testandset (int *spinlock);
-extern int __compare_and_swap (long int *p, long int oldval, long int newval);
-
-/* For multiprocessor systems, we want to ensure all memory accesses
- are completed before we reset a lock. On other systems, we still
- need to make sure that the compiler has flushed everything to memory. */
-#define MEMORY_BARRIER() __asm__ __volatile__ ("bcr 15,0" : : : "memory")
-
-/* Spinlock implementation; required. */
-PT_EI long int
-testandset (int *spinlock)
-{
- int ret;
-
- __asm__ __volatile__(
- " la 1,%1\n"
- " lhi 0,1\n"
- " l %0,%1\n"
- "0: cs %0,0,0(1)\n"
- " jl 0b"
- : "=&d" (ret), "+m" (*spinlock)
- : : "0", "1", "cc");
-
- return ret;
-}
-
-
-/* Get some notion of the current stack. Need not be exactly the top
- of the stack, just something somewhere in the current frame. */
-#define CURRENT_STACK_FRAME stack_pointer
-register char * stack_pointer __asm__ ("15");
-
-#ifdef __UCLIBC_HAS_TLS__
-/* Return the thread descriptor for the current thread. */
-# define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ())
-
-/* Initialize the thread-unique value. */
-#define INIT_THREAD_SELF(descr, nr) __builtin_set_thread_pointer (descr)
-#else
-/* Return the thread descriptor for the current thread.
- 64 bit S/390 uses access register 0 and 1 as "thread register". */
-#define THREAD_SELF ({ \
- register pthread_descr __self; \
- __asm__ (" ear %0,%%a0\n" \
- " sllg %0,%0,32\n" \
- " ear %0,%%a1\n" \
- : "=d" (__self) ); \
- __self; \
-})
-
-/* Initialize the thread-unique value. */
-#define INIT_THREAD_SELF(descr, nr) ({ \
- __asm__ (" sar %%a1,%0\n" \
- " srlg 0,%0,32\n" \
- " sar %%a0,0\n" \
- : : "d" (descr) : "0" ); \
-})
-#endif
-
-/* Access to data in the thread descriptor is easy. */
-#define THREAD_GETMEM(descr, member) \
- ((void) sizeof (descr), THREAD_SELF->member)
-#define THREAD_GETMEM_NC(descr, member) \
- ((void) sizeof (descr), THREAD_SELF->member)
-#define THREAD_SETMEM(descr, member, value) \
- ((void) sizeof (descr), THREAD_SELF->member = (value))
-#define THREAD_SETMEM_NC(descr, member, value) \
- ((void) sizeof (descr), THREAD_SELF->member = (value))
-
-/* We want the OS to assign stack addresses. */
-#define FLOATING_STACKS 1
-
-/* Maximum size of the stack if the rlimit is unlimited. */
-#define ARCH_STACK_MAX_SIZE 8*1024*1024
-
-/* Compare-and-swap for semaphores. */
-
-#define HAS_COMPARE_AND_SWAP
-
-PT_EI int
-__compare_and_swap(long int *p, long int oldval, long int newval)
-{
- int retval;
-
- __asm__ __volatile__(
- " lgr 0,%2\n"
- " csg 0,%3,%1\n"
- " ipm %0\n"
- " srl %0,28\n"
- "0:"
- : "=&d" (retval), "+m" (*p)
- : "d" (oldval) , "d" (newval)
- : "cc", "0");
- return retval == 0;
-}
-
-#endif /* pt-machine.h */
diff --git a/libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym b/libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym
deleted file mode 100644
index aee6be257..000000000
--- a/libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym
+++ /dev/null
@@ -1,4 +0,0 @@
-#include <sysdep.h>
-#include <tls.h>
-
-MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
diff --git a/libpthread/linuxthreads/sysdeps/s390/tls.h b/libpthread/linuxthreads/sysdeps/s390/tls.h
deleted file mode 100644
index d987bdbc2..000000000
--- a/libpthread/li