summaryrefslogtreecommitdiff
path: root/toolchain/uClibc/patches/0.9.32.1
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain/uClibc/patches/0.9.32.1')
-rw-r--r--toolchain/uClibc/patches/0.9.32.1/avr32_atomic_fix.patch10
-rw-r--r--toolchain/uClibc/patches/0.9.32.1/epoll.patch19
-rw-r--r--toolchain/uClibc/patches/0.9.32.1/gnutar-problem.patch18
-rw-r--r--toolchain/uClibc/patches/0.9.32.1/rpath-origin.patch174
-rw-r--r--toolchain/uClibc/patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch82
-rw-r--r--toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction.patch155
-rw-r--r--toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction2.patch247
-rw-r--r--toolchain/uClibc/patches/0.9.32.1/uClibc-weak-sigprocmask.patch21
8 files changed, 0 insertions, 726 deletions
diff --git a/toolchain/uClibc/patches/0.9.32.1/avr32_atomic_fix.patch b/toolchain/uClibc/patches/0.9.32.1/avr32_atomic_fix.patch
deleted file mode 100644
index 5e5460a3d..000000000
--- a/toolchain/uClibc/patches/0.9.32.1/avr32_atomic_fix.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/libc/sysdeps/linux/avr32/bits/atomic.h
-+++ b/libc/sysdeps/linux/avr32/bits/atomic.h
-@@ -28,6 +28,7 @@ typedef uintmax_t uatomic_max_t;
-
- #define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
- ({ \
-+ __uint32_t __result; \
- __typeof__(*(mem)) __prev; \
- __asm__ __volatile__( \
- "/* __arch_compare_and_exchange_val_32_acq */\n" \
diff --git a/toolchain/uClibc/patches/0.9.32.1/epoll.patch b/toolchain/uClibc/patches/0.9.32.1/epoll.patch
deleted file mode 100644
index 4d9cc38cd..000000000
--- a/toolchain/uClibc/patches/0.9.32.1/epoll.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -Nur uClibc-0.9.32.orig/libc/sysdeps/linux/common/epoll.c uClibc-0.9.32/libc/sysdeps/linux/common/epoll.c
---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/epoll.c 2011-06-08 21:35:20.000000000 +0200
-+++ uClibc-0.9.32/libc/sysdeps/linux/common/epoll.c 2011-06-15 14:18:06.798202250 +0200
-@@ -67,12 +67,13 @@
- int __libc_epoll_pwait(int epfd, struct epoll_event *events, int maxevents,
- int timeout, const sigset_t *set)
- {
-+ int nsig = _NSIG / 8;
- if (SINGLE_THREAD_P)
-- return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8);
-+ return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
- # ifdef __UCLIBC_HAS_THREADS_NATIVE__
- else {
- int oldtype = LIBC_CANCEL_ASYNC ();
-- int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, _NSIG / 8);
-+ int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
- LIBC_CANCEL_RESET (oldtype);
- return result;
- }
diff --git a/toolchain/uClibc/patches/0.9.32.1/gnutar-problem.patch b/toolchain/uClibc/patches/0.9.32.1/gnutar-problem.patch
deleted file mode 100644
index a3d71131a..000000000
--- a/toolchain/uClibc/patches/0.9.32.1/gnutar-problem.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -Nur uClibc-0.9.32-rc3.orig/Makefile.in uClibc-0.9.32-rc3/Makefile.in
---- uClibc-0.9.32-rc3.orig/Makefile.in 2011-03-16 20:11:13.000000000 +0100
-+++ uClibc-0.9.32-rc3/Makefile.in 2011-05-20 11:16:00.000000000 +0200
-@@ -385,13 +385,13 @@
- ifeq ($(HAVE_SHARED),y)
- $(INSTALL) -m 755 $(top_builddir)lib/lib*-$(VERSION).so \
- $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)
-- (cd $(top_builddir)lib && $(TAR) -cf - *.so.*) | $(TAR) -xf - -C $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)
- @if [ -x $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so ] ; then \
- set -e; \
- $(SHELL_SET_X); \
- $(INSTALL) -m 755 $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so \
- $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR); \
- fi
-+ (cd $(top_builddir)lib && $(TAR) -cf - *.so.*) | $(TAR) -xf - -C $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)
- endif
-
- utils: | pregen
diff --git a/toolchain/uClibc/patches/0.9.32.1/rpath-origin.patch b/toolchain/uClibc/patches/0.9.32.1/rpath-origin.patch
deleted file mode 100644
index c2bd2e8ab..000000000
--- a/toolchain/uClibc/patches/0.9.32.1/rpath-origin.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-diff -Nur uClibc-0.9.32.orig//ldso/ldso/dl-elf.c uClibc-0.9.32/ldso/ldso/dl-elf.c
---- uClibc-0.9.32.orig//ldso/ldso/dl-elf.c 2011-06-08 21:35:20.000000000 +0200
-+++ uClibc-0.9.32/ldso/ldso/dl-elf.c 2011-08-09 11:19:18.325314589 +0200
-@@ -133,53 +133,59 @@
- * in uClibc/ldso/util/ldd.c */
- static struct elf_resolve *
- search_for_named_library(const char *name, int secure, const char *path_list,
-- struct dyn_elf **rpnt)
-+ struct dyn_elf **rpnt, const char *origin)
- {
-- char *path, *path_n, *mylibname;
-+ char *mylibname;
-+ const char *p, *pn;
- struct elf_resolve *tpnt;
-- int done;
-+ int plen;
-
- if (path_list==NULL)
- return NULL;
-
-- /* We need a writable copy of this string, but we don't
-- * need this allocated permanently since we don't want
-- * to leak memory, so use alloca to put path on the stack */
-- done = _dl_strlen(path_list);
-- path = alloca(done + 1);
--
- /* another bit of local storage */
- mylibname = alloca(2050);
-
-- _dl_memcpy(path, path_list, done+1);
--
- /* Unlike ldd.c, don't bother to eliminate double //s */
-
- /* Replace colons with zeros in path_list */
- /* : at the beginning or end of path maps to CWD */
- /* :: anywhere maps CWD */
- /* "" maps to CWD */
-- done = 0;
-- path_n = path;
-- do {
-- if (*path == 0) {
-- *path = ':';
-- done = 1;
-+ for (p = path_list; p != NULL; p = pn) {
-+ pn = _dl_strchr(p + 1, ':');
-+ if (pn != NULL) {
-+ plen = pn - p;
-+ pn++;
-+ } else
-+ plen = _dl_strlen(p);
-+
-+ if (plen >= 7 && _dl_memcmp(p, "$ORIGIN", 7) == 0) {
-+ int olen;
-+ if (secure && plen != 7)
-+ continue;
-+ if (origin == NULL)
-+ continue;
-+ for (olen = _dl_strlen(origin) - 1; olen >= 0 && origin[olen] != '/'; olen--)
-+ ;
-+ if (olen <= 0)
-+ continue;
-+ _dl_memcpy(&mylibname[0], origin, olen);
-+ _dl_memcpy(&mylibname[olen], p + 7, plen - 7);
-+ mylibname[olen + plen - 7] = 0;
-+ } else if (plen != 0) {
-+ _dl_memcpy(mylibname, p, plen);
-+ mylibname[plen] = 0;
-+ } else {
-+ _dl_strcpy(mylibname, ".");
- }
-- if (*path == ':') {
-- *path = 0;
-- if (*path_n)
-- _dl_strcpy(mylibname, path_n);
-- else
-- _dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
-- _dl_strcat(mylibname, "/");
-- _dl_strcat(mylibname, name);
-- if ((tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname)) != NULL)
-- return tpnt;
-- path_n = path+1;
-- }
-- path++;
-- } while (!done);
-+ _dl_strcat(mylibname, "/");
-+ _dl_strcat(mylibname, name);
-+
-+ tpnt = _dl_load_elf_shared_library(secure, rpnt, mylibname);
-+ if (tpnt != NULL)
-+ return tpnt;
-+ }
- return NULL;
- }
-
-@@ -231,7 +237,7 @@
- if (pnt) {
- pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
- _dl_if_debug_dprint("\tsearching RPATH='%s'\n", pnt);
-- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL)
-+ if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, tpnt->libname)) != NULL)
- return tpnt1;
- }
- #endif
-@@ -239,7 +245,7 @@
- /* Check in LD_{ELF_}LIBRARY_PATH, if specified and allowed */
- if (_dl_library_path) {
- _dl_if_debug_dprint("\tsearching LD_LIBRARY_PATH='%s'\n", _dl_library_path);
-- if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt)) != NULL)
-+ if ((tpnt1 = search_for_named_library(libname, secure, _dl_library_path, rpnt, NULL)) != NULL)
- {
- return tpnt1;
- }
-@@ -253,7 +259,7 @@
- if (pnt) {
- pnt += (unsigned long) tpnt->dynamic_info[DT_STRTAB];
- _dl_if_debug_dprint("\tsearching RUNPATH='%s'\n", pnt);
-- if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt)) != NULL)
-+ if ((tpnt1 = search_for_named_library(libname, secure, pnt, rpnt, NULL)) != NULL)
- return tpnt1;
- }
- #endif
-@@ -287,7 +293,7 @@
- /* Look for libraries wherever the shared library loader
- * was installed */
- _dl_if_debug_dprint("\tsearching ldso dir='%s'\n", _dl_ldsopath);
-- tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt);
-+ tpnt1 = search_for_named_library(libname, secure, _dl_ldsopath, rpnt, NULL);
- if (tpnt1 != NULL)
- return tpnt1;
-
-@@ -300,7 +306,7 @@
- #ifndef __LDSO_CACHE_SUPPORT__
- ":" UCLIBC_RUNTIME_PREFIX "usr/X11R6/lib"
- #endif
-- , rpnt);
-+ , rpnt, NULL);
- if (tpnt1 != NULL)
- return tpnt1;
-
-diff -Nur uClibc-0.9.32.orig//ldso/ldso/ldso.c uClibc-0.9.32/ldso/ldso/ldso.c
---- uClibc-0.9.32.orig//ldso/ldso/ldso.c 2011-06-08 21:35:20.000000000 +0200
-+++ uClibc-0.9.32/ldso/ldso/ldso.c 2011-08-09 11:15:04.135386129 +0200
-@@ -272,6 +272,20 @@
- }
- }
-
-+static void _dl_setup_progname(const char *argv0)
-+{
-+ char image[PATH_MAX];
-+ ssize_t s;
-+
-+ s = _dl_readlink("/proc/self/exe", image, sizeof(image));
-+ if (s > 0 && image[0] == '/') {
-+ image[s] = 0;
-+ _dl_progname = _dl_strdup(image);
-+ } else if (argv0) {
-+ _dl_progname = argv0;
-+ }
-+}
-+
- void _dl_get_ready_to_run(struct elf_resolve *tpnt, DL_LOADADDR_TYPE load_addr,
- ElfW(auxv_t) auxvt[AT_EGID + 1], char **envp,
- char **argv
-@@ -321,9 +335,7 @@
- * been fixed up by now. Still no function calls outside of this
- * library, since the dynamic resolver is not yet ready.
- */
-- if (argv[0]) {
-- _dl_progname = argv[0];
-- }
-+ _dl_setup_progname(argv[0]);
-
- if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
- _dl_dprintf(_dl_debug_file, "Standalone execution is not supported yet\n");
diff --git a/toolchain/uClibc/patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch b/toolchain/uClibc/patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch
deleted file mode 100644
index 5820e15bb..000000000
--- a/toolchain/uClibc/patches/0.9.32.1/uClibc-0.9.32.1-unshare.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-Backport of unshare() syscall.
-From uClibc git 19dd090a0f68765db87990ef8eda9bf77bb29581
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-
----
-diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/bits/sched.h uClibc-0.9.32/libc/sysdeps/linux/common/bits/sched.h
---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/bits/sched.h 2011-12-02 23:54:30.571841170 -0300
-+++ uClibc-0.9.32/libc/sysdeps/linux/common/bits/sched.h 2011-12-02 23:57:45.874205079 -0300
-@@ -58,7 +58,13 @@
- force CLONE_PTRACE on this clone. */
- # define CLONE_CHILD_SETTID 0x01000000 /* Store TID in userlevel buffer in
- the child. */
--# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */
-+# define CLONE_STOPPED 0x02000000 /* Start in stopped state. */
-+# define CLONE_NEWUTS 0x04000000 /* New utsname group. */
-+# define CLONE_NEWIPC 0x08000000 /* New ipcs. */
-+# define CLONE_NEWUSER 0x10000000 /* New user namespace. */
-+# define CLONE_NEWPID 0x20000000 /* New pid namespace. */
-+# define CLONE_NEWNET 0x40000000 /* New network namespace. */
-+# define CLONE_IO 0x80000000 /* Clone I/O context. */
- #endif
-
- /* The official definition. */
-@@ -74,11 +80,9 @@
- extern int clone (int (*__fn) (void *__arg), void *__child_stack,
- int __flags, void *__arg, ...) __THROW;
-
--#if 0
- /* Unshare the specified resources. */
- extern int unshare (int __flags) __THROW;
- #endif
--#endif
-
- __END_DECLS
-
-diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/Makefile.in uClibc-0.9.32/libc/sysdeps/linux/common/Makefile.in
---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/Makefile.in 2011-12-02 23:54:30.577841215 -0300
-+++ uClibc-0.9.32/libc/sysdeps/linux/common/Makefile.in 2011-12-02 23:56:08.801527166 -0300
-@@ -24,7 +24,8 @@
- remap_file_pages.c sched_getaffinity.c sched_setaffinity.c \
- sendfile64.c sendfile.c setfsgid.c setfsuid.c setresuid.c \
- splice.c vmsplice.c tee.c signalfd.c swapoff.c swapon.c \
-- sync_file_range.c sysctl.c sysinfo.c timerfd.c uselib.c vhangup.c
-+ sync_file_range.c sysctl.c sysinfo.c timerfd.c unshare.c uselib.c \
-+ vhangup.c
- # NPTL needs these internally: madvise.c
- CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
- ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
-diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/stubs.c uClibc-0.9.32/libc/sysdeps/linux/common/stubs.c
---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/stubs.c 2011-12-02 23:54:30.577841215 -0300
-+++ uClibc-0.9.32/libc/sysdeps/linux/common/stubs.c 2011-12-02 23:58:18.803435042 -0300
-@@ -278,6 +278,10 @@
- make_stub(umount2)
- #endif
-
-+#if !defined __NR_unshare && defined __UCLIBC_LINUX_SPECIFIC__
-+make_stub(unshare)
-+#endif
-+
- #ifndef __NR_utimensat
- make_stub(futimens)
- make_stub(utimensat)
-diff -Nura uClibc-0.9.32.orig/libc/sysdeps/linux/common/unshare.c uClibc-0.9.32/libc/sysdeps/linux/common/unshare.c
---- uClibc-0.9.32.orig/libc/sysdeps/linux/common/unshare.c 1969-12-31 21:00:00.000000000 -0300
-+++ uClibc-0.9.32/libc/sysdeps/linux/common/unshare.c 2011-12-02 23:58:42.693601880 -0300
-@@ -0,0 +1,15 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * unshare() for uClibc
-+ *
-+ * Copyright (C) 2011 Henning Heinold <heinold@inf.fu-berlin.de>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <sched.h>
-+
-+#if defined __NR_unshare
-+_syscall1(int, unshare, int, flags)
-+#endif
diff --git a/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction.patch b/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction.patch
deleted file mode 100644
index 0077191e5..000000000
--- a/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-diff -Nur uClibc-0.9.32.1/libc/signal/sigaction.c uClibc.new/libc/signal/sigaction.c
---- uClibc-0.9.32.1/libc/signal/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/signal/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -82,6 +82,11 @@
-
-
- #ifndef LIBC_SIGACTION
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
- weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/arm/sigaction.c uClibc.new/libc/sysdeps/linux/arm/sigaction.c
---- uClibc-0.9.32.1/libc/sysdeps/linux/arm/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/arm/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -96,6 +96,11 @@
-
-
- #ifndef LIBC_SIGACTION
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
- weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/avr32/sigaction.c uClibc.new/libc/sysdeps/linux/avr32/sigaction.c
---- uClibc-0.9.32.1/libc/sysdeps/linux/avr32/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/avr32/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -38,6 +38,11 @@
- }
-
- #ifndef LIBC_SIGACTION
--weak_alias(__libc_sigaction, sigaction)
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
-+weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/c6x/sigaction.c uClibc.new/libc/sysdeps/linux/c6x/sigaction.c
---- uClibc-0.9.32.1/libc/sysdeps/linux/c6x/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/c6x/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -75,10 +75,16 @@
- }
-
- #ifndef LIBC_SIGACTION
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
- weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
-
-+
- /* NOTE: Please think twice before making any changes to the bits of
- code below. GDB needs some intimate knowledge about it to
- recognize them as signal trampolines, and make backtraces through
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/i386/sigaction.c uClibc.new/libc/sysdeps/linux/i386/sigaction.c
---- uClibc-0.9.32.1/libc/sysdeps/linux/i386/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/i386/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -95,8 +95,13 @@
-
-
- #ifndef LIBC_SIGACTION
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
- weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
-
-
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/mips/sigaction.c uClibc.new/libc/sysdeps/linux/mips/sigaction.c
---- uClibc-0.9.32.1/libc/sysdeps/linux/mips/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/mips/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -100,8 +100,13 @@
-
-
- #ifndef LIBC_SIGACTION
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
- weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
-
-
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/sparc/sigaction.c uClibc.new/libc/sysdeps/linux/sparc/sigaction.c
---- uClibc-0.9.32.1/libc/sysdeps/linux/sparc/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/sparc/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -65,11 +65,18 @@
- return ret;
- }
-
-+
- #ifndef LIBC_SIGACTION
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
- weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
-
-+
- static void
- __rt_sigreturn_stub(void)
- {
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/sigaction.c uClibc.new/libc/sysdeps/linux/x86_64/sigaction.c
---- uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/x86_64/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -99,8 +99,13 @@
-
-
- #ifndef LIBC_SIGACTION
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
- weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
-
-
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/xtensa/sigaction.c uClibc.new/libc/sysdeps/linux/xtensa/sigaction.c
---- uClibc-0.9.32.1/libc/sysdeps/linux/xtensa/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/xtensa/sigaction.c 2012-02-17 14:49:51.000000000 +0100
-@@ -34,6 +34,11 @@
- }
-
- #ifndef LIBC_SIGACTION
--weak_alias(__libc_sigaction, sigaction)
-+# ifndef __UCLIBC_HAS_THREADS__
-+strong_alias(__libc_sigaction,sigaction)
-+libc_hidden_def(sigaction)
-+# else
-+weak_alias(__libc_sigaction,sigaction)
- libc_hidden_weak(sigaction)
-+# endif
- #endif
diff --git a/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction2.patch b/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction2.patch
deleted file mode 100644
index f33e14dde..000000000
--- a/toolchain/uClibc/patches/0.9.32.1/uClibc-sigaction2.patch
+++ /dev/null
@@ -1,247 +0,0 @@
-diff -Nur uClibc-0.9.32.1/libc/signal/Makefile.in uClibc.new/libc/signal/Makefile.in
---- uClibc-0.9.32.1/libc/signal/Makefile.in 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/signal/Makefile.in 2012-02-17 15:13:33.000000000 +0100
-@@ -17,7 +17,7 @@
- CSRC-$(UCLIBC_SUSV4_LEGACY) += sigintr.c
-
- ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC-y:=$(filter-out raise.c sigaction.c,$(CSRC-y))
-+CSRC-y:=$(filter-out raise.c,$(CSRC-y))
- endif
-
- ifneq ($(strip $(ARCH_OBJS)),)
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/arm/Makefile.arch uClibc.new/libc/sysdeps/linux/arm/Makefile.arch
---- uClibc-0.9.32.1/libc/sysdeps/linux/arm/Makefile.arch 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/arm/Makefile.arch 2012-02-17 15:13:33.000000000 +0100
-@@ -5,11 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c
--
--ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC += sigaction.c
--endif
-+CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c sigaction.c
-
- SSRC := \
- __longjmp.S setjmp.S bsd-setjmp.S \
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/i386/Makefile.arch uClibc.new/libc/sysdeps/linux/i386/Makefile.arch
---- uClibc-0.9.32.1/libc/sysdeps/linux/i386/Makefile.arch 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/i386/Makefile.arch 2012-02-17 15:13:33.000000000 +0100
-@@ -5,11 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c __syscall_error.c
--
--ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC += sigaction.c
--endif
-+CSRC := brk.c __syscall_error.c sigaction.c
-
- SSRC := \
- __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/mips/Makefile.arch uClibc.new/libc/sysdeps/linux/mips/Makefile.arch
---- uClibc-0.9.32.1/libc/sysdeps/linux/mips/Makefile.arch 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/mips/Makefile.arch 2012-02-17 15:13:33.000000000 +0100
-@@ -7,7 +7,7 @@
-
- CSRC := \
- __longjmp.c brk.c setjmp_aux.c mmap.c \
-- cacheflush.c pread_write.c sysmips.c _test_and_set.c \
-+ cacheflush.c pread_write.c sigaction.c sysmips.c _test_and_set.c \
- readahead.c
-
- SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S
-@@ -17,7 +17,6 @@
- endif
-
- ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC += sigaction.c
- SSRC += vfork.S clone.S
- endif
-
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/sparc/Makefile.arch uClibc.new/libc/sysdeps/linux/sparc/Makefile.arch
---- uClibc-0.9.32.1/libc/sysdeps/linux/sparc/Makefile.arch 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/sparc/Makefile.arch 2012-02-17 15:14:20.000000000 +0100
-@@ -5,15 +5,14 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c __syscall_error.c
-+CSRC := brk.c __syscall_error.c sigaction.c
-
- SSRC := \
- __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
- syscall.S urem.S udiv.S umul.S sdiv.S rem.S pipe.S
-
- ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC += sigaction.c
--SSRC += fork.S vfork.S
-+SSRC += fork.S vfork.S clone.S
- endif
-
- # check weather __LONG_DOUBLE_128__ is defined (long double support)
-diff -Nur uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/Makefile.arch uClibc.new/libc/sysdeps/linux/x86_64/Makefile.arch
---- uClibc-0.9.32.1/libc/sysdeps/linux/x86_64/Makefile.arch 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libc/sysdeps/linux/x86_64/Makefile.arch 2012-02-17 15:13:33.000000000 +0100
-@@ -5,11 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
-
--CSRC := brk.c __syscall_error.c mmap.c
--
--ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
--CSRC += sigaction.c
--endif
-+CSRC := brk.c __syscall_error.c sigaction.c mmap.c
-
- SSRC := \
- __longjmp.S setjmp.S syscall.S bsd-setjmp.S bsd-_setjmp.S
-diff -Nur uClibc-0.9.32.1/libpthread/nptl/.gitignore uClibc.new/libpthread/nptl/.gitignore
---- uClibc-0.9.32.1/libpthread/nptl/.gitignore 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libpthread/nptl/.gitignore 2012-02-17 15:13:33.000000000 +0100
-@@ -24,6 +24,5 @@
- #
- # symlinks
- #
--sysdeps/pthread/pt-sigaction.c
- sysdeps/pthread/pt-sigfillset.c
- sysdeps/pthread/pt-sigprocmask.c
-diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/Makefile.in uClibc.new/libpthread/nptl/sysdeps/pthread/Makefile.in
---- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/Makefile.in 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libpthread/nptl/sysdeps/pthread/Makefile.in 2012-02-17 15:13:33.000000000 +0100
-@@ -42,8 +42,6 @@
- CFLAGS-pthread_spin_destroy.c = -D_GNU_SOURCE
- CFLAGS-pthread_spin_init.c = -D_GNU_SOURCE
- CFLAGS-pthread_spin_unlock.c = -D_GNU_SOURCE
--CFLAGS-pt-sigaction.c = -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
-- -I$(top_srcdir)libc/signal
- CFLAGS-pt-sigfillset.c = -I$(top_srcdir)libc/signal
- CFLAGS-pt-sigprocmask.c = -I$(top_srcdir)libc/sysdeps/linux/common
- CFLAGS-unwind-forcedunwind.c = -fexceptions -fasynchronous-unwind-tables
-@@ -58,10 +56,6 @@
- libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, \
- pt-sigaction pt-sigprocmask unwind-forcedunwind)
-
--CFLAGS-OMIT-sigaction.c = $(CFLAGS-pthread)
--CFLAGS-sigaction.c = -I$(top_srcdir)libc/signal
--libc-y += $(libpthread_pthread_OUT)/sigaction.o
--
- librt-pt-routines-y = librt-cancellation.c
- librt-pt-shared-only-routines-y = rt-unwind-resume.c
-
-@@ -114,7 +108,7 @@
- # impl, but ok.
- # Special rules needed since we do objdir->objdir compilation for these 3.
- # First symlink them, then build them. Rob would freak out on these. Sheesh! ;)
--pthread-lc-fwd = sigaction sigfillset sigprocmask
-+pthread-lc-fwd = sigfillset sigprocmask
- $(patsubst %,$(libpthread_pthread_OUT)/pt-%.c,$(pthread-lc-fwd)): | $(libpthread_pthread_OUT)
- $(do_ln) $(call rel_srcdir)$(patsubst pt-%,$(libpthread_pthread_DIR)/%,$(@F)) $@
- $(patsubst %,$(libpthread_pthread_OUT)/pt-%.oS,$(pthread-lc-fwd)): $(libpthread_pthread_OUT)/pt-%.oS: $(libpthread_pthread_OUT)/pt-%.c
-@@ -131,5 +125,5 @@
- CLEAN_libpthread/nptl/sysdeps/pthread:
- $(do_rm) $(addprefix $(libpthread_pthread_OUT)/*., o os oS s S) \
- $(libpthread_pthread_OUT)/defs.h \
-- $(addprefix $(libpthread_pthread_DIR)/,pt-sigaction.c \
-+ $(addprefix $(libpthread_pthread_DIR)/, \
- pt-sigfillset.c pt-sigprocmask.c)
-diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/pt-sigaction.c uClibc.new/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
---- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 1970-01-01 01:00:00.000000000 +0100
-+++ uClibc.new/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2012-02-17 15:13:33.000000000 +0100
-@@ -0,0 +1,40 @@
-+/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
-+ This file is part of the GNU C Library.
-+ Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
-+
-+ The GNU C Library is free software; you can redistribute it and/or
-+ modify it under the terms of the GNU Lesser General Public
-+ License as published by the Free Software Foundation; either
-+ version 2.1 of the License, or (at your option) any later version.
-+
-+ The GNU C Library is distributed in the hope that it will be useful,
-+ but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+ Lesser General Public License for more details.
-+
-+ You should have received a copy of the GNU Lesser General Public
-+ License along with the GNU C Library; if not, write to the Free
-+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+ 02111-1307 USA. */
-+
-+#include <pthreadP.h>
-+#include <signal.h>
-+
-+/* We use the libc implementation but we tell it to not allow
-+ SIGCANCEL or SIGTIMER to be handled. */
-+
-+extern __typeof(sigaction) __libc_sigaction;
-+int
-+__sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
-+{
-+ if (unlikely (sig == SIGCANCEL || sig == SIGSETXID))
-+ {
-+ __set_errno (EINVAL);
-+ return -1;
-+ }
-+
-+ return __libc_sigaction (sig, act, oact);
-+}
-+libc_hidden_proto(sigaction)
-+weak_alias (__sigaction, sigaction)
-+libc_hidden_weak(sigaction)
-diff -Nur uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/sigaction.c uClibc.new/libpthread/nptl/sysdeps/pthread/sigaction.c
---- uClibc-0.9.32.1/libpthread/nptl/sysdeps/pthread/sigaction.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc.new/libpthread/nptl/sysdeps/pthread/sigaction.c 1970-01-01 01:00:00.000000000 +0100
-@@ -1,49 +0,0 @@
--/* Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
-- This file is part of the GNU C Library.
-- Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
--
-- The GNU C Library is free software; you can redistribute it and/or
-- modify it under the terms of the GNU Lesser General Public
-- License as published by the Free Software Foundation; either
-- version 2.1 of the License, or (at your option) any later version.
--
-- The GNU C Library is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-- Lesser General Public License for more details.
--
-- You should have received a copy of the GNU Lesser General Public
-- License along with the GNU C Library; if not, write to the Free
-- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-- 02111-1307 USA. */
--
--#ifndef LIBC_SIGACTION
--
--#include <pthreadP.h>
--
--/* We use the libc implementation but we tell it to not allow
-- SIGCANCEL or SIGTIMER to be handled. */
--#define LIBC_SIGACTION 1
--#include <sigaction.c>
--
--extern __typeof(sigaction) __sigaction;
--int
--__sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
--{
-- if (__builtin_expect (sig == SIGCANCEL || sig == SIGSETXID, 0))
-- {
-- __set_errno (EINVAL);
-- return -1;
-- }
--
-- return __libc_sigaction (sig, act, oact);
--}
--libc_hidden_proto(sigaction)
--weak_alias (__sigaction, sigaction)
--libc_hidden_weak(sigaction)
--
--#else
--
--# include_next <sigaction.c>
--
--#endif /* LIBC_SIGACTION */
diff --git a/toolchain/uClibc/patches/0.9.32.1/uClibc-weak-sigprocmask.patch b/toolchain/uClibc/patches/0.9.32.1/uClibc-weak-sigprocmask.patch
deleted file mode 100644
index a98f5b94d..000000000
--- a/toolchain/uClibc/patches/0.9.32.1/uClibc-weak-sigprocmask.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Nur uClibc-0.9.32.1.orig/libc/sysdeps/linux/common/sigprocmask.c uClibc-0.9.32.1/libc/sysdeps/linux/common/sigprocmask.c
---- uClibc-0.9.32.1.orig/libc/sysdeps/linux/common/sigprocmask.c 2011-12-30 12:11:07.000000000 +0100
-+++ uClibc-0.9.32.1/libc/sysdeps/linux/common/sigprocmask.c 2012-02-18 11:40:09.000000000 +0100
-@@ -23,7 +23,7 @@
- _syscall4(int, __rt_sigprocmask, int, how, const sigset_t *, set,
- sigset_t *, oldset, size_t, size)
-
--int sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
-+int weak_function sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
- {
- #ifdef SIGCANCEL
- sigset_t local_newmask;
-@@ -58,7 +58,7 @@
- _syscall3(int, __syscall_sigprocmask, int, how, const sigset_t *, set,
- sigset_t *, oldset)
-
--int sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
-+int weak_function sigprocmask(int how, const sigset_t * set, sigset_t * oldset)
- {
- #ifdef SIGCANCEL
- sigset_t local_newmask;