diff options
author | Waldemar Brodkorb <wbx@openadk.org> | 2014-09-09 18:44:40 +0200 |
---|---|---|
committer | Waldemar Brodkorb <wbx@openadk.org> | 2014-09-09 18:44:40 +0200 |
commit | 3ac37c8cfdbf621f223cbce7115ceb3306ad6f6a (patch) | |
tree | 7e554e20d68b6c86a904f1046db3b12ae6ba6c40 /toolchain/uclibc | |
parent | 8b23c79cdbb0195042bc8dce0a3f293bade7edd3 (diff) |
sync latest uClibc patches
Diffstat (limited to 'toolchain/uclibc')
6 files changed, 1642 insertions, 25 deletions
diff --git a/toolchain/uclibc/patches/0.9.34-git/0001-test-disable-posix_fallocate64-for-small-embedded-sy.patch b/toolchain/uclibc/patches/0.9.34-git/0001-test-disable-posix_fallocate64-for-small-embedded-sy.patch index ce7ba02f7..9765e8bbc 100644 --- a/toolchain/uclibc/patches/0.9.34-git/0001-test-disable-posix_fallocate64-for-small-embedded-sy.patch +++ b/toolchain/uclibc/patches/0.9.34-git/0001-test-disable-posix_fallocate64-for-small-embedded-sy.patch @@ -1,7 +1,7 @@ -From d167545f3578d560e0c3818ac9657a34fead9812 Mon Sep 17 00:00:00 2001 +From 54cef0956a1e85add7c6998f95abffa9362be85e Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb <wbx@openadk.org> Date: Mon, 1 Sep 2014 21:02:19 +0200 -Subject: [PATCH 1/2] test: disable posix_fallocate64 for small embedded +Subject: [PATCH 1/6] test: disable posix_fallocate64 for small embedded systems Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> diff --git a/toolchain/uclibc/patches/0.9.34-git/0002-nptl-remove-duplicate-vfork-in-libpthread.patch b/toolchain/uclibc/patches/0.9.34-git/0002-nptl-remove-duplicate-vfork-in-libpthread.patch index 85fb76650..779498832 100644 --- a/toolchain/uclibc/patches/0.9.34-git/0002-nptl-remove-duplicate-vfork-in-libpthread.patch +++ b/toolchain/uclibc/patches/0.9.34-git/0002-nptl-remove-duplicate-vfork-in-libpthread.patch @@ -1,7 +1,7 @@ -From 539fe3a7cc5439d01499765008751f8d17ca5ede Mon Sep 17 00:00:00 2001 +From d4ebeb637a050717642a0f270b3b0dd61f046705 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb <wbx@openadk.org> Date: Thu, 4 Sep 2014 15:23:36 +0200 -Subject: [PATCH 2/2] nptl: remove duplicate vfork() in libpthread +Subject: [PATCH 2/6] nptl: remove duplicate vfork() in libpthread Automatic patching via two oneliners by Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>: sed -i -e 's/[[:space:]]pt-vfork\.[csS]//' $(git grep -l pt-vfork libpthread/nptl/sysdeps) @@ -11,27 +11,27 @@ Reported-By: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> --- .../nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S | 42 -------------- - .../nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch | 2 +- + .../nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch | 3 +- .../nptl/sysdeps/unix/sysv/linux/arc/pt-vfork.S | 7 --- - .../nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch | 2 +- + .../nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch | 3 +- .../nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S | 37 ------------ - .../sysdeps/unix/sysv/linux/i386/Makefile.arch | 2 +- + .../sysdeps/unix/sysv/linux/i386/Makefile.arch | 3 +- .../nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S | 67 ---------------------- - .../sysdeps/unix/sysv/linux/metag/Makefile.arch | 2 +- + .../sysdeps/unix/sysv/linux/metag/Makefile.arch | 3 +- .../nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S | 51 ---------------- - .../sysdeps/unix/sysv/linux/mips/Makefile.arch | 2 +- + .../sysdeps/unix/sysv/linux/mips/Makefile.arch | 3 +- .../nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S | 37 ------------ - .../sysdeps/unix/sysv/linux/powerpc/Makefile.arch | 2 +- + .../sysdeps/unix/sysv/linux/powerpc/Makefile.arch | 3 +- .../unix/sysv/linux/powerpc/powerpc32/pt-vfork.S | 48 ---------------- .../unix/sysv/linux/powerpc/powerpc64/pt-vfork.S | 48 ---------------- .../sysdeps/unix/sysv/linux/powerpc/pt-vfork.S | 5 -- - .../nptl/sysdeps/unix/sysv/linux/sh/Makefile.arch | 2 +- + .../nptl/sysdeps/unix/sysv/linux/sh/Makefile.arch | 3 +- .../nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S | 64 --------------------- - .../sysdeps/unix/sysv/linux/sparc/Makefile.arch | 2 +- + .../sysdeps/unix/sysv/linux/sparc/Makefile.arch | 3 +- .../nptl/sysdeps/unix/sysv/linux/sparc/pt-vfork.S | 44 -------------- - .../sysdeps/unix/sysv/linux/x86_64/Makefile.arch | 2 +- + .../sysdeps/unix/sysv/linux/x86_64/Makefile.arch | 3 +- .../nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S | 32 ----------- - 21 files changed, 9 insertions(+), 491 deletions(-) + 21 files changed, 9 insertions(+), 500 deletions(-) delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-vfork.S delete mode 100644 libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S @@ -94,7 +94,7 @@ index a6005c1..0000000 - -weak_alias (__vfork, vfork) diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch -index 25e6fad..3c82f0a 100644 +index 25e6fad..658aa6c 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arc/Makefile.arch @@ -5,7 +5,7 @@ @@ -106,6 +106,14 @@ index 25e6fad..3c82f0a 100644 libpthread_linux_arch_CSRC = pthread_once.c lowlevellock.c \ pt-__syscall_rt_sigaction.c pt-__syscall_error.c +@@ -17,7 +17,6 @@ CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-pt-__syscall_rt_sigaction.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread + + ASFLAGS-vfork.S = -DIS_IN_libc -DNOT_IN_libpthread + ASFLAGS-clone.S = -DIS_IN_libc -DNOT_IN_libpthread diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/arc/pt-vfork.S deleted file mode 100644 index f222dca..0000000 @@ -120,7 +128,7 @@ index f222dca..0000000 - -#include "vfork.S" diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch -index 329d8a9..1b0282d 100644 +index 329d8a9..6f05b7d 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/Makefile.arch @@ -5,7 +5,7 @@ @@ -132,6 +140,14 @@ index 329d8a9..1b0282d 100644 libpthread_linux_arch_CSRC = pthread_once.c \ pt-__syscall_rt_sigaction.c pt-__syscall_error.c \ lowlevellock.c +@@ -19,7 +19,6 @@ CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-pt-__syscall_rt_sigaction.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread -marm + + ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y) + CFLAGS-fork.c = -D__USE_STDIO_FUTEXES__ diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S deleted file mode 100644 index df18f03..0000000 @@ -176,7 +192,7 @@ index df18f03..0000000 - -#include "../../../../../../../libc/sysdeps/linux/arm/vfork.S" diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch -index 9a34595..98e2ae7 100644 +index 9a34595..94fc03a 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/Makefile.arch @@ -5,7 +5,7 @@ @@ -188,6 +204,14 @@ index 9a34595..98e2ae7 100644 libpthread_linux_arch_CSRC = pthread_spin_init.c pt-__syscall_error.c libc_linux_arch_CSRC = fork.c +@@ -14,7 +14,6 @@ libc_linux_arch_SSRC = clone.S vfork.S + ASFLAGS += -DUSE___THREAD + + CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + ASFLAGS-lowlevellock.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + ASFLAGS-lowlevelrobustlock.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + ASFLAGS-pthread_once.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S deleted file mode 100644 index 5bba782..0000000 @@ -262,7 +286,7 @@ index 5bba782..0000000 - -weak_alias (__vfork, vfork) diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch -index df98875..a4dc4ab 100644 +index df98875..99dec6b 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch @@ -5,7 +5,7 @@ @@ -274,6 +298,14 @@ index df98875..a4dc4ab 100644 libpthread_linux_arch_CSRC = pthread_once.c \ pt-__syscall_rt_sigaction.c pt-__syscall_error.c \ lowlevellock.c +@@ -22,7 +22,6 @@ CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread + ASFLAGS-vfork.S = -DIS_IN_libc -DNOT_IN_libpthread + ASFLAGS-clone.S = -DIS_IN_libc -DNOT_IN_libpthread +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread + + ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y) + CFLAGS-fork.c = -D__USE_STDIO_FUTEXES__ diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S deleted file mode 100644 index 489c749..0000000 @@ -332,7 +364,7 @@ index 489c749..0000000 - -#include <../../../../../../../libc/sysdeps/linux/metag/vfork.S> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch -index fc26a8e..cfe2861 100644 +index fc26a8e..a453b6b 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/Makefile.arch @@ -5,7 +5,7 @@ @@ -344,6 +376,14 @@ index fc26a8e..cfe2861 100644 libpthread_linux_arch_CSRC = pthread_once.c pt-__syscall_rt_sigaction.c libc_linux_arch_CSRC = fork.c +@@ -21,7 +21,6 @@ CFLAGS-fork.c = -D__USE_STDIO_FUTEXES__ + endif + CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-pt-__syscall_rt_sigaction.c = -DNOT_IN_libc -DIS_IN_libpthread +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread + + ASFLAGS-clone.S = -D_LIBC_REENTRANT + ASFLAGS-vfork.S = -D_LIBC_REENTRANT diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S deleted file mode 100644 index 52fbde3..0000000 @@ -388,7 +428,7 @@ index 52fbde3..0000000 - -#include <../../../../../../../libc/sysdeps/linux/mips/vfork.S> diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch -index 8581aea..0aa285e 100644 +index 8581aea..215c2aa 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/Makefile.arch @@ -5,7 +5,7 @@ @@ -400,6 +440,14 @@ index 8581aea..0aa285e 100644 libpthread_linux_arch_CSRC = pthread_once.c pt-__syscall_error.c libc_linux_arch_CSRC = fork.c +@@ -19,7 +19,6 @@ ASFLAGS += -DUSE___THREAD + CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + #ASFLAGS-lowlevellock.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + + #ASFLAGS-libc-lowlevellock.S = -D_LIBC_REENTRANT diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S deleted file mode 100644 index 2f82504..0000000 @@ -520,7 +568,7 @@ index 0225219..0000000 -# include "powerpc32/pt-vfork.S" -#endif diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/Makefile.arch -index a8249e0..a0c008b 100644 +index a8249e0..9ebbda5 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/Makefile.arch @@ -5,7 +5,7 @@ @@ -532,6 +580,14 @@ index a8249e0..a0c008b 100644 pthread_rwlock_rdlock.S pthread_rwlock_unlock.S \ lowlevellock.S lowlevelrobustlock.S pthread_barrier_wait.S \ pthread_cond_broadcast.S pthread_cond_signal.S \ +@@ -17,7 +17,6 @@ libc_linux_arch_SSRC = libc-lowlevellock.S clone.S vfork.S + + ASFLAGS += -DUSE___THREAD + +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + ASFLAGS-pthread_once.S = -D_LIBC_REENTRANT + ASFLAGS-pthread_rwlock_wrlock.S = -D_LIBC_REENTRANT + ASFLAGS-pthread_rwlock_rdlock.S = -D_LIBC_REENTRANT diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S deleted file mode 100644 index 56aa6d0..0000000 @@ -603,7 +659,7 @@ index 56aa6d0..0000000 - -weak_alias (__vfork, vfork) diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch -index 102c0da..8329885 100644 +index 102c0da..aedad2c 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/Makefile.arch @@ -5,7 +5,7 @@ @@ -615,6 +671,14 @@ index 102c0da..8329885 100644 libpthread_linux_arch_CSRC = pthread_once.c lowlevellock.c \ pthread_barrier_init.c pthread_barrier_wait.c pthread_barrier_destroy.c \ pt-__syscall_error.c +@@ -17,7 +17,6 @@ librt_linux_arch_CSRC = pt-__syscall_error.c + + ASFLAGS += -DUSE___THREAD + +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread + CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pt-vfork.S deleted file mode 100644 index 37231a8..0000000 @@ -666,7 +730,7 @@ index 37231a8..0000000 - -weak_alias (__vfork, vfork) diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch -index 71df986..10fa3cf 100644 +index 71df986..7c2505f 100644 --- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch +++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch @@ -5,7 +5,7 @@ @@ -678,6 +742,14 @@ index 71df986..10fa3cf 100644 lowlevellock.S pthread_barrier_wait.S pthread_cond_signal.S pthread_cond_broadcast.S \ sem_post.S sem_timedwait.S lowlevelrobustlock.S \ sem_trywait.S sem_wait.S pthread_rwlock_rdlock.S pthread_rwlock_wrlock.S \ +@@ -21,7 +21,6 @@ librt_linux_arch_SSRC = librt-cancellation.S + ASFLAGS += -DUSE___THREAD + + CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread +-ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + ASFLAGS-lowlevellock.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + ASFLAGS-pthread_once.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT + ASFLAGS-cancellation.S = -DNOT_IN_libc -DIS_IN_libpthread -D_LIBC_REENTRANT diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S deleted file mode 100644 index 08a085c..0000000 diff --git a/toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch b/toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch new file mode 100644 index 000000000..cbefd471a --- /dev/null +++ b/toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch @@ -0,0 +1,1347 @@ +From d72e888957d32984c56e19e43a3c3b41263c7bb4 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb <wbx@openadk.org> +Date: Sat, 6 Sep 2014 14:45:42 +0200 +Subject: [PATCH 3/6] linuxthreads: remove unused s390 code + +Cleanup linuxthreads by removing unused s390 code. + +Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> +--- + libc/stdlib/system.c | 3 - + libpthread/linuxthreads/sysdeps/s390/pspinlock.c | 90 ------------ + .../linuxthreads/sysdeps/s390/s390-32/pt-machine.h | 119 ---------------- + .../linuxthreads/sysdeps/s390/s390-64/pt-machine.h | 124 ----------------- + .../linuxthreads/sysdeps/s390/tcb-offsets.sym | 4 - + libpthread/linuxthreads/sysdeps/s390/tls.h | 144 ------------------- + .../sysdeps/unix/sysv/linux/s390/bits/typesizes.h | 71 ---------- + .../unix/sysv/linux/s390/s390-32/pt-initfini.c | 153 --------------------- + .../unix/sysv/linux/s390/s390-32/sysdep-cancel.h | 136 ------------------ + .../sysdeps/unix/sysv/linux/s390/s390-32/vfork.S | 68 --------- + .../unix/sysv/linux/s390/s390-64/pt-initfini.c | 136 ------------------ + .../unix/sysv/linux/s390/s390-64/pt-sigsuspend.c | 1 - + .../unix/sysv/linux/s390/s390-64/sysdep-cancel.h | 115 ---------------- + .../sysdeps/unix/sysv/linux/s390/s390-64/vfork.S | 53 ------- + 14 files changed, 1217 deletions(-) + delete mode 100644 libpthread/linuxthreads/sysdeps/s390/pspinlock.c + delete mode 100644 libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h + delete mode 100644 libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h + delete mode 100644 libpthread/linuxthreads/sysdeps/s390/tcb-offsets.sym + delete mode 100644 libpthread/linuxthreads/sysdeps/s390/tls.h + delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h + delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c + delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h + delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S + delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c + delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c + delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h + delete mode 100644 libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S + +diff --git a/libc/stdlib/system.c b/libc/stdlib/system.c +index 8c5d25d..05b6738 100644 +--- a/libc/stdlib/system.c ++++ b/libc/stdlib/system.c +@@ -91,9 +91,6 @@ libc_hidden_proto(waitpid) + #elif defined __sparc__ + # define FORK() \ + INLINE_CLONE_SYSCALL (CLONE_PARENT_SETTID | SIGCHLD, 0, &pid, NULL, NULL) +-#elif defined __s390__ +-# define FORK() \ +- INLINE_SYSCALL (clone, 3, 0, CLONE_PARENT_SETTID | SIGCHLD, &pid) + #else + # define FORK() \ + INLINE_SYSCALL (clone, 3, CLONE_PARENT_SETTID | SIGCHLD, 0, &pid) +diff --git a/libpthread/linuxthreads/sysdeps/s390/pspinlock.c b/libpthread/linuxthreads/sysdeps/s390/pspinlock.c +deleted file mode 100644 +index be75786..0000000 +--- 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 51505a9..0000000 +--- 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 4bff85a..0000000 +--- 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 aee6be2..0000000 +--- 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 d987bdb..0000000 +--- a/libpthread/linuxthreads/sysdeps/s390/tls.h ++++ /dev/null +@@ -1,144 +0,0 @@ +-/* Definitions for thread-local data handling. linuxthreads/s390 version. +- Copyright (C) 2002, 2003, 2005 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 _TLS_H +-#define _TLS_H +- +-#ifndef __ASSEMBLER__ +- +-# include <pt-machine.h> +-# include <stdbool.h> +-# include <stddef.h> +- +-/* Type for the dtv. */ +-typedef union dtv +-{ +- size_t counter; +- struct +- { +- void *val; +- bool is_static; +- } pointer; +-} dtv_t; +- +-typedef struct +-{ +- void *tcb; /* Pointer to the TCB. Not necessary the +- thread descriptor used by libpthread. */ +- dtv_t *dtv; +- void *self; /* Pointer to the thread descriptor. */ +- int multiple_threads; +-} tcbhead_t; +- +-#else /* __ASSEMBLER__ */ +-# include <tcb-offsets.h> +-#endif /* __ASSEMBLER__ */ +- +-/* TLS is always supported if the tools support it. There are no +- kernel dependencies. To avoid bothering with the TLS support code +- at all, use configure --without-tls. +- +- We need USE_TLS to be consistently defined, for ldsodefs.h +- conditionals. */ +- +-#ifdef HAVE_TLS_SUPPORT +- +-/* Signal that TLS support is available. */ +-# define USE_TLS 1 +- +-# ifndef __ASSEMBLER__ +-/* Get system call information. */ +-# include <sysdep.h> +- +- +-/* Get the thread descriptor definition. */ +-# include <linuxthreads/descr.h> +- +-/* This is the size of the initial TCB. */ +-# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t) +- +-/* Alignment requirements for the initial TCB. */ +-# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t) +- +-/* This is the size of the TCB. */ +-# define TLS_TCB_SIZE sizeof (struct _pthread_descr_struct) +- +-/* Alignment requirements for the TCB. */ +-# define TLS_TCB_ALIGN __alignof__ (struct _pthread_descr_struct) +- +-/* The TCB can have any size and the memory following the address the +- thread pointer points to is unspecified. Allocate the TCB there. */ +-# define TLS_TCB_AT_TP 1 +- +- +-/* Install the dtv pointer. The pointer passed is to the element with +- index -1 which contain the length. */ +-# define INSTALL_DTV(descr, dtvp) \ +- ((tcbhead_t *) (descr))->dtv = (dtvp) + 1 +- +-/* Install new dtv for current thread. */ +-# define INSTALL_NEW_DTV(dtv) \ +- (((tcbhead_t *) __builtin_thread_pointer ())->dtv = (dtv)) +- +-/* Return dtv of given thread descriptor. */ +-# define GET_DTV(descr) \ +- (((tcbhead_t *) (descr))->dtv) +- +-/* Code to initially initialize the thread pointer. This might need +- special attention since 'errno' is not yet available and if the +- operation can cause a failure 'errno' must not be touched. +- +- The value of this macro is null if successful, or an error string. */ +-# define TLS_INIT_TP(descr, secondcall) \ +- ({ \ +- void *_descr = (descr); \ +- tcbhead_t *head = _descr; \ +- \ +- head->tcb = _descr; \ +- /* For now the thread descriptor is at the same address. */ \ +- head->self = _descr; \ +- \ +- __builtin_set_thread_pointer (_descr); \ +- NULL; \ +- }) +- +-/* Return the address of the dtv for the current thread. */ +-# define THREAD_DTV() \ +- (((tcbhead_t *) __builtin_thread_pointer ())->dtv) +- +-# endif /* __ASSEMBLER__ */ +- +-#else /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */ +- +-# ifndef __ASSEMBLER__ +- +-/* Get the thread descriptor definition. */ +-# include <linuxthreads/descr.h> +- +-# define NONTLS_INIT_TP \ +- do { \ +- static const tcbhead_t nontls_init_tp \ +- = { .multiple_threads = 0 }; \ +- INIT_THREAD_SELF (&nontls_init_tp, 0); \ +- } while (0) +- +-# endif /* __ASSEMBLER__ */ +- +-#endif /* HAVE_TLS_SUPPORT && (FLOATING_STACKS || !IS_IN_libpthread) */ +- +-#endif /* tls.h */ +diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h +deleted file mode 100644 +index 6b58825..0000000 +--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h ++++ /dev/null +@@ -1,71 +0,0 @@ +-/* bits/typesizes.h -- underlying types for *_t. Linux/s390 version. +- Copyright (C) 2003 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_TYPES_H +-# error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead." +-#endif +- +-#ifndef _BITS_TYPESIZES_H +-#define _BITS_TYPESIZES_H 1 +- +-/* See <bits/types.h> for the meaning of these macros. This file exists so +- that <bits/types.h> need not vary across different GNU platforms. */ +- +-#define __DEV_T_TYPE __UQUAD_TYPE +-#define __UID_T_TYPE __U32_TYPE +-#define __GID_T_TYPE __U32_TYPE +-#define __INO_T_TYPE __ULONGWORD_TYPE +-#define __INO64_T_TYPE __UQUAD_TYPE +-#define __MODE_T_TYPE __U32_TYPE +-#define __NLINK_T_TYPE __UWORD_TYPE +-#define __OFF_T_TYPE __SLONGWORD_TYPE +-#define __OFF64_T_TYPE __SQUAD_TYPE +-#define __PID_T_TYPE __S32_TYPE +-#define __RLIM_T_TYPE __ULONGWORD_TYPE +-#define __RLIM64_T_TYPE __UQUAD_TYPE +-#define __BLKCNT_T_TYPE __SLONGWORD_TYPE +-#define __BLKCNT64_T_TYPE __SQUAD_TYPE +-#define __FSBLKCNT_T_TYPE __ULONGWORD_TYPE +-#define __FSBLKCNT64_T_TYPE __UQUAD_TYPE +-#define __FSFILCNT_T_TYPE __ULONGWORD_TYPE +-#define __FSFILCNT64_T_TYPE __UQUAD_TYPE +-#define __ID_T_TYPE __U32_TYPE +-#define __CLOCK_T_TYPE __SLONGWORD_TYPE +-#define __TIME_T_TYPE __SLONGWORD_TYPE +-#define __USECONDS_T_TYPE __U32_TYPE +-#define __SUSECONDS_T_TYPE __SLONGWORD_TYPE +-#define __DADDR_T_TYPE __S32_TYPE +-#define __SWBLK_T_TYPE __SLONGWORD_TYPE +-#define __KEY_T_TYPE __S32_TYPE +-#define __CLOCKID_T_TYPE __S32_TYPE +-#define __TIMER_T_TYPE __S32_TYPE +-#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE +-#define __FSID_T_TYPE struct { int __val[2]; } +-#if defined __GNUC__ && __GNUC__ <= 2 +-/* Compatibility with g++ 2.95.x. */ +-#define __SSIZE_T_TYPE __SWORD_TYPE +-#else +-/* size_t is unsigned long int on s390 -m31. */ +-#define __SSIZE_T_TYPE __SLONGWORD_TYPE +-#endif +- +-/* Number of descriptors that can fit in an `fd_set'. */ +-#define __FD_SETSIZE 1024 +- +- +-#endif /* bits/typesizes.h */ +diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c +deleted file mode 100644 +index cde4183..0000000 +--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c ++++ /dev/null +@@ -1,153 +0,0 @@ +-/* Special .init and .fini section support for S/390. +- Copyright (C) 2000, 2001 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- +- The GNU C Library is free software; you can redistribute it +- and/or modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- In addition to the permissions in the GNU Lesser General Public +- License, the Free Software Foundation gives you unlimited +- permission to link the compiled version of this file with other +- programs, and to distribute those programs without any restriction +- coming from the use of this file. (The Lesser General Public +- License restrictions do apply in other respects; for example, they +- cover modification of the file, and distribution when not linked +- into another program.) +- +- The GNU C Library is distributed in the hope that it will be +- useful, but WITHOUT ANY WARRANTY; without even the implied warranty +- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU Lesser General 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/>. */ +- +-/* This file is compiled into assembly code which is then munged by a sed +- script into two files: crti.s and crtn.s. +- +- * crti.s puts a function prologue at the beginning of the +- .init and .fini sections and defines global symbols for +- those addresses, so they can be called as functions. +- +- * crtn.s puts the corresponding function epilogues +- in the .init and .fini sections. */ +- +-__asm__ ("\ +-\n\ +-#include \"defs.h\"\n\ +-\n\ +-/*@HEADER_ENDS*/\n\ +-\n\ +-/*@TESTS_BEGIN*/\n\ +-\n\ +-/*@TESTS_END*/\n\ +-\n\ +-/*@_init_PROLOG_BEGINS*/\n\ +-\n\ +- .section .init\n\ +-#NO_APP\n\ +- .align 4\n\ +-.globl _init\n\ +- .type _init,@function\n\ +-_init:\n\ +-# leaf function 0\n\ +-# automatics 0\n\ +-# outgoing args 0\n\ +-# need frame pointer 0\n\ +-# call alloca 0\n\ +-# has varargs 0\n\ +-# incoming args (stack) 0\n\ +-# function length 36\n\ +- STM 6,15,24(15)\n\ +- BRAS 13,.LTN1_0\n\ +-.LT1_0:\n\ +-.LC13:\n\ +- .long __pthread_initialize_minimal@PLT-.LT1_0\n\ +-.LC14:\n\ +- .long __gmon_start__@GOT\n\ +-.LC15:\n\ +- .long _GLOBAL_OFFSET_TABLE_-.LT1_0\n\ +-.LTN1_0:\n\ +- LR 1,15\n\ +- AHI 15,-96\n\ +- ST 1,0(15)\n\ +- L 12,.LC15-.LT1_0(13)\n\ +- AR 12,13\n\ +- L 1,.LC13-.LT1_0(13)\n\ +- LA 1,0(1,13)\n\ +- BASR 14,1\n\ +- L 1,.LC14-.LT1_0(13)\n\ +- L 1,0(1,12)\n\ +- LTR 1,1\n\ +- JE .L22\n\ +- BASR 14,1\n\ +-.L22:\n\ +-#APP\n\ +- .align 4,0x07\n\ +- END_INIT\n\ +-\n\ +-/*@_init_PROLOG_ENDS*/\n\ +-\n\ +-/*@_init_EPILOG_BEGINS*/\n\ +- .align 4\n\ +- .section .init\n\ +-#NO_APP\n\ +- .align 4\n\ +- L 4,152(15)\n\ +- LM 6,15,120(15)\n\ +- BR 4\n\ +-#APP\n\ +- END_INIT\n\ +-\n\ +-/*@_init_EPILOG_ENDS*/\n\ +-\n\ +-/*@_fini_PROLOG_BEGINS*/\n\ +- .section .fini\n\ +-#NO_APP\n\ +- .align 4\n\ +-.globl _fini\n\ +- .type _fini,@function\n\ +-_fini:\n\ +-# leaf function 0\n\ +-# automatics 0\n\ +-# outgoing args 0\n\ +-# need frame pointer 0\n\ +-# call alloca 0\n\ +-# has varargs 0\n\ +-# incoming args (stack) 0\n\ +-# function length 30\n\ +- STM 6,15,24(15)\n\ +- BRAS 13,.LTN2_0\n\ +-.LT2_0:\n\ +-.LC17:\n\ +- .long _GLOBAL_OFFSET_TABLE_-.LT2_0\n\ +-.LTN2_0:\n\ +- LR 1,15\n\ +- AHI 15,-96\n\ +- ST 1,0(15)\n\ +- L 12,.LC17-.LT2_0(13)\n\ +- AR 12,13\n\ +-#APP\n\ +- .align 4,0x07\n\ +- END_FINI\n\ +-\n\ +-/*@_fini_PROLOG_ENDS*/\n\ +-\n\ +-/*@_fini_EPILOG_BEGINS*/\n\ +- .align 4\n\ +- .section .fini\n\ +-#NO_APP\n\ +- .align 4\n\ +- L 4,152(15)\n\ +- LM 6,15,120(15)\n\ +- BR 4\n\ +-#APP\n\ +- END_FINI\n\ +-\n\ +-/*@_fini_EPILOG_ENDS*/\n\ +-\n\ +-/*@TRAILER_BEGINS*/\ +-"); +diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h +deleted file mode 100644 +index 2431129..0000000 +--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h ++++ /dev/null +@@ -1,136 +0,0 @@ +-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- <http://www.gnu.org/licenses/>. */ +- +-#include <sysdep.h> +-#include <tls.h> +-#ifndef __ASSEMBLER__ +-# include <linuxthreads/internals.h> +-#endif +- +-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt +- +-# if !defined NOT_IN_libc || defined IS_IN_libpthread +- +-# define PSEUDO_CANCEL(name, syscall_name, args) \ +-L(pseudo_cancel): \ +- STM_##args \ +- stm %r12,%r15,48(%r15); \ +- lr %r14,%r15; \ +- ahi %r15,-96; \ +- st %r14,0(%r15); \ +- basr %r13,0; \ +-0: l %r1,1f-0b(%r13); \ +- bas %r14,0(%r1,%r13); \ +- lr %r0,%r2; \ +- LM_##args \ +- DO_CALL(syscall_name, args); \ +- l %r1,2f-0b(%r13); \ +- lr %r12,%r2; \ +- lr %r2,%r0; \ +- bas %r14,0(%r1,%r13); \ +- lr %r2,%r12; \ +- lm %r12,%r15,48+96(%r15); \ +- j L(pseudo_check); \ +-1: .long CENABLE-0b; \ +-2: .long CDISABLE-0b; +- +-# else /* !libc.so && !libpthread.so */ +- +-# define PSEUDO_CANCEL(name, syscall_name, args) \ +-L(pseudo_cancel): \ +- STM_##args \ +- stm %r11,%r15,44(%r15); \ +- lr %r14,%r15; \ +- ahi %r15,-96; \ +- st %r14,0(%r15); \ +- basr %r13,0; \ +-0: l %r12,3f-0b(%r13); \ +- l %r1,1f-0b(%r13); \ +- la %r12,0(%r12,%r13); \ +- bas %r14,0(%r1,%r13); \ +- lr %r0,%r2; \ +- LM_##args \ +- DO_CALL(syscall_name, args); \ +- l %r1,2f-0b(%r13); \ +- lr %r11,%r2; \ +- lr %r2,%r0; \ +- bas %r14,0(%r1,%r13); \ +- lr %r2,%r11; \ +- lm %r11,%r15,44+96(%r15); \ +- j L(pseudo_check); \ +-1: .long CENABLE@PLT-0b; \ +-2: .long CDISABLE@PLT-0b; \ +-3: .long _GLOBAL_OFFSET_TABLE_-0b; +- +-# endif +- +-# undef PSEUDO +-# define PSEUDO(name, syscall_name, args) \ +- .text; \ +-PSEUDO_CANCEL(name, syscall_name, args) \ +-ENTRY(name) \ +- SINGLE_THREAD_P(%r1) \ +- jne L(pseudo_cancel); \ +- DO_CALL(syscall_name, args); \ +-L(pseudo_check): \ +- lhi %r4,-4095; \ +- clr %r2,%r4; \ +- jnl SYSCALL_ERROR_LABEL; \ +-L(pseudo_end): +- +-# ifdef IS_IN_libpthread +-# define CENABLE __pthread_enable_asynccancel +-# define CDISABLE __pthread_disable_asynccancel +-# elif !defined NOT_IN_libc +-# define CENABLE __libc_enable_asynccancel +-# define CDISABLE __libc_disable_asynccancel +-# else +-# define CENABLE __librt_enable_asynccancel +-# define CDISABLE __librt_disable_asynccancel +-# endif +- +-#define STM_0 /* Nothing */ +-#define STM_1 st %r2,8(%r15); +-#define STM_2 stm %r2,%r3,8(%r15); +-#define STM_3 stm %r2,%r4,8(%r15); +-#define STM_4 stm %r2,%r5,8(%r15); +-#define STM_5 stm %r2,%r5,8(%r15); +- +-#define LM_0 /* Nothing */ +-#define LM_1 l %r2,8+96(%r15); +-#define LM_2 lm %r2,%r3,8+96(%r15); +-#define LM_3 lm %r2,%r4,8+96(%r15); +-#define LM_4 lm %r2,%r5,8+96(%r15); +-#define LM_5 lm %r2,%r5,8+96(%r15); +- +-# ifndef __ASSEMBLER__ +-# define SINGLE_THREAD_P \ +- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ +- p_header.data.multiple_threads) == 0, 1) +-# else +-# define SINGLE_THREAD_P(reg) \ +- ear reg,%a0; \ +- icm reg,15,MULTIPLE_THREADS_OFFSET(reg); +-# endif +- +-#elif !defined __ASSEMBLER__ +- +-/* This code should never be used but we define it anyhow. */ +-# define SINGLE_THREAD_P (1) +- +-#endif +diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S +deleted file mode 100644 +index 078c730..0000000 +--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S ++++ /dev/null +@@ -1,68 +0,0 @@ +-/* Copyright (C) 2003 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Martin Schwidefsky <schwidefsky@de.ibm.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; if not, see +- <http://www.gnu.org/licenses/>. */ +- +-#include <sysdep-cancel.h> +-#define _ERRNO_H 1 +-#include <bits/errno.h> +- +-/* Clone the calling process, but without copying the whole address space. +- The calling process is suspended until the new process exits or is +- replaced by a call to `execve'. Return -1 for errors, 0 to the new process, +- and the process ID of the new process to the old process. */ +- +-ENTRY (__vfork) +- basr %r1,0 +-0: +-#ifdef SHARED +- al %r1,4f-0b(%r1) +- l %r1,0(%r1) +- ltr %r1,%r1 +-#else +- icm %r1,15,4f-0b(%r1) +-#endif +- jne 1f +- +- /* Do vfork system call. */ +- svc SYS_ify (vfork) +- +- /* Check for error. */ +- lhi %r4,-4095 +- clr %r2,%r4 +- jnl SYSCALL_ERROR_LABEL +- +- /* Normal return. */ +- br %r14 +-1: +- basr %r1,0 +-2: +- al %r1,3f-2b(%r1) +- br %r1 +-3: +- .long HIDDEN_JUMPTARGET(fork)-2b +-4: +-#ifdef SHARED +- .long __libc_pthread_functions-0b +-#else +- .weak pthread_create +- .long pthread_create +-#endif +-PSEUDO_END(__vfork) +- +-libc_hidden_def (__vfork) +- +-weak_alias (__vfork, vfork) +diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c +deleted file mode 100644 +index 136ce54..0000000 +--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c ++++ /dev/null +@@ -1,136 +0,0 @@ +-/* Special .init and .fini section support for 64 bit S/390. +- Copyright (C) 2001 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. +- +- In addition to the permissions in the GNU Lesser General Public +- License, the Free Software Foundation gives you unlimited +- permission to link the compiled version of this file with other +- programs, and to distribute those programs without any restriction +- coming from the use of this file. (The Lesser General Public +- License restrictions do apply in other respects; for example, they +- cover modification of the file, and distribution when not linked +- into another program.) +- +- The GNU C Library is distributed in the hope that it will be +- useful, but WITHOUT ANY WARRANTY; without even the implied warranty +- of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- GNU Lesser General 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/>. */ +- +-/* This file is compiled into assembly code which is then munged by a sed +- script into two files: crti.s and crtn.s. +- +- * crti.s puts a function prologue at the beginning of the +- .init and .fini sections and defines global symbols for +- those addresses, so they can be called as functions. +- +- * crtn.s puts the corresponding function epilogues +- in the .init and .fini sections. */ +- +-__asm__ ("\ +-\n\ +-#include \"defs.h\"\n\ +-\n\ +-/*@HEADER_ENDS*/\n\ +-\n\ +-/*@TESTS_BEGIN*/\n\ +-\n\ +-/*@TESTS_END*/\n\ +-\n\ +-/*@_init_PROLOG_BEGINS*/\n\ +-\n\ +- .section .init\n\ +-#NO_APP\n\ +- .align 4\n\ +-.globl _init\n\ +- .type _init,@function\n\ +-_init:\n\ +-# leaf function 0\n\ +-# automatics 0\n\ +-# outgoing args 0\n\ +-# need frame pointer 0\n\ +-# call alloca 0\n\ +-# has varargs 0\n\ +-# incoming args (stack) 0\n\ +-# function length 36\n\ +- STMG 6,15,48(15)\n\ +- LGR 1,15\n\ +- AGHI 15,-160\n\ +- STG 1,0(15)\n\ +- LARL 12,_GLOBAL_OFFSET_TABLE_\n\ +- BRASL 14,__pthread_initialize_minimal@PLT\n\ +- LARL 1,__gmon_start__@GOTENT\n\ +- LG 1,0(1)\n\ +- LTGR 1,1\n\ +- JE .L22\n\ +- BASR 14,1\n\ +-.L22:\n\ +-#APP\n\ +- .align 4,0x07\n\ +- END_INIT\n\ +-\n\ +-/*@_init_PROLOG_ENDS*/\n\ +-\n\ +-/*@_init_EPILOG_BEGINS*/\n\ +- .align 4\n\ +- .section .init\n\ +-#NO_APP\n\ +- .align 4\n\ +- LG 4,272(15)\n\ +- LMG 6,15,208(15)\n\ +- BR 4\n\ +-#APP\n\ +- END_INIT\n\ +-\n\ +-/*@_init_EPILOG_ENDS*/\n\ +-\n\ +-/*@_fini_PROLOG_BEGINS*/\n\ +- .section .fini\n\ +-#NO_APP\n\ +- .align 4\n\ +-.globl _fini\n\ +- .type _fini,@function\n\ +-_fini:\n\ +-# leaf function 0\n\ +-# automatics 0\n\ +-# outgoing args 0\n\ +-# need frame pointer 0\n\ +-# call alloca 0\n\ +-# has varargs 0\n\ +-# incoming args (stack) 0\n\ +-# function length 30\n\ +- STMG 6,15,48(15)\n\ +- LGR 1,15\n\ +- AGHI 15,-160\n\ +- STG 1,0(15)\n\ +- LARL 12,_GLOBAL_OFFSET_TABLE_\n\ +-#APP\n\ +- .align 4,0x07\n\ +- END_FINI\n\ +-\n\ +-/*@_fini_PROLOG_ENDS*/\n\ +-\n\ +-/*@_fini_EPILOG_BEGINS*/\n\ +- .align 4\n\ +- .section .fini\n\ +-#NO_APP\n\ +- .align 4\n\ +- LG 4,272(15)\n\ +- LMG 6,15,208(15)\n\ +- BR 4\n\ +-#APP\n\ +- END_FINI\n\ +-\n\ +-/*@_fini_EPILOG_ENDS*/\n\ +-\n\ +-/*@TRAILER_BEGINS*/\n\ +- "); +diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c +deleted file mode 100644 +index d57283a..0000000 +--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-sigsuspend.c ++++ /dev/null +@@ -1 +0,0 @@ +-#include "../../ia64/pt-sigsuspend.c" +diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h +deleted file mode 100644 +index cf3124e..0000000 +--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h ++++ /dev/null +@@ -1,115 +0,0 @@ +-/* Copyright (C) 2003, 2004 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Jakub Jelinek <jakub@redhat.com>, 2003. +- +- The GNU C Library is free software; you can redistribute it and/or +- modify it under the terms of the GNU Lesser General Public +- License as published by the Free Software Foundation; either +- version 2.1 of the License, or (at your option) any later version. +- +- The GNU C Library is distributed in the hope that it will be useful, +- but WITHOUT ANY WARRANTY; without even the implied warranty of +- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +- Lesser General Public License for more details. +- +- You should have received a copy of the GNU Lesser General Public +- License along with the GNU C Library; if not, see +- <http://www.gnu.org/licenses/>. */ +- +-#include <sysdep.h> +-#include <tls.h> +-#ifndef __ASSEMBLER__ +-# include <linuxthreads/internals.h> +-#endif +- +-#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt +- +-# undef PSEUDO +-# define PSEUDO(name, syscall_name, args) \ +- .text; \ +-L(pseudo_cancel): \ +- STM_##args \ +- stmg %r13,%r15,104(%r15); \ +- lgr %r14,%r15; \ +- aghi %r15,-160; \ +- stg %r14,0(%r15); \ +- brasl %r14,CENABLE; \ +- lgr %r0,%r2; \ +- LM_##args \ +- DO_CALL(syscall_name, args); \ +- lgr %r13,%r2; \ +- lgr %r2,%r0; \ +- brasl %r14,CDISABLE; \ +- lgr %r2,%r13; \ +- lmg %r13,%r15,104+160(%r15); \ +- j L(pseudo_check); \ +-ENTRY(name) \ +- SINGLE_THREAD_P \ +- jne L(pseudo_cancel); \ +- DO_CALL(syscall_name, args); \ +-L(pseudo_check): \ +- lghi %r4,-4095; \ +- clgr %r2,%r4; \ +- jgnl SYSCALL_ERROR_LABEL; \ +-L(pseudo_end): +- +-# ifdef IS_IN_libpthread +-# define CENABLE __pthread_enable_asynccancel +-# define CDISABLE __pthread_disable_asynccancel +-# define __local_multiple_threads __pthread_multiple_threads +-# elif !defined NOT_IN_libc +-# define CENABLE __libc_enable_asynccancel +-# define CDISABLE __libc_disable_asynccancel +-# define __local_multiple_threads __libc_multiple_threads +-# else +-# define CENABLE __librt_enable_asynccancel@PLT +-# define CDISABLE __librt_disable_asynccancel@PLT +-# endif +- +-#define STM_0 /* Nothing */ +-#define STM_1 stg %r2,16(%r15); +-#define STM_2 stmg %r2,%r3,16(%r15); +-#define STM_3 stmg %r2,%r4,16(%r15); +-#define STM_4 stmg %r2,%r5,16(%r15); +-#define STM_5 stmg %r2,%r5,16(%r15); +- +-#define LM_0 /* Nothing */ +-#define LM_1 lg %r2,16+160(%r15); +-#define LM_2 lmg %r2,%r3,16+160(%r15); +-#define LM_3 lmg %r2,%r4,16+160(%r15); +-#define LM_4 lmg %r2,%r5,16+160(%r15); +-#define LM_5 lmg %r2,%r5,16+160(%r15); +- +-# if !defined NOT_IN_libc || defined IS_IN_libpthread +-# ifndef __ASSEMBLER__ +-extern int __local_multiple_threads attribute_hidden; +-# define SINGLE_THREAD_P \ +- __builtin_expect (__local_multiple_threads == 0, 1) +-# else +-# define SINGLE_THREAD_P \ +- larl %r1,__local_multiple_threads; \ +- icm %r0,15,0(%r1); +-# endif +- +-# else +- +-# ifndef __ASSEMBLER__ +-# define SINGLE_THREAD_P \ +- __builtin_expect (THREAD_GETMEM (THREAD_SELF, \ +- p_header.data.multiple_threads) == 0, 1) +-# else +-# define SINGLE_THREAD_P \ +- ear %r1,%a0; \ +- sllg %r1,%r1,32; \ +- ear %r1,%a1; \ +- icm %r1,15,MULTIPLE_THREADS_OFFSET(%r1); +-# endif +- +-# endif +- +-#elif !defined __ASSEMBLER__ +- +-/* This code should never be used but we define it anyhow. */ +-# define SINGLE_THREAD_P (1) +- +-#endif +diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S +deleted file mode 100644 +index 109d4f6..0000000 +--- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S ++++ /dev/null +@@ -1,53 +0,0 @@ +-/* Copyright (C) 2003 Free Software Foundation, Inc. +- This file is part of the GNU C Library. +- Contributed by Martin Schwidefsky <schwidefsky@de.ibm.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; if not, see +- <http://www.gnu.org/licenses/>. */ +- +-#include <sysdep-cancel.h> +-#define _ERRNO_H 1 +-#include <bits/errno.h> +- +-/* Clone the calling process, but without copying the whole address space. +- The calling process is suspended until the new process exits or is +- replaced by a call to `execve'. Return -1 for errors, 0 to the new process, +- and the process ID of the new process to the old process. */ +- +-ENTRY (__vfork) +-#ifdef SHARED +- larl %r1,__libc_pthread_functions +- lg %r1,0(%r1) +-#else +- .weak pthread_create +- larl %r1,pthread_create +-#endif +- ltgr %r1,%r1 +- jgne HIDDEN_JUMPTARGET(fork) +- +- /* Do vfork system call. */ +- svc SYS_ify (vfork) +- +- /* Check for error. */ +- lghi %r4,-4095 +- clgr %r2,%r4 +- jgnl SYSCALL_ERROR_LABEL +- +- /* Normal return. */ +- br %r14 +-PSEUDO_END(__vfork) +- +-libc_hidden_def (__vfork) +- +-weak_alias (__vfork, vfork) +-- +1.8.5.2 (Apple Git-48) + diff --git a/toolchain/uclibc/patches/0.9.34-git/0004-disable-tests-if-HAVE_SHARED-is-not-set.patch b/toolchain/uclibc/patches/0.9.34-git/0004-disable-tests-if-HAVE_SHARED-is-not-set.patch index 223a1fd32..166884f09 100644 --- a/toolchain/uclibc/patches/0.9.34-git/0004-disable-tests-if-HAVE_SHARED-is-not-set.patch +++ b/toolchain/uclibc/patches/0.9.34-git/0004-disable-tests-if-HAVE_SHARED-is-not-set.patch @@ -1,7 +1,7 @@ -From b23a0c664498b7cca99e9e9cc06a2c18b0799663 Mon Sep 17 00:00:00 2001 +From c6f378032f50fe7c531368111743a94015c6949d Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb <wbx@openadk.org> Date: Sun, 7 Sep 2014 16:38:14 +0200 -Subject: [PATCH 4/4] disable tests if HAVE_SHARED is not set +Subject: [PATCH 4/6] disable tests if HAVE_SHARED is not set Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> --- diff --git a/toolchain/uclibc/patches/0.9.34-git/0005-disable-tests-for-arc-as-long-as-binutils-is-buggy.patch b/toolchain/uclibc/patches/0.9.34-git/0005-disable-tests-for-arc-as-long-as-binutils-is-buggy.patch new file mode 100644 index 000000000..258cc3e96 --- /dev/null +++ b/toolchain/uclibc/patches/0.9.34-git/0005-disable-tests-for-arc-as-long-as-binutils-is-buggy.patch @@ -0,0 +1,28 @@ +From 01ba5566cd878ae5e2183e1a89729922bfa80fa0 Mon Sep 17 00:00:00 2001 +From: Waldemar Brodkorb <wbx@openadk.org> +Date: Tue, 9 Sep 2014 18:40:22 +0200 +Subject: [PATCH 5/6] disable tests for arc as long as binutils is buggy + +Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> +--- + test/nptl/Makefile.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/test/nptl/Makefile.in b/test/nptl/Makefile.in +index d20d2c1..12119e2 100644 +--- a/test/nptl/Makefile.in ++++ b/test/nptl/Makefile.in +@@ -53,6 +53,10 @@ TESTS += tst-clock tst-clock_nanosleep tst-cpuclock1 tst-cpuclock2 \ + tst-mqueue7 tst-mqueue8 tst-mqueue9 tst-timer2 tst-timer3 \ + tst-timer4 tst-timer5 + ++ifeq ($(TARGET_ARCH),arc) ++TESTS_DISABLED += tst-tls12 tst-tls-at-ctor ++endif ++ + ifeq ($(UCLIBC_HAS_OBSOLETE_BSD_SIGNAL),) + TESTS_DISABLED += tst-exec2 tst-exec3 tst-exec4 + endif +-- +1.8.5.2 (Apple Git-48) + diff --git a/toolchain/uclibc/patches/0.9.34-git/0006-arm-add-RESET_PID-in-the-clone-impl.patch b/toolchain/uclibc/patches/0.9.34-git/0006-arm-add-RESET_PID-in-the-clone-impl.patch new file mode 100644 index 000000000..05341e7ff --- /dev/null +++ b/toolchain/uclibc/patches/0.9.34-git/0006-arm-add-RESET_PID-in-the-clone-impl.patch @@ -0,0 +1,170 @@ +From b516d8b113e479254d114c17cb51f2687098149c Mon Sep 17 00:00:00 2001 +From: Wang Yufen <wangyufen@huawei.com> +Date: Fri, 5 Sep 2014 15:19:21 +0800 +Subject: [PATCH 6/6] arm: add RESET_PID in the clone impl + +Called getpid() When creating a new process with clone(), getpid() returns +the father_process's value. It should be child_process's value. +The reason is missing a RESET_PID in the arm clone impl. + +Signed-off-by: Wang Yufen <wangyufen@huawei.com> +Signed-off-by: Waldemar Brodkorb <wbx@openadk.org> +--- + libc/sysdeps/linux/arm/clone.S | 61 +++++++++++++++++++++++++++++++---------- + libc/sysdeps/linux/arm/sysdep.h | 36 ++++++++++++++++++++++++ + 2 files changed, 83 insertions(+), 14 deletions(-) + +diff --git a/libc/sysdeps/linux/arm/clone.S b/libc/sysdeps/linux/arm/clone.S +index 03cd10e..29045ef 100644 +--- a/libc/sysdeps/linux/arm/clone.S ++++ b/libc/sysdeps/linux/arm/clone.S +@@ -19,12 +19,17 @@ + /* clone() is even more special than fork() as it mucks with stacks + and invokes a function in the right context after its all over. */ + ++#include <sysdep.h> + #define _ERRNO_H + #include <features.h> + #include <bits/errno.h> + #include <sys/syscall.h> + #include <bits/arm_asm.h> + #include <bits/arm_bx.h> ++#include <sysdep-cancel.h> ++ ++#define CLONE_VM 0x00000100 ++#define CLONE_THREAD 0x00010000 + + #if defined(__NR_clone) + /* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg); */ +@@ -87,6 +92,8 @@ __error: + .pool + #else + __clone: ++.fnstart ++.cantunwind + @ sanity check args + cmp r0, #0 + IT(te, ne) +@@ -95,32 +102,58 @@ __clone: + beq __error + + @ insert the args onto the new stack +- sub r1, r1, #8 +- str r3, [r1, #4] +- @ save the function pointer as the 0th element +- str r0, [r1] ++ str r3, [r1, #-4]! ++ str r0, [r1, #-4]! + + @ do the system call + @ get flags + mov r0, r2 ++#ifdef RESET_PID ++ mov ip, r2 ++#endif + @ new sp is already in r1 +- @ load remaining arguments off the stack +- stmfd sp!, {r4} +- ldr r2, [sp, #4] +- ldr r3, [sp, #8] +- ldr r4, [sp, #12] +- DO_CALL (clone) +- movs a1, a1 +- IT(t, ne) +- ldmnefd sp!, {r4} ++ push {r4, r7} ++ cfi_adjust_cfa_offset (8) ++ cfi_rel_offset (r4, 0) ++ cfi_rel_offset (r7, 4) ++ ldr r2, [sp, #8] ++ ldr r3, [sp, #12] ++ ldr r4, [sp, #16] ++ ldr r7, =SYS_ify(clone) ++ swi 0x0 ++ cfi_endproc ++ cmp r0, #0 ++ beq 1f ++ pop {r4, r7} + blt __error +- IT(t, ne) + #if defined(__USE_BX__) + bxne lr + #else + movne pc, lr + #endif + ++ cfi_startproc ++.fnend ++PSEUDO_END (__clone) ++ ++1: ++ .fnstart ++ .cantunwind ++#ifdef RESET_PID ++ tst ip, #CLONE_THREAD ++ bne 3f ++ GET_TLS (lr) ++ mov r1, r0 ++ tst ip, #CLONE_VM ++ ldr r7, =SYS_ify(getpid) ++ ite ne ++ movne r0, #-1 ++ swieq 0x0 ++ NEGOFF_ADJ_BASE (r1, TID_OFFSET) ++ str r0, NEGOFF_OFF1 (r1, TID_OFFSET) ++ str r0, NEGOFF_OFF2 (r1, PID_OFFSET, TID_OFFSET) ++3: ++#endif + @ pick the function arg and call address off the stack and execute + ldr r0, [sp, #4] + mov lr, pc +diff --git a/libc/sysdeps/linux/arm/sysdep.h b/libc/sysdeps/linux/arm/sysdep.h +index 64f4040..2d0a9cc 100644 +--- a/libc/sysdeps/linux/arm/sysdep.h ++++ b/libc/sysdeps/linux/arm/sysdep.h +@@ -213,6 +213,42 @@ __local_syscall_error: \ + sees the right arguments. + + */ ++#if __ARM_ARCH > 6 || defined (__ARM_ARCH_6K__) || defined (__ARM_ARCH_6ZK__) ++# define ARCH_HAS_HARD_TP ++#endif ++ ++# ifdef __thumb2__ ++# define NEGOFF_ADJ_BASE(R, OFF) add R, R, $OFF ++# define NEGOFF_ADJ_BASE2(D, S, OFF) add D, S, $OFF ++# define NEGOFF_OFF1(R, OFF) [R] ++# define NEGOFF_OFF2(R, OFFA, OFFB) [R, $((OFFA) - (OFFB))] ++# else ++# define NEGOFF_ADJ_BASE(R, OFF) ++# define NEGOFF_ADJ_BASE2(D, S, OFF) mov D, S ++# define NEGOFF_OFF1(R, OFF) [R, $OFF] ++# define NEGOFF_OFF2(R, OFFA, OFFB) [R, $OFFA] ++# endif ++ ++# ifdef ARCH_HAS_HARD_TP ++/* If the cpu has cp15 available, use it. */ ++# define GET_TLS(TMP) mrc p15, 0, r0, c13, c0, 3 ++# else ++/* At this generic level we have no tricks to pull. Call the ABI routine. */ ++# define GET_TLS(TMP) \ ++ push { r1, r2, r3, lr }; \ ++ cfi_remember_state; \ ++ cfi_adjust_cfa_offset (16); \ ++ cfi_rel_offset (r1, 0); \ ++ cfi_rel_offset (r2, 4); \ ++ cfi_rel_offset (r3, 8); \ ++ cfi_rel_offset (lr, 12); \ ++ bl __aeabi_read_tp; \ ++ pop { r1, r2, r3, lr }; \ ++ cfi_restore_state ++# endif /* ARCH_HAS_HARD_TP */ ++ ++ ++ + + #undef DO_CALL + #if defined(__ARM_EABI__) +-- +1.8.5.2 (Apple Git-48) + |