From 12fb25f4f50a76c3d80f1138289e42781082e387 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Wed, 4 Mar 2015 12:56:53 -0600 Subject: remove git patches for now --- .../0001-fix-linuxthreads-for-coldfire-nommu.patch | 106 -- ...e-posix_fallocate64-for-small-embedded-sy.patch | 27 - ...0003-linuxthreads-remove-unused-s390-code.patch | 1347 -------------------- ...4-disable-tests-if-HAVE_SHARED-is-not-set.patch | 51 - ...ests-for-arc-as-long-as-binutils-is-buggy.patch | 28 - .../0006-arm-add-RESET_PID-in-the-clone-impl.patch | 170 --- ...0007-enable-cancellation-stuff-for-libc_a.patch | 11 - 7 files changed, 1740 deletions(-) delete mode 100644 toolchain/uclibc/patches/0.9.34-git/0001-fix-linuxthreads-for-coldfire-nommu.patch delete mode 100644 toolchain/uclibc/patches/0.9.34-git/0001-test-disable-posix_fallocate64-for-small-embedded-sy.patch delete mode 100644 toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch delete mode 100644 toolchain/uclibc/patches/0.9.34-git/0004-disable-tests-if-HAVE_SHARED-is-not-set.patch delete mode 100644 toolchain/uclibc/patches/0.9.34-git/0005-disable-tests-for-arc-as-long-as-binutils-is-buggy.patch delete mode 100644 toolchain/uclibc/patches/0.9.34-git/0006-arm-add-RESET_PID-in-the-clone-impl.patch delete mode 100644 toolchain/uclibc/patches/0.9.34-git/0007-enable-cancellation-stuff-for-libc_a.patch (limited to 'toolchain/uclibc/patches') diff --git a/toolchain/uclibc/patches/0.9.34-git/0001-fix-linuxthreads-for-coldfire-nommu.patch b/toolchain/uclibc/patches/0.9.34-git/0001-fix-linuxthreads-for-coldfire-nommu.patch deleted file mode 100644 index 4f8320c34..000000000 --- a/toolchain/uclibc/patches/0.9.34-git/0001-fix-linuxthreads-for-coldfire-nommu.patch +++ /dev/null @@ -1,106 +0,0 @@ -From 45064565100b67ff2f960e93d580449b720a66c9 Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb -Date: Sat, 6 Sep 2014 01:52:10 +0200 -Subject: [PATCH] fix linuxthreads for coldfire nommu - -Signed-off-by: Waldemar Brodkorb ---- - libpthread/linuxthreads/sysdeps/m68k/pspinlock.c | 20 +++++++++++++++----- - libpthread/linuxthreads/sysdeps/m68k/pt-machine.h | 11 +++++++++-- - libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c | 2 ++ - 3 files changed, 26 insertions(+), 7 deletions(-) - -diff --git a/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c b/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c -index c26a278..af77c2a 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 e2d7bdc..1eb9fd5 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 706faef..634c752 100644 ---- a/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c -+++ b/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c -@@ -16,7 +16,9 @@ - . */ - - #include -+#ifdef __UCLIBC_HAS_TLS__ - #include -+#endif - #include - #include - --- -2.0.1 - 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 deleted file mode 100644 index 7b635f799..000000000 --- a/toolchain/uclibc/patches/0.9.34-git/0001-test-disable-posix_fallocate64-for-small-embedded-sy.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 943ef39519a3a4aa514f1fe9431565bf691f01f2 Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb -Date: Mon, 1 Sep 2014 21:02:19 +0200 -Subject: [PATCH 1/6] test: disable posix_fallocate64 for small embedded - systems - -Signed-off-by: Waldemar Brodkorb ---- - test/unistd/Makefile.in | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/test/unistd/Makefile.in b/test/unistd/Makefile.in -index ed33d9a..c884a39 100644 ---- a/test/unistd/Makefile.in -+++ b/test/unistd/Makefile.in -@@ -25,6 +25,8 @@ else - # reordering is not supported, behaves as if POSIXLY_CORRECT would be set - OPTS_tstgetopt := -a -b -cfoobar --required foobar --optional=bazbug --none --colou --color --colour random - endif -+# for embedded systems 4 GB disk space is not available -+TESTS_DISABLED += tst-posix_fallocate64 - - # getconf.c lives in utils/ - # Testsuite cannot currently be built with O= anyway, so hardcode path here --- -1.8.5.2 (Apple Git-48) - 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 deleted file mode 100644 index b5712393d..000000000 --- a/toolchain/uclibc/patches/0.9.34-git/0003-linuxthreads-remove-unused-s390-code.patch +++ /dev/null @@ -1,1347 +0,0 @@ -From 0072d1730591edbbcee79f93d54b66ffbd57a02b Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb -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 ---- - 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 . */ -- --#include --#include --#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 . */ -- --#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 . */ -- --#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 --#include -- --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 -- . */ -- --#ifndef _TLS_H --#define _TLS_H -- --#ifndef __ASSEMBLER__ -- --# include --# include --# include -- --/* 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 --#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 -- -- --/* Get the thread descriptor definition. */ --# include -- --/* 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 -- --# 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 -- . */ -- --#ifndef _BITS_TYPES_H --# error "Never include directly; use instead." --#endif -- --#ifndef _BITS_TYPESIZES_H --#define _BITS_TYPESIZES_H 1 -- --/* See for the meaning of these macros. This file exists so -- that 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 . */ -- --/* 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 , 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 -- . */ -- --#include --#include --#ifndef __ASSEMBLER__ --# include --#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 -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#define _ERRNO_H 1 --#include -- --/* 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 . */ -- --/* 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 , 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 -- . */ -- --#include --#include --#ifndef __ASSEMBLER__ --# include --#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 -- -- The GNU C Library is free software; you can redistribute it and/or -- modify it under the terms of the GNU Lesser General Public -- License as published by the Free Software Foundation; either -- version 2.1 of the License, or (at your option) any later version. -- -- The GNU C Library is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -- Lesser General Public License for more details. -- -- You should have received a copy of the GNU Lesser General Public -- License along with the GNU C Library; if not, see -- . */ -- --#include --#define _ERRNO_H 1 --#include -- --/* 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 deleted file mode 100644 index 2f008929f..000000000 --- a/toolchain/uclibc/patches/0.9.34-git/0004-disable-tests-if-HAVE_SHARED-is-not-set.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 743a46b7b12f07065465d9e49729043cf6f00394 Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb -Date: Sun, 7 Sep 2014 16:38:14 +0200 -Subject: [PATCH 4/6] disable tests if HAVE_SHARED is not set - -Signed-off-by: Waldemar Brodkorb ---- - test/nptl/Makefile.in | 12 ++++++------ - 1 file changed, 6 insertions(+), 6 deletions(-) - -diff --git a/test/nptl/Makefile.in b/test/nptl/Makefile.in -index dd53f91..d20d2c1 100644 ---- a/test/nptl/Makefile.in -+++ b/test/nptl/Makefile.in -@@ -38,11 +38,10 @@ TESTS := tst-align tst-align2 tst-atfork1 tst-attr1 tst-attr2 tst-attr3 \ - tst-cancelx12 tst-cancelx13 tst-cancelx14 tst-cancelx15 tst-cancelx16 \ - tst-cancelx18 tst-cancelx20 tst-cancelx21 tst-cleanupx0 tst-cleanupx1 \ - tst-cleanupx2 tst-cleanupx3 tst-cleanupx4 tst-cond22 tst-cond23 \ -- tst-dlsym1 tst-getpid1 tst-getpid2 tst-getpid3 tst-join6 tst-tsd6 \ -+ tst-getpid1 tst-getpid2 tst-getpid3 tst-join6 tst-tsd6 \ - tst-oddstacklimit tst-oncex3 tst-oncex4 tst-rwlock2a \ -- tst-basic7 tst-fini1 tst-signal7 \ -- tst-unload tst-vfork1x tst-vfork2x tst-sem10 tst-sem11 tst-sem12 \ -- tst-typesizes tst-initializers1-c89 tst-initializers1-c99 \ -+ tst-basic7 tst-signal7 tst-vfork1x tst-vfork2x tst-sem10 tst-sem11 \ -+ tst-sem12 tst-typesizes tst-initializers1-c89 tst-initializers1-c99 \ - tst-initializers1-gnu89 tst-initializers1-gnu99 - - # -@@ -68,7 +67,8 @@ GLIBC_TESTS_DISABLED := tst-eintr1_glibc tst-eintr2_glibc \ - - - ifeq ($(HAVE_SHARED),) --TESTS_DISABLED += tst-tls3 tst-tls4 tst-tls5 -+TESTS_DISABLED += tst-tls3 tst-tls4 tst-tls5 tst-dlsym1 tst-fini1 \ -+ tst-unload - else - GLIBC_TESTS_DISABLED += tst-tls3_glibc tst-tls4_glibc tst-tls5_glibc - endif -@@ -109,7 +109,7 @@ LDFLAGS_tst-rwlock14 = -lrt - LDFLAGS_tst-fini1 = -Wl,-rpath=./ tst-fini1mod.so - LDFLAGS_tst-fini1mod.so = -Wl,-soname=tst-fini1mod.so - LDFLAGS_tst-unload = -ldl --LDFLAGS_tst-cancel5 := -lpthread -lpthread_nonshared -+LDFLAGS_tst-cancel5 := -lpthread - LDFLAGS_tst-cancel23 := -lc -lpthread - LDFLAGS_tst-vfork1x := -lc -lpthread - LDFLAGS_tst-vfork2x := -lc -lpthread --- -1.8.5.2 (Apple Git-48) - 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 deleted file mode 100644 index b7af276fc..000000000 --- a/toolchain/uclibc/patches/0.9.34-git/0005-disable-tests-for-arc-as-long-as-binutils-is-buggy.patch +++ /dev/null @@ -1,28 +0,0 @@ -From b46e40edc326638336adc91ccc2aad74c94c764b Mon Sep 17 00:00:00 2001 -From: Waldemar Brodkorb -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 ---- - test/tls/Makefile.in | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/test/tls/Makefile.in b/test/tls/Makefile.in -index 7ab4e2a..0a98337 100644 ---- a/test/tls/Makefile.in -+++ b/test/tls/Makefile.in -@@ -12,6 +12,10 @@ ifeq ($(HAVE_SHARED),) - TESTS_DISABLED := $(TESTS) - endif - -+ifeq ($(TARGET_ARCH),arc) -+TESTS_DISABLED += tst-tls12 tst-tls-at-ctor -+endif -+ - # All these tests need tls.h, which is not installed with glibc - GLIBC_TESTS_DISABLED := $(addsuffix _glibc,$(filter-out $(TESTS_DISABLED),$(TESTS))) - --- -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 deleted file mode 100644 index 1c746dd08..000000000 --- a/toolchain/uclibc/patches/0.9.34-git/0006-arm-add-RESET_PID-in-the-clone-impl.patch +++ /dev/null @@ -1,170 +0,0 @@ -From 60f9eaa155d0f7ff935da37ecdf253c5c744a3ce Mon Sep 17 00:00:00 2001 -From: Wang Yufen -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 -Signed-off-by: Waldemar Brodkorb ---- - 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 - #define _ERRNO_H - #include - #include - #include - #include - #include -+#include -+ -+#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) - diff --git a/toolchain/uclibc/patches/0.9.34-git/0007-enable-cancellation-stuff-for-libc_a.patch b/toolchain/uclibc/patches/0.9.34-git/0007-enable-cancellation-stuff-for-libc_a.patch deleted file mode 100644 index 92b532b63..000000000 --- a/toolchain/uclibc/patches/0.9.34-git/0007-enable-cancellation-stuff-for-libc_a.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/libpthread/linuxthreads/Makefile.in.orig 2014-09-27 23:26:40.000000000 +0200 -+++ b/libpthread/linuxthreads/Makefile.in 2014-09-27 23:27:12.000000000 +0200 -@@ -65,7 +65,7 @@ CFLAGS-OMIT-libc_pthread_init.c := $(CFL - 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)) -- cgit v1.2.3