From 014194de605990c6bdce52e03ee3dc1df13c45e8 Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@openwrt.org>
Date: Mon, 2 Nov 2015 18:12:16 +0000
Subject: [PATCH] uclibc: remove version 0.9.33

Latest uClibc-ng is now the only supported option

Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 47357
---
 toolchain/uClibc/Config.in                    |  19 -
 toolchain/uClibc/Config.version               |  10 +-
 toolchain/uClibc/common.mk                    |  15 +-
 toolchain/uClibc/config-0.9.33.2/arm          |   7 -
 toolchain/uClibc/config-0.9.33.2/armeb        |   7 -
 toolchain/uClibc/config-0.9.33.2/common       | 214 ---------
 toolchain/uClibc/config-0.9.33.2/mips         |  17 -
 toolchain/uClibc/config-0.9.33.2/mips64       |  17 -
 toolchain/uClibc/config-0.9.33.2/mips64.32    |  18 -
 toolchain/uClibc/config-0.9.33.2/mips64.64    |  18 -
 toolchain/uClibc/config-0.9.33.2/mips64.n32   |  18 -
 toolchain/uClibc/config-0.9.33.2/mips64el     |  17 -
 toolchain/uClibc/config-0.9.33.2/mips64el.32  |  18 -
 toolchain/uClibc/config-0.9.33.2/mips64el.64  |  18 -
 toolchain/uClibc/config-0.9.33.2/mips64el.n32 |  18 -
 toolchain/uClibc/config-0.9.33.2/mipsel       |  17 -
 .../uClibc/config-0.9.33.2/mipsel.cobalt      |  17 -
 toolchain/uClibc/config-0.9.33.2/x86_64       |   6 -
 toolchain/uClibc/config-ng-1.0.8/debug        |   6 -
 toolchain/uClibc/config-ng-1.0.8/i386         |  21 -
 toolchain/uClibc/config-ng-1.0.8/i686         |  21 -
 toolchain/uClibc/config-ng-1.0.8/m68k         |   6 -
 toolchain/uClibc/config-ng-1.0.8/powerpc      |   6 -
 toolchain/uClibc/config-ng-1.0.8/powerpc.e500 |   6 -
 toolchain/uClibc/config-ng-1.0.8/sparc        |   8 -
 toolchain/uClibc/config-ng-1.0.8/sparc.leon   |   8 -
 .../uClibc/{config-ng-1.0.8 => config}/arm    |   0
 .../uClibc/{config-ng-1.0.8 => config}/armeb  |   0
 .../uClibc/{config-ng-1.0.8 => config}/common |   0
 .../uClibc/{config-0.9.33.2 => config}/debug  |   0
 .../uClibc/{config-0.9.33.2 => config}/i386   |   0
 .../uClibc/{config-0.9.33.2 => config}/i686   |   0
 .../uClibc/{config-0.9.33.2 => config}/m68k   |   0
 .../uClibc/{config-ng-1.0.8 => config}/mips   |   0
 .../uClibc/{config-ng-1.0.8 => config}/mips64 |   0
 .../{config-ng-1.0.8 => config}/mips64.32     |   0
 .../{config-ng-1.0.8 => config}/mips64.64     |   0
 .../{config-ng-1.0.8 => config}/mips64.n32    |   0
 .../{config-ng-1.0.8 => config}/mips64el      |   0
 .../{config-ng-1.0.8 => config}/mips64el.32   |   0
 .../{config-ng-1.0.8 => config}/mips64el.64   |   0
 .../{config-ng-1.0.8 => config}/mips64el.n32  |   0
 .../uClibc/{config-ng-1.0.8 => config}/mipsel |   0
 .../{config-ng-1.0.8 => config}/mipsel.cobalt |   0
 .../{config-0.9.33.2 => config}/powerpc       |   0
 .../{config-0.9.33.2 => config}/powerpc.e500  |   0
 .../uClibc/{config-0.9.33.2 => config}/sparc  |   0
 .../{config-0.9.33.2 => config}/sparc.leon    |   0
 .../uClibc/{config-ng-1.0.8 => config}/x86_64 |   0
 .../009_backport_mount.h-update.patch         |  91 ----
 .../010-backport_sscanf_alloc.patch           | 184 -------
 .../011-dlsym_rtld_next_fix.patch             |  25 -
 ...012-elf-Add-STT_GNU_IFUNC-from-glibc.patch |  37 --
 ...e-handy-macros-to-be-used-in-syscall.patch |  28 --
 .../021-add-posix_madvise.c.patch             |  48 --
 .../022-libc-add-posix_fallocate.patch        | 301 ------------
 ...3-libc-add-fallocate-and-fallocate64.patch | 447 ------------------
 ...ls.h-allow-immediate-values-as-6th-s.patch |  25 -
 .../025-libc-sync_file_range.patch            |  57 ---
 .../patches-0.9.33.2/100-fix_unifdef.patch    |  11 -
 .../patches-0.9.33.2/110-compat_macros.patch  |  51 --
 .../patches-0.9.33.2/120-adjtimex.patch       |  14 -
 ...inet-fix-__read_etc_hosts_r-segfault.patch |  10 -
 .../132-inet_fix_res_init.patch               |  15 -
 .../133-inet6-scoped-getnameinfo.patch        |  26 -
 ...et_fix_threaded_use_of_res_functions.patch | 126 -----
 .../136-inet_make_res_init_thread_safe.patch  |  53 ---
 .../137-inet_fix_threaded_res_init.patch      |  10 -
 .../150-vasprintf_size_reduce.patch           |  37 --
 .../patches-0.9.33.2/170-math_finite.patch    |  23 -
 .../180-pthread_cleanup_fix.patch             |  45 --
 ...90-nptl_use_arch_default_stack_limit.patch |  13 -
 .../200-no_forced_unwind.patch                |  10 -
 .../210-mips_use_pic_crt1.patch               |  11 -
 .../350-use-fputs_unlocked.patch              |  19 -
 .../410-llvm_workaround.patch                 |  11 -
 .../450-powerpc_copysignl.patch               | 103 ----
 .../460-powerpc_ptrace_h.patch                |  96 ----
 .../470-powerpc_syscall6.patch                |  10 -
 .../480-powerpc_rel24_support.patch           |  26 -
 .../uClibc/patches-0.9.33.2/500-eventfd.patch |  53 ---
 .../600-mips64_abi_selection.patch            |  48 --
 .../610-mips64_syscall_fix.patch              | 285 -----------
 .../611-mips_syscall_error_argument.patch     |  99 ----
 .../612-mips64_relocation_fix.patch           |  29 --
 .../613-mips64_more_relocation_fixes.patch    |  20 -
 .../614-mips64_fix_setjmp_longjmp.patch       |  99 ----
 .../615-mips_fix_sigev_pad_size.patch         |  58 ---
 .../616-mips_fix_stat_time.patch              | 123 -----
 .../617-mips_fix_setjmp_ptrsize.patch         |  58 ---
 .../618-mips64_fix_syscall_error.patch        |  36 --
 .../619-mips64_fix_sysdep_cancel.patch        | 195 --------
 .../960-remove_eabi_oabi_selection.patch      |  32 --
 ...add___kernel_long_and___kernel_ulong.patch | 320 -------------
 .../981-fix_setting_arch_native_bit.patch     |  28 --
 .../patches-0.9.33.2/990-no-stack-cache.patch |  11 -
 .../patches-0.9.33.2/991-gen_wctype.patch     | 183 -------
 .../995-add-sigsys-to-siginfo_t-union.patch   | 145 ------
 .../999-eventfd_use_bits_scheme.patch         | 248 ----------
 99 files changed, 6 insertions(+), 4580 deletions(-)
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/arm
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/armeb
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/common
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips64
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips64.32
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips64.64
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips64.n32
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips64el
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips64el.32
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips64el.64
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mips64el.n32
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mipsel
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/mipsel.cobalt
 delete mode 100644 toolchain/uClibc/config-0.9.33.2/x86_64
 delete mode 100644 toolchain/uClibc/config-ng-1.0.8/debug
 delete mode 100644 toolchain/uClibc/config-ng-1.0.8/i386
 delete mode 100644 toolchain/uClibc/config-ng-1.0.8/i686
 delete mode 100644 toolchain/uClibc/config-ng-1.0.8/m68k
 delete mode 100644 toolchain/uClibc/config-ng-1.0.8/powerpc
 delete mode 100644 toolchain/uClibc/config-ng-1.0.8/powerpc.e500
 delete mode 100644 toolchain/uClibc/config-ng-1.0.8/sparc
 delete mode 100644 toolchain/uClibc/config-ng-1.0.8/sparc.leon
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/arm (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/armeb (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/common (100%)
 rename toolchain/uClibc/{config-0.9.33.2 => config}/debug (100%)
 rename toolchain/uClibc/{config-0.9.33.2 => config}/i386 (100%)
 rename toolchain/uClibc/{config-0.9.33.2 => config}/i686 (100%)
 rename toolchain/uClibc/{config-0.9.33.2 => config}/m68k (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips64 (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips64.32 (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips64.64 (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips64.n32 (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips64el (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips64el.32 (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips64el.64 (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mips64el.n32 (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mipsel (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/mipsel.cobalt (100%)
 rename toolchain/uClibc/{config-0.9.33.2 => config}/powerpc (100%)
 rename toolchain/uClibc/{config-0.9.33.2 => config}/powerpc.e500 (100%)
 rename toolchain/uClibc/{config-0.9.33.2 => config}/sparc (100%)
 rename toolchain/uClibc/{config-0.9.33.2 => config}/sparc.leon (100%)
 rename toolchain/uClibc/{config-ng-1.0.8 => config}/x86_64 (100%)
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/009_backport_mount.h-update.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/010-backport_sscanf_alloc.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/011-dlsym_rtld_next_fix.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/012-elf-Add-STT_GNU_IFUNC-from-glibc.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/020-endian.h-add-some-handy-macros-to-be-used-in-syscall.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/021-add-posix_madvise.c.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/022-libc-add-posix_fallocate.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/023-libc-add-fallocate-and-fallocate64.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/024-i386-bits-syscalls.h-allow-immediate-values-as-6th-s.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/025-libc-sync_file_range.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/100-fix_unifdef.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/110-compat_macros.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/120-adjtimex.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/131-inet-fix-__read_etc_hosts_r-segfault.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/132-inet_fix_res_init.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/133-inet6-scoped-getnameinfo.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/135-inet_fix_threaded_use_of_res_functions.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/136-inet_make_res_init_thread_safe.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/137-inet_fix_threaded_res_init.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/150-vasprintf_size_reduce.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/170-math_finite.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/180-pthread_cleanup_fix.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/190-nptl_use_arch_default_stack_limit.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/200-no_forced_unwind.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/210-mips_use_pic_crt1.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/350-use-fputs_unlocked.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/410-llvm_workaround.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/450-powerpc_copysignl.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/460-powerpc_ptrace_h.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/480-powerpc_rel24_support.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/500-eventfd.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/600-mips64_abi_selection.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/610-mips64_syscall_fix.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/611-mips_syscall_error_argument.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/612-mips64_relocation_fix.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/614-mips64_fix_setjmp_longjmp.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/615-mips_fix_sigev_pad_size.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/616-mips_fix_stat_time.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/617-mips_fix_setjmp_ptrsize.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/619-mips64_fix_sysdep_cancel.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/960-remove_eabi_oabi_selection.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/970-add___kernel_long_and___kernel_ulong.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/981-fix_setting_arch_native_bit.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/991-gen_wctype.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/995-add-sigsys-to-siginfo_t-union.patch
 delete mode 100644 toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch

diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in
index c923bc0097..5793bb779f 100644
--- a/toolchain/uClibc/Config.in
+++ b/toolchain/uClibc/Config.in
@@ -1,22 +1,3 @@
-# Choose uclibc version.
-
-choice
-	prompt "uClibc Version"
-	depends on TOOLCHAINOPTS && USE_UCLIBC
-	default UCLIBC_USE_VERSION_0_9_33
-	help
-	  Select the version of uClibc you wish to use.
-
-	config UCLIBC_USE_VERSION_0_9_33
-		select UCLIBC_VERSION_0_9_33
-		bool "uClibc 0.9.33.2"
-
-	config UCLIBC_USE_VERSION_NG
-		select UCLIBC_VERSION_NG
-		bool "uClibc-ng"
-
-endchoice
-
 # Debug version.
 
 config UCLIBC_ENABLE_DEBUG
diff --git a/toolchain/uClibc/Config.version b/toolchain/uClibc/Config.version
index 7210626997..7804da4940 100644
--- a/toolchain/uClibc/Config.version
+++ b/toolchain/uClibc/Config.version
@@ -1,13 +1,9 @@
 config UCLIBC_VERSION
 	string
 	depends on USE_UCLIBC
-	default "0.9.33.2"       if UCLIBC_VERSION_0_9_33
-	default "1.0.8"          if UCLIBC_VERSION_NG
-	default "0.9.33.2"
-
-config UCLIBC_VERSION_0_9_33
-	default y if !TOOLCHAINOPTS && USE_UCLIBC
-	bool
+	default "1.0.8"
 
 config UCLIBC_VERSION_NG
 	bool
+	depends on USE_UCLIBC
+	default y
diff --git a/toolchain/uClibc/common.mk b/toolchain/uClibc/common.mk
index 026d69de99..895022ce60 100644
--- a/toolchain/uClibc/common.mk
+++ b/toolchain/uClibc/common.mk
@@ -9,23 +9,14 @@ include $(INCLUDE_DIR)/target.mk
 
 PKG_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION))
 
-ifeq ($(CONFIG_UCLIBC_VERSION_NG),y)
 PKG_NAME:=uClibc-ng
 PKG_SOURCE_URL = http://downloads.uclibc-ng.org/releases/$(PKG_VERSION)/
-PATCH_DIR:=$(PATH_PREFIX)/patches-ng-$(PKG_VERSION)
-CONFIG_DIR:=$(PATH_PREFIX)/config-ng-$(PKG_VERSION)
-else
-PKG_NAME:=uClibc
-PKG_SOURCE_URL:=http://www.uclibc.org/downloads
-PATCH_DIR:=$(PATH_PREFIX)/patches-$(PKG_VERSION)
-CONFIG_DIR:=$(PATH_PREFIX)/config-$(PKG_VERSION)
-endif
+PATCH_DIR:=$(PATH_PREFIX)/patches
+CONFIG_DIR:=$(PATH_PREFIX)/config
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 LIBC_SO_VERSION:=$(PKG_VERSION)
 
-PKG_MD5SUM_0.9.33.2 = a338aaffc56f0f5040e6d9fa8a12eda1
-PKG_MD5SUM_1.0.6 = dfcc780bf2c7e2e42209bbb572e035cf
-PKG_MD5SUM=$(PKG_MD5SUM_$(PKG_VERSION))
+PKG_MD5SUM=d7dbc8ddb0274beacbb48e6928d7b097
 
 HOST_BUILD_DIR:=$(BUILD_DIR_TOOLCHAIN)/$(PKG_NAME)-$(PKG_VERSION)
 
diff --git a/toolchain/uClibc/config-0.9.33.2/arm b/toolchain/uClibc/config-0.9.33.2/arm
deleted file mode 100644
index b68617bb41..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/arm
+++ /dev/null
@@ -1,7 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_LITTLE_ENDIAN=y
-ARCH_WANTS_LITTLE_ENDIAN=y
-# COMPILE_IN_THUMB_MODE is not set
-TARGET_ARCH="arm"
-TARGET_arm=y
-# USE_BX is not set
diff --git a/toolchain/uClibc/config-0.9.33.2/armeb b/toolchain/uClibc/config-0.9.33.2/armeb
deleted file mode 100644
index d4932e864f..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/armeb
+++ /dev/null
@@ -1,7 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_BIG_ENDIAN=y
-ARCH_WANTS_BIG_ENDIAN=y
-# COMPILE_IN_THUMB_MODE is not set
-TARGET_ARCH="arm"
-TARGET_arm=y
-# USE_BX is not set
diff --git a/toolchain/uClibc/config-0.9.33.2/common b/toolchain/uClibc/config-0.9.33.2/common
deleted file mode 100644
index c26d22b2ce..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/common
+++ /dev/null
@@ -1,214 +0,0 @@
-# ARCH_ANY_ENDIAN is not set
-ARCH_HAS_MMU=y
-# ARCH_HAS_NO_LDSO is not set
-# ARCH_HAS_NO_SHARED is not set
-# ARCH_LITTLE_ENDIAN is not set
-ARCH_USE_MMU=y
-# ARCH_WANTS_BIG_ENDIAN is not set
-# ARCH_WANTS_LITTLE_ENDIAN is not set
-ASSUME_DEVPTS=y
-# COMPAT_ATEXIT is not set
-CROSS_COMPILER_PREFIX=""
-DEVEL_PREFIX="/usr/"
-# DOASSERTS is not set
-# DODEBUG is not set
-# DODEBUG_PT is not set
-# DOMULTI is not set
-DOPIC=y
-DOSTRIP=y
-DO_C99_MATH=y
-# DO_XSI_MATH is not set
-# EXTRA_WARNINGS is not set
-FORCE_OPTIONS_FOR_ARCH=y
-# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
-# HARDWIRED_ABSPATH is not set
-# HAS_NO_THREADS is not set
-HAVE_DOT_CONFIG=y
-# HAVE_NO_PIC is not set
-# HAVE_NO_SSP is not set
-HAVE_SHARED=y
-KERNEL_HEADERS="."
-LDSO_BASE_FILENAME="ld.so"
-LDSO_CACHE_SUPPORT=y
-# LDSO_GNU_HASH_SUPPORT is not set
-LDSO_LD_LIBRARY_PATH=y
-LDSO_LDD_SUPPORT=y
-# LDSO_NO_CLEANUP is not set
-# LDSO_PRELINK_SUPPORT is not set
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_PRELOAD_ENV_SUPPORT=y
-LDSO_RUNPATH=y
-# LDSO_SEARCH_INTERP_PATH is not set
-# LDSO_STANDALONE_SUPPORT is not set
-# LINUXTHREADS_NEW is not set
-# LINUXTHREADS_OLD is not set
-# UCLIBC_HAS_BACKTRACE is not set
-UCLIBC_HAS_THREADS_NATIVE=y
-# MALLOC is not set
-MALLOC_GLIBC_COMPAT=y
-# MALLOC_SIMPLE is not set
-MALLOC_STANDARD=y
-MULTILIB_DIR="lib"
-PTHREADS_DEBUG_SUPPORT=y
-RUNTIME_PREFIX="/"
-# SUPPORT_LD_DEBUG is not set
-# SUPPORT_LD_DEBUG_EARLY is not set
-TARGET_SUBARCH=""
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_avr32 is not set
-# TARGET_bfin is not set
-# TARGET_c6x is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-# TARGET_hppa is not set
-# TARGET_i386 is not set
-# TARGET_i960 is not set
-# TARGET_ia64 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_vax is not set
-# TARGET_x86_64 is not set
-# TARGET_xtensa is not set
-UCLIBC_BSD_SPECIFIC=y
-UCLIBC_BUILD_NOEXECSTACK=y
-# UCLIBC_BUILD_NOW is not set
-# UCLIBC_BUILD_PIE is not set
-UCLIBC_BUILD_RELRO=y
-UCLIBC_CTOR_DTOR=y
-UCLIBC_DYNAMIC_ATEXIT=y
-UCLIBC_EXTRA_CFLAGS=""
-UCLIBC_GRP_BUFFER_SIZE=256
-UCLIBC_HAS_ADVANCED_REALTIME=y
-# UCLIBC_HAS_ARC4RANDOM is not set
-UCLIBC_HAS_BSD_ERR=y
-UCLIBC_HAS_BSD_RES_CLOSE=y
-# UCLIBC_HAS_COMPAT_RES_STATE is not set
-UCLIBC_HAS_CRYPT=y
-UCLIBC_HAS_CRYPT_IMPL=y
-UCLIBC_HAS_CTYPE_CHECKED=y
-# UCLIBC_HAS_CTYPE_ENFORCED is not set
-UCLIBC_HAS_CTYPE_SIGNED=y
-UCLIBC_HAS_CTYPE_TABLES=y
-# UCLIBC_HAS_CTYPE_UNSAFE is not set
-UCLIBC_HAS_EPOLL=y
-UCLIBC_HAS_ERRNO_MESSAGES=y
-# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set
-# UCLIBC_HAS_FENV is not set
-UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FNMATCH=y
-UCLIBC_HAS_FNMATCH_OLD=y
-# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set
-UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
-# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
-# UCLIBC_HAS_FPU is not set
-UCLIBC_HAS_FTS=y
-UCLIBC_HAS_FTW=y
-# UCLIBC_HAS_FULL_RPC is not set
-UCLIBC_HAS_GETPT=y
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
-# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set
-UCLIBC_HAS_GLOB=y
-UCLIBC_HAS_GNU_ERROR=y
-UCLIBC_HAS_GNU_GETOPT=y
-UCLIBC_HAS_GNU_GETSUBOPT=y
-UCLIBC_HAS_GNU_GLOB=y
-UCLIBC_HAS_HEXADECIMAL_FLOATS=y
-UCLIBC_HAS_IPV4=y
-UCLIBC_HAS_IPV6=y
-UCLIBC_HAS_LFS=y
-UCLIBC_HAS_LIBNSL_STUB=y
-UCLIBC_HAS_LIBRESOLV_STUB=y
-UCLIBC_HAS_LIBUTIL=y
-# UCLIBC_HAS_LOCALE is not set
-# UCLIBC_BUILD_ALL_LOCALE is not set
-# UCLIBC_BUILD_MINIMAL_LOCALE is not set
-# UCLIBC_PREGENERATED_LOCALE_DATA is not set
-UCLIBC_HAS_LONG_DOUBLE_MATH=y
-UCLIBC_HAS_NETWORK_SUPPORT=y
-UCLIBC_HAS_NFTW=y
-# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
-# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
-UCLIBC_HAS_PRINTF_M_SPEC=y
-# UCLIBC_HAS_PROFILING is not set
-UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
-UCLIBC_HAS_PTY=y
-UCLIBC_HAS_REALTIME=y
-# UCLIBC_HAS_REENTRANT_RPC is not set
-UCLIBC_HAS_REGEX=y
-UCLIBC_HAS_REGEX_OLD=y
-UCLIBC_HAS_RESOLVER_SUPPORT=y
-# UCLIBC_HAS_RPC is not set
-UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
-# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set
-# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set
-UCLIBC_HAS_SHADOW=y
-UCLIBC_HAS_SIGNUM_MESSAGES=y
-UCLIBC_HAS_SOCKET=y
-UCLIBC_HAS_SOFT_FLOAT=y
-# UCLIBC_HAS_SSP is not set
-# UCLIBC_HAS_SSP_COMPAT is not set
-UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
-# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
-UCLIBC_HAS_STDIO_BUFSIZ_4096=y
-# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
-UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
-UCLIBC_HAS_STDIO_GETC_MACRO=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
-UCLIBC_HAS_STRING_ARCH_OPT=y
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-# UCLIBC_HAS_STUBS is not set
-UCLIBC_HAS_SYSLOG=y
-# UCLIBC_HAS_SYS_ERRLIST is not set
-# UCLIBC_HAS_SYS_SIGLIST is not set
-UCLIBC_HAS_THREADS=y
-UCLIBC_HAS_TM_EXTENSIONS=y
-UCLIBC_HAS_TZ_CACHING=y
-UCLIBC_HAS_TZ_FILE=y
-UCLIBC_HAS_TZ_FILE_READ_MANY=y
-# UCLIBC_HAS_UTMPX is not set
-UCLIBC_HAS_WCHAR=y
-UCLIBC_HAS_WORDEXP=y
-UCLIBC_HAS_XATTR=y
-# UCLIBC_HAS_XLOCALE is not set
-UCLIBC_HAS___PROGNAME=y
-# UCLIBC_LINUX_MODULE_24 is not set
-UCLIBC_LINUX_MODULE_26=y
-UCLIBC_LINUX_SPECIFIC=y
-# UCLIBC_MALLOC_DEBUGGING is not set
-# UCLIBC_MJN3_ONLY is not set
-# UCLIBC_NTP_LEGACY is not set
-# USE_OLD_VFPRINTF is not set
-UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
-UCLIBC_PWD_BUFFER_SIZE=256
-# UCLIBC_STATIC_LDCONFIG is not set
-# UCLIBC_STRICT_HEADERS is not set
-UCLIBC_SUPPORT_AI_ADDRCONFIG=y
-UCLIBC_SUSV3_LEGACY=y
-UCLIBC_SUSV3_LEGACY_MACROS=y
-UCLIBC_SUSV4_LEGACY=y
-# UCLIBC_SV4_DEPRECATED is not set
-UCLIBC_TZ_FILE_PATH="/etc/TZ"
-# UCLIBC_FALLBACK_TO_ETC_LOCALTIME is not set
-UCLIBC_USE_NETLINK=y
-# UNIX98PTY_ONLY is not set
-USE_BX=y
-WARNINGS="-Wall"
diff --git a/toolchain/uClibc/config-0.9.33.2/mips b/toolchain/uClibc/config-0.9.33.2/mips
deleted file mode 100644
index 7398c66929..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips
+++ /dev/null
@@ -1,17 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_BIG_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_WANTS_BIG_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-CONFIG_MIPS_ISA_MIPS32=y
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-# CONFIG_MIPS_ISA_MIPS64 is not set
-# CONFIG_MIPS_N32_ABI is not set
-# CONFIG_MIPS_N64_ABI is not set
-CONFIG_MIPS_O32_ABI=y
-TARGET_ARCH="mips"
-TARGET_mips=y
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mips64 b/toolchain/uClibc/config-0.9.33.2/mips64
deleted file mode 100644
index fa5bee3aa5..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips64
+++ /dev/null
@@ -1,17 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_BIG_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_WANTS_BIG_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-CONFIG_MIPS_ISA_MIPS64=y
-# CONFIG_MIPS_N32_ABI is not set
-CONFIG_MIPS_N64_ABI=y
-# CONFIG_MIPS_O32_ABI is not set
-TARGET_ARCH="mips"
-TARGET_mips=y
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mips64.32 b/toolchain/uClibc/config-0.9.33.2/mips64.32
deleted file mode 100644
index 03f7fbaeea..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips64.32
+++ /dev/null
@@ -1,18 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_BIG_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_WANTS_BIG_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-CONFIG_MIPS_ISA_MIPS64=y
-# CONFIG_MIPS_N32_ABI is not set
-# CONFIG_MIPS_N64_ABI is not set
-CONFIG_MIPS_O32_ABI=y
-TARGET_ARCH="mips"
-TARGET_mips=y
-TARGET_SUBARCH="mips64"
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mips64.64 b/toolchain/uClibc/config-0.9.33.2/mips64.64
deleted file mode 100644
index 7b66c2f782..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips64.64
+++ /dev/null
@@ -1,18 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_BIG_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_WANTS_BIG_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-CONFIG_MIPS_ISA_MIPS64=y
-# CONFIG_MIPS_N32_ABI is not set
-CONFIG_MIPS_N64_ABI=y
-# CONFIG_MIPS_O32_ABI is not set
-TARGET_ARCH="mips"
-TARGET_mips=y
-TARGET_SUBARCH="mips64"
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mips64.n32 b/toolchain/uClibc/config-0.9.33.2/mips64.n32
deleted file mode 100644
index 84a5de6479..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips64.n32
+++ /dev/null
@@ -1,18 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_BIG_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_WANTS_BIG_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-CONFIG_MIPS_ISA_MIPS64=y
-CONFIG_MIPS_N32_ABI=y
-# CONFIG_MIPS_N64_ABI is not set
-# CONFIG_MIPS_O32_ABI is not set
-TARGET_ARCH="mips"
-TARGET_mips=y
-TARGET_SUBARCH="mips64"
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mips64el b/toolchain/uClibc/config-0.9.33.2/mips64el
deleted file mode 100644
index 1ca764f6e2..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips64el
+++ /dev/null
@@ -1,17 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_LITTLE_ENDIAN=y
-ARCH_WANTS_LITTLE_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-CONFIG_MIPS_ISA_MIPS64=y
-# CONFIG_MIPS_N32_ABI is not set
-CONFIG_MIPS_N64_ABI=y
-# CONFIG_MIPS_O32_ABI is not set
-TARGET_ARCH="mips"
-TARGET_mips=y
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mips64el.32 b/toolchain/uClibc/config-0.9.33.2/mips64el.32
deleted file mode 100644
index 73b1f9f1b4..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips64el.32
+++ /dev/null
@@ -1,18 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_LITTLE_ENDIAN=y
-ARCH_WANTS_LITTLE_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-CONFIG_MIPS_ISA_MIPS64=y
-# CONFIG_MIPS_N32_ABI is not set
-# CONFIG_MIPS_N64_ABI is not set
-CONFIG_MIPS_O32_ABI=y
-TARGET_ARCH="mips"
-TARGET_mips=y
-TARGET_SUBARCH="mips64"
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mips64el.64 b/toolchain/uClibc/config-0.9.33.2/mips64el.64
deleted file mode 100644
index 790f210411..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips64el.64
+++ /dev/null
@@ -1,18 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_LITTLE_ENDIAN=y
-ARCH_WANTS_LITTLE_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-CONFIG_MIPS_ISA_MIPS64=y
-# CONFIG_MIPS_N32_ABI is not set
-CONFIG_MIPS_N64_ABI=y
-# CONFIG_MIPS_O32_ABI is not set
-TARGET_ARCH="mips"
-TARGET_mips=y
-TARGET_SUBARCH="mips64"
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mips64el.n32 b/toolchain/uClibc/config-0.9.33.2/mips64el.n32
deleted file mode 100644
index c2929bf706..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mips64el.n32
+++ /dev/null
@@ -1,18 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_LITTLE_ENDIAN=y
-ARCH_WANTS_LITTLE_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-CONFIG_MIPS_ISA_MIPS64=y
-CONFIG_MIPS_N32_ABI=y
-# CONFIG_MIPS_N64_ABI is not set
-# CONFIG_MIPS_O32_ABI is not set
-TARGET_ARCH="mips"
-TARGET_mips=y
-TARGET_SUBARCH="mips64"
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mipsel b/toolchain/uClibc/config-0.9.33.2/mipsel
deleted file mode 100644
index 7648f396ba..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mipsel
+++ /dev/null
@@ -1,17 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_LITTLE_ENDIAN=y
-ARCH_WANTS_LITTLE_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-# CONFIG_MIPS_ISA_3 is not set
-# CONFIG_MIPS_ISA_4 is not set
-CONFIG_MIPS_ISA_MIPS32=y
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-# CONFIG_MIPS_ISA_MIPS64 is not set
-# CONFIG_MIPS_N32_ABI is not set
-# CONFIG_MIPS_N64_ABI is not set
-CONFIG_MIPS_O32_ABI=y
-TARGET_ARCH="mips"
-TARGET_mips=y
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/mipsel.cobalt b/toolchain/uClibc/config-0.9.33.2/mipsel.cobalt
deleted file mode 100644
index 323b0aa52e..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/mipsel.cobalt
+++ /dev/null
@@ -1,17 +0,0 @@
-ARCH_ANY_ENDIAN=y
-ARCH_CFLAGS="-mno-split-addresses"
-ARCH_LITTLE_ENDIAN=y
-ARCH_WANTS_LITTLE_ENDIAN=y
-# CONFIG_MIPS_ISA_1 is not set
-# CONFIG_MIPS_ISA_2 is not set
-CONFIG_MIPS_ISA_3=y
-# CONFIG_MIPS_ISA_4 is not set
-# CONFIG_MIPS_ISA_MIPS32 is not set
-# CONFIG_MIPS_ISA_MIPS32R2 is not set
-# CONFIG_MIPS_ISA_MIPS64 is not set
-# CONFIG_MIPS_N32_ABI is not set
-# CONFIG_MIPS_N64_ABI is not set
-CONFIG_MIPS_O32_ABI=y
-TARGET_ARCH="mips"
-TARGET_mips=y
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-0.9.33.2/x86_64 b/toolchain/uClibc/config-0.9.33.2/x86_64
deleted file mode 100644
index 92f0e6569e..0000000000
--- a/toolchain/uClibc/config-0.9.33.2/x86_64
+++ /dev/null
@@ -1,6 +0,0 @@
-ARCH_LITTLE_ENDIAN=y
-# LINUXTHREADS_NEW is not set
-TARGET_ARCH="x86_64"
-TARGET_x86_64=y
-UCLIBC_BSD_SPECIFIC=y 
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.8/debug b/toolchain/uClibc/config-ng-1.0.8/debug
deleted file mode 100644
index b366e66e39..0000000000
--- a/toolchain/uClibc/config-ng-1.0.8/debug
+++ /dev/null
@@ -1,6 +0,0 @@
-DODEBUG=y
-DODEBUG_PT=y
-PTHREADS_DEBUG_SUPPORT=y
-SUPPORT_LD_DEBUG=y
-SUPPORT_LD_DEBUG_EARLY=y
-UCLIBC_MALLOC_DEBUGGING=y
diff --git a/toolchain/uClibc/config-ng-1.0.8/i386 b/toolchain/uClibc/config-ng-1.0.8/i386
deleted file mode 100644
index 5ef264c271..0000000000
--- a/toolchain/uClibc/config-ng-1.0.8/i386
+++ /dev/null
@@ -1,21 +0,0 @@
-ARCH_LITTLE_ENDIAN=y
-# CONFIG_386 is not set
-CONFIG_486=y
-# CONFIG_586 is not set
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_ELAN is not set
-# CONFIG_GENERIC_386 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_NEHEMIAH is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_WINCHIPC6 is not set
-TARGET_ARCH="i386"
-TARGET_i386=y
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.8/i686 b/toolchain/uClibc/config-ng-1.0.8/i686
deleted file mode 100644
index ba615f6b86..0000000000
--- a/toolchain/uClibc/config-ng-1.0.8/i686
+++ /dev/null
@@ -1,21 +0,0 @@
-ARCH_LITTLE_ENDIAN=y
-# CONFIG_386 is not set
-# CONFIG_486 is not set
-# CONFIG_586 is not set
-# CONFIG_586MMX is not set
-CONFIG_686=y
-# CONFIG_CRUSOE is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_ELAN is not set
-# CONFIG_GENERIC_386 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_NEHEMIAH is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_WINCHIPC6 is not set
-TARGET_ARCH="i386"
-TARGET_i386=y
-UCLIBC_HAS_FPU=y
diff --git a/toolchain/uClibc/config-ng-1.0.8/m68k b/toolchain/uClibc/config-ng-1.0.8/m68k
deleted file mode 100644
index 14ce5aef7b..0000000000
--- a/toolchain/uClibc/config-ng-1.0.8/m68k
+++ /dev/null
@@ -1,6 +0,0 @@
-ARCH_BIG_ENDIAN=y
-LINUXTHREADS_OLD=y
-TARGET_ARCH="m68k"
-TARGET_SUBARCH=""
-TARGET_m68k=y
-# UCLIBC_HAS_THREADS_NATIVE is not set
diff --git a/toolchain/uClibc/config-ng-1.0.8/powerpc b/toolchain/uClibc/config-ng-1.0.8/powerpc
deleted file mode 100644
index 5b1292d12e..0000000000
--- a/toolchain/uClibc/config-ng-1.0.8/powerpc
+++ /dev/null
@@ -1,6 +0,0 @@
-ARCH_BIG_ENDIAN=y
-CONFIG_CLASSIC=y
-# CONFIG_E500 is not set
-TARGET_ARCH="powerpc"
-TARGET_SUBARCH="classic"
-TARGET_powerpc=y
diff --git a/toolchain/uClibc/config-ng-1.0.8/powerpc.e500 b/toolchain/uClibc/config-ng-1.0.8/powerpc.e500
deleted file mode 100644
index a835c3d5e7..0000000000
--- a/toolchain/uClibc/config-ng-1.0.8/powerpc.e500
+++ /dev/null
@@ -1,6 +0,0 @@
-ARCH_BIG_ENDIAN=y
-# CONFIG_CLASSIC is not set
-CONFIG_E500=y
-TARGET_ARCH="powerpc"
-TARGET_SUBARCH="classic"
-TARGET_powerpc=y
diff --git a/toolchain/uClibc/config-ng-1.0.8/sparc b/toolchain/uClibc/config-ng-1.0.8/sparc
deleted file mode 100644
index e1596c4100..0000000000
--- a/toolchain/uClibc/config-ng-1.0.8/sparc
+++ /dev/null
@@ -1,8 +0,0 @@
-ARCH_BIG_ENDIAN=y
-# CONFIG_SPARC_V7 is not set
-# CONFIG_SPARC_V8 is not set
-CONFIG_SPARC_V9=y
-# CONFIG_SPARC_V9B is not set
-TARGET_ARCH="sparc"
-TARGET_sparc=y
-UCLIBC_HAS_LONG_DOUBLE_MATH=y
diff --git a/toolchain/uClibc/config-ng-1.0.8/sparc.leon b/toolchain/uClibc/config-ng-1.0.8/sparc.leon
deleted file mode 100644
index eb725ac05d..0000000000
--- a/toolchain/uClibc/config-ng-1.0.8/sparc.leon
+++ /dev/null
@@ -1,8 +0,0 @@
-ARCH_BIG_ENDIAN=y
-# CONFIG_SPARC_V7 is not set
-CONFIG_SPARC_V8=y
-# CONFIG_SPARC_V9 is not set
-# CONFIG_SPARC_V9B is not set
-TARGET_ARCH="sparc"
-TARGET_sparc=y
-UCLIBC_HAS_LONG_DOUBLE_MATH=y
diff --git a/toolchain/uClibc/config-ng-1.0.8/arm b/toolchain/uClibc/config/arm
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/arm
rename to toolchain/uClibc/config/arm
diff --git a/toolchain/uClibc/config-ng-1.0.8/armeb b/toolchain/uClibc/config/armeb
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/armeb
rename to toolchain/uClibc/config/armeb
diff --git a/toolchain/uClibc/config-ng-1.0.8/common b/toolchain/uClibc/config/common
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/common
rename to toolchain/uClibc/config/common
diff --git a/toolchain/uClibc/config-0.9.33.2/debug b/toolchain/uClibc/config/debug
similarity index 100%
rename from toolchain/uClibc/config-0.9.33.2/debug
rename to toolchain/uClibc/config/debug
diff --git a/toolchain/uClibc/config-0.9.33.2/i386 b/toolchain/uClibc/config/i386
similarity index 100%
rename from toolchain/uClibc/config-0.9.33.2/i386
rename to toolchain/uClibc/config/i386
diff --git a/toolchain/uClibc/config-0.9.33.2/i686 b/toolchain/uClibc/config/i686
similarity index 100%
rename from toolchain/uClibc/config-0.9.33.2/i686
rename to toolchain/uClibc/config/i686
diff --git a/toolchain/uClibc/config-0.9.33.2/m68k b/toolchain/uClibc/config/m68k
similarity index 100%
rename from toolchain/uClibc/config-0.9.33.2/m68k
rename to toolchain/uClibc/config/m68k
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips b/toolchain/uClibc/config/mips
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips
rename to toolchain/uClibc/config/mips
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64 b/toolchain/uClibc/config/mips64
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips64
rename to toolchain/uClibc/config/mips64
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64.32 b/toolchain/uClibc/config/mips64.32
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips64.32
rename to toolchain/uClibc/config/mips64.32
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64.64 b/toolchain/uClibc/config/mips64.64
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips64.64
rename to toolchain/uClibc/config/mips64.64
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64.n32 b/toolchain/uClibc/config/mips64.n32
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips64.n32
rename to toolchain/uClibc/config/mips64.n32
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64el b/toolchain/uClibc/config/mips64el
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips64el
rename to toolchain/uClibc/config/mips64el
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64el.32 b/toolchain/uClibc/config/mips64el.32
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips64el.32
rename to toolchain/uClibc/config/mips64el.32
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64el.64 b/toolchain/uClibc/config/mips64el.64
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips64el.64
rename to toolchain/uClibc/config/mips64el.64
diff --git a/toolchain/uClibc/config-ng-1.0.8/mips64el.n32 b/toolchain/uClibc/config/mips64el.n32
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mips64el.n32
rename to toolchain/uClibc/config/mips64el.n32
diff --git a/toolchain/uClibc/config-ng-1.0.8/mipsel b/toolchain/uClibc/config/mipsel
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mipsel
rename to toolchain/uClibc/config/mipsel
diff --git a/toolchain/uClibc/config-ng-1.0.8/mipsel.cobalt b/toolchain/uClibc/config/mipsel.cobalt
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/mipsel.cobalt
rename to toolchain/uClibc/config/mipsel.cobalt
diff --git a/toolchain/uClibc/config-0.9.33.2/powerpc b/toolchain/uClibc/config/powerpc
similarity index 100%
rename from toolchain/uClibc/config-0.9.33.2/powerpc
rename to toolchain/uClibc/config/powerpc
diff --git a/toolchain/uClibc/config-0.9.33.2/powerpc.e500 b/toolchain/uClibc/config/powerpc.e500
similarity index 100%
rename from toolchain/uClibc/config-0.9.33.2/powerpc.e500
rename to toolchain/uClibc/config/powerpc.e500
diff --git a/toolchain/uClibc/config-0.9.33.2/sparc b/toolchain/uClibc/config/sparc
similarity index 100%
rename from toolchain/uClibc/config-0.9.33.2/sparc
rename to toolchain/uClibc/config/sparc
diff --git a/toolchain/uClibc/config-0.9.33.2/sparc.leon b/toolchain/uClibc/config/sparc.leon
similarity index 100%
rename from toolchain/uClibc/config-0.9.33.2/sparc.leon
rename to toolchain/uClibc/config/sparc.leon
diff --git a/toolchain/uClibc/config-ng-1.0.8/x86_64 b/toolchain/uClibc/config/x86_64
similarity index 100%
rename from toolchain/uClibc/config-ng-1.0.8/x86_64
rename to toolchain/uClibc/config/x86_64
diff --git a/toolchain/uClibc/patches-0.9.33.2/009_backport_mount.h-update.patch b/toolchain/uClibc/patches-0.9.33.2/009_backport_mount.h-update.patch
deleted file mode 100644
index 47fb624e98..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/009_backport_mount.h-update.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 76ff037059f6d387bde9d540f7e27a2b376d7cd7 Mon Sep 17 00:00:00 2001
-From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Date: Fri, 18 Jan 2013 11:12:49 +0100
-Subject: [PATCH] mount.h: update
-
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- include/sys/mount.h | 45 +++++++++++++++++++++++++++++++++++----------
- 1 file changed, 35 insertions(+), 10 deletions(-)
-
-diff --git a/include/sys/mount.h b/include/sys/mount.h
-index fbd61fd..c0e7b84 100644
---- a/include/sys/mount.h
-+++ b/include/sys/mount.h
-@@ -1,5 +1,5 @@
- /* Header file for mounting/unmount Linux filesystems.
--   Copyright (C) 1996,1997,1998,1999,2000,2004 Free Software Foundation, Inc.
-+   Copyright (C) 1996-2000, 2004, 2010, 2012 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
-@@ -46,23 +46,46 @@ enum
- #define MS_REMOUNT	MS_REMOUNT
-   MS_MANDLOCK = 64,		/* Allow mandatory locks on an FS.  */
- #define MS_MANDLOCK	MS_MANDLOCK
--  S_WRITE = 128,		/* Write on file/directory/symlink.  */
--#define S_WRITE		S_WRITE
--  S_APPEND = 256,		/* Append-only file.  */
--#define S_APPEND	S_APPEND
--  S_IMMUTABLE = 512,		/* Immutable file.  */
--#define S_IMMUTABLE	S_IMMUTABLE
-+  MS_DIRSYNC = 128,		/* Directory modifications are synchronous.  */
-+#define MS_DIRSYNC	MS_DIRSYNC
-   MS_NOATIME = 1024,		/* Do not update access times.  */
- #define MS_NOATIME	MS_NOATIME
-   MS_NODIRATIME = 2048,		/* Do not update directory access times.  */
- #define MS_NODIRATIME	MS_NODIRATIME
-   MS_BIND = 4096,		/* Bind directory at different place.  */
- #define MS_BIND		MS_BIND
-+  MS_MOVE = 8192,
-+#define MS_MOVE		MS_MOVE
-+  MS_REC = 16384,
-+#define MS_REC		MS_REC
-+  MS_SILENT = 32768,
-+#define MS_SILENT	MS_SILENT
-+  MS_POSIXACL = 1 << 16,	/* VFS does not apply the umask.  */
-+#define MS_POSIXACL	MS_POSIXACL
-+  MS_UNBINDABLE = 1 << 17,	/* Change to unbindable.  */
-+#define MS_UNBINDABLE	MS_UNBINDABLE
-+  MS_PRIVATE = 1 << 18,		/* Change to private.  */
-+#define MS_PRIVATE	MS_PRIVATE
-+  MS_SLAVE = 1 << 19,		/* Change to slave.  */
-+#define MS_SLAVE	MS_SLAVE
-+  MS_SHARED = 1 << 20,		/* Change to shared.  */
-+#define MS_SHARED	MS_SHARED
-+  MS_RELATIME = 1 << 21,	/* Update atime relative to mtime/ctime.  */
-+#define MS_RELATIME	MS_RELATIME
-+  MS_KERNMOUNT = 1 << 22,	/* This is a kern_mount call.  */
-+#define MS_KERNMOUNT	MS_KERNMOUNT
-+  MS_I_VERSION =  1 << 23,	/* Update inode I_version field.  */
-+#define MS_I_VERSION	MS_I_VERSION
-+  MS_STRICTATIME = 1 << 24,	/* Always perform atime updates.  */
-+#define MS_STRICTATIME	MS_STRICTATIME
-+  MS_ACTIVE = 1 << 30,
-+#define MS_ACTIVE	MS_ACTIVE
-+  MS_NOUSER = 1 << 31
-+#define MS_NOUSER	MS_NOUSER
- };
- 
- /* Flags that can be altered by MS_REMOUNT  */
--#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME \
--		     |MS_NODIRATIME)
-+#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION)
- 
- 
- /* Magic mount flag number. Has to be or-ed to the flag values.  */
-@@ -99,8 +122,10 @@ enum
- #define MNT_FORCE MNT_FORCE
-   MNT_DETACH = 2,		/* Just detach from the tree.  */
- #define MNT_DETACH MNT_DETACH
--  MNT_EXPIRE = 4		/* Mark for expiry.  */
-+  MNT_EXPIRE = 4,		/* Mark for expiry.  */
- #define MNT_EXPIRE MNT_EXPIRE
-+  UMOUNT_NOFOLLOW = 8		/* Don't follow symlink on umount.  */
-+#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW
- };
- 
- 
--- 
-1.9.1
-
diff --git a/toolchain/uClibc/patches-0.9.33.2/010-backport_sscanf_alloc.patch b/toolchain/uClibc/patches-0.9.33.2/010-backport_sscanf_alloc.patch
deleted file mode 100644
index b5ce091264..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/010-backport_sscanf_alloc.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-From 8cfb43de636faa401634340d1a18404844f9ba5a Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 6 May 2012 03:50:44 -0400
-Subject: [PATCH] stdio: implement assignment-allocation "m" character
-
-The latest POSIX spec introduces a "m" character to allocate buffers for
-the user when using scanf type functions.  This is like the old glibc "a"
-flag, but now standardized.  With packages starting to use these, we need
-to implement it.
-
-for example:
-	char *s;
-	sscanf("foo", "%ms", &s);
-	printf("%s\n", s);
-	free(s);
-This will automatically allocate storage for "s", read in "foo" to it,
-and then display it.
-
-I'm not terribly familiar with the stdio layer, so this could be wrong.
-But it seems to work for me.
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-Signed-off-by: Felix Fietkau <nbd@openwrt.org>
----
- extra/Configs/Config.in | 13 ----------
- libc/stdio/_scanf.c     | 68 ++++++++++++++++++++++++++++---------------------
- 2 files changed, 39 insertions(+), 42 deletions(-)
-
---- a/extra/Configs/Config.in
-+++ b/extra/Configs/Config.in
-@@ -1590,19 +1590,6 @@ config UCLIBC_PRINTF_SCANF_POSITIONAL_AR
- 
- 	  Most people will answer 9.
- 
--
--config UCLIBC_HAS_SCANF_GLIBC_A_FLAG
--	bool "Support glibc's 'a' flag for scanf string conversions (not implemented)"
--	help
--	  NOTE!!!  Currently Not Implemented!!! Just A Place Holder!!  NOTE!!!
--	  NOTE!!!  Conflicts with an ANSI/ISO C99 scanf flag!!         NOTE!!!
--
--	  Answer Y to enable support for glibc's 'a' flag for the scanf string
--	  conversions '%s', '%[', '%ls', '%l[', and '%S'.  This is used to
--	  auto-allocate sufficient memory to hold the data retrieved.
--
--	  Most people will answer N.
--
- choice
- 	prompt "Stdio buffer size"
- 	default UCLIBC_HAS_STDIO_BUFSIZ_4096
---- a/libc/stdio/_scanf.c
-+++ b/libc/stdio/_scanf.c
-@@ -77,14 +77,6 @@
- #include <bits/uClibc_fpmax.h>
- #endif /* __UCLIBC_HAS_FLOATS__ */
- 
--#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
--#ifdef L_vfscanf
--/* only emit this once */
--#warning Forcing undef of __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ until implemented!
--#endif
--#undef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
--#endif
--
- #undef __STDIO_HAS_VSSCANF
- #if defined(__STDIO_BUFFERS) || !defined(__UCLIBC_HAS_WCHAR__) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
- #define __STDIO_HAS_VSSCANF 1
-@@ -433,8 +425,9 @@ libc_hidden_def(vswscanf)
- 
- 
- /* float layout          0123456789012345678901  repeat n for "l[" */
--#define SPEC_CHARS		"npxXoudifFeEgGaACSncs["
--/*                       npxXoudif eEgG  CS cs[ */
-+#define SPEC_CHARS		"npxXoudifFeEgGaACSnmcs["
-+/*                       npxXoudif eEgG  CS  cs[ */
-+/* NOTE: the 'm' flag must come before any convs that support it */
- 
- /* NOTE: Ordering is important!  In particular, CONV_LEFTBRACKET
-  * must immediately precede CONV_c. */
-@@ -444,7 +437,7 @@ enum {
- 	CONV_p,
- 	CONV_x, CONV_X,	CONV_o,	CONV_u,	CONV_d,	CONV_i,
- 	CONV_f, CONV_F, CONV_e, CONV_E, CONV_g, CONV_G, CONV_a, CONV_A,
--	CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_c, CONV_s, CONV_leftbracket,
-+	CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_m, CONV_c, CONV_s, CONV_leftbracket,
- 	CONV_percent, CONV_whitespace /* not in SPEC_* and no flags */
- };
- 
-@@ -474,7 +467,7 @@ enum {
- 	FLAG_SURPRESS   =   0x10,	/* MUST BE 1ST!!  See DO_FLAGS. */
- 	FLAG_THOUSANDS	=	0x20,
- 	FLAG_I18N		=	0x40,	/* only works for d, i, u */
--	FLAG_MALLOC     =   0x80,	/* only works for s, S, and [ (and l[)*/
-+	FLAG_MALLOC     =   0x80,	/* only works for c, s, S, and [ (and l[)*/
- };
- 
- 
-@@ -491,7 +484,7 @@ enum {
- 	/* fFeEgGaA */	(0x0c|FLAG_SURPRESS|FLAG_THOUSANDS|FLAG_I18N), \
- 	/* C */			(   0|FLAG_SURPRESS), \
- 	/* S and l[ */	(   0|FLAG_SURPRESS|FLAG_MALLOC), \
--	/* c */			(0x04|FLAG_SURPRESS), \
-+	/* c */			(0x04|FLAG_SURPRESS|FLAG_MALLOC), \
- 	/* s and [ */	(0x04|FLAG_SURPRESS|FLAG_MALLOC), \
- }
- 
-@@ -904,17 +897,17 @@ int attribute_hidden __psfs_parse_spec(r
- 		if (*psfs->fmt == *p) {
- 			int p_m_spec_chars = p - spec_chars;
- 
--#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
--#error implement gnu a flag
--			if ((*p == 'a')
--				&& ((psfs->fmt[1] == '[') || ((psfs->fmt[1]|0x20) == 's'))
--				) {		/* Assumes ascii for 's' and 'S' test. */
--				psfs->flags |= FLAG_MALLOC;
-+			if (*p == 'm' &&
-+				(psfs->fmt[1] == '[' || psfs->fmt[1] == 'c' ||
-+				 /* Assumes ascii for 's' and 'S' test. */
-+				 (psfs->fmt[1] | 0x20) == 's'))
-+			{
-+				if (psfs->store)
-+					psfs->flags |= FLAG_MALLOC;
- 				++psfs->fmt;
- 				++p;
--				continue; /* The related conversions follow 'a'. */
-+				continue; /* The related conversions follow 'm'. */
- 			}
--#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */
- 
- 			for (p = spec_ranges; p_m_spec_chars > *p ; ++p) {}
- 			if (((psfs->dataargtype >> 8) | psfs->flags)
-@@ -1265,12 +1258,6 @@ int VFSCANF (FILE *__restrict fp, const
- 				while (*wf && __isascii(*wf) && (b < buf + sizeof(buf) - 1)) {
- 					*b++ = *wf++;
- 				}
--#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
--#error this is wrong... we need to ched in __psfs_parse_spec instead since this checks last char in buffer and conversion my have stopped before it.
--				if ((*b == 'a') && ((*wf == '[') || ((*wf|0x20) == 's'))) {
--					goto DONE;	/* Spec was excessively long. */
--				}
--#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */
- 				*b = 0;
- 				if (b == buf) { /* Bad conversion specifier! */
- 					goto DONE;
-@@ -1390,13 +1377,36 @@ int VFSCANF (FILE *__restrict fp, const
- 				}
- 
- 				if (psfs.conv_num == CONV_s) {
-+					/* We might have to handle the allocation ourselves */
-+					int len;
-+					/* With 'm', we actually got a pointer to a pointer */
-+					unsigned char **ptr = (void *)b;
-+
-+					i = 0;
-+					if (psfs.flags & FLAG_MALLOC) {
-+						len = 0;
-+						b = NULL;
-+					} else
-+						len = -1;
-+
- 					/* Yes, believe it or not, a %s conversion can store nuls. */
- 					while ((__scan_getc(&sc) >= 0) && !isspace(sc.cc)) {
- 						zero_conversions = 0;
--						*b = sc.cc;
--						b += psfs.store;
-+						if (i == len) {
-+							/* Pick a size that won't trigger a lot of
-+							 * mallocs early on ... */
-+							len += 256;
-+							b = realloc(b, len + 1);
-+						}
-+						b[i] = sc.cc;
-+						i += psfs.store;
- 						fail = 0;
- 					}
-+
-+					if (psfs.flags & FLAG_MALLOC)
-+						*ptr = b;
-+					/* The code below takes care of terminating NUL */
-+					b += i;
- 				} else {
- #ifdef __UCLIBC_HAS_WCHAR__
- 					assert((psfs.conv_num == CONV_LEFTBRACKET) || \
diff --git a/toolchain/uClibc/patches-0.9.33.2/011-dlsym_rtld_next_fix.patch b/toolchain/uClibc/patches-0.9.33.2/011-dlsym_rtld_next_fix.patch
deleted file mode 100644
index f1a8ff5164..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/011-dlsym_rtld_next_fix.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- a/ldso/libdl/libdl.c
-+++ b/ldso/libdl/libdl.c
-@@ -671,7 +671,7 @@ static void *do_dlsym(void *vhandle, con
- {
- 	struct elf_resolve *tpnt, *tfrom;
- 	struct dyn_elf *handle;
--	ElfW(Addr) from;
-+	ElfW(Addr) from = 0;
- 	struct dyn_elf *rpnt;
- 	void *ret;
- 	struct symbol_ref sym_ref = { NULL, NULL };
-@@ -729,7 +729,12 @@ static void *do_dlsym(void *vhandle, con
- 	tpnt = NULL;
- 	if (handle == _dl_symbol_tables)
- 		tpnt = handle->dyn; /* Only search RTLD_GLOBAL objs if global object */
--	ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref);
-+	do {
-+		ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref);
-+		if (ret != NULL)
-+			break;
-+		handle = handle->next;
-+	} while (from && handle);
- 
- #if defined(USE_TLS) && USE_TLS && defined SHARED
- 	if (sym_ref.sym && (ELF_ST_TYPE(sym_ref.sym->st_info) == STT_TLS) && (sym_ref.tpnt)) {
diff --git a/toolchain/uClibc/patches-0.9.33.2/012-elf-Add-STT_GNU_IFUNC-from-glibc.patch b/toolchain/uClibc/patches-0.9.33.2/012-elf-Add-STT_GNU_IFUNC-from-glibc.patch
deleted file mode 100644
index 6cecfaad47..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/012-elf-Add-STT_GNU_IFUNC-from-glibc.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From be58779614b2fe9aa57a9315be9dc004dfd77b3b Mon Sep 17 00:00:00 2001
-From: Vineet Gupta <vgupta@synopsys.com>
-Date: Fri, 20 Feb 2015 15:27:08 +0530
-Subject: [PATCH] elf: Add STT_GNU_IFUNC from glibc
-
-perf in upstream Linux kernel 3.17 onwards expects STT_GNU_IFUNC
-replicate it from glibc
-
-Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- include/elf.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/elf.h b/include/elf.h
-index facf09c..917930b 100644
---- a/include/elf.h
-+++ b/include/elf.h
-@@ -566,6 +566,7 @@ typedef struct
- #define STB_WEAK	2		/* Weak symbol */
- #define	STB_NUM		3		/* Number of defined types.  */
- #define STB_LOOS	10		/* Start of OS-specific */
-+#define STB_GNU_UNIQUE	10		/* Unique symbol.  */
- #define STB_HIOS	12		/* End of OS-specific */
- #define STB_LOPROC	13		/* Start of processor-specific */
- #define STB_HIPROC	15		/* End of processor-specific */
-@@ -581,6 +582,7 @@ typedef struct
- #define STT_TLS		6		/* Symbol is thread-local data object*/
- #define	STT_NUM		7		/* Number of defined types.  */
- #define STT_LOOS	10		/* Start of OS-specific */
-+#define STT_GNU_IFUNC	10		/* Symbol is indirect code object */
- #define STT_HIOS	12		/* End of OS-specific */
- #define STT_LOPROC	13		/* Start of processor-specific */
- #define STT_HIPROC	15		/* End of processor-specific */
--- 
-2.1.4
-
diff --git a/toolchain/uClibc/patches-0.9.33.2/020-endian.h-add-some-handy-macros-to-be-used-in-syscall.patch b/toolchain/uClibc/patches-0.9.33.2/020-endian.h-add-some-handy-macros-to-be-used-in-syscall.patch
deleted file mode 100644
index 720104195a..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/020-endian.h-add-some-handy-macros-to-be-used-in-syscall.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From: "Peter S. Mazinger" <ps.m@gmx.net>
-Date: Thu, 21 Apr 2011 21:20:55 +0200
-Subject: [PATCH] endian.h: add some handy macros to be used in syscalls
-
-Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
-
---- a/include/endian.h
-+++ b/include/endian.h
-@@ -55,6 +55,17 @@
- # define __LONG_LONG_PAIR(HI, LO) HI, LO
- #endif
- 
-+#ifdef _LIBC
-+# ifndef __ASSEMBLER__
-+#  include <stdint.h>
-+#  define OFF_HI(offset) (offset >> 31)
-+#  define OFF_LO(offset) (offset)
-+#  define OFF64_HI(offset) (uint32_t)(offset >> 32)
-+#  define OFF64_LO(offset) (uint32_t)(offset & 0xffffffff)
-+#  define OFF_HI_LO(offset) __LONG_LONG_PAIR(OFF_HI(offset), OFF_LO(offset))
-+#  define OFF64_HI_LO(offset) __LONG_LONG_PAIR(OFF64_HI(offset), OFF64_LO(offset))
-+# endif
-+#endif
- 
- #ifdef __USE_BSD
- /* Conversion interfaces.  */
diff --git a/toolchain/uClibc/patches-0.9.33.2/021-add-posix_madvise.c.patch b/toolchain/uClibc/patches-0.9.33.2/021-add-posix_madvise.c.patch
deleted file mode 100644
index 2b18c258d9..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/021-add-posix_madvise.c.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From: "Peter S. Mazinger" <ps.m@gmx.net>
-Date: Tue, 26 Apr 2011 23:03:44 +0200
-Subject: [PATCH] add posix_madvise.c
-
-Signed-off-by: Peter S. Mazinger <ps.m@gmx.net>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- create mode 100644 libc/sysdeps/linux/common/posix_madvise.c
-
---- a/libc/sysdeps/linux/common/Makefile.in
-+++ b/libc/sysdeps/linux/common/Makefile.in
-@@ -81,7 +81,7 @@ CSRC-$(UCLIBC_HAS_REALTIME) += clock_get
- 	sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \
- 	sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c
- # clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait
--CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c
-+CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c
- CSRC-$(UCLIBC_SUSV4_LEGACY) += utime.c
- CSRC-$(UCLIBC_HAS_EPOLL) += epoll.c
- CSRC-$(UCLIBC_HAS_XATTR) += xattr.c
---- /dev/null
-+++ b/libc/sysdeps/linux/common/posix_madvise.c
-@@ -0,0 +1,25 @@
-+/* vi: set sw=4 ts=4: */
-+/* Licensed under the LGPL v2.1, see the file LICENSE in this tarball. */
-+
-+#include <sys/mman.h>
-+#include <sys/syscall.h>
-+
-+#if defined __NR_madvise && defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
-+int posix_madvise(void *addr, size_t len, int advice)
-+{
-+	int result;
-+	/* We have one problem: the kernel's MADV_DONTNEED does not
-+	 * correspond to POSIX's POSIX_MADV_DONTNEED.  The former simply
-+	 * discards changes made to the memory without writing it back to
-+	 * disk, if this would be necessary.  The POSIX behaviour does not
-+	 * allow this.  There is no functionality mapping for the POSIX
-+	 * behaviour so far so we ignore that advice for now. */
-+	if (advice == POSIX_MADV_DONTNEED)
-+		return 0;
-+
-+	/* this part might use madvise function */
-+	INTERNAL_SYSCALL_DECL (err);
-+	result = INTERNAL_SYSCALL (madvise, err, 3, addr, len, advice);
-+	return INTERNAL_SYSCALL_ERRNO (result, err);
-+}
-+#endif
diff --git a/toolchain/uClibc/patches-0.9.33.2/022-libc-add-posix_fallocate.patch b/toolchain/uClibc/patches-0.9.33.2/022-libc-add-posix_fallocate.patch
deleted file mode 100644
index 504405a716..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/022-libc-add-posix_fallocate.patch
+++ /dev/null
@@ -1,301 +0,0 @@
-From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Date: Tue, 17 Apr 2012 09:30:15 +0200
-Subject: [PATCH] libc: add posix_fallocate()
-
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- create mode 100644 libc/sysdeps/linux/common/posix_fallocate.c
- create mode 100644 libc/sysdeps/linux/common/posix_fallocate64.c
- create mode 100644 test/unistd/tst-posix_fallocate.c
- create mode 100644 test/unistd/tst-posix_fallocate64.c
-
---- a/include/fcntl.h
-+++ b/include/fcntl.h
-@@ -210,9 +210,7 @@ extern int posix_fadvise64 (int __fd, __
- 
- #endif
- 
--#if 0 /* && defined __UCLIBC_HAS_ADVANCED_REALTIME__ */
--
--/* FIXME -- uClibc should probably implement these... */
-+#if defined __UCLIBC_HAS_ADVANCED_REALTIME__
- 
- /* Reserve storage for the data of the file associated with FD.
- 
---- a/libc/sysdeps/linux/common/Makefile.in
-+++ b/libc/sysdeps/linux/common/Makefile.in
-@@ -81,7 +81,8 @@ CSRC-$(UCLIBC_HAS_REALTIME) += clock_get
- 	sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \
- 	sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c
- # clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait
--CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c
-+CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c \
-+	posix_fallocate.c posix_fallocate64.c
- CSRC-$(UCLIBC_SUSV4_LEGACY) += utime.c
- CSRC-$(UCLIBC_HAS_EPOLL) += epoll.c
- CSRC-$(UCLIBC_HAS_XATTR) += xattr.c
---- a/libc/sysdeps/linux/common/bits/kernel-features.h
-+++ b/libc/sysdeps/linux/common/bits/kernel-features.h
-@@ -494,6 +494,14 @@
- # define __ASSUME_PRIVATE_FUTEX	1
- #endif
- 
-+/* Support for fallocate was added in 2.6.23,
-+   on s390 only after 2.6.23-rc1, on alpha only after 2.6.33-rc1.  */
-+#if __LINUX_KERNEL_VERSION >= 0x020617 \
-+    && (!defined __s390__ || __LINUX_KERNEL_VERSION >= 0x020618) \
-+    && (!defined __alpha__ || __LINUX_KERNEL_VERSION >= 0x020621)
-+# define __ASSUME_FALLOCATE 1
-+#endif
-+
- /* getcpu is a syscall for x86-64 since 3.1.  */
- #if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100
- # define __ASSUME_GETCPU_SYSCALL        1
---- /dev/null
-+++ b/libc/sysdeps/linux/common/posix_fallocate.c
-@@ -0,0 +1,43 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * posix_fallocate() for uClibc
-+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <fcntl.h>
-+#include <bits/kernel-features.h>
-+#include <stdint.h>
-+
-+#if defined __NR_fallocate
-+int posix_fallocate(int fd, __off_t offset, __off_t len)
-+{
-+	int ret;
-+
-+# if __WORDSIZE == 32
-+	uint32_t off_low = offset;
-+	uint32_t len_low = len;
-+	/* may assert that these >>31 are 0 */
-+	uint32_t zero = 0;
-+	INTERNAL_SYSCALL_DECL(err);
-+	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
-+		__LONG_LONG_PAIR (zero, off_low),
-+		__LONG_LONG_PAIR (zero, len_low)));
-+# elif __WORDSIZE == 64
-+	INTERNAL_SYSCALL_DECL(err);
-+	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, 0, offset, len));
-+# else
-+# error your machine is neither 32 bit or 64 bit ... it must be magical
-+#endif
-+    if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
-+      return INTERNAL_SYSCALL_ERRNO (ret, err);
-+    return 0;
-+}
-+# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
-+strong_alias(posix_fallocate,posix_fallocate64)
-+# endif
-+#endif
---- /dev/null
-+++ b/libc/sysdeps/linux/common/posix_fallocate64.c
-@@ -0,0 +1,39 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * posix_fallocate() for uClibc
-+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <fcntl.h>
-+#include <bits/kernel-features.h>
-+#include <stdint.h>
-+
-+#if defined __NR_fallocate
-+
-+# if __WORDSIZE == 64
-+/* Can use normal posix_fallocate() */
-+# elif __WORDSIZE == 32
-+int posix_fallocate64(int fd, __off64_t offset, __off64_t len)
-+{
-+	int ret;
-+	uint32_t off_low = offset & 0xffffffff;
-+	uint32_t off_high = offset >> 32;
-+	uint32_t len_low = len & 0xffffffff;
-+	uint32_t len_high = len >> 32;
-+	INTERNAL_SYSCALL_DECL(err);
-+	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
-+		__LONG_LONG_PAIR (off_high, off_low),
-+		__LONG_LONG_PAIR (len_high, len_low)));
-+    if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
-+      return INTERNAL_SYSCALL_ERRNO (ret, err);
-+    return 0;
-+}
-+# else
-+# error your machine is neither 32 bit or 64 bit ... it must be magical
-+# endif
-+#endif
---- a/test/.gitignore
-+++ b/test/.gitignore
-@@ -302,6 +302,8 @@ unistd/getcwd
- unistd/getopt
- unistd/getopt_long
- unistd/tstgetopt
-+unistd/tst-posix_fallocate
-+unistd/tst-posix_fallocate64
- unistd/tst-preadwrite
- unistd/tst-preadwrite64
- unistd/vfork
---- a/test/unistd/Makefile.in
-+++ b/test/unistd/Makefile.in
-@@ -2,7 +2,10 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- 
- ifeq ($(UCLIBC_HAS_LFS),)
--TESTS_DISABLED := tst-preadwrite64
-+TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64
-+endif
-+ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),)
-+TESTS_DISABLED := tst-posix_fallocate
- endif
- OPTS_getopt      := -abcXXX -9
- OPTS_getopt_long := --add XXX --delete YYY --verbose
---- /dev/null
-+++ b/test/unistd/tst-posix_fallocate.c
-@@ -0,0 +1,127 @@
-+#include <fcntl.h>
-+#include <sys/stat.h>
-+
-+#ifndef TST_POSIX_FALLOCATE64
-+# define stat64 stat
-+# define fstat64 fstat
-+# else
-+# ifndef O_LARGEFILE
-+#  error no O_LARGEFILE but you want to test with LFS enabled
-+# endif
-+#endif
-+
-+static void do_prepare (void);
-+#define PREPARE(argc, argv) do_prepare ()
-+static int do_test (void);
-+#define TEST_FUNCTION do_test ()
-+#include <test-skeleton.c>
-+
-+static int fd;
-+static void
-+do_prepare (void)
-+{
-+  fd = create_temp_file ("tst-posix_fallocate.", NULL);
-+  if (fd == -1)
-+    {
-+      printf ("cannot create temporary file: %m\n");
-+      exit (1);
-+    }
-+}
-+
-+
-+static int
-+do_test (void)
-+{
-+  struct stat64 st;
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("1st fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 0)
-+    {
-+      puts ("file not created with size 0");
-+      return 1;
-+    }
-+
-+  if (posix_fallocate (fd, 512, 768) != 0)
-+    {
-+      puts ("1st posix_fallocate call failed");
-+      return 1;
-+    }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("2nd fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 512 + 768)
-+    {
-+      printf ("file size after 1st posix_fallocate call is %llu, expected %u\n",
-+	      (unsigned long long int) st.st_size, 512u + 768u);
-+      return 1;
-+    }
-+
-+  if (posix_fallocate (fd, 0, 1024) != 0)
-+    {
-+      puts ("2nd posix_fallocate call failed");
-+      return 1;
-+    }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("3rd fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 512 + 768)
-+    {
-+      puts ("file size changed in 2nd posix_fallocate");
-+      return 1;
-+    }
-+
-+  if (posix_fallocate (fd, 2048, 64) != 0)
-+    {
-+      puts ("3rd posix_fallocate call failed");
-+      return 1;
-+    }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("4th fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 2048 + 64)
-+    {
-+      printf ("file size after 3rd posix_fallocate call is %llu, expected %u\n",
-+	      (unsigned long long int) st.st_size, 2048u + 64u);
-+      return 1;
-+    }
-+#ifdef TST_POSIX_FALLOCATE64
-+  if (posix_fallocate64 (fd, 4097ULL, 4294967295ULL + 2ULL) != 0)
-+    {
-+      puts ("4th posix_fallocate call failed");
-+      return 1;
-+    }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("5th fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 4097ULL + 4294967295ULL + 2ULL)
-+    {
-+      printf ("file size after 4th posix_fallocate call is %llu, expected %llu\n",
-+	      (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL);
-+      return 1;
-+    }
-+#endif
-+  close (fd);
-+
-+  return 0;
-+}
---- /dev/null
-+++ b/test/unistd/tst-posix_fallocate64.c
-@@ -0,0 +1,2 @@
-+#define TST_POSIX_FALLOCATE64
-+#include "tst-posix_fallocate.c"
diff --git a/toolchain/uClibc/patches-0.9.33.2/023-libc-add-fallocate-and-fallocate64.patch b/toolchain/uClibc/patches-0.9.33.2/023-libc-add-fallocate-and-fallocate64.patch
deleted file mode 100644
index 282b64f52e..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/023-libc-add-fallocate-and-fallocate64.patch
+++ /dev/null
@@ -1,447 +0,0 @@
-From: "Anthony G. Basile" <blueness@gentoo.org>
-Date: Sun, 7 Sep 2014 15:33:46 -0400
-Subject: [PATCH] libc: add fallocate() and fallocate64()
-
-We add the Linux-specific function fallocate() which allows the user to
-directly manipulate allocate space for a file.  fallocate() can operate
-in different modes, but the default mode is equivalent to posix_fallocate()
-which is specified in POSIX.1.
-
-Recent releases of e2fsprogs 1.42.11 and above expect fallocate64() to be
-available.
-
-Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
- create mode 100644 libc/sysdeps/linux/common/fallocate.c
- create mode 100644 libc/sysdeps/linux/common/fallocate64.c
- create mode 100644 test/unistd/tst-fallocate.c
- create mode 100644 test/unistd/tst-fallocate64.c
-
---- a/extra/Configs/Config.in
-+++ b/extra/Configs/Config.in
-@@ -952,8 +952,8 @@ config UCLIBC_LINUX_SPECIFIC
- 	default y
- 	help
- 	  accept4(), bdflush(),
--	  capget(), capset(), eventfd(), fstatfs(),
--	  inotify_*(), ioperm(), iopl(),
-+	  capget(), capset(), eventfd(), fallocate(),
-+	  fstatfs(), inotify_*(), ioperm(), iopl(),
- 	  madvise(), modify_ldt(), pipe2(), personality(),
- 	  prctl()/arch_prctl(), pivot_root(), modify_ldt(),
- 	  ppoll(), readahead(), reboot(), remap_file_pages(),
---- a/include/fcntl.h
-+++ b/include/fcntl.h
-@@ -237,6 +237,38 @@ extern int __fcntl_nocancel (int fd, int
- libc_hidden_proto(__fcntl_nocancel)
- #endif
- 
-+#if (defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU) || defined _LIBC
-+/* Reserve storage for the data of a file associated with FD.  This function
-+   is Linux-specific.  For the portable version, use posix_fallocate().
-+   Unlike the latter, fallocate can operate in different modes.  The default
-+   mode = 0 is equivalent to posix_fallocate().
-+
-+   Note: These declarations are used in posix_fallocate.c and
-+   posix_fallocate64.c, so we expose them internally.
-+ */
-+
-+/* Flags for fallocate's mode.  */
-+# define FALLOC_FL_KEEP_SIZE            1 /* Don't extend size of file
-+                                             even if offset + len is
-+                                             greater than file size.  */
-+# define FALLOC_FL_PUNCH_HOLE           2 /* Create a hole in the file.  */
-+
-+# ifndef __USE_FILE_OFFSET64
-+extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len);
-+# else
-+#  ifdef __REDIRECT
-+extern int __REDIRECT (fallocate, (int __fd, int __mode, __off64_t __offset,
-+				   __off64_t __len),
-+		       fallocate64);
-+#  else
-+#   define fallocate fallocate64
-+#  endif
-+# endif
-+# ifdef __USE_LARGEFILE64
-+extern int fallocate64 (int __fd, int __mode, __off64_t __offset, __off64_t __len);
-+# endif
-+#endif
-+
- __END_DECLS
- 
- #endif /* fcntl.h  */
---- a/libc/sysdeps/linux/common/Makefile.in
-+++ b/libc/sysdeps/linux/common/Makefile.in
-@@ -61,6 +61,10 @@ CSRC-$(UCLIBC_LINUX_SPECIFIC) += \
- 	vmsplice.c
- CSRC-$(if $(findstring yy,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_LFS)),y) += \
- 	sendfile64.c
-+# posix_fallocate() needs __libc_fallocate() from fallocate.c
-+# posix_fallocate64() needs __libc_fallocate64() from fallocate64.c
-+CSRC-$(if $(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_ADVANCED_REALTIME),y,) += \
-+	fallocate.c $(filter fallocate64.c,$(CSRC-y))
- # NPTL needs these internally: madvise.c
- CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
- ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
---- /dev/null
-+++ b/libc/sysdeps/linux/common/fallocate.c
-@@ -0,0 +1,48 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * fallocate() for uClibc - Based off of posix_fallocate() by Erik Andersen
-+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+#include <fcntl.h>
-+#include <bits/kernel-features.h>
-+#include <stdint.h>
-+
-+#if defined __NR_fallocate
-+extern __typeof(fallocate) __libc_fallocate attribute_hidden;
-+int attribute_hidden __libc_fallocate(int fd, int mode, __off_t offset, __off_t len)
-+{
-+	int ret;
-+
-+# if __WORDSIZE == 32
-+	uint32_t off_low = offset;
-+	uint32_t len_low = len;
-+	/* may assert that these >>31 are 0 */
-+	uint32_t zero = 0;
-+	INTERNAL_SYSCALL_DECL(err);
-+	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, mode,
-+		__LONG_LONG_PAIR (zero, off_low),
-+		__LONG_LONG_PAIR (zero, len_low)));
-+# elif __WORDSIZE == 64
-+	INTERNAL_SYSCALL_DECL(err);
-+	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, mode, offset, len));
-+# else
-+# error your machine is neither 32 bit or 64 bit ... it must be magical
-+# endif
-+	if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
-+		return INTERNAL_SYSCALL_ERRNO (ret, err);
-+	return 0;
-+}
-+
-+# if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU
-+strong_alias(__libc_fallocate,fallocate)
-+#  if __WORDSIZE == 64
-+strong_alias(__libc_fallocate,fallocate64)
-+#  endif
-+# endif
-+#endif
---- /dev/null
-+++ b/libc/sysdeps/linux/common/fallocate64.c
-@@ -0,0 +1,42 @@
-+/* vi: set sw=4 ts=4: */
-+/*
-+ * fallocate() for uClibc - based off posix_fallocate() by Erik Andersen
-+ * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
-+ *
-+ * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
-+ *
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-+ */
-+
-+#include <sys/syscall.h>
-+
-+#include <fcntl.h>
-+#include <bits/kernel-features.h>
-+#include <stdint.h>
-+
-+#if defined __NR_fallocate
-+
-+# if __WORDSIZE == 64
-+/* Can use normal fallocate() */
-+# elif __WORDSIZE == 32
-+extern __typeof(fallocate64) __libc_fallocate64 attribute_hidden;
-+int attribute_hidden __libc_fallocate64(int fd, int mode, __off64_t offset,
-+		__off64_t len)
-+{
-+	int ret;
-+	INTERNAL_SYSCALL_DECL(err);
-+	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, mode,
-+		OFF64_HI_LO (offset), OFF64_HI_LO (len)));
-+	if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
-+		return INTERNAL_SYSCALL_ERRNO (ret, err);
-+	return 0;
-+}
-+
-+#  if defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU
-+strong_alias(__libc_fallocate64,fallocate64)
-+#  endif
-+
-+# else
-+# error your machine is neither 32 bit or 64 bit ... it must be magical
-+# endif
-+#endif
---- a/libc/sysdeps/linux/common/posix_fallocate.c
-+++ b/libc/sysdeps/linux/common/posix_fallocate.c
-@@ -14,28 +14,10 @@
- #include <stdint.h>
- 
- #if defined __NR_fallocate
-+extern __typeof(fallocate) __libc_fallocate attribute_hidden;
- int posix_fallocate(int fd, __off_t offset, __off_t len)
- {
--	int ret;
--
--# if __WORDSIZE == 32
--	uint32_t off_low = offset;
--	uint32_t len_low = len;
--	/* may assert that these >>31 are 0 */
--	uint32_t zero = 0;
--	INTERNAL_SYSCALL_DECL(err);
--	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
--		__LONG_LONG_PAIR (zero, off_low),
--		__LONG_LONG_PAIR (zero, len_low)));
--# elif __WORDSIZE == 64
--	INTERNAL_SYSCALL_DECL(err);
--	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, 0, offset, len));
--# else
--# error your machine is neither 32 bit or 64 bit ... it must be magical
--#endif
--    if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
--      return INTERNAL_SYSCALL_ERRNO (ret, err);
--    return 0;
-+	return __libc_fallocate(fd, 0, offset, len);
- }
- # if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
- strong_alias(posix_fallocate,posix_fallocate64)
---- a/libc/sysdeps/linux/common/posix_fallocate64.c
-+++ b/libc/sysdeps/linux/common/posix_fallocate64.c
-@@ -18,22 +18,12 @@
- # if __WORDSIZE == 64
- /* Can use normal posix_fallocate() */
- # elif __WORDSIZE == 32
-+extern __typeof(fallocate64) __libc_fallocate64 attribute_hidden;
- int posix_fallocate64(int fd, __off64_t offset, __off64_t len)
- {
--	int ret;
--	uint32_t off_low = offset & 0xffffffff;
--	uint32_t off_high = offset >> 32;
--	uint32_t len_low = len & 0xffffffff;
--	uint32_t len_high = len >> 32;
--	INTERNAL_SYSCALL_DECL(err);
--	ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
--		__LONG_LONG_PAIR (off_high, off_low),
--		__LONG_LONG_PAIR (len_high, len_low)));
--    if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
--      return INTERNAL_SYSCALL_ERRNO (ret, err);
--    return 0;
-+	return __libc_fallocate64(fd, 0, offset, len);
- }
- # else
--# error your machine is neither 32 bit or 64 bit ... it must be magical
-+#  error your machine is neither 32 bit or 64 bit ... it must be magical
- # endif
- #endif
---- a/test/.gitignore
-+++ b/test/.gitignore
-@@ -302,6 +302,8 @@ unistd/getcwd
- unistd/getopt
- unistd/getopt_long
- unistd/tstgetopt
-+unistd/tst-fallocate
-+unistd/tst-fallocate64
- unistd/tst-posix_fallocate
- unistd/tst-posix_fallocate64
- unistd/tst-preadwrite
---- /dev/null
-+++ b/test/unistd/tst-fallocate.c
-@@ -0,0 +1,166 @@
-+#include <fcntl.h>
-+#include <sys/stat.h>
-+
-+#ifndef TST_FALLOCATE64
-+# define stat64 stat
-+# define fstat64 fstat
-+# else
-+# ifndef O_LARGEFILE
-+#  error no O_LARGEFILE but you want to test with LFS enabled
-+# endif
-+#endif
-+
-+static void do_prepare(void);
-+static int do_test(void);
-+#define PREPARE(argc, argv) do_prepare ()
-+#define TEST_FUNCTION do_test ()
-+#include <test-skeleton.c>
-+
-+static int fd;
-+static void
-+do_prepare (void)
-+{
-+  fd = create_temp_file ("tst-fallocate.", NULL);
-+  if (fd == -1)
-+    {
-+      printf ("cannot create temporary file: %m\n");
-+      exit (1);
-+    }
-+}
-+
-+
-+static int
-+do_test (void)
-+{
-+  struct stat64 st;
-+  int c;
-+  char garbage[4096];
-+  blkcnt_t blksb4;
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("1st fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 0)
-+    {
-+      puts ("file not created with size 0");
-+      return 1;
-+    }
-+
-+  /* This is the default mode which is identical to posix_fallocate().
-+     Note: we need a few extra blocks for FALLOC_FL_PUNCH_HOLE below.
-+     While block sizes vary, we'll assume eight 4K blocks for good measure. */
-+  if (fallocate (fd, 0, 8 * 4096, 128) != 0)
-+    {
-+      puts ("1st fallocate call failed");
-+      return 1;
-+    }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("2nd fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 8 * 4096 + 128)
-+    {
-+      printf ("file size after 1st fallocate call is %llu, expected %u\n",
-+	      (unsigned long long int) st.st_size, 8u * 4096u + 128u);
-+      return 1;
-+    }
-+
-+  /* Without FALLOC_FL_KEEP_SIZE, this would increaste the size of the file. */
-+  if (fallocate (fd, FALLOC_FL_KEEP_SIZE, 0, 16 * 4096) != 0)
-+    {
-+      puts ("2nd fallocate call failed");
-+      return 1;
-+    }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("3rd fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 8 * 4096 + 128)
-+    {
-+      printf ("file size changed in 2nd fallocate call to %llu, expected %u\n",
-+	      (unsigned long long int) st.st_size, 8u * 4096u + 128u);
-+      return 1;
-+    }
-+
-+  /* Let's fill up the first eight 4k blocks with 'x' to force some allocations. */
-+
-+  memset(garbage, 'x', 4096);
-+  for(c=0; c < 8; c++)
-+    if(write(fd, garbage, 4096) == -1)
-+      {
-+        puts ("write failed");
-+        return 1;
-+      }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("4th fstat failed");
-+      return 1;
-+    }
-+
-+  blksb4 = st.st_blocks;
-+
-+  /* Let's punch a hole in the entire file, turning it effectively into a sparse file. */
-+  if (fallocate (fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, 0, 8 * 4096 + 128) != 0)
-+    {
-+      puts ("3rd fallocate call failed");
-+      return 1;
-+    }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("5th fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 8 * 4096 + 128)
-+    {
-+      printf ("file size after 3rd fallocate call is %llu, expected %u\n",
-+	      (unsigned long long int) st.st_size, 8u * 4096u + 128u);
-+      return 1;
-+    }
-+
-+  /* The number of allocated blocks should decrease.  I hope this works on
-+     all filesystems! */
-+  if (st.st_blocks >= blksb4)
-+    {
-+      printf ("number of blocks after 3rd fallocate call is %lu, expected less than %lu\n",
-+	      (unsigned long int) st.st_blocks, blksb4);
-+      return 1;
-+    }
-+
-+#ifdef TST_FALLOCATE64
-+  /* We'll just do a mode = 0 test for fallocate64() */
-+  if (fallocate64 (fd, 0, 4097ULL, 4294967295ULL + 2ULL) != 0)
-+    {
-+      puts ("1st fallocate64 call failed");
-+      return 1;
-+    }
-+
-+  if (fstat64 (fd, &st) != 0)
-+    {
-+      puts ("6th fstat failed");
-+      return 1;
-+    }
-+
-+  if (st.st_size != 4097ULL + 4294967295ULL + 2ULL)
-+    {
-+      printf ("file size after 1st fallocate64 call is %llu, expected %llu\n",
-+	      (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL);
-+      return 1;
-+    }
-+#endif
-+  close (fd);
-+
-+  return 0;
-+}
-+
---- /dev/null
-+++ b/test/unistd/tst-fallocate64.c
-@@ -0,0 +1,2 @@
-+#define TST_FALLOCATE64
-+#include "tst-fallocate.c"
---- a/test/unistd/Makefile.in
-+++ b/test/unistd/Makefile.in
-@@ -2,10 +2,13 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- 
- ifeq ($(UCLIBC_HAS_LFS),)
--TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64
-+TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64 tst-fallocate64
- endif
- ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),)
--TESTS_DISABLED := tst-posix_fallocate
-+TESTS_DISABLED := tst-posix_fallocate tst-fallocate64
-+endif
-+ifeq ($(UCLIBC_LINUX_SPECIFIC),)
-+TESTS_DISABLED += tst-fallocate
- endif
- OPTS_getopt      := -abcXXX -9
- OPTS_getopt_long := --add XXX --delete YYY --verbose
diff --git a/toolchain/uClibc/patches-0.9.33.2/024-i386-bits-syscalls.h-allow-immediate-values-as-6th-s.patch b/toolchain/uClibc/patches-0.9.33.2/024-i386-bits-syscalls.h-allow-immediate-values-as-6th-s.patch
deleted file mode 100644
index 2f75fbe2a5..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/024-i386-bits-syscalls.h-allow-immediate-values-as-6th-s.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Natanael Copa <natanael.copa@gmail.com>
-Date: Thu, 5 Jul 2012 11:55:19 +0000
-Subject: [PATCH] i386/bits/syscalls.h: allow immediate values as 6th syscall
- arg
-
-Allow use of immedate values as the 6th syscall argument. Otherwise we must
-store the arg on memory. This gives gcc more options to optimize better.
-
-This also works around an issue with posix_fallocate.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
-
---- a/libc/sysdeps/linux/i386/bits/syscalls.h
-+++ b/libc/sysdeps/linux/i386/bits/syscalls.h
-@@ -136,7 +136,7 @@ __asm__ (
- #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
- 	, "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)
- #define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \
--	, "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "m" (arg6)
-+	, "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "g" (arg6)
- 
- #else /* !PIC */
- 
diff --git a/toolchain/uClibc/patches-0.9.33.2/025-libc-sync_file_range.patch b/toolchain/uClibc/patches-0.9.33.2/025-libc-sync_file_range.patch
deleted file mode 100644
index e7efb93689..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/025-libc-sync_file_range.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Index: uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c
-===================================================================
---- uClibc-0.9.33.2.orig/libc/sysdeps/linux/common/sync_file_range.c	2012-05-15 09:20:09.000000000 +0200
-+++ uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c	2015-04-03 00:27:47.701221722 +0200
-@@ -4,24 +4,39 @@
-  *
-  * Copyright (C) 2008 Bernhard Reutner-Fischer <uclibc@uclibc.org>
-  *
-- * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
-  */
- 
- #include <sys/syscall.h>
--#if defined __USE_GNU
--#include <fcntl.h>
-+#if defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
-+# include <bits/wordsize.h>
-+# include <endian.h>
-+# include <fcntl.h>
- 
--#if defined __NR_sync_file_range && defined __UCLIBC_HAS_LFS__
--#define __NR___syscall_sync_file_range __NR_sync_file_range
--static __inline__ _syscall6(int, __syscall_sync_file_range, int, fd,
--		off_t, offset_hi, off_t, offset_lo,
--		off_t, nbytes_hi, off_t, nbytes_lo, unsigned int, flags)
-+# ifdef __NR_sync_file_range2
-+#  undef __NR_sync_file_range
-+#  define __NR_sync_file_range __NR_sync_file_range2
-+# endif
-+
-+# ifdef __NR_sync_file_range
- int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
- {
--	return __syscall_sync_file_range(fd,
--		__LONG_LONG_PAIR((long)(offset >> 32), (long)(offset & 0xffffffff)),
--		__LONG_LONG_PAIR((long)(nbytes >> 32), (long)(nbytes & 0xffffffff)),
--		flags);
-+#  if defined __powerpc__ && __WORDSIZE == 64
-+	return INLINE_SYSCALL(sync_file_range, 4, fd, flags, offset, nbytes);
-+#  elif (defined __mips__ && _MIPS_SIM == _ABIO32) || \
-+	(defined(__UCLIBC_SYSCALL_ALIGN_64BIT__) && !(defined(__powerpc__) || defined(__xtensa__)))
-+	/* arch with 64-bit data in even reg alignment #2: [arcv2/others-in-future]
-+	 * stock syscall handler in kernel (reg hole punched)
-+	 * see libc/sysdeps/linux/common/posix_fadvise.c for more details */
-+	return INLINE_SYSCALL(sync_file_range, 7, fd, 0,
-+			OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);
-+#  elif defined __NR_sync_file_range2
-+	return INLINE_SYSCALL(sync_file_range, 6, fd, flags,
-+			OFF64_HI_LO(offset), OFF64_HI_LO(nbytes));
-+#  else
-+	return INLINE_SYSCALL(sync_file_range, 6, fd,
-+			OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);
-+#  endif
- }
--#endif
-+# endif
- #endif
diff --git a/toolchain/uClibc/patches-0.9.33.2/100-fix_unifdef.patch b/toolchain/uClibc/patches-0.9.33.2/100-fix_unifdef.patch
deleted file mode 100644
index 3d75b6e79f..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/100-fix_unifdef.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/extra/scripts/unifdef.c
-+++ b/extra/scripts/unifdef.c
-@@ -78,8 +78,6 @@ __FBSDID("$FreeBSD: /repoman/r/ncvs/src/
- #define errx(exit_code, fmt, args...) ({ warnx(fmt, ## args); exit(exit_code); })
- #define err(exit_code, fmt, args...)  errx(exit_code, fmt ": %s", ## args, strerror(errno))
- 
--size_t strlcpy(char *dst, const char *src, size_t siz);
--
- /* types of input lines: */
- typedef enum {
- 	LT_TRUEI,		/* a true #if with ignore flag */
diff --git a/toolchain/uClibc/patches-0.9.33.2/110-compat_macros.patch b/toolchain/uClibc/patches-0.9.33.2/110-compat_macros.patch
deleted file mode 100644
index a7538b16f8..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/110-compat_macros.patch
+++ /dev/null
@@ -1,51 +0,0 @@
---- a/include/string.h
-+++ b/include/string.h
-@@ -355,18 +355,40 @@ extern char *index (__const char *__s, i
- /* Find the last occurrence of C in S (same as strrchr).  */
- extern char *rindex (__const char *__s, int __c)
-      __THROW __attribute_pure__ __nonnull ((1));
--# else
--#  ifdef __UCLIBC_SUSV3_LEGACY_MACROS__
-+# elif defined(__UCLIBC_SUSV3_LEGACY_MACROS__) && !defined(_STRINGS_H)
- /* bcopy/bzero/bcmp/index/rindex are marked LEGACY in SuSv3.
-  * They are replaced as proposed by SuSv3. Don't sync this part
-  * with glibc and keep it in sync with strings.h.  */
- 
--#  define bcopy(src,dest,n) (memmove((dest), (src), (n)), (void) 0)
--#  define bzero(s,n) (memset((s), '\0', (n)), (void) 0)
--#  define bcmp(s1,s2,n) memcmp((s1), (s2), (size_t)(n))
--#  define index(s,c) strchr((s), (c))
--#  define rindex(s,c) strrchr((s), (c))
--#  endif
-+/* Copy N bytes of SRC to DEST (like memmove, but args reversed).  */
-+static __inline__ void bcopy (__const void *__src, void *__dest, size_t __n)
-+{
-+	memmove(__dest, __src, __n);
-+}
-+
-+/* Set N bytes of S to 0.  */
-+static __inline__ void bzero (void *__s, size_t __n)
-+{
-+	memset(__s, 0, __n);
-+}
-+
-+/* Compare N bytes of S1 and S2 (same as memcmp).  */
-+static __inline__ int bcmp (__const void *__s1, __const void *__s2, size_t __n)
-+{
-+	return memcmp(__s1, __s2, __n);
-+}
-+
-+/* Find the first occurrence of C in S (same as strchr).  */
-+static __inline__ char *index (__const char *__s, int __c)
-+{
-+	return strchr(__s, __c);
-+}
-+
-+/* Find the last occurrence of C in S (same as strrchr).  */
-+static __inline__ char *rindex (__const char *__s, int __c)
-+{
-+	return strrchr(__s, __c);
-+}
- # endif
- 
- /* Return the position of the first bit set in I, or 0 if none are set.
diff --git a/toolchain/uClibc/patches-0.9.33.2/120-adjtimex.patch b/toolchain/uClibc/patches-0.9.33.2/120-adjtimex.patch
deleted file mode 100644
index dcf9c9b5aa..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/120-adjtimex.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/include/sys/timex.h
-+++ b/include/sys/timex.h
-@@ -116,9 +116,8 @@ struct timex
- 
- __BEGIN_DECLS
- 
--#if 0
--extern int __adjtimex (struct timex *__ntx) __THROW;
--#endif
-+#undef __adjtimex
-+#define __adjtimex adjtimex
- extern int adjtimex (struct timex *__ntx) __THROW;
- libc_hidden_proto(adjtimex)
- 
diff --git a/toolchain/uClibc/patches-0.9.33.2/131-inet-fix-__read_etc_hosts_r-segfault.patch b/toolchain/uClibc/patches-0.9.33.2/131-inet-fix-__read_etc_hosts_r-segfault.patch
deleted file mode 100644
index bd9ed380a6..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/131-inet-fix-__read_etc_hosts_r-segfault.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/libc/inet/resolv.c
-+++ b/libc/inet/resolv.c
-@@ -1631,6 +1631,7 @@ int attribute_hidden __read_etc_hosts_r(
- 	 * struct in[6]_addr
- 	 * char line_buffer[BUFSZ+];
- 	 */
-+	memset(buf, 0, buflen);
- 	parser->data = buf;
- 	parser->data_len = aliaslen;
- 	parser->line_len = buflen - aliaslen;
diff --git a/toolchain/uClibc/patches-0.9.33.2/132-inet_fix_res_init.patch b/toolchain/uClibc/patches-0.9.33.2/132-inet_fix_res_init.patch
deleted file mode 100644
index c935821b22..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/132-inet_fix_res_init.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/libc/inet/resolv.c
-+++ b/libc/inet/resolv.c
-@@ -3654,11 +3654,11 @@ res_init(void)
- 	 */
- 	if (!_res.id)
- 		_res.id = res_randomid();
--	__res_sync = res_sync_func;
- 
- 	__UCLIBC_MUTEX_UNLOCK(__resolv_lock);
- 
- 	__res_vinit(&_res, 1);
-+	__res_sync = res_sync_func;
- 
- 	return 0;
- }
diff --git a/toolchain/uClibc/patches-0.9.33.2/133-inet6-scoped-getnameinfo.patch b/toolchain/uClibc/patches-0.9.33.2/133-inet6-scoped-getnameinfo.patch
deleted file mode 100644
index 390e06ddb7..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/133-inet6-scoped-getnameinfo.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/libc/inet/resolv.c
-+++ b/libc/inet/resolv.c
-@@ -317,6 +317,7 @@ Domain name in a message can be represen
- #include <sys/utsname.h>
- #include <sys/un.h>
- #include <sys/stat.h>
-+#include <net/if.h>
- #include <bits/uClibc_mutex.h>
- #include "internal/parse_config.h"
- 
-@@ -1861,7 +1862,6 @@ int getnameinfo(const struct sockaddr *s
- 					c = inet_ntop(AF_INET6,
- 						(const void *) &sin6p->sin6_addr,
- 						host, hostlen);
--#if 0
- 					/* Does scope id need to be supported? */
- 					uint32_t scopeid;
- 					scopeid = sin6p->sin6_scope_id;
-@@ -1898,7 +1898,6 @@ int getnameinfo(const struct sockaddr *s
- 							return EAI_SYSTEM;
- 						memcpy(host + real_hostlen, scopebuf, scopelen + 1);
- 					}
--#endif
- 				}
- #endif /* __UCLIBC_HAS_IPV6__ */
- #if defined __UCLIBC_HAS_IPV4__
diff --git a/toolchain/uClibc/patches-0.9.33.2/135-inet_fix_threaded_use_of_res_functions.patch b/toolchain/uClibc/patches-0.9.33.2/135-inet_fix_threaded_use_of_res_functions.patch
deleted file mode 100644
index 6732d54d3e..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/135-inet_fix_threaded_use_of_res_functions.patch
+++ /dev/null
@@ -1,126 +0,0 @@
---- a/libc/inet/resolv.c
-+++ b/libc/inet/resolv.c
-@@ -3536,6 +3536,61 @@ __res_vinit(res_state rp, int preinit)
- 	return 0;
- }
- 
-+static unsigned int
-+res_randomid(void)
-+{
-+	return 0xffff & getpid();
-+}
-+
-+/* Our res_init never fails (always returns 0) */
-+int
-+res_init(void)
-+{
-+	/*
-+	 * These three fields used to be statically initialized.  This made
-+	 * it hard to use this code in a shared library.  It is necessary,
-+	 * now that we're doing dynamic initialization here, that we preserve
-+	 * the old semantics: if an application modifies one of these three
-+	 * fields of _res before res_init() is called, res_init() will not
-+	 * alter them.  Of course, if an application is setting them to
-+	 * _zero_ before calling res_init(), hoping to override what used
-+	 * to be the static default, we can't detect it and unexpected results
-+	 * will follow.  Zero for any of these fields would make no sense,
-+	 * so one can safely assume that the applications were already getting
-+	 * unexpected results.
-+	 *
-+	 * _res.options is tricky since some apps were known to diddle the bits
-+	 * before res_init() was first called. We can't replicate that semantic
-+	 * with dynamic initialization (they may have turned bits off that are
-+	 * set in RES_DEFAULT).  Our solution is to declare such applications
-+	 * "broken".  They could fool us by setting RES_INIT but none do (yet).
-+	 */
-+
-+	__UCLIBC_MUTEX_LOCK(__resolv_lock);
-+
-+	if (!_res.retrans)
-+		_res.retrans = RES_TIMEOUT;
-+	if (!_res.retry)
-+		_res.retry = 4;
-+	if (!(_res.options & RES_INIT))
-+		_res.options = RES_DEFAULT;
-+
-+	/*
-+	 * This one used to initialize implicitly to zero, so unless the app
-+	 * has set it to something in particular, we can randomize it now.
-+	 */
-+	if (!_res.id)
-+		_res.id = res_randomid();
-+
-+	__UCLIBC_MUTEX_UNLOCK(__resolv_lock);
-+
-+	__res_vinit(&_res, 1);
-+	__res_sync = res_sync_func;
-+
-+	return 0;
-+}
-+libc_hidden_def(res_init)
-+
- static void
- __res_iclose(void)
- {
-@@ -3608,61 +3663,6 @@ struct __res_state *__resp = &_res;
- # endif
- #endif /* !__UCLIBC_HAS_THREADS__ */
- 
--static unsigned int
--res_randomid(void)
--{
--	return 0xffff & getpid();
--}
--
--/* Our res_init never fails (always returns 0) */
--int
--res_init(void)
--{
--	/*
--	 * These three fields used to be statically initialized.  This made
--	 * it hard to use this code in a shared library.  It is necessary,
--	 * now that we're doing dynamic initialization here, that we preserve
--	 * the old semantics: if an application modifies one of these three
--	 * fields of _res before res_init() is called, res_init() will not
--	 * alter them.  Of course, if an application is setting them to
--	 * _zero_ before calling res_init(), hoping to override what used
--	 * to be the static default, we can't detect it and unexpected results
--	 * will follow.  Zero for any of these fields would make no sense,
--	 * so one can safely assume that the applications were already getting
--	 * unexpected results.
--	 *
--	 * _res.options is tricky since some apps were known to diddle the bits
--	 * before res_init() was first called. We can't replicate that semantic
--	 * with dynamic initialization (they may have turned bits off that are
--	 * set in RES_DEFAULT).  Our solution is to declare such applications
--	 * "broken".  They could fool us by setting RES_INIT but none do (yet).
--	 */
--
--	__UCLIBC_MUTEX_LOCK(__resolv_lock);
--
--	if (!_res.retrans)
--		_res.retrans = RES_TIMEOUT;
--	if (!_res.retry)
--		_res.retry = 4;
--	if (!(_res.options & RES_INIT))
--		_res.options = RES_DEFAULT;
--
--	/*
--	 * This one used to initialize implicitly to zero, so unless the app
--	 * has set it to something in particular, we can randomize it now.
--	 */
--	if (!_res.id)
--		_res.id = res_randomid();
--
--	__UCLIBC_MUTEX_UNLOCK(__resolv_lock);
--
--	__res_vinit(&_res, 1);
--	__res_sync = res_sync_func;
--
--	return 0;
--}
--libc_hidden_def(res_init)
--
- /*
-  * Set up default settings.  If the configuration file exist, the values
-  * there will have precedence.  Otherwise, the server address is set to
diff --git a/toolchain/uClibc/patches-0.9.33.2/136-inet_make_res_init_thread_safe.patch b/toolchain/uClibc/patches-0.9.33.2/136-inet_make_res_init_thread_safe.patch
deleted file mode 100644
index 06278898f9..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/136-inet_make_res_init_thread_safe.patch
+++ /dev/null
@@ -1,53 +0,0 @@
---- a/libc/inet/resolv.c
-+++ b/libc/inet/resolv.c
-@@ -3432,6 +3432,7 @@ static void res_sync_func(void)
- 	 */
- }
- 
-+/* has to be called under __resolv_lock */
- static int
- __res_vinit(res_state rp, int preinit)
- {
-@@ -3440,7 +3441,6 @@ __res_vinit(res_state rp, int preinit)
- 	int m = 0;
- #endif
- 
--	__UCLIBC_MUTEX_LOCK(__resolv_lock);
- 	__close_nameservers();
- 	__open_nameservers();
- 
-@@ -3532,7 +3532,6 @@ __res_vinit(res_state rp, int preinit)
- 
- 	rp->options |= RES_INIT;
- 
--	__UCLIBC_MUTEX_UNLOCK(__resolv_lock);
- 	return 0;
- }
- 
-@@ -3582,11 +3581,11 @@ res_init(void)
- 	if (!_res.id)
- 		_res.id = res_randomid();
- 
--	__UCLIBC_MUTEX_UNLOCK(__resolv_lock);
--
- 	__res_vinit(&_res, 1);
- 	__res_sync = res_sync_func;
- 
-+	__UCLIBC_MUTEX_UNLOCK(__resolv_lock);
-+
- 	return 0;
- }
- libc_hidden_def(res_init)
-@@ -3687,7 +3686,11 @@ struct __res_state *__resp = &_res;
- int
- res_ninit(res_state statp)
- {
--	return __res_vinit(statp, 0);
-+	int ret;
-+	__UCLIBC_MUTEX_LOCK(__resolv_lock);
-+	ret = __res_vinit(statp, 0);
-+	__UCLIBC_MUTEX_UNLOCK(__resolv_lock);
-+	return ret;
- }
- 
- #endif /* L_res_init */
diff --git a/toolchain/uClibc/patches-0.9.33.2/137-inet_fix_threaded_res_init.patch b/toolchain/uClibc/patches-0.9.33.2/137-inet_fix_threaded_res_init.patch
deleted file mode 100644
index ce8448ab49..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/137-inet_fix_threaded_res_init.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/libc/inet/resolv.c
-+++ b/libc/inet/resolv.c
-@@ -3581,6 +3581,7 @@ res_init(void)
- 	if (!_res.id)
- 		_res.id = res_randomid();
- 
-+	__res_sync = NULL;
- 	__res_vinit(&_res, 1);
- 	__res_sync = res_sync_func;
- 
diff --git a/toolchain/uClibc/patches-0.9.33.2/150-vasprintf_size_reduce.patch b/toolchain/uClibc/patches-0.9.33.2/150-vasprintf_size_reduce.patch
deleted file mode 100644
index 7853c1afa0..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/150-vasprintf_size_reduce.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Reduce the initial buffer size for open_memstream (used by vasprintf),
-as most strings are usually smaller than that.
-Realloc the buffer after finishing the string to further reduce size.
-
-Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-
---- a/libc/stdio/vasprintf.c
-+++ b/libc/stdio/vasprintf.c
-@@ -39,6 +39,8 @@ int vasprintf(char **__restrict buf, con
- 		if (rv < 0) {
- 			free(*buf);
- 			*buf = NULL;
-+		} else {
-+			*buf = realloc(*buf, rv + 1);
- 		}
- 	}
- 
---- a/libc/stdio/open_memstream.c
-+++ b/libc/stdio/open_memstream.c
-@@ -17,6 +17,8 @@
- 
- #define COOKIE ((__oms_cookie *) cookie)
- 
-+#define MEMSTREAM_BUFSIZ	256
-+
- typedef struct {
- 	char *buf;
- 	size_t len;
-@@ -134,7 +136,7 @@ FILE *open_memstream(char **__restrict b
- 	register FILE *fp;
- 
- 	if ((cookie = malloc(sizeof(__oms_cookie))) != NULL) {
--		if ((cookie->buf = malloc(cookie->len = BUFSIZ)) == NULL) {
-+		if ((cookie->buf = malloc(cookie->len = MEMSTREAM_BUFSIZ)) == NULL) {
- 			goto EXIT_cookie;
- 		}
- 		*cookie->buf = 0;		/* Set nul terminator for buffer. */
diff --git a/toolchain/uClibc/patches-0.9.33.2/170-math_finite.patch b/toolchain/uClibc/patches-0.9.33.2/170-math_finite.patch
deleted file mode 100644
index b0ae3337b9..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/170-math_finite.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/include/math.h
-+++ b/include/math.h
-@@ -195,7 +195,7 @@ extern int signgam;
- 
- 
- /* ISO C99 defines some generic macros which work on any data type.  */
--#ifdef __USE_ISOC99
-+#if defined(__USE_ISOC99) || defined(__USE_BSD)
- 
- /* Get the architecture specific values describing the floating-point
-    evaluation.  The following symbols will get defined:
-@@ -315,6 +315,11 @@ enum
- 
- #endif /* Use ISO C99.  */
- 
-+/* BSD compat */
-+#define finite(x) __finite(x)
-+#define finitef(x) __finitef(x)
-+#define finitel(x) __finitel(x)
-+
- #ifdef	__USE_MISC
- /* Support for various different standard error handling behaviors.  */
- typedef enum
diff --git a/toolchain/uClibc/patches-0.9.33.2/180-pthread_cleanup_fix.patch b/toolchain/uClibc/patches-0.9.33.2/180-pthread_cleanup_fix.patch
deleted file mode 100644
index ae36018792..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/180-pthread_cleanup_fix.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- a/libpthread/nptl/cleanup_defer_compat.c
-+++ b/libpthread/nptl/cleanup_defer_compat.c
-@@ -22,7 +22,7 @@
- 
- void
- attribute_protected
--_pthread_cleanup_push_defer (
-+__pthread_cleanup_push_defer (
-      struct _pthread_cleanup_buffer *buffer,
-      void (*routine) (void *),
-      void *arg)
-@@ -57,12 +57,12 @@ _pthread_cleanup_push_defer (
- 
-   THREAD_SETMEM (self, cleanup, buffer);
- }
--strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer)
-+strong_alias (__pthread_cleanup_push_defer, _pthread_cleanup_push_defer)
- 
- 
- void
- attribute_protected
--_pthread_cleanup_pop_restore (
-+__pthread_cleanup_pop_restore (
-      struct _pthread_cleanup_buffer *buffer,
-      int execute)
- {
-@@ -97,4 +97,4 @@ _pthread_cleanup_pop_restore (
-   if (execute)
-     buffer->__routine (buffer->__arg);
- }
--strong_alias (_pthread_cleanup_pop_restore, __pthread_cleanup_pop_restore)
-+strong_alias (__pthread_cleanup_pop_restore, _pthread_cleanup_pop_restore)
---- a/libpthread/nptl/init.c
-+++ b/libpthread/nptl/init.c
-@@ -112,8 +112,8 @@ static const struct pthread_functions pt
-     .ptr___pthread_key_create = __pthread_key_create_internal,
-     .ptr___pthread_getspecific = __pthread_getspecific_internal,
-     .ptr___pthread_setspecific = __pthread_setspecific_internal,
--    .ptr__pthread_cleanup_push_defer = _pthread_cleanup_push_defer,
--    .ptr__pthread_cleanup_pop_restore = _pthread_cleanup_pop_restore,
-+    .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
-+    .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
-     .ptr_nthreads = &__nptl_nthreads,
-     .ptr___pthread_unwind = &__pthread_unwind,
-     .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
diff --git a/toolchain/uClibc/patches-0.9.33.2/190-nptl_use_arch_default_stack_limit.patch b/toolchain/uClibc/patches-0.9.33.2/190-nptl_use_arch_default_stack_limit.patch
deleted file mode 100644
index b7f5c82e05..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/190-nptl_use_arch_default_stack_limit.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/libpthread/nptl/init.c
-+++ b/libpthread/nptl/init.c
-@@ -402,6 +402,10 @@ __pthread_initialize_minimal_internal (v
-        Use the minimal size acceptable.  */
-     limit.rlim_cur = PTHREAD_STACK_MIN;
- 
-+  /* Do not exceed architecture specific default */
-+  if (limit.rlim_cur > ARCH_STACK_DEFAULT_SIZE)
-+    limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
-+
-   /* Make sure it meets the minimum size that allocate_stack
-      (allocatestack.c) will demand, which depends on the page size.  */
-   const uintptr_t pagesz = sysconf (_SC_PAGESIZE);
diff --git a/toolchain/uClibc/patches-0.9.33.2/200-no_forced_unwind.patch b/toolchain/uClibc/patches-0.9.33.2/200-no_forced_unwind.patch
deleted file mode 100644
index d6869e2de6..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/200-no_forced_unwind.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/Rules.mak
-+++ b/Rules.mak
-@@ -707,7 +707,6 @@ endif
- ifeq ($(UCLIBC_HAS_THREADS),y)
- ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
- 	PTNAME := nptl
--	CFLAGS += -DHAVE_FORCED_UNWIND
- else
- ifeq ($(LINUXTHREADS_OLD),y)
- 	PTNAME := linuxthreads.old
diff --git a/toolchain/uClibc/patches-0.9.33.2/210-mips_use_pic_crt1.patch b/toolchain/uClibc/patches-0.9.33.2/210-mips_use_pic_crt1.patch
deleted file mode 100644
index 2ca10d47cc..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/210-mips_use_pic_crt1.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libc/sysdeps/linux/mips/Makefile.arch
-+++ b/libc/sysdeps/linux/mips/Makefile.arch
-@@ -20,6 +20,8 @@ ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
- SSRC += vfork.S clone.S
- endif
- 
-+CFLAGS-crt1.S += $(PICFLAG)
-+
- ASFLAGS-syscall_error.S += -D_LIBC_REENTRANT
- 
- ARCH_HEADERS := sgidefs.h
diff --git a/toolchain/uClibc/patches-0.9.33.2/350-use-fputs_unlocked.patch b/toolchain/uClibc/patches-0.9.33.2/350-use-fputs_unlocked.patch
deleted file mode 100644
index 58b03ec7d9..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/350-use-fputs_unlocked.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-commit 3e3ae40f053b22fbb9bef50067d6edad4c358c4c
-Author: Mirko Vogt <dev@nanl.de>
-Date:   Tue May 24 14:36:42 2011 +0200
-
-    use 'fputws_unlocked(S,F)' instead of 'fputws(S,F)'
-    
-    this eliminates a source of reproduceable freezes
-
---- a/libc/stdio/_vfprintf.c
-+++ b/libc/stdio/_vfprintf.c
-@@ -1229,7 +1229,7 @@ static size_t _fp_out_narrow(FILE *fp, i
- #define STRLEN  wcslen
- #define _PPFS_init _ppwfs_init
- /* Pulls in fseek: */
--#define OUTPUT(F,S)			fputws(S,F)
-+#define OUTPUT(F,S)			fputws_unlocked(S,F)
- /* TODO: #define OUTPUT(F,S)		_wstdio_fwrite((S),wcslen(S),(F)) */
- #define _outnwcs(stream, wstring, len)	_wstdio_fwrite((const wchar_t *)(wstring), len, stream)
- #define FP_OUT _fp_out_wide
diff --git a/toolchain/uClibc/patches-0.9.33.2/410-llvm_workaround.patch b/toolchain/uClibc/patches-0.9.33.2/410-llvm_workaround.patch
deleted file mode 100644
index 7ae394325b..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/410-llvm_workaround.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libc/stdio/_stdio.c
-+++ b/libc/stdio/_stdio.c
-@@ -124,7 +124,7 @@ static FILE _stdio_streams[] = {
- 							 __FLAG_NBF|__FLAG_WRITEONLY, \
- 							 2, \
- 							 NULL, \
--							 NULL, \
-+							 0, \
- 							 0 )
- };
- 
diff --git a/toolchain/uClibc/patches-0.9.33.2/450-powerpc_copysignl.patch b/toolchain/uClibc/patches-0.9.33.2/450-powerpc_copysignl.patch
deleted file mode 100644
index ad8d6824bb..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/450-powerpc_copysignl.patch
+++ /dev/null
@@ -1,103 +0,0 @@
---- a/libc/sysdeps/linux/powerpc/Makefile.arch
-+++ b/libc/sysdeps/linux/powerpc/Makefile.arch
-@@ -5,7 +5,7 @@
- # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
- #
- 
--CSRC := __syscall_error.c pread_write.c ioctl.c
-+CSRC := __syscall_error.c pread_write.c ioctl.c copysignl.c
- 
- ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
- CSRC += posix_fadvise.c posix_fadvise64.c
---- /dev/null
-+++ b/libc/sysdeps/linux/powerpc/copysignl.c
-@@ -0,0 +1,89 @@
-+/* s_copysignl.c -- long double version of s_copysign.c.
-+ * Conversion to long double by Ulrich Drepper,
-+ * Cygnus Support, drepper@cygnus.com.
-+ */
-+
-+/*
-+ * ====================================================
-+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
-+ *
-+ * Developed at SunPro, a Sun Microsystems, Inc. business.
-+ * Permission to use, copy, modify, and distribute this
-+ * software is freely granted, provided that this notice
-+ * is preserved.
-+ * ====================================================
-+ */
-+
-+/*
-+ * copysignl(long double x, long double y)
-+ * copysignl(x,y) returns a value with the magnitude of x and
-+ * with the sign bit of y.
-+ */
-+
-+#include <endian.h>
-+#include <stdint.h>
-+
-+#if __FLOAT_WORD_ORDER == BIG_ENDIAN
-+
-+typedef union
-+{
-+  long double value;
-+  struct
-+  {
-+    int sign_exponent:16;
-+    unsigned int empty:16;
-+    uint32_t msw;
-+    uint32_t lsw;
-+  } parts;
-+} ieee_long_double_shape_type;
-+
-+#endif
-+
-+#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN
-+
-+typedef union
-+{
-+  long double value;
-+  struct
-+  {
-+    uint32_t lsw;
-+    uint32_t msw;
-+    int sign_exponent:16;
-+    unsigned int empty:16;
-+  } parts;
-+} ieee_long_double_shape_type;
-+
-+#endif
-+
-+/* Get int from the exponent of a long double.  */
-+
-+#define GET_LDOUBLE_EXP(exp,d)					\
-+do {								\
-+  ieee_long_double_shape_type ge_u;				\
-+  ge_u.value = (d);						\
-+  (exp) = ge_u.parts.sign_exponent;				\
-+} while (0)
-+
-+/* Set exponent of a long double from an int.  */
-+
-+#define SET_LDOUBLE_EXP(d,exp)					\
-+do {								\
-+  ieee_long_double_shape_type se_u;				\
-+  se_u.value = (d);						\
-+  se_u.parts.sign_exponent = (exp);				\
-+  (d) = se_u.value;						\
-+} while (0)
-+
-+long double copysignl(long double x, long double y);
-+libc_hidden_proto(copysignl);
-+
-+long double copysignl(long double x, long double y)
-+{
-+	uint32_t es1,es2;
-+	GET_LDOUBLE_EXP(es1,x);
-+	GET_LDOUBLE_EXP(es2,y);
-+	SET_LDOUBLE_EXP(x,(es1&0x7fff)|(es2&0x8000));
-+        return x;
-+}
-+
-+libc_hidden_def(copysignl);
diff --git a/toolchain/uClibc/patches-0.9.33.2/460-powerpc_ptrace_h.patch b/toolchain/uClibc/patches-0.9.33.2/460-powerpc_ptrace_h.patch
deleted file mode 100644
index c48b68244b..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/460-powerpc_ptrace_h.patch
+++ /dev/null
@@ -1,96 +0,0 @@
---- a/libc/sysdeps/linux/powerpc/sys/ptrace.h
-+++ b/libc/sysdeps/linux/powerpc/sys/ptrace.h
-@@ -1,5 +1,5 @@
- /* `ptrace' debugger support interface.  Linux version.
--   Copyright (C) 2001 Free Software Foundation, Inc.
-+   Copyright (C) 2001, 2006, 2007, 2011 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
-@@ -13,9 +13,8 @@
-    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.  */
-+   License along with the GNU C Library; if not, see
-+   <http://www.gnu.org/licenses/>.  */
- 
- #ifndef _SYS_PTRACE_H
- #define _SYS_PTRACE_H	1
-@@ -79,8 +78,73 @@ enum __ptrace_request
- #define PT_DETACH PTRACE_DETACH
- 
-   /* Continue and stop at the next (return from) syscall.  */
--  PTRACE_SYSCALL = 24
-+  PTRACE_SYSCALL = 24,
- #define PT_SYSCALL PTRACE_SYSCALL
-+
-+  /* Set ptrace filter options.  */
-+  PTRACE_SETOPTIONS = 0x4200,
-+#define PT_SETOPTIONS PTRACE_SETOPTIONS
-+
-+  /* Get last ptrace message.  */
-+  PTRACE_GETEVENTMSG = 0x4201,
-+#define PT_GETEVENTMSG PTRACE_GETEVENTMSG
-+
-+  /* Get siginfo for process.  */
-+  PTRACE_GETSIGINFO = 0x4202,
-+#define PT_GETSIGINFO PTRACE_GETSIGINFO
-+
-+  /* Set new siginfo for process.  */
-+  PTRACE_SETSIGINFO = 0x4203,
-+#define PT_SETSIGINFO PTRACE_SETSIGINFO
-+
-+  /* Get register content.  */
-+  PTRACE_GETREGSET = 0x4204,
-+#define PTRACE_GETREGSET PTRACE_GETREGSET
-+
-+  /* Set register content.  */
-+  PTRACE_SETREGSET = 0x4205,
-+#define PTRACE_SETREGSET PTRACE_SETREGSET
-+
-+  /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
-+     signal or group stop state.  */
-+  PTRACE_SEIZE = 0x4206,
-+#define PTRACE_SEIZE PTRACE_SEIZE
-+
-+  /* Trap seized tracee.  */
-+  PTRACE_INTERRUPT = 0x4207,
-+#define PTRACE_INTERRUPT PTRACE_INTERRUPT
-+
-+  /* Wait for next group event.  */
-+  PTRACE_LISTEN = 0x4208
-+};
-+
-+
-+/* Flag for PTRACE_LISTEN.  */
-+enum __ptrace_flags
-+{
-+  PTRACE_SEIZE_DEVEL = 0x80000000
-+};
-+
-+/* Options set using PTRACE_SETOPTIONS.  */
-+enum __ptrace_setoptions {
-+  PTRACE_O_TRACESYSGOOD	= 0x00000001,
-+  PTRACE_O_TRACEFORK	= 0x00000002,
-+  PTRACE_O_TRACEVFORK   = 0x00000004,
-+  PTRACE_O_TRACECLONE	= 0x00000008,
-+  PTRACE_O_TRACEEXEC	= 0x00000010,
-+  PTRACE_O_TRACEVFORKDONE = 0x00000020,
-+  PTRACE_O_TRACEEXIT	= 0x00000040,
-+  PTRACE_O_MASK		= 0x0000007f
-+};
-+
-+/* Wait extended result codes for the above trace options.  */
-+enum __ptrace_eventcodes {
-+  PTRACE_EVENT_FORK	= 1,
-+  PTRACE_EVENT_VFORK	= 2,
-+  PTRACE_EVENT_CLONE	= 3,
-+  PTRACE_EVENT_EXEC	= 4,
-+  PTRACE_EVENT_VFORK_DONE = 5,
-+  PTRACE_EVENT_EXIT	= 6
- };
- 
- /* Perform process tracing functions.  REQUEST is one of the values
diff --git a/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch b/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch
deleted file mode 100644
index 9511dcc199..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/470-powerpc_syscall6.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/libc/sysdeps/linux/powerpc/syscall.S
-+++ b/libc/sysdeps/linux/powerpc/syscall.S
-@@ -30,6 +30,7 @@ syscall:
- 	mr 5,6
- 	mr 6,7
- 	mr 7,8
-+	mr 8,9
- 	sc
- 	bnslr;
- 
diff --git a/toolchain/uClibc/patches-0.9.33.2/480-powerpc_rel24_support.patch b/toolchain/uClibc/patches-0.9.33.2/480-powerpc_rel24_support.patch
deleted file mode 100644
index 19c2b2c8a2..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/480-powerpc_rel24_support.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/ldso/ldso/powerpc/elfinterp.c
-+++ b/ldso/ldso/powerpc/elfinterp.c
-@@ -297,22 +297,17 @@ _dl_do_reloc (struct elf_resolve *tpnt,s
- 		break;
- #endif
- 	case R_PPC_REL24:
--#if 0
- 		{
- 			Elf32_Sword delta = finaladdr - (Elf32_Word)reloc_addr;
- 			if (unlikely(delta<<6>>6 != delta)) {
- 				_dl_dprintf(2, "%s: symbol '%s' R_PPC_REL24 is out of range.\n\t"
- 						"Compile shared libraries with -fPIC!\n",
- 						_dl_progname, symname);
--				_dl_exit(1);
-+				return -1;
- 			}
- 			*reloc_addr = (*reloc_addr & 0xfc000003) | (delta & 0x3fffffc);
- 			break;
- 		}
--#else
--		_dl_dprintf(2,"R_PPC_REL24: Compile shared libraries with -fPIC!\n");
--		return -1;
--#endif
- 	case R_PPC_NONE:
- 		goto out_nocode; /* No code code modified */
- 	default:
diff --git a/toolchain/uClibc/patches-0.9.33.2/500-eventfd.patch b/toolchain/uClibc/patches-0.9.33.2/500-eventfd.patch
deleted file mode 100644
index 374052c5b5..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/500-eventfd.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 7810e4f8027b5c4c8ceec6fefec4eb779362ebb5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 10 Jun 2012 16:36:23 +0000
-Subject: eventfd: Implement eventfd2 and fix eventfd
-
-eventfd: evntfd assumes to take two arguments instead it
-should be one evntfd expects two therefore implement both syscalls with
-correct parameters
-
-Thanks Eugene Rudoy for reporting it and also providing the patch
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
---- a/libc/sysdeps/linux/common/eventfd.c
-+++ b/libc/sysdeps/linux/common/eventfd.c
-@@ -7,12 +7,24 @@
-  * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-  */
- 
-+#include <errno.h>
- #include <sys/syscall.h>
- #include <sys/eventfd.h>
- 
- /*
-  * eventfd()
-  */
--#ifdef __NR_eventfd
--_syscall2(int, eventfd, int, count, int, flags)
-+#if defined __NR_eventfd || defined __NR_eventfd2
-+int eventfd (int count, int flags)
-+{
-+#if defined __NR_eventfd2
-+  return INLINE_SYSCALL (eventfd2, 2, count, flags);
-+#elif defined __NR_eventfd
-+  if (flags != 0) {
-+     __set_errno (EINVAL);
-+    return -1;
-+  }
-+  return INLINE_SYSCALL (eventfd, 1, count);
-+#endif
-+}
- #endif
---- a/libc/sysdeps/linux/common/stubs.c
-+++ b/libc/sysdeps/linux/common/stubs.c
-@@ -93,7 +93,7 @@ make_stub(epoll_ctl)
- make_stub(epoll_wait)
- #endif
- 
--#if !defined __NR_eventfd && defined __UCLIBC_LINUX_SPECIFIC__
-+#if !defined __NR_eventfd && !defined __NR_eventfd2 && defined __UCLIBC_LINUX_SPECIFIC__
- make_stub(eventfd)
- #endif
- 
diff --git a/toolchain/uClibc/patches-0.9.33.2/600-mips64_abi_selection.patch b/toolchain/uClibc/patches-0.9.33.2/600-mips64_abi_selection.patch
deleted file mode 100644
index beca17ca47..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/600-mips64_abi_selection.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 603af30d6992e94ac30a66b953264076f4f2fd71 Mon Sep 17 00:00:00 2001
-From: Markos Chandras <markos.chandras@imgtec.com>
-Date: Thu, 11 Jul 2013 16:59:16 +0000
-Subject: Rules.mak: MIPS64: Select correct interpreter
-
-gcc (eg 4.7.3) hardcodes the MIPS64 interpreters like this:
-(see gcc/config/linux.h and gcc/config/mips/linux64.h)
-
-o32: UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-n32: UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
-n64: UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"
-
-The existing check for MIPS64 in uClibc is wrong because it does
-not respect the selected ABI
-
-We fix this by explicitely checking the selected ABI instead of the
-selected MIPS variant.
-
-Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
-Cc: Anthony G. Basile <blueness@gentoo.org>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
-
---- a/Rules.mak
-+++ b/Rules.mak
-@@ -118,13 +118,19 @@ export MAJOR_VERSION MINOR_VERSION SUBLE
- LIBC := libc
- SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION)
- UBACKTRACE_DSO := libubacktrace.so.$(ABI_VERSION)
--ifneq ($(findstring  $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),)
-+
-+UCLIBC_LDSO_NAME := ld-uClibc
-+ARCH_NATIVE_BIT := 32
-+ifneq ($(findstring $(TARGET_ARCH),hppa64 ia64 powerpc64 s390x sparc64 x86_64),)
- UCLIBC_LDSO_NAME := ld64-uClibc
- ARCH_NATIVE_BIT := 64
- else
--UCLIBC_LDSO_NAME := ld-uClibc
--ARCH_NATIVE_BIT := 32
-+ifeq ($(CONFIG_MIPS_N64_ABI),y)
-+UCLIBC_LDSO_NAME := ld64-uClibc
-+ARCH_NATIVE_BIT := 64
- endif
-+endif
-+
- UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION)
- NONSHARED_LIBNAME := uclibc_nonshared.a
- libc := $(top_builddir)lib/$(SHARED_LIBNAME)
diff --git a/toolchain/uClibc/patches-0.9.33.2/610-mips64_syscall_fix.patch b/toolchain/uClibc/patches-0.9.33.2/610-mips64_syscall_fix.patch
deleted file mode 100644
index 46d1f5cd18..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/610-mips64_syscall_fix.patch
+++ /dev/null
@@ -1,285 +0,0 @@
-commit e5cde2eb0ed7df9416fdd6070af07c8448c72a30
-Author: Steve Ellcey <sellcey@mips.com>
-Date:   Wed Feb 12 11:01:35 2014 -0800
-
-    mips: Remove duplicate macro definitions
-    
-    The INLINE_SYSCALL, INTERNAL_SYSCALL*, and internal_syscall* macros
-    are defined for MIPS in both libc/sysdeps/linux/mips/sysdep.h and
-    libc/sysdeps/linux/mips/bits/syscalls.h.  The macros are the same
-    in both cases except that syscalls.h defines internal_syscalls[567]
-    the same for N32 and N64 ABIs and has a different definition for O32.
-    I believe that is correct.  The sysdep.h header uses the O32 versions
-    for N32 and has different definitions for N64.  I think that is wrong
-    and that N32 and N64 should share the same definition (modulo the
-    type 'long' vs. 'long long' for the arguments.  This setup (from
-    sysdep.h) now agrees with what glibc has.
-    
-    I am not positive about which header (sysdep.h vs syscalls.h) is
-    really the right one to have these definitions in but using sysdep.h
-    seems to work for all my builds.
-    
-    Signed-off-by: Steve Ellcey <sellcey@mips.com>
-    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-
---- a/libc/sysdeps/linux/mips/sysdep.h
-+++ b/libc/sysdeps/linux/mips/sysdep.h
-@@ -133,258 +133,6 @@ L(syse1):
- 
- #else   /* ! __ASSEMBLER__ */
- 
--/* Define a macro which expands into the inline wrapper code for a system
--   call.  */
--#undef INLINE_SYSCALL
--#define INLINE_SYSCALL(name, nr, args...)				\
--  ({ INTERNAL_SYSCALL_DECL(err);					\
--     long result_var = INTERNAL_SYSCALL (name, err, nr, args);		\
--     if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) )			\
--       {								\
--	 __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err));	\
--	 result_var = -1L;						\
--       }								\
--     result_var; })
--
--#undef INTERNAL_SYSCALL_DECL
--#define INTERNAL_SYSCALL_DECL(err) long err
--
--#undef INTERNAL_SYSCALL_ERROR_P
--#define INTERNAL_SYSCALL_ERROR_P(val, err)   ((long) (err))
--
--#undef INTERNAL_SYSCALL_ERRNO
--#define INTERNAL_SYSCALL_ERRNO(val, err)     (val)
--
--#undef INTERNAL_SYSCALL
--#define INTERNAL_SYSCALL(name, err, nr, args...) \
--	internal_syscall##nr (, "li\t$2, %2\t\t\t# " #name "\n\t",	\
--			      "i" (SYS_ify (name)), err, args)
--
--#undef INTERNAL_SYSCALL_NCS
--#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
--	internal_syscall##nr (= number, , "r" (__v0), err, args)
--#undef internal_syscall0
--#define internal_syscall0(ncs_init, cs_init, input, err, dummy...)	\
--({									\
--	long _sys_result;						\
--									\
--	{								\
--	register long __v0 __asm__("$2") ncs_init;			\
--	register long __a3 __asm__("$7");				\
--	__asm__ __volatile__ (						\
--	".set\tnoreorder\n\t"						\
--	cs_init								\
--	"syscall\n\t"							\
--	".set reorder"							\
--	: "=r" (__v0), "=r" (__a3)					\
--	: input								\
--	: __SYSCALL_CLOBBERS);						\
--	err = __a3;							\
--	_sys_result = __v0;						\
--	}								\
--	_sys_result;							\
--})
--
--#undef internal_syscall1
--#define internal_syscall1(ncs_init, cs_init, input, err, arg1)		\
--({									\
--	long _sys_result;						\
--									\
--	{								\
--	register long __v0 __asm__("$2") ncs_init;			\
--	register long __a0 __asm__("$4") = (long) arg1;			\
--	register long __a3 __asm__("$7");				\
--	__asm__ __volatile__ (						\
--	".set\tnoreorder\n\t"						\
--	cs_init								\
--	"syscall\n\t"							\
--	".set reorder"							\
--	: "=r" (__v0), "=r" (__a3)					\
--	: input, "r" (__a0)						\
--	: __SYSCALL_CLOBBERS);						\
--	err = __a3;							\
--	_sys_result = __v0;						\
--	}								\
--	_sys_result;							\
--})
--
--#undef internal_syscall2
--#define internal_syscall2(ncs_init, cs_init, input, err, arg1, arg2)	\
--({									\
--	long _sys_result;						\
--									\
--	{								\
--	register long __v0 __asm__("$2") ncs_init;			\
--	register long __a0 __asm__("$4") = (long) arg1;			\
--	register long __a1 __asm__("$5") = (long) arg2;			\
--	register long __a3 __asm__("$7");				\
--	__asm__ __volatile__ (						\
--	".set\tnoreorder\n\t"						\
--	cs_init								\
--	"syscall\n\t"							\
--	".set\treorder"							\
--	: "=r" (__v0), "=r" (__a3)					\
--	: input, "r" (__a0), "r" (__a1)					\
--	: __SYSCALL_CLOBBERS);						\
--	err = __a3;							\
--	_sys_result = __v0;						\
--	}								\
--	_sys_result;							\
--})
--
--#undef internal_syscall3
--#define internal_syscall3(ncs_init, cs_init, input, err, arg1, arg2, arg3)\
--({									\
--	long _sys_result;						\
--									\
--	{								\
--	register long __v0 __asm__("$2") ncs_init;			\
--	register long __a0 __asm__("$4") = (long) arg1;			\
--	register long __a1 __asm__("$5") = (long) arg2;			\
--	register long __a2 __asm__("$6") = (long) arg3;			\
--	register long __a3 __asm__("$7");				\
--	__asm__ __volatile__ (						\
--	".set\tnoreorder\n\t"						\
--	cs_init								\
--	"syscall\n\t"							\
--	".set\treorder"							\
--	: "=r" (__v0), "=r" (__a3)					\
--	: input, "r" (__a0), "r" (__a1), "r" (__a2)			\
--	: __SYSCALL_CLOBBERS);						\
--	err = __a3;							\
--	_sys_result = __v0;						\
--	}								\
--	_sys_result;							\
--})
--
--#undef internal_syscall4
--#define internal_syscall4(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4)\
--({									\
--	long _sys_result;						\
--									\
--	{								\
--	register long __v0 __asm__("$2") ncs_init;			\
--	register long __a0 __asm__("$4") = (long) arg1;			\
--	register long __a1 __asm__("$5") = (long) arg2;			\
--	register long __a2 __asm__("$6") = (long) arg3;			\
--	register long __a3 __asm__("$7") = (long) arg4;			\
--	__asm__ __volatile__ (						\
--	".set\tnoreorder\n\t"						\
--	cs_init								\
--	"syscall\n\t"							\
--	".set\treorder"							\
--	: "=r" (__v0), "+r" (__a3)					\
--	: input, "r" (__a0), "r" (__a1), "r" (__a2)			\
--	: __SYSCALL_CLOBBERS);						\
--	err = __a3;							\
--	_sys_result = __v0;						\
--	}								\
--	_sys_result;							\
--})
--
--/* We need to use a frame pointer for the functions in which we
--   adjust $sp around the syscall, or debug information and unwind
--   information will be $sp relative and thus wrong during the syscall.  As
--   of GCC 3.4.3, this is sufficient.  */
--#define FORCE_FRAME_POINTER alloca (4)
--
--#undef internal_syscall5
--#define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\
--({									\
--	long _sys_result;						\
--									\
--	FORCE_FRAME_POINTER;						\
--	{								\
--	register long __v0 __asm__("$2") ncs_init;			\
--	register long __a0 __asm__("$4") = (long) arg1;			\
--	register long __a1 __asm__("$5") = (long) arg2;			\
--	register long __a2 __asm__("$6") = (long) arg3;			\
--	register long __a3 __asm__("$7") = (long) arg4;			\
--	__asm__ __volatile__ (						\
--	".set\tnoreorder\n\t"						\
--	"subu\t$29, 32\n\t"						\
--	"sw\t%6, 16($29)\n\t"						\
--	cs_init								\
--	"syscall\n\t"							\
--	"addiu\t$29, 32\n\t"						\
--	".set\treorder"							\
--	: "=r" (__v0), "+r" (__a3)					\
--	: input, "r" (__a0), "r" (__a1), "r" (__a2),			\
--	  "r" ((long)arg5)						\
--	: __SYSCALL_CLOBBERS);						\
--	err = __a3;							\
--	_sys_result = __v0;						\
--	}								\
--	_sys_result;							\
--})
--
--#undef internal_syscall6
--#define internal_syscall6(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6)\
--({									\
--	long _sys_result;						\
--									\
--	FORCE_FRAME_POINTER;						\
--	{								\
--	register long __v0 __asm__("$2") ncs_init;			\
--	register long __a0 __asm__("$4") = (long) arg1;			\
--	register long __a1 __asm__("$5") = (long) arg2;			\
--	register long __a2 __asm__("$6") = (long) arg3;			\
--	register long __a3 __asm__("$7") = (long) arg4;			\
--	__asm__ __volatile__ (						\
--	".set\tnoreorder\n\t"						\
--	"subu\t$29, 32\n\t"						\
--	"sw\t%6, 16($29)\n\t"						\
--	"sw\t%7, 20($29)\n\t"						\
--	cs_init								\
--	"syscall\n\t"							\
--	"addiu\t$29, 32\n\t"						\
--	".set\treorder"							\
--	: "=r" (__v0), "+r" (__a3)					\
--	: input, "r" (__a0), "r" (__a1), "r" (__a2),			\
--	  "r" ((long)arg5), "r" ((long)arg6)				\
--	: __SYSCALL_CLOBBERS);						\
--	err = __a3;							\
--	_sys_result = __v0;						\
--	}								\
--	_sys_result;							\
--})
--
--#undef internal_syscall7
--#define internal_syscall7(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
--({									\
--	long _sys_result;						\
--									\
--	FORCE_FRAME_POINTER;						\
--	{								\
--	register long __v0 __asm__("$2") ncs_init;			\
--	register long __a0 __asm__("$4") = (long) arg1;			\
--	register long __a1 __asm__("$5") = (long) arg2;			\
--	register long __a2 __asm__("$6") = (long) arg3;			\
--	register long __a3 __asm__("$7") = (long) arg4;			\
--	__asm__ __volatile__ (						\
--	".set\tnoreorder\n\t"						\
--	"subu\t$29, 32\n\t"						\
--	"sw\t%6, 16($29)\n\t"						\
--	"sw\t%7, 20($29)\n\t"						\
--	"sw\t%8, 24($29)\n\t"						\
--	cs_init								\
--	"syscall\n\t"							\
--	"addiu\t$29, 32\n\t"						\
--	".set\treorder"							\
--	: "=r" (__v0), "+r" (__a3)					\
--	: input, "r" (__a0), "r" (__a1), "r" (__a2),			\
--	  "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7)		\
--	: __SYSCALL_CLOBBERS);						\
--	err = __a3;							\
--	_sys_result = __v0;						\
--	}								\
--	_sys_result;							\
--})
--
--#undef __SYSCALL_CLOBBERS
--#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
--	"$14", "$15", "$24", "$25", "memory"
--
- /* Pointer mangling is not yet supported for MIPS.  */
- #define PTR_MANGLE(var) (void) (var)
- #define PTR_DEMANGLE(var) (void) (var)
diff --git a/toolchain/uClibc/patches-0.9.33.2/611-mips_syscall_error_argument.patch b/toolchain/uClibc/patches-0.9.33.2/611-mips_syscall_error_argument.patch
deleted file mode 100644
index 87ef8bae87..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/611-mips_syscall_error_argument.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-commit 2952c70804b48bb5c87eea21df5e401969dc4ec1
-Author: Kevin Cernekee <cernekee@gmail.com>
-Date:   Tue Jun 5 15:05:20 2012 -0700
-
-    MIPS: Use $a0 instead of $v0 for __syscall_error() argument
-    
-    $a0 is saved across _dl_runtime_resolve(); $v0 is not.  Unfortunately,
-    __syscall_error() uses $v0 for its argument, not $a0 as is the MIPS ABI
-    standard.  This means that if lazy binding was used for __syscall_error(),
-    the errno value in $v0 could get corrupted.
-    
-    The problem can be easily seen in testcases where syscalls in librt fail;
-    when librt tries to call __syscall_error() in libc, the argument gets
-    lost and errno gets set to a bogus value:
-    
-        # ./tst-mqueue1 ; echo $?
-        mq_receive on O_WRONLY mqd_t did not fail with EBADF: Unknown error 2004684208
-        1
-        # ./tst-mqueue2 ; echo $?
-        mq_timedreceive with too small msg_len did not fail with EMSGSIZE: Unknown error 1997360560
-        1
-        # ./tst-mqueue4 ; echo $?
-        mq_timedsend did not fail with ETIMEDOUT: Unknown error 2008747440
-        1
-    
-    When _dl_runtime_resolve() was taken out of the equation, the same test
-    cases passed:
-    
-        # LD_BIND_NOW=y ./tst-mqueue1 ; echo $?
-        0
-        # LD_BIND_NOW=y ./tst-mqueue2 ; echo $?
-        0
-        # LD_BIND_NOW=y ./tst-mqueue4 ; echo $?
-        0
-    
-    Changing __syscall_error() to look at $a0 instead of $v0 fixed the
-    problem.
-    
-    (Note that there is also a "__syscall_error.c" file which presumably
-    uses the standard C calling conventions, but I do not think it is used
-    on MIPS.)
-    
-    Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
-    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-
-commit 3c58d95d918c7e2fda374c37a52f81b34b81e4ca
-Author: Kevin Cernekee <cernekee@gmail.com>
-Date:   Tue Jun 5 15:05:19 2012 -0700
-
-    MIPS: Convert __syscall_error() callers to use $a0 for argument
-    
-    Some callers passed the first argument in $v0, while others used $a0.
-    Change the callers to use $a0 consistently.
-    
-    Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
-    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-
---- a/libc/sysdeps/linux/mips/vfork.S
-+++ b/libc/sysdeps/linux/mips/vfork.S
-@@ -84,6 +84,7 @@ NESTED(__vfork,FRAMESZ,sp)
- 
- 	/* Something bad happened -- no child created.  */
- L(error):
-+	move	a0, v0
- #ifdef __PIC__
- 	PTR_LA		t9, __syscall_error
- 	RESTORE_GP64
---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h
-+++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h
-@@ -31,7 +31,7 @@
- # undef PSEUDO
- # define PSEUDO(name, syscall_name, args)				      \
-   .align 2;								      \
--  99:									      \
-+  99: move a0, v0; 							      \
-   PTR_LA t9,__syscall_error;					 	      \
-   /* manual cpreturn.  */						      \
-   REG_L gp, STKOFF_GP(sp);						      \
---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S
-+++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S
-@@ -80,6 +80,7 @@ NESTED(__vfork,FRAMESZ,sp)
- 
- 	/* Something bad happened -- no child created.  */
- L(error):
-+	move		a0, v0
- #ifdef __PIC__
- 	PTR_LA		t9, __syscall_error
- 	RESTORE_GP64
---- a/libc/sysdeps/linux/mips/syscall_error.S
-+++ b/libc/sysdeps/linux/mips/syscall_error.S
-@@ -43,7 +43,7 @@ ENTRY(__syscall_error)
- #ifdef __PIC__
- 	SAVE_GP(GPOFF)
- #endif
--	REG_S	v0, V0OFF(sp)
-+	REG_S	a0, V0OFF(sp)
- 	REG_S	ra, RAOFF(sp)
- 
- 	/* Find our per-thread errno address  */
diff --git a/toolchain/uClibc/patches-0.9.33.2/612-mips64_relocation_fix.patch b/toolchain/uClibc/patches-0.9.33.2/612-mips64_relocation_fix.patch
deleted file mode 100644
index 7edeee17d0..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/612-mips64_relocation_fix.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-commit 052bcf13afb067cafac5e7f4fc21fbad2b34b11f
-Author: Waldemar Brodkorb <wbx@openadk.org>
-Date:   Wed Nov 27 09:55:51 2013 +0100
-
-    Fix for SIGBUS error on MIPS64 with N64 ABI
-    
-    When accessing errno, a per thread variable, from _stdio_init
-    a SIGBUS error happens. This change fixes the wrong relocation
-    and debug output.
-    
-    Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-
---- a/ldso/ldso/mips/elfinterp.c
-+++ b/ldso/ldso/mips/elfinterp.c
-@@ -259,11 +259,11 @@ int _dl_parse_relocation_information(str
- 					case R_MIPS_TLS_TPREL32:
- 					case R_MIPS_TLS_TPREL64:
- 						CHECK_STATIC_TLS((struct link_map *)tls_tpnt);
--						*(ElfW(Word) *)reloc_addr +=
-+						*(ElfW(Addr) *)reloc_addr +=
- 							TLS_TPREL_VALUE (tls_tpnt, symbol_addr);
- #ifdef __SUPPORT_LD_DEBUG__
- 						_dl_dprintf(2, "TLS_TPREL  : %s, %x, %x\n",
--							symname, old_val, *((unsigned int *)reloc_addr));
-+							symname, old_val, *((unsigned long *)reloc_addr));
- #endif
- 						break;
- 				}
diff --git a/toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch b/toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch
deleted file mode 100644
index e2efa23823..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/613-mips64_more_relocation_fixes.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/ldso/ldso/mips/elfinterp.c
-+++ b/ldso/ldso/mips/elfinterp.c
-@@ -239,7 +239,7 @@ int _dl_parse_relocation_information(str
- 					case R_MIPS_TLS_DTPMOD64:
- 					case R_MIPS_TLS_DTPMOD32:
- 						if (tls_tpnt)
--							*(ElfW(Word) *)reloc_addr = tls_tpnt->l_tls_modid;
-+							*(ElfW(Addr) *)reloc_addr = tls_tpnt->l_tls_modid;
- #ifdef __SUPPORT_LD_DEBUG__
- 						_dl_dprintf(2, "TLS_DTPMOD : %s, %d, %d\n",
- 							symname, old_val, *((unsigned int *)reloc_addr));
-@@ -248,7 +248,7 @@ int _dl_parse_relocation_information(str
- 
- 					case R_MIPS_TLS_DTPREL64:
- 					case R_MIPS_TLS_DTPREL32:
--						*(ElfW(Word) *)reloc_addr +=
-+						*(ElfW(Addr) *)reloc_addr +=
- 							TLS_DTPREL_VALUE (symbol_addr);
- #ifdef __SUPPORT_LD_DEBUG__
- 						_dl_dprintf(2, "TLS_DTPREL : %s, %x, %x\n",
diff --git a/toolchain/uClibc/patches-0.9.33.2/614-mips64_fix_setjmp_longjmp.patch b/toolchain/uClibc/patches-0.9.33.2/614-mips64_fix_setjmp_longjmp.patch
deleted file mode 100644
index 170613091b..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/614-mips64_fix_setjmp_longjmp.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-commit 70a04a287a2875c82e6822c36e071afba5b63a62
-Author: Waldemar Brodkorb <wbx@openadk.org>
-Date:   Wed Jan 29 18:58:56 2014 +0100
-
-    libc: mips: Fix setjmp/longjmp for MIPS64 N64 ABI
-    
-    When booting a Linux system with qemu-system-mips64 the execution
-    of $(pwd) in the ash shell triggers a segmentation fault. Ash uses
-    setjmp/longjmp for exception handling.
-    
-    After looking at the glibc implementation,
-    I found some differences, with this patch tries to resolve.
-    Now the system boots up fine and no segmentation faults occur.
-    
-    The global pointer should be restored and the types for the
-    register values should be wide enough.
-    
-    See:
-    http://www.cygwin.com/ml/libc-alpha/2003-03/msg00363.html
-    
-    Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
-    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-
---- a/libc/sysdeps/linux/mips/bits/setjmp.h
-+++ b/libc/sysdeps/linux/mips/bits/setjmp.h
-@@ -26,13 +26,19 @@
- 
- #include <sgidefs.h>
- 
-+#if _MIPS_SIM == _MIPS_SIM_ABI32
-+#define ptrsize void *
-+#else
-+#define ptrsize long long
-+#endif
-+
- typedef struct
-   {
-     /* Program counter.  */
--    void * __pc;
-+    ptrsize __pc;
- 
-     /* Stack pointer.  */
--    void * __sp;
-+    ptrsize __sp;
- 
-     /* Callee-saved registers s0 through s7.  */
- #if _MIPS_SIM == _MIPS_SIM_ABI32
-@@ -42,10 +48,10 @@ typedef struct
- #endif
- 
-     /* The frame pointer.  */
--    void * __fp;
-+    ptrsize __fp;
- 
-     /* The global pointer.  */
--    void * __gp;
-+    ptrsize __gp;
- 
-     /* Floating point status register.  */
-     int __fpc_csr;
---- a/libc/sysdeps/linux/mips/setjmp.S
-+++ b/libc/sysdeps/linux/mips/setjmp.S
-@@ -53,6 +53,7 @@ __sigsetjmp:
- 	PTR_LA	t9, __sigsetjmp_aux
- #if _MIPS_SIM != _MIPS_SIM_ABI32
- 	.cpreturn
-+	move 	a4, gp
- #endif
- 	jr	t9
- #else
---- a/libc/sysdeps/linux/mips/setjmp_aux.c
-+++ b/libc/sysdeps/linux/mips/setjmp_aux.c
-@@ -31,7 +31,7 @@ extern int __sigjmp_save (sigjmp_buf, in
- 
- int
- #if _MIPS_SIM == _MIPS_SIM_ABI64
--__sigsetjmp_aux (jmp_buf env, int savemask, long sp, long fp)
-+__sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp, long long gp)
- #else /* O32 || N32 */
- __sigsetjmp_aux (jmp_buf env, int savemask, int sp, int fp)
- #endif /* O32 || N32 */
-@@ -65,14 +65,14 @@ __sigsetjmp_aux (jmp_buf env, int savema
- #endif
- 
-   /* .. and the stack pointer;  */
--  env[0].__jmpbuf[0].__sp = (void *) sp;
-+  env[0].__jmpbuf[0].__sp = (ptrsize) sp;
- 
-   /* .. and the FP; it'll be in s8. */
--  env[0].__jmpbuf[0].__fp = (void *) fp;
-+  env[0].__jmpbuf[0].__fp = (ptrsize) fp;
- 
-   /* .. and the GP; */
- #if _MIPS_SIM == _MIPS_SIM_ABI64
--  __asm__ __volatile__ ("sd $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
-+  env[0].__jmpbuf[0].__gp = (ptrsize) gp;
- #else
-   __asm__ __volatile__ ("sw $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
- #endif
diff --git a/toolchain/uClibc/patches-0.9.33.2/615-mips_fix_sigev_pad_size.patch b/toolchain/uClibc/patches-0.9.33.2/615-mips_fix_sigev_pad_size.patch
deleted file mode 100644
index f75092f343..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/615-mips_fix_sigev_pad_size.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-commit b97b4b698b023f75b54f987859c856ab4861ea00
-Author: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-Date:   Thu Jan 2 15:02:12 2014 +0000
-
-    siginfo.h: __SIGEV_PAD_SIZE takes __WORDSIZE into account
-    
-    Make __SIGEV_PAD_SIZE to take __WORDSIZE into account for alpha, mips
-    and ia64 arches.
-    
-    Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
-    Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-
---- a/libc/sysdeps/linux/alpha/bits/siginfo.h
-+++ b/libc/sysdeps/linux/alpha/bits/siginfo.h
-@@ -258,7 +258,11 @@ enum
- 
- /* Structure to transport application-defined values with signals.  */
- # define __SIGEV_MAX_SIZE	64
--# define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# if __WORDSIZE == 64
-+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# else
-+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
-+# endif
- 
- typedef struct sigevent
-   {
---- a/libc/sysdeps/linux/ia64/bits/siginfo.h
-+++ b/libc/sysdeps/linux/ia64/bits/siginfo.h
-@@ -298,7 +298,11 @@ enum
- 
- /* Structure to transport application-defined values with signals.  */
- # define __SIGEV_MAX_SIZE	64
--# define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# if __WORDSIZE == 64
-+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# else
-+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
-+# endif
- 
- typedef struct sigevent
-   {
---- a/libc/sysdeps/linux/mips/bits/siginfo.h
-+++ b/libc/sysdeps/linux/mips/bits/siginfo.h
-@@ -265,8 +265,11 @@ enum
- 
- /* Structure to transport application-defined values with signals.  */
- # define __SIGEV_MAX_SIZE	64
--# define __SIGEV_HEAD_SIZE	(sizeof(long) + 2*sizeof(int))
--# define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE - __SIGEV_HEAD_SIZE) / sizeof (int))
-+# if __WORDSIZE == 64
-+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
-+# else
-+#  define __SIGEV_PAD_SIZE	((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
-+# endif
- 
- /* Forward declaration of the `pthread_attr_t' type.  */
- struct __pthread_attr_s;
diff --git a/toolchain/uClibc/patches-0.9.33.2/616-mips_fix_stat_time.patch b/toolchain/uClibc/patches-0.9.33.2/616-mips_fix_stat_time.patch
deleted file mode 100644
index 1559857a44..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/616-mips_fix_stat_time.patch
+++ /dev/null
@@ -1,123 +0,0 @@
---- a/libc/sysdeps/linux/common/xstatconv.c
-+++ b/libc/sysdeps/linux/common/xstatconv.c
-@@ -39,9 +39,12 @@ void __xstat_conv(struct kernel_stat *kb
- 	buf->st_size = kbuf->st_size;
- 	buf->st_blksize = kbuf->st_blksize;
- 	buf->st_blocks = kbuf->st_blocks;
--	buf->st_atim = kbuf->st_atim;
--	buf->st_mtim = kbuf->st_mtim;
--	buf->st_ctim = kbuf->st_ctim;
-+	buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
-+	buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
-+	buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
-+	buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
-+	buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
-+	buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
- }
- 
- void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf)
-@@ -58,9 +61,12 @@ void __xstat32_conv(struct kernel_stat64
- 	buf->st_size = kbuf->st_size;
- 	buf->st_blksize = kbuf->st_blksize;
- 	buf->st_blocks = kbuf->st_blocks;
--	buf->st_atim = kbuf->st_atim;
--	buf->st_mtim = kbuf->st_mtim;
--	buf->st_ctim = kbuf->st_ctim;
-+	buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
-+	buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
-+	buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
-+	buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
-+	buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
-+	buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
- }
- 
- #ifdef __UCLIBC_HAS_LFS__
-@@ -82,9 +88,12 @@ void __xstat64_conv(struct kernel_stat64
- 	buf->st_size = kbuf->st_size;
- 	buf->st_blksize = kbuf->st_blksize;
- 	buf->st_blocks = kbuf->st_blocks;
--	buf->st_atim = kbuf->st_atim;
--	buf->st_mtim = kbuf->st_mtim;
--	buf->st_ctim = kbuf->st_ctim;
-+	buf->st_atim.tv_sec = kbuf->st_atim.tv_sec;
-+	buf->st_atim.tv_nsec = kbuf->st_atim.tv_nsec;
-+	buf->st_mtim.tv_sec = kbuf->st_mtim.tv_sec;
-+	buf->st_mtim.tv_nsec = kbuf->st_mtim.tv_nsec;
-+	buf->st_ctim.tv_sec = kbuf->st_ctim.tv_sec;
-+	buf->st_ctim.tv_nsec = kbuf->st_ctim.tv_nsec;
- }
- 
- #endif /* __UCLIBC_HAS_LFS__ */
---- a/libc/sysdeps/linux/mips/bits/kernel_stat.h
-+++ b/libc/sysdeps/linux/mips/bits/kernel_stat.h
-@@ -8,6 +8,18 @@
- #include <sgidefs.h>
- 
- #if _MIPS_SIM == _MIPS_SIM_ABI64
-+typedef struct {
-+	unsigned int tv_sec;
-+	unsigned int tv_nsec;
-+} __ktimespec_t;
-+#else
-+typedef struct {
-+	time_t tv_sec;
-+	unsigned long tv_nsec;
-+} __ktimespec_t;
-+#endif
-+
-+#if _MIPS_SIM == _MIPS_SIM_ABI64
- /* The memory layout is the same as of struct stat64 of the 32-bit kernel.  */
- struct kernel_stat {
- 	__kernel_dev_t	st_dev;
-@@ -20,9 +32,9 @@ struct kernel_stat {
- 	__kernel_dev_t	st_rdev;
- 	unsigned int	st_pad2[3];
- 	__kernel_off_t	st_size;
--	struct timespec	st_atim;
--	struct timespec	st_mtim;
--	struct timespec	st_ctim;
-+	__ktimespec_t	st_atim;
-+	__ktimespec_t	st_mtim;
-+	__ktimespec_t	st_ctim;
- 	unsigned int	st_blksize;
- 	unsigned int	reserved3;
- 	unsigned long	st_blocks;
-@@ -41,9 +53,9 @@ struct kernel_stat {
- 	unsigned int	st_rdev;
- 	unsigned int	st_pad2[3];
- 	unsigned long long	st_size;
--	struct timespec	st_atim;
--	struct timespec	st_mtim;
--	struct timespec	st_ctim;
-+	__ktimespec_t	st_atim;
-+	__ktimespec_t	st_mtim;
-+	__ktimespec_t	st_ctim;
- 	unsigned int	st_blksize;
- 	unsigned int	reserved3;
- 	unsigned long long	st_blocks;
-@@ -62,9 +74,9 @@ struct kernel_stat {
- 	long		st_pad2[2];
- 	__kernel_off_t	st_size;
- 	long		st_pad3;
--	struct timespec	st_atim;
--	struct timespec	st_mtim;
--	struct timespec	st_ctim;
-+	__ktimespec_t	st_atim;
-+	__ktimespec_t	st_mtim;
-+	__ktimespec_t	st_ctim;
- 	long		st_blksize;
- 	long		st_blocks;
- 	long		st_pad4[14];
-@@ -81,9 +93,9 @@ struct kernel_stat64 {
- 	unsigned long	st_rdev;
- 	unsigned long	st_pad1[3];	/* Reserved for st_rdev expansion  */
- 	long long	st_size;
--	struct timespec	st_atim;
--	struct timespec	st_mtim;
--	struct timespec	st_ctim;
-+	__ktimespec_t	st_atim;
-+	__ktimespec_t	st_mtim;
-+	__ktimespec_t	st_ctim;
- 	unsigned long	st_blksize;
- 	unsigned long	st_pad2;
- 	long long	st_blocks;
diff --git a/toolchain/uClibc/patches-0.9.33.2/617-mips_fix_setjmp_ptrsize.patch b/toolchain/uClibc/patches-0.9.33.2/617-mips_fix_setjmp_ptrsize.patch
deleted file mode 100644
index 628d4b02d5..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/617-mips_fix_setjmp_ptrsize.patch
+++ /dev/null
@@ -1,58 +0,0 @@
---- a/libc/sysdeps/linux/mips/bits/setjmp.h
-+++ b/libc/sysdeps/linux/mips/bits/setjmp.h
-@@ -27,18 +27,18 @@
- #include <sgidefs.h>
- 
- #if _MIPS_SIM == _MIPS_SIM_ABI32
--#define ptrsize void *
-+#define __setjmp_ptr void *
- #else
--#define ptrsize long long
-+#define __setjmp_ptr long long
- #endif
- 
- typedef struct
-   {
-     /* Program counter.  */
--    ptrsize __pc;
-+    __setjmp_ptr __pc;
- 
-     /* Stack pointer.  */
--    ptrsize __sp;
-+    __setjmp_ptr __sp;
- 
-     /* Callee-saved registers s0 through s7.  */
- #if _MIPS_SIM == _MIPS_SIM_ABI32
-@@ -48,10 +48,10 @@ typedef struct
- #endif
- 
-     /* The frame pointer.  */
--    ptrsize __fp;
-+    __setjmp_ptr __fp;
- 
-     /* The global pointer.  */
--    ptrsize __gp;
-+    __setjmp_ptr __gp;
- 
-     /* Floating point status register.  */
-     int __fpc_csr;
---- a/libc/sysdeps/linux/mips/setjmp_aux.c
-+++ b/libc/sysdeps/linux/mips/setjmp_aux.c
-@@ -65,14 +65,14 @@ __sigsetjmp_aux (jmp_buf env, int savema
- #endif
- 
-   /* .. and the stack pointer;  */
--  env[0].__jmpbuf[0].__sp = (ptrsize) sp;
-+  env[0].__jmpbuf[0].__sp = (__setjmp_ptr) sp;
- 
-   /* .. and the FP; it'll be in s8. */
--  env[0].__jmpbuf[0].__fp = (ptrsize) fp;
-+  env[0].__jmpbuf[0].__fp = (__setjmp_ptr) fp;
- 
-   /* .. and the GP; */
- #if _MIPS_SIM == _MIPS_SIM_ABI64
--  env[0].__jmpbuf[0].__gp = (ptrsize) gp;
-+  env[0].__jmpbuf[0].__gp = (__setjmp_ptr) gp;
- #else
-   __asm__ __volatile__ ("sw $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
- #endif
diff --git a/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch b/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch
deleted file mode 100644
index 67611fdebc..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/618-mips64_fix_syscall_error.patch
+++ /dev/null
@@ -1,36 +0,0 @@
---- a/libc/sysdeps/linux/mips/sysdep.h
-+++ b/libc/sysdeps/linux/mips/sysdep.h
-@@ -96,7 +96,8 @@
-    backwards into the previous fn.  */
- 
- #ifdef __PIC__
--#define PSEUDO(name, syscall_name, args) 		\
-+# if _MIPS_SIM == _ABIO32
-+#  define PSEUDO(name, syscall_name, args) 		\
-   .align 2;						\
-   99: move a0, v0;					\
-   la t9,__syscall_error;				\
-@@ -109,6 +110,23 @@
-   .set reorder;						\
-   bne a3, zero, 99b;					\
- L(syse1):
-+# else
-+#  define PSEUDO(name, syscall_name, args) 		\
-+  .align 2;						\
-+  99:							\
-+  .set noat;						\
-+  .cpsetup t9, $1, name;				\
-+  .set at;						\
-+  move a0, v0;						\
-+  dla t9,__syscall_error;				\
-+  .cpreturn;						\
-+  jr t9;						\
-+  ENTRY(name)						\
-+  li v0, SYS_ify(syscall_name);				\
-+  syscall;						\
-+  bne a3, zero, 99b;					\
-+L(syse1):
-+# endif
- #else
- #define PSEUDO(name, syscall_name, args) 		\
-   .set noreorder;					\
diff --git a/toolchain/uClibc/patches-0.9.33.2/619-mips64_fix_sysdep_cancel.patch b/toolchain/uClibc/patches-0.9.33.2/619-mips64_fix_sysdep_cancel.patch
deleted file mode 100644
index d590359a48..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/619-mips64_fix_sysdep_cancel.patch
+++ /dev/null
@@ -1,195 +0,0 @@
---- a/extra/Configs/Config.in
-+++ b/extra/Configs/Config.in
-@@ -235,6 +235,7 @@ config TARGET_SUBARCH
- 	default "i486" if CONFIG_486
- 	default "i586" if CONFIG_586 || CONFIG_586MMX
- 	default "i686" if TARGET_ARCH = "i386"
-+	default "mips64" if CONFIG_MIPS_N64_ABI
- 	default ""
- 
- source "extra/Configs/Config.in.arch"
---- /dev/null
-+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h
-@@ -0,0 +1,182 @@
-+/* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library.  If not, see
-+   <http://www.gnu.org/licenses/>.  */
-+
-+#include <sysdep.h>
-+#include <tls.h>
-+#ifndef __ASSEMBLER__
-+# include <pthreadP.h>
-+#endif
-+#include <sys/asm.h>
-+
-+/* Gas will put the initial save of $gp into the CIE, because it appears to
-+   happen before any instructions.  So we use cfi_same_value instead of
-+   cfi_restore.  */
-+
-+#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
-+
-+#ifdef __PIC__
-+# undef PSEUDO
-+# define PSEUDO(name, syscall_name, args)				      \
-+      .align 2;								      \
-+  L(pseudo_start):							      \
-+      cfi_startproc;							      \
-+      cfi_adjust_cfa_offset (STKSPACE);					      \
-+      cfi_rel_offset (gp, STKOFF_GP);					      \
-+  99: move a0, v0;							      \
-+      PTR_LA t9,__syscall_error;					      \
-+      /* manual cpreturn */						      \
-+      REG_L gp, STKOFF_GP(sp);						      \
-+      cfi_same_value (gp);						      \
-+      RESTORESTK;							      \
-+      jr t9;								      \
-+  .type __##syscall_name##_nocancel, @function;				      \
-+  .globl __##syscall_name##_nocancel;					      \
-+  __##syscall_name##_nocancel:						      \
-+    SAVESTK;								      \
-+    .cpsetup t9, STKOFF_GP, name;					      \
-+    cfi_rel_offset (gp, STKOFF_GP);					      \
-+    li v0, SYS_ify(syscall_name);					      \
-+    syscall;								      \
-+    bne a3, zero, SYSCALL_ERROR_LABEL;			       		      \
-+    /* manual cpreturn */						      \
-+    REG_L gp, STKOFF_GP(sp);						      \
-+    cfi_same_value (gp);						      \
-+    RESTORESTK;								      \
-+    ret;								      \
-+  .size __##syscall_name##_nocancel,.-__##syscall_name##_nocancel;	      \
-+  ENTRY (name)								      \
-+    SAVESTK;								      \
-+    .cpsetup t9, STKOFF_GP, name;					      \
-+    cfi_rel_offset (gp, STKOFF_GP);					      \
-+    SINGLE_THREAD_P(v1);						      \
-+    bne zero, v1, L(pseudo_cancel);					      \
-+    .set noreorder;							      \
-+    li v0, SYS_ify(syscall_name);					      \
-+    syscall;								      \
-+    .set reorder;							      \
-+    bne a3, zero, SYSCALL_ERROR_LABEL;			       		      \
-+    /* manual cpreturn */						      \
-+    REG_L gp, STKOFF_GP(sp);						      \
-+    cfi_same_value (gp);						      \
-+    RESTORESTK;								      \
-+    ret;								      \
-+  L(pseudo_cancel):							      \
-+    cfi_adjust_cfa_offset (STKSPACE);					      \
-+    cfi_rel_offset (gp, STKOFF_GP);					      \
-+    REG_S ra, STKOFF_RA(sp);						      \
-+    cfi_rel_offset (ra, STKOFF_RA);					      \
-+    PUSHARGS_##args;			/* save syscall args */	      	      \
-+    CENABLE;								      \
-+    REG_S v0, STKOFF_SVMSK(sp);		/* save mask */			      \
-+    POPARGS_##args;			/* restore syscall args */	      \
-+    .set noreorder;							      \
-+    li v0, SYS_ify (syscall_name);				      	      \
-+    syscall;								      \
-+    .set reorder;							      \
-+    REG_S v0, STKOFF_SC_V0(sp);		/* save syscall result */             \
-+    REG_S a3, STKOFF_SC_ERR(sp);	/* save syscall error flag */	      \
-+    REG_L a0, STKOFF_SVMSK(sp);		/* pass mask as arg1 */		      \
-+    CDISABLE;								      \
-+    REG_L a3, STKOFF_SC_ERR(sp);	/* restore syscall error flag */      \
-+    REG_L ra, STKOFF_RA(sp);		/* restore return address */	      \
-+    REG_L v0, STKOFF_SC_V0(sp);		/* restore syscall result */          \
-+    bne a3, zero, SYSCALL_ERROR_LABEL;					      \
-+    /* manual cpreturn */						      \
-+    REG_L gp, STKOFF_GP(sp);						      \
-+    cfi_same_value (gp);						      \
-+    RESTORESTK;								      \
-+  L(pseudo_end):
-+
-+
-+# undef PSEUDO_END
-+# define PSEUDO_END(sym) cfi_endproc; .end sym; .size sym,.-sym
-+
-+#endif
-+
-+# define PUSHARGS_0	/* nothing to do */
-+# define PUSHARGS_1	PUSHARGS_0 REG_S a0, STKOFF_A0(sp); cfi_rel_offset (a0, STKOFF_A0);
-+# define PUSHARGS_2	PUSHARGS_1 REG_S a1, STKOFF_A1(sp); cfi_rel_offset (a1, STKOFF_A1);
-+# define PUSHARGS_3	PUSHARGS_2 REG_S a2, STKOFF_A2(sp); cfi_rel_offset (a2, STKOFF_A2);
-+# define PUSHARGS_4	PUSHARGS_3 REG_S a3, STKOFF_A3(sp); cfi_rel_offset (a3, STKOFF_A3);
-+# define PUSHARGS_5	PUSHARGS_4 REG_S a4, STKOFF_A4(sp); cfi_rel_offset (a3, STKOFF_A4);
-+# define PUSHARGS_6	PUSHARGS_5 REG_S a5, STKOFF_A5(sp); cfi_rel_offset (a3, STKOFF_A5);
-+
-+# define POPARGS_0	/* nothing to do */
-+# define POPARGS_1	POPARGS_0 REG_L a0, STKOFF_A0(sp);
-+# define POPARGS_2	POPARGS_1 REG_L a1, STKOFF_A1(sp);
-+# define POPARGS_3	POPARGS_2 REG_L a2, STKOFF_A2(sp);
-+# define POPARGS_4	POPARGS_3 REG_L a3, STKOFF_A3(sp);
-+# define POPARGS_5	POPARGS_4 REG_L a4, STKOFF_A4(sp);
-+# define POPARGS_6	POPARGS_5 REG_L a5, STKOFF_A5(sp);
-+
-+/* Save an even number of slots.  Should be 0 if an even number of slots
-+   are used below, or SZREG if an odd number are used.  */
-+# define STK_PAD	SZREG
-+
-+/* Place values that we are more likely to use later in this sequence, i.e.
-+   closer to the SP at function entry.  If you do that, the are more
-+   likely to already be in your d-cache.  */
-+# define STKOFF_A5	(STK_PAD)
-+# define STKOFF_A4	(STKOFF_A5 + SZREG)
-+# define STKOFF_A3	(STKOFF_A4 + SZREG)
-+# define STKOFF_A2	(STKOFF_A3 + SZREG)	/* MT and more args.  */
-+# define STKOFF_A1	(STKOFF_A2 + SZREG)	/* MT and 2 args.  */
-+# define STKOFF_A0	(STKOFF_A1 + SZREG)	/* MT and 1 arg.  */
-+# define STKOFF_RA	(STKOFF_A0 + SZREG)	/* Used if MT.  */
-+# define STKOFF_SC_V0	(STKOFF_RA + SZREG)	/* Used if MT.  */
-+# define STKOFF_SC_ERR	(STKOFF_SC_V0 + SZREG)	/* Used if MT.  */
-+# define STKOFF_SVMSK	(STKOFF_SC_ERR + SZREG)	/* Used if MT.  */
-+# define STKOFF_GP	(STKOFF_SVMSK + SZREG)	/* Always used.  */
-+
-+# define STKSPACE	(STKOFF_GP + SZREG)
-+# define SAVESTK 	PTR_SUBU sp, STKSPACE; cfi_adjust_cfa_offset(STKSPACE)
-+# define RESTORESTK 	PTR_ADDU sp, STKSPACE; cfi_adjust_cfa_offset(-STKSPACE)
-+
-+# ifdef IS_IN_libpthread
-+#  define CENABLE	PTR_LA t9, __pthread_enable_asynccancel; jalr t9
-+#  define CDISABLE	PTR_LA t9, __pthread_disable_asynccancel; jalr t9
-+# elif defined IS_IN_librt
-+#  define CENABLE	PTR_LA t9, __librt_enable_asynccancel; jalr t9
-+#  define CDISABLE	PTR_LA t9, __librt_disable_asynccancel; jalr t9
-+# else
-+#  define CENABLE	PTR_LA t9, __libc_enable_asynccancel; jalr t9
-+#  define CDISABLE	PTR_LA t9, __libc_disable_asynccancel; jalr t9
-+# endif
-+
-+# ifndef __ASSEMBLER__
-+#  define SINGLE_THREAD_P						\
-+	__builtin_expect (THREAD_GETMEM (THREAD_SELF,			\
-+					 header.multiple_threads)	\
-+			  == 0, 1)
-+# else
-+#  define SINGLE_THREAD_P(reg)						\
-+	READ_THREAD_POINTER(reg);					\
-+	lw reg, MULTIPLE_THREADS_OFFSET(reg)
-+#endif
-+
-+#elif !defined __ASSEMBLER__
-+
-+# define SINGLE_THREAD_P 1
-+# define NO_CANCELLATION 1
-+
-+#endif
-+
-+#ifndef __ASSEMBLER__
-+# define RTLD_SINGLE_THREAD_P \
-+  __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
-+				   header.multiple_threads) == 0, 1)
-+#endif
diff --git a/toolchain/uClibc/patches-0.9.33.2/960-remove_eabi_oabi_selection.patch b/toolchain/uClibc/patches-0.9.33.2/960-remove_eabi_oabi_selection.patch
deleted file mode 100644
index 19ac24695b..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/960-remove_eabi_oabi_selection.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Rely on the compiler to be properly setup for the default ABI.
-
-When installing-headers, there are two cases:
-- NPTL: no issue, a cross-compiler is already expected
-- LinuxThreads: no issue, EABI/OABI has no impact on installed headers.
-
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-Cc: Khem Raj <raj.khem@gmail.com>
-Cc: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
-Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
----
-
---- a/extra/Configs/Config.arm
-+++ b/extra/Configs/Config.arm
-@@ -12,17 +12,6 @@ config FORCE_OPTIONS_FOR_ARCH
- 	default y
- 	select ARCH_ANY_ENDIAN
- 
--config CONFIG_ARM_EABI
--	bool "Build for EABI"
--	help
--	  If you say 'y' here, functions and constants required by the
--	  ARM EABI will be built into the library.  You should say 'y'
--	  if your compiler uses the ARM EABI, in which case you will also
--	  need a kernel supporting the EABI system call interface.
--
--	  If you say 'n' here, then the library will be built for the
--	  old Linux ABI.
--
- config COMPILE_IN_THUMB_MODE
- 	bool "Build using Thumb mode"
- 	select USE_BX
diff --git a/toolchain/uClibc/patches-0.9.33.2/970-add___kernel_long_and___kernel_ulong.patch b/toolchain/uClibc/patches-0.9.33.2/970-add___kernel_long_and___kernel_ulong.patch
deleted file mode 100644
index d790664ba4..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/970-add___kernel_long_and___kernel_ulong.patch
+++ /dev/null
@@ -1,320 +0,0 @@
-From 6a76edddaa62ff06f178143b582167734cb55c18 Mon Sep 17 00:00:00 2001
-From: Chris Packham <chris.packham@alliedtelesis.co.nz>
-Date: Mon, 01 Oct 2012 05:12:54 +0000
-Subject: libc/sysdeps: add __kernel_long and __kernel_ulong
-
-Linux 3.4 added __kernel_long_t and __kernel_ulong_t and various
-exported header files were updated to use these new types. Add the
-definitions for __kernel_long_t and __kernel_ulong_t to the relevant
-kernel_types.h headers.
-
-This change was automated with the following scriptlet
-
-  git grep --name-only 'typedef.*__kernel_old_dev_t' \
-    | xargs sed -i '/typedef.*__kernel_old_dev_t/ a\
-  typedef long\t\t__kernel_long_t;\
-  typedef unsigned long\t__kernel_ulong_t;'
-
-Whitespace in arm, avr32, hppa, sparc was then manually fixed up.
-
-Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz>
---
-Here's a cleaned up patch which should get the whitespace right. I'm a
-bit iffy about the sparc changes they make sense to me but it's not a
-platform I have access to.
-
-I can break this up per arch or per maintainer if requested.
-
- libc/sysdeps/linux/alpha/bits/kernel_types.h      |    2 ++
- libc/sysdeps/linux/arm/bits/kernel_types.h        |    2 ++
- libc/sysdeps/linux/avr32/bits/kernel_types.h      |    2 ++
- libc/sysdeps/linux/bfin/bits/kernel_types.h       |    2 ++
- libc/sysdeps/linux/c6x/bits/kernel_types.h        |    2 ++
- libc/sysdeps/linux/cris/bits/kernel_types.h       |    2 ++
- libc/sysdeps/linux/e1/bits/kernel_types.h         |    2 ++
- libc/sysdeps/linux/h8300/bits/kernel_types.h      |    2 ++
- libc/sysdeps/linux/hppa/bits/kernel_types.h       |    2 ++
- libc/sysdeps/linux/i386/bits/kernel_types.h       |    2 ++
- libc/sysdeps/linux/ia64/bits/kernel_types.h       |    2 ++
- libc/sysdeps/linux/m68k/bits/kernel_types.h       |    2 ++
- libc/sysdeps/linux/microblaze/bits/kernel_types.h |    2 ++
- libc/sysdeps/linux/mips/bits/kernel_types.h       |    4 ++++
- libc/sysdeps/linux/nios2/bits/kernel_types.h      |    2 ++
- libc/sysdeps/linux/powerpc/bits/kernel_types.h    |    4 ++++
- libc/sysdeps/linux/sh/bits/kernel_types.h         |    2 ++
- libc/sysdeps/linux/sh64/bits/kernel_types.h       |    2 ++
- libc/sysdeps/linux/sparc/bits/kernel_types.h      |    4 ++++
- libc/sysdeps/linux/v850/bits/kernel_types.h       |    2 ++
- libc/sysdeps/linux/x86_64/bits/kernel_types.h     |    2 ++
- libc/sysdeps/linux/xtensa/bits/kernel_types.h     |    2 ++
- 22 files changed, 50 insertions(+)
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
---- a/libc/sysdeps/linux/alpha/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/alpha/bits/kernel_types.h
-@@ -33,6 +33,8 @@ typedef __kernel_gid_t __kernel_old_gid_
- typedef __kernel_uid_t __kernel_uid32_t;
- typedef __kernel_gid_t __kernel_gid32_t;
- typedef __kernel_dev_t __kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- 
- typedef struct {
- 	int val[2];
---- a/libc/sysdeps/linux/arm/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/arm/bits/kernel_types.h
-@@ -32,6 +32,8 @@ typedef unsigned short		__kernel_old_uid
- typedef unsigned short		__kernel_old_gid_t;
- typedef long long		__kernel_loff_t;
- typedef __kernel_dev_t		__kernel_old_dev_t;
-+typedef long			__kernel_long_t;
-+typedef unsigned long		__kernel_ulong_t;
- 
- typedef struct {
- #ifdef __USE_ALL
---- a/libc/sysdeps/linux/avr32/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/avr32/bits/kernel_types.h
-@@ -39,6 +39,8 @@ typedef unsigned int		__kernel_gid32_t;
- typedef unsigned short		__kernel_old_uid_t;
- typedef unsigned short		__kernel_old_gid_t;
- typedef unsigned short		__kernel_old_dev_t;
-+typedef long			__kernel_long_t;
-+typedef unsigned long		__kernel_ulong_t;
- 
- #ifdef __GNUC__
- typedef long long		__kernel_loff_t;
---- a/libc/sysdeps/linux/bfin/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/bfin/bits/kernel_types.h
-@@ -32,6 +32,8 @@ typedef unsigned short	__kernel_old_uid_
- typedef unsigned short	__kernel_old_gid_t;
- typedef long long	__kernel_loff_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- 
- typedef struct {
- #ifdef __USE_ALL
---- a/libc/sysdeps/linux/c6x/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/c6x/bits/kernel_types.h
-@@ -22,6 +22,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned int	__kernel_old_uid_t;
- typedef unsigned int	__kernel_old_gid_t;
- typedef unsigned int	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef unsigned int	__kernel_size_t;
- typedef int		__kernel_ssize_t;
- typedef int		__kernel_ptrdiff_t;
---- a/libc/sysdeps/linux/cris/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/cris/bits/kernel_types.h
-@@ -28,6 +28,8 @@ typedef unsigned int    __kernel_gid32_t
- typedef unsigned short  __kernel_old_uid_t;
- typedef unsigned short  __kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- 
- #ifdef __GNUC__
- typedef long long	__kernel_loff_t;
---- a/libc/sysdeps/linux/e1/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/e1/bits/kernel_types.h
-@@ -31,6 +31,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned short	__kernel_old_uid_t;
- typedef unsigned short	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long	__kernel_loff_t;
- 
- /*
---- a/libc/sysdeps/linux/h8300/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/h8300/bits/kernel_types.h
-@@ -32,6 +32,8 @@ typedef unsigned short	__kernel_old_uid_
- typedef unsigned short	__kernel_old_gid_t;
- typedef long long	__kernel_loff_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- 
- typedef struct {
- #ifdef __USE_ALL
---- a/libc/sysdeps/linux/hppa/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/hppa/bits/kernel_types.h
-@@ -45,6 +45,8 @@ typedef long long		__kernel_off64_t;
- typedef unsigned long long	__kernel_ino64_t;
- 
- typedef unsigned int		__kernel_old_dev_t;
-+typedef long			__kernel_long_t;
-+typedef unsigned long		__kernel_ulong_t;
- 
- typedef struct {
- #ifdef __USE_ALL
---- a/libc/sysdeps/linux/i386/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/i386/bits/kernel_types.h
-@@ -40,6 +40,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned short	__kernel_old_uid_t;
- typedef unsigned short	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long	__kernel_loff_t;
- 
- typedef struct {
---- a/libc/sysdeps/linux/ia64/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/ia64/bits/kernel_types.h
-@@ -52,5 +52,7 @@ typedef __kernel_gid_t __kernel_gid32_t;
- 
- typedef unsigned int	__kernel_dev_t;
- typedef unsigned int	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- 
- #endif /* _ASM_IA64_POSIX_TYPES_H */
---- a/libc/sysdeps/linux/m68k/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/m68k/bits/kernel_types.h
-@@ -32,6 +32,8 @@ typedef unsigned short	__kernel_old_uid_
- typedef unsigned short	__kernel_old_gid_t;
- typedef long long	__kernel_loff_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- 
- typedef struct {
- #ifdef __USE_ALL
---- a/libc/sysdeps/linux/microblaze/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/microblaze/bits/kernel_types.h
-@@ -44,6 +44,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned int	__kernel_old_uid_t;
- typedef unsigned int	__kernel_old_gid_t;
- typedef unsigned int	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- 
- #ifdef __GNUC__
- typedef long long	__kernel_loff_t;
---- a/libc/sysdeps/linux/mips/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/mips/bits/kernel_types.h
-@@ -32,6 +32,8 @@ typedef int		__kernel_gid32_t;
- typedef __kernel_uid_t	__kernel_old_uid_t;
- typedef __kernel_gid_t	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long      __kernel_loff_t;
- #else
- typedef unsigned int	__kernel_dev_t;
-@@ -68,6 +70,8 @@ typedef int		__kernel_gid32_t;
- typedef __kernel_uid_t	__kernel_old_uid_t;
- typedef __kernel_gid_t	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long      __kernel_loff_t;
- #endif
- 
---- a/libc/sysdeps/linux/nios2/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/nios2/bits/kernel_types.h
-@@ -31,6 +31,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned short	__kernel_old_uid_t;
- typedef unsigned short	__kernel_old_gid_t;
- typedef unsigned short	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long	__kernel_loff_t;
- 
- typedef struct {
---- a/libc/sysdeps/linux/powerpc/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/powerpc/bits/kernel_types.h
-@@ -36,6 +36,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned int	__kernel_old_uid_t;
- typedef unsigned int	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- #else
- typedef unsigned int	__kernel_dev_t;
- typedef unsigned int	__kernel_ino_t;
-@@ -61,6 +63,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned int	__kernel_old_uid_t;
- typedef unsigned int	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long	__kernel_loff_t;
- #endif
- 
---- a/libc/sysdeps/linux/sh/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/sh/bits/kernel_types.h
-@@ -32,6 +32,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned short	__kernel_old_uid_t;
- typedef unsigned short	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long	__kernel_loff_t;
- 
- typedef struct {
---- a/libc/sysdeps/linux/sh64/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/sh64/bits/kernel_types.h
-@@ -43,6 +43,8 @@ typedef unsigned int    __kernel_gid32_t
- typedef unsigned short  __kernel_old_uid_t;
- typedef unsigned short  __kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long       __kernel_loff_t;
- 
- typedef struct {
---- a/libc/sysdeps/linux/sparc/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/sparc/bits/kernel_types.h
-@@ -32,6 +32,8 @@ typedef unsigned short	       __kernel_g
- typedef __kernel_uid_t 	       __kernel_old_uid_t;
- typedef __kernel_gid_t         __kernel_old_gid_t;
- typedef __kernel_dev_t         __kernel_old_dev_t;
-+typedef long                   __kernel_long_t;
-+typedef unsigned long          __kernel_ulong_t;
- typedef __kernel_uid_t	       __kernel_uid32_t;
- typedef __kernel_gid_t	       __kernel_gid32_t;
- typedef int		       __kernel_suseconds_t;
-@@ -62,6 +64,8 @@ typedef unsigned int	       __kernel_gid
- typedef unsigned short	       __kernel_old_uid_t;
- typedef unsigned short	       __kernel_old_gid_t;
- typedef __kernel_dev_t         __kernel_old_dev_t;
-+typedef long                   __kernel_long_t;
-+typedef unsigned long          __kernel_ulong_t;
- typedef long long              __kernel_loff_t;
- #endif
- 
---- a/libc/sysdeps/linux/v850/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/v850/bits/kernel_types.h
-@@ -41,6 +41,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned short	__kernel_old_uid_t;
- typedef unsigned short	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- 
- typedef struct {
- #ifdef __USE_ALL
---- a/libc/sysdeps/linux/x86_64/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/x86_64/bits/kernel_types.h
-@@ -40,6 +40,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned short	__kernel_old_uid_t;
- typedef unsigned short	__kernel_old_gid_t;
- typedef __kernel_dev_t	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long	__kernel_loff_t;
- 
- typedef struct {
---- a/libc/sysdeps/linux/xtensa/bits/kernel_types.h
-+++ b/libc/sysdeps/linux/xtensa/bits/kernel_types.h
-@@ -33,6 +33,8 @@ typedef unsigned int	__kernel_gid32_t;
- typedef unsigned short	__kernel_old_uid_t;
- typedef unsigned short	__kernel_old_gid_t;
- typedef unsigned short	__kernel_old_dev_t;
-+typedef long		__kernel_long_t;
-+typedef unsigned long	__kernel_ulong_t;
- typedef long long	__kernel_loff_t;
- 
- /* Beginning in 2.6 kernels, which is the first version that includes the
diff --git a/toolchain/uClibc/patches-0.9.33.2/981-fix_setting_arch_native_bit.patch b/toolchain/uClibc/patches-0.9.33.2/981-fix_setting_arch_native_bit.patch
deleted file mode 100644
index 4c7dd46891..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/981-fix_setting_arch_native_bit.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 7e509aae23665b9a79f6c9b4c24d1d8a55bd3582 Mon Sep 17 00:00:00 2001
-From: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Date: Wed, 24 Jul 2013 15:30:35 +0000
-Subject: Rules.mak: Fix setting arch native bit
-
-fix breakage from 603af30d
-
-Removing the whitespace from findstring for 64 bit architectures has
-bad consequences since powerpc would be a match in powerpc64 and sparc
-would also be a match in sparc64.
-That doesn't make them 64 bits in reality causing general breakage.
-
-Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
-Reviewed-by: Markos Chandras <markos.chandras@imgtec.com>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
-
---- a/Rules.mak
-+++ b/Rules.mak
-@@ -121,7 +121,7 @@ UBACKTRACE_DSO := libubacktrace.so.$(ABI
- 
- UCLIBC_LDSO_NAME := ld-uClibc
- ARCH_NATIVE_BIT := 32
--ifneq ($(findstring $(TARGET_ARCH),hppa64 ia64 powerpc64 s390x sparc64 x86_64),)
-+ifneq ($(findstring  $(TARGET_ARCH) , hppa64 ia64 powerpc64 s390x sparc64 x86_64 ),)
- UCLIBC_LDSO_NAME := ld64-uClibc
- ARCH_NATIVE_BIT := 64
- else
diff --git a/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch b/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch
deleted file mode 100644
index 8f0b511ea6..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/990-no-stack-cache.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/libpthread/nptl/allocatestack.c
-+++ b/libpthread/nptl/allocatestack.c
-@@ -100,7 +100,7 @@
- /* Cache handling for not-yet free stacks.  */
- 
- /* Maximum size in kB of cache.  */
--static size_t stack_cache_maxsize = 40 * 1024 * 1024; /* 40MiBi by default.  */
-+static size_t stack_cache_maxsize = 0; /* embedded systems don't have enough ram for dirty stack caches */
- static size_t stack_cache_actsize;
- 
- /* Mutex protecting this variable.  */
diff --git a/toolchain/uClibc/patches-0.9.33.2/991-gen_wctype.patch b/toolchain/uClibc/patches-0.9.33.2/991-gen_wctype.patch
deleted file mode 100644
index e85d6d4522..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/991-gen_wctype.patch
+++ /dev/null
@@ -1,183 +0,0 @@
---- a/extra/locale/gen_wctype.c
-+++ b/extra/locale/gen_wctype.c
-@@ -227,11 +227,12 @@ int main(int argc, char **argv)
- 			++verbose;
- 			continue;
- 		}
--		if (!setlocale(LC_CTYPE, *argv)) {
-+	/* setlocale might be just a stub */
-+	/*	if (!setlocale(LC_CTYPE, *argv)) {
- 			verbose_msg("setlocale(LC_CTYPE,%s) failed!  Skipping this locale...\n", *argv);
- 			continue;
- 		}
--
-+	*/
- 		if (!(totitle = wctrans("totitle"))) {
- 			verbose_msg("no totitle transformation.\n");
- 		}
-@@ -306,43 +307,43 @@ int main(int argc, char **argv)
- #endif
- #if 0
- 				if (c < 256) {
--					unsigned int glibc;
-+					unsigned int curr_stdclib;
- 
--					glibc = 0;
--					if (isalnum(c)) ++glibc; glibc <<= 1;
--					if (isalpha(c)) ++glibc; glibc <<= 1;
--					if (isblank(c)) ++glibc; glibc <<= 1;
--					if (iscntrl(c)) ++glibc; glibc <<= 1;
--					if (isdigit(c)) ++glibc; glibc <<= 1;
--					if (isgraph(c)) ++glibc; glibc <<= 1;
--					if (islower(c)) ++glibc; glibc <<= 1;
--					if (isprint(c)) ++glibc; glibc <<= 1;
--					if (ispunct(c)) ++glibc; glibc <<= 1;
--					if (isspace(c)) ++glibc; glibc <<= 1;
--					if (isupper(c)) ++glibc; glibc <<= 1;
--					if (isxdigit(c)) ++glibc;
--					verbose_msg("%#8x : ctype %#4x\n", c, glibc);
-+					curr_stdclib = 0;
-+					if (isalnum(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (isalpha(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (isblank(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iscntrl(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (isdigit(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (isgraph(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (islower(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (isprint(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (ispunct(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (isspace(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (isupper(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (isxdigit(c)) ++curr_stdclib;
-+					verbose_msg("%#8x : ctype %#4x\n", c, curr_stdclib);
- 				}
- #endif
- #if 1
- 				/* Paranoid checking... */
- 				{
--					unsigned int glibc;
-+					unsigned int curr_stdclib;
- 					unsigned int mine;
- 
--					glibc = 0;
--					if (iswalnum(c)) ++glibc; glibc <<= 1;
--					if (iswalpha(c)) ++glibc; glibc <<= 1;
--					if (iswblank(c)) ++glibc; glibc <<= 1;
--					if (iswcntrl(c)) ++glibc; glibc <<= 1;
--					if (iswdigit(c)) ++glibc; glibc <<= 1;
--					if (iswgraph(c)) ++glibc; glibc <<= 1;
--					if (iswlower(c)) ++glibc; glibc <<= 1;
--					if (iswprint(c)) ++glibc; glibc <<= 1;
--					if (iswpunct(c)) ++glibc; glibc <<= 1;
--					if (iswspace(c)) ++glibc; glibc <<= 1;
--					if (iswupper(c)) ++glibc; glibc <<= 1;
--					if (iswxdigit(c)) ++glibc;
-+					curr_stdclib = 0;
-+					if (iswalnum(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswalpha(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswblank(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswcntrl(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswdigit(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswgraph(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswlower(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswprint(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswpunct(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswspace(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswupper(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+					if (iswxdigit(c)) ++curr_stdclib;
- 
- 					mine = 0;
- 					if (mywalnum(d,c)) ++mine; mine <<= 1;
-@@ -358,15 +359,15 @@ int main(int argc, char **argv)
- 					if (mywupper(d,c)) ++mine; mine <<= 1;
- 					if (mywxdigit(d,c)) ++mine;
- 
--					if (glibc != mine) {
--						verbose_msg("%#8x : glibc %#4x != %#4x mine  %u\n", c, glibc, mine, d);
-+					if (curr_stdclib != mine) {
-+						verbose_msg("%#8x : curr_stdclib %#4x != %#4x mine  %u\n", c, curr_stdclib, mine, d);
- 						return EXIT_FAILURE;
- 					}
- #if 0
- 					if (iswctype(c,is_comb) || iswctype(c,is_comb3)) {
- /*						if (!iswpunct(c)) { */
- 							verbose_msg("%#8x : %d %d %#4x\n",
--								   c, iswctype(c,is_comb),iswctype(c,is_comb3), glibc);
-+								   c, iswctype(c,is_comb),iswctype(c,is_comb3), curr_stdclib);
- /*						} */
- 					}
- #endif
-@@ -553,7 +554,7 @@ int main(int argc, char **argv)
- 		for (c = 0; c <= 0x10ffffUL; c++)
- #endif
- 		{
--			unsigned int glibc;
-+			unsigned int curr_stdclib;
- 			unsigned int mine;
- 			unsigned int upper, lower;
- 
-@@ -568,19 +569,19 @@ int main(int argc, char **argv)
- 			}
- #endif
- #endif
--			glibc = 0;
--			if (iswalnum(c)) ++glibc; glibc <<= 1;
--			if (iswalpha(c)) ++glibc; glibc <<= 1;
--			if (iswblank(c)) ++glibc; glibc <<= 1;
--			if (iswcntrl(c)) ++glibc; glibc <<= 1;
--			if (iswdigit(c)) ++glibc; glibc <<= 1;
--			if (iswgraph(c)) ++glibc; glibc <<= 1;
--			if (iswlower(c)) ++glibc; glibc <<= 1;
--			if (iswprint(c)) ++glibc; glibc <<= 1;
--			if (iswpunct(c)) ++glibc; glibc <<= 1;
--			if (iswspace(c)) ++glibc; glibc <<= 1;
--			if (iswupper(c)) ++glibc; glibc <<= 1;
--			if (iswxdigit(c)) ++glibc;
-+			curr_stdclib = 0;
-+			if (iswalnum(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswalpha(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswblank(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswcntrl(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswdigit(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswgraph(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswlower(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswprint(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswpunct(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswspace(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswupper(c)) ++curr_stdclib; curr_stdclib <<= 1;
-+			if (iswxdigit(c)) ++curr_stdclib;
- 
- 			{
- 				unsigned int u;
-@@ -630,8 +631,8 @@ int main(int argc, char **argv)
- 				if (mywupper(d,c)) ++mine; mine <<= 1;
- 				if (mywxdigit(d,c)) ++mine;
- 
--				if (glibc != mine) {
--					verbose_msg("%#8x : glibc %#4x != %#4x mine %d\n", c, glibc, mine, d);
-+				if (curr_stdclib != mine) {
-+					verbose_msg("%#8x : curr_stdclib %#4x != %#4x mine %d\n", c, curr_stdclib, mine, d);
- 					if (c < 0x30000UL) {
- 						verbose_msg("sc=%#x u=%#x n=%#x i0=%#x i1=%#x\n", sc, u, n, i0, i1);
- 					}
-@@ -655,17 +656,17 @@ int main(int argc, char **argv)
- 				}
- 
- 				if (towupper(c) != upper) {
--					verbose_msg("%#8x : towupper glibc %#4x != %#4x mine\n",
-+					verbose_msg("%#8x : towupper curr_stdclib %#4x != %#4x mine\n",
- 						   c, towupper(c), upper);
- 				}
- 
- 				if (towlower(c) != lower) {
--					verbose_msg("%#8x : towlower glibc %#4x != %#4x mine   i0 = %d\n",
-+					verbose_msg("%#8x : towlower curr_stdclib %#4x != %#4x mine   i0 = %d\n",
- 						   c, towlower(c), lower, i0);
- 				}
- 
- 				if (totitle && ((tt = towctrans(c, totitle)) != upper)) {
--					verbose_msg("%#8x : totitle glibc %#4lx != %#4x mine   i0 = %d\n",
-+					verbose_msg("%#8x : totitle curr_stdclib %#4lx != %#4x mine   i0 = %d\n",
- 						   c, tt, upper, i0);
- 				}
- 			}
diff --git a/toolchain/uClibc/patches-0.9.33.2/995-add-sigsys-to-siginfo_t-union.patch b/toolchain/uClibc/patches-0.9.33.2/995-add-sigsys-to-siginfo_t-union.patch
deleted file mode 100644
index 4894a56138..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/995-add-sigsys-to-siginfo_t-union.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-Index: uClibc/libc/sysdeps/linux/common/bits/siginfo.h
-===================================================================
---- uClibc.orig/libc/sysdeps/linux/common/bits/siginfo.h
-+++ uClibc/libc/sysdeps/linux/common/bits/siginfo.h
-@@ -104,6 +104,14 @@ typedef struct siginfo
- 	    long int si_band;	/* Band event for SIGPOLL.  */
- 	    int si_fd;
- 	  } _sigpoll;
-+
-+	/* SIGSYS.  */
-+	struct
-+	  {
-+	    void *_call_addr;   /* Calling user insn.  */
-+	    int _syscall;       /* Triggering system call number.  */
-+	    unsigned int _arch; /* AUDIT_ARCH_* of syscall.  */
-+	  } _sigsys;
-       } _sifields;
-   } siginfo_t;
- 
-@@ -122,6 +130,9 @@ typedef struct siginfo
- # define si_addr	_sifields._sigfault.si_addr
- # define si_band	_sifields._sigpoll.si_band
- # define si_fd		_sifields._sigpoll.si_fd
-+# define si_call_addr	_sifields._sigsys._call_addr
-+# define si_syscall	_sifields._sigsys._syscall
-+# define si_arch	_sifields._sigsys._arch
- 
- 
- /* Values for `si_code'.  Positive values are reserved for kernel-generated
-Index: uClibc/libc/sysdeps/linux/alpha/bits/siginfo.h
-===================================================================
---- uClibc.orig/libc/sysdeps/linux/alpha/bits/siginfo.h
-+++ uClibc/libc/sysdeps/linux/alpha/bits/siginfo.h
-@@ -98,6 +98,14 @@ typedef struct siginfo
- 	    int si_band;	/* Band event for SIGPOLL.  */
- 	    int si_fd;
- 	  } _sigpoll;
-+
-+	/* SIGSYS.  */
-+	struct
-+	  {
-+	    void *_call_addr;   /* Calling user insn.  */
-+	    int _syscall;       /* Triggering system call number.  */
-+	    unsigned int _arch; /* AUDIT_ARCH_* of syscall.  */
-+	  } _sigsys;
-       } _sifields;
-   } siginfo_t;
- 
-@@ -116,6 +124,9 @@ typedef struct siginfo
- # define si_addr	_sifields._sigfault.si_addr
- # define si_band	_sifields._sigpoll.si_band
- # define si_fd		_sifields._sigpoll.si_fd
-+# define si_call_addr	_sifields._sigsys._call_addr
-+# define si_syscall	_sifields._sigsys._syscall
-+# define si_arch	_sifields._sigsys._arch
- 
- 
- /* Values for `si_code'.  Positive values are reserved for kernel-generated
-Index: uClibc/libc/sysdeps/linux/ia64/bits/siginfo.h
-===================================================================
---- uClibc.orig/libc/sysdeps/linux/ia64/bits/siginfo.h
-+++ uClibc/libc/sysdeps/linux/ia64/bits/siginfo.h
-@@ -103,6 +103,14 @@ typedef struct siginfo
- 	    long int si_band;	/* Band event for SIGPOLL.  */
- 	    int si_fd;
- 	  } _sigpoll;
-+
-+	/* SIGSYS.  */
-+	struct
-+	  {
-+	    void *_call_addr;   /* Calling user insn.  */
-+	    int _syscall;       /* Triggering system call number.  */
-+	    unsigned int _arch; /* AUDIT_ARCH_* of syscall.  */
-+	  } _sigsys;
-       } _sifields;
-   } siginfo_t;
- 
-@@ -121,6 +129,9 @@ typedef struct siginfo
- # define si_addr	_sifields._sigfault.si_addr
- # define si_band	_sifields._sigpoll.si_band
- # define si_fd		_sifields._sigpoll.si_fd
-+# define si_call_addr	_sifields._sigsys._call_addr
-+# define si_syscall	_sifields._sigsys._syscall
-+# define si_arch	_sifields._sigsys._arch
- 
- # ifdef __USE_GNU
- #  define si_imm	_sifields._sigfault._si_imm
-Index: uClibc/libc/sysdeps/linux/mips/bits/siginfo.h
-===================================================================
---- uClibc.orig/libc/sysdeps/linux/mips/bits/siginfo.h
-+++ uClibc/libc/sysdeps/linux/mips/bits/siginfo.h
-@@ -107,6 +107,14 @@ typedef struct siginfo
- 	    __uid_t si_uid;	/* Real user ID of sending process.  */
- 	    sigval_t si_sigval;	/* Signal value.  */
- 	  } _rt;
-+
-+	/* SIGSYS.  */
-+	struct
-+	  {
-+	    void *_call_addr;   /* Calling user insn.  */
-+	    int _syscall;       /* Triggering system call number.  */
-+	    unsigned int _arch; /* AUDIT_ARCH_* of syscall.  */
-+	  } _sigsys;
-       } _sifields;
-   } siginfo_t;
- 
-@@ -123,6 +131,9 @@ typedef struct siginfo
- # define si_addr	_sifields._sigfault.si_addr
- # define si_band	_sifields._sigpoll.si_band
- # define si_fd		_sifields._sigpoll.si_fd
-+# define si_call_addr	_sifields._sigsys._call_addr
-+# define si_syscall	_sifields._sigsys._syscall
-+# define si_arch	_sifields._sigsys._arch
- 
- 
- /* Values for `si_code'.  Positive values are reserved for kernel-generated
-Index: uClibc/libc/sysdeps/linux/sparc/bits/siginfo.h
-===================================================================
---- uClibc.orig/libc/sysdeps/linux/sparc/bits/siginfo.h
-+++ uClibc/libc/sysdeps/linux/sparc/bits/siginfo.h
-@@ -105,6 +105,14 @@ typedef struct siginfo
- 	    int si_band;	/* Band event for SIGPOLL.  */
- 	    int si_fd;
- 	  } _sigpoll;
-+
-+	/* SIGSYS.  */
-+	struct
-+	  {
-+	    void *_call_addr;   /* Calling user insn.  */
-+	    int _syscall;       /* Triggering system call number.  */
-+	    unsigned int _arch; /* AUDIT_ARCH_* of syscall.  */
-+	  } _sigsys;
-       } _sifields;
-   } siginfo_t;
- 
-@@ -124,6 +132,9 @@ typedef struct siginfo
- # define si_trapno	_sifields._sigfault.si_trapno
- # define si_band	_sifields._sigpoll.si_band
- # define si_fd		_sifields._sigpoll.si_fd
-+# define si_call_addr	_sifields._sigsys._call_addr
-+# define si_syscall	_sifields._sigsys._syscall
-+# define si_arch	_sifields._sigsys._arch
- 
- 
- /* Values for `si_code'.  Positive values are reserved for kernel-generated
diff --git a/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch b/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch
deleted file mode 100644
index 0551290710..0000000000
--- a/toolchain/uClibc/patches-0.9.33.2/999-eventfd_use_bits_scheme.patch
+++ /dev/null
@@ -1,248 +0,0 @@
-From fd355bc1dbcb794ae1abf0fad1459e28d8567ba0 Mon Sep 17 00:00:00 2001
-From: Hiroaki KAWAI <kawai@stratosphere.co.jp>
-Date: Fri, 19 Apr 2013 01:09:35 +0000
-Subject: eventfd.h: Use new "bits/" scheme for arch-specific flags
-
-As in timerfd.h, eventfd.h needs arch-specific definition files.
-alpha, mips and sparc needs separate file, all the other arch
-will use common definition.
-
-This problem is already fixed in glibc.
-
-Also sanitize and provide bits for hppa.
-Make sure not to install the new bits/eventfd unless eventfd support is
-enabled.
-
-Signed-off-by: Hiroaki KAWAI <kawai@stratosphere.co.jp>
-Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
----
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -272,6 +272,7 @@ HEADERS_RM-$(UCLIBC_HAS_XATTR)          
- HEADERS_RM-$(UCLIBC_HAS_XLOCALE)             += xlocale.h
- HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC)          += sys/eventfd.h sys/fsuid.h \
- 	bits/inotify.h \
-+	bits/eventfd.h \
- 	sys/inotify.h \
- 	sys/kdaemon.h \
- 	sys/perm.h \
---- /dev/null
-+++ b/libc/sysdeps/linux/alpha/bits/eventfd.h
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2007-2013 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	_SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for eventfd.  */
-+enum
-+  {
-+    EFD_SEMAPHORE = 000000001,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+    EFD_CLOEXEC   = 010000000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+    EFD_NONBLOCK  = 000000004
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+  };
---- /dev/null
-+++ b/libc/sysdeps/linux/common/bits/eventfd.h
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2007-2013 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	_SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for eventfd.  */
-+enum
-+  {
-+    EFD_SEMAPHORE = 00000001,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+    EFD_CLOEXEC = 02000000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+    EFD_NONBLOCK = 00004000
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+  };
---- a/libc/sysdeps/linux/common/sys/eventfd.h
-+++ b/libc/sysdeps/linux/common/sys/eventfd.h
-@@ -1,4 +1,4 @@
--/* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
-+/* Copyright (C) 2007-2013 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
-@@ -21,21 +21,12 @@
- 
- #include <stdint.h>
- 
-+/* Get the platform-dependent flags.  */
-+#include <bits/eventfd.h>
- 
- /* Type for event counter.  */
- typedef uint64_t eventfd_t;
- 
--/* Flags for signalfd.  */
--enum
--  {
--    EFD_SEMAPHORE = 1,
--#define EFD_SEMAPHORE EFD_SEMAPHORE
--    EFD_CLOEXEC = 02000000,
--#define EFD_CLOEXEC EFD_CLOEXEC
--    EFD_NONBLOCK = 04000
--#define EFD_NONBLOCK EFD_NONBLOCK
--  };
--
- 
- __BEGIN_DECLS
- 
-@@ -43,6 +34,16 @@ __BEGIN_DECLS
-    value to COUNT.  */
- extern int eventfd (int __count, int __flags) __THROW;
- 
-+#if 0 /* not (yet) implemented in uClibc */
-+
-+/* Read event counter and possibly wait for events.  */
-+extern int eventfd_read (int __fd, eventfd_t *__value);
-+
-+/* Increment event counter.  */
-+extern int eventfd_write (int __fd, eventfd_t __value);
-+
-+#endif
-+
- __END_DECLS
- 
- #endif /* sys/eventfd.h */
---- /dev/null
-+++ b/libc/sysdeps/linux/hppa/bits/eventfd.h
-@@ -0,0 +1,32 @@
-+/* Copyright (C) 2007-2013 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	_SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for signalfd.  */
-+enum
-+  {
-+    EFD_SEMAPHORE = 000000001,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+    EFD_CLOEXEC   = 010000000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+/* the below value looks suspicious, should be 000200004 for consistency */
-+    EFD_NONBLOCK  = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+  };
---- /dev/null
-+++ b/libc/sysdeps/linux/mips/bits/eventfd.h
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2007-2013 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	_SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for eventfd.  */
-+enum
-+  {
-+    EFD_SEMAPHORE = 00000001,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+    EFD_CLOEXEC = 02000000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+    EFD_NONBLOCK = 00000200
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+  };
---- /dev/null
-+++ b/libc/sysdeps/linux/sparc/bits/eventfd.h
-@@ -0,0 +1,31 @@
-+/* Copyright (C) 2007-2013 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	_SYS_EVENTFD_H
-+# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
-+#endif
-+
-+/* Flags for eventfd.  */
-+enum
-+  {
-+    EFD_SEMAPHORE = 1,
-+#define EFD_SEMAPHORE EFD_SEMAPHORE
-+    EFD_CLOEXEC = 0x400000,
-+#define EFD_CLOEXEC EFD_CLOEXEC
-+    EFD_NONBLOCK = 0x004000
-+#define EFD_NONBLOCK EFD_NONBLOCK
-+  };
-- 
2.30.2