diff --git a/toolchain/uClibc/Makefile b/toolchain/uClibc/Makefile
index 2d8e4829776363aa6d265161d3d05089cbfbde5e..21a180c22551d50ee8e67fd505042234676b9e6d 100644
--- a/toolchain/uClibc/Makefile
+++ b/toolchain/uClibc/Makefile
@@ -12,10 +12,10 @@ PKG_VERSION:=$(call qstrip,$(CONFIG_UCLIBC_VERSION))
 ifeq ($(PKG_VERSION),0.9.32)
   PKG_SOURCE_URL:=git://git.busybox.net/uClibc
   PKG_SOURCE_PROTO:=git
-  PKG_SOURCE_VERSION:=9112a2398ec58b32cd1a1c6feae195bd8f9a46a2
+  PKG_SOURCE_VERSION:=f6450b67cc92027352367be299cc28dd29cd8486
   PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
   PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-  LIBC_SO_VERSION:=$(PKG_VERSION)-rc2-git
+  LIBC_SO_VERSION:=$(PKG_VERSION)-rc3-git
 else
   PKG_SOURCE_URL:=http://www.uclibc.org/downloads
   PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
diff --git a/toolchain/uClibc/config-0.9.32/common b/toolchain/uClibc/config-0.9.32/common
index 3accadd4e24dcb22a5d9d30c3ade7518153a57d2..13e957274343849f026d9c7fad494620efc3afce 100644
--- a/toolchain/uClibc/config-0.9.32/common
+++ b/toolchain/uClibc/config-0.9.32/common
@@ -53,6 +53,7 @@ TARGET_SUBARCH=""
 # 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
@@ -183,6 +184,7 @@ UCLIBC_LINUX_SPECIFIC=y
 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
diff --git a/toolchain/uClibc/patches-0.9.32/100-do_not_select_extra-warnings.patch b/toolchain/uClibc/patches-0.9.32/100-do_not_select_extra-warnings.patch
index 2c3a69e3342acae59c3cade87a489722e114c9cc..f0c964081d0dbb0715189d93d3483f3d964ca125 100644
--- a/toolchain/uClibc/patches-0.9.32/100-do_not_select_extra-warnings.patch
+++ b/toolchain/uClibc/patches-0.9.32/100-do_not_select_extra-warnings.patch
@@ -1,6 +1,6 @@
 --- a/extra/Configs/Config.in
 +++ b/extra/Configs/Config.in
-@@ -453,7 +453,6 @@ config UCLIBC_HAS_THREADS_NATIVE
+@@ -460,7 +460,6 @@ config UCLIBC_HAS_THREADS_NATIVE
  	select UCLIBC_HAS_TLS
  	select UCLIBC_HAS_STDIO_FUTEXES
  	# NPTL local:
diff --git a/toolchain/uClibc/patches-0.9.32/110-compat_macros.patch b/toolchain/uClibc/patches-0.9.32/110-compat_macros.patch
index 61dfe55eb697229d3434e0ff7ba71923cd8b8590..a7538b16f8d495e9c398957b9870fd2644a9dddb 100644
--- a/toolchain/uClibc/patches-0.9.32/110-compat_macros.patch
+++ b/toolchain/uClibc/patches-0.9.32/110-compat_macros.patch
@@ -1,6 +1,6 @@
 --- a/include/string.h
 +++ b/include/string.h
-@@ -357,18 +357,40 @@ extern char *index (__const char *__s, i
+@@ -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));
diff --git a/toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch b/toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch
index 4d898f5271387ce9c7ef8e0d04076894b913f717..e9c37f489b70cc73e7b233f31d4943523267e7bf 100644
--- a/toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch
+++ b/toolchain/uClibc/patches-0.9.32/130-ldso-fix-__dl_parse_dynamic_info-segfault.patch
@@ -20,7 +20,7 @@ Signed-off-by: Mark Mentovai <mark at moxienet.com>
 ldso/ldso/ldso.c |   12 +++++++++---
 --- a/ldso/ldso/ldso.c
 +++ b/ldso/ldso/ldso.c
-@@ -918,9 +918,15 @@ void _dl_get_ready_to_run(struct elf_res
+@@ -925,9 +925,15 @@ void _dl_get_ready_to_run(struct elf_res
  #ifdef __LDSO_LDD_SUPPORT__
  	/* End of the line for ldd.... */
  	if (trace_loaded_objects) {
diff --git a/toolchain/uClibc/patches-0.9.32/190-nptl_use_arch_default_stack_limit.patch b/toolchain/uClibc/patches-0.9.32/190-nptl_use_arch_default_stack_limit.patch
index 5433f3b488f35787d25560d58a033046025f576e..b7f5c82e0576cdb343099e8fc1a12d040e5878d4 100644
--- a/toolchain/uClibc/patches-0.9.32/190-nptl_use_arch_default_stack_limit.patch
+++ b/toolchain/uClibc/patches-0.9.32/190-nptl_use_arch_default_stack_limit.patch
@@ -1,6 +1,6 @@
 --- a/libpthread/nptl/init.c
 +++ b/libpthread/nptl/init.c
-@@ -401,6 +401,10 @@ __pthread_initialize_minimal_internal (v
+@@ -402,6 +402,10 @@ __pthread_initialize_minimal_internal (v
         Use the minimal size acceptable.  */
      limit.rlim_cur = PTHREAD_STACK_MIN;
  
diff --git a/toolchain/uClibc/patches-0.9.32/200-no_forced_unwind.patch b/toolchain/uClibc/patches-0.9.32/200-no_forced_unwind.patch
index 134f57bba10966256a7c3bf128bf469450f1c3da..5d2c1c4561c4854663519eb83a84bc4336af1d1d 100644
--- a/toolchain/uClibc/patches-0.9.32/200-no_forced_unwind.patch
+++ b/toolchain/uClibc/patches-0.9.32/200-no_forced_unwind.patch
@@ -1,6 +1,6 @@
 --- a/Rules.mak
 +++ b/Rules.mak
-@@ -639,7 +639,6 @@ endif
+@@ -658,7 +658,6 @@ endif
  ifeq ($(UCLIBC_HAS_THREADS),y)
  ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  	PTNAME := nptl
diff --git a/toolchain/uClibc/patches-0.9.32/480-powerpc_rel24_support.patch b/toolchain/uClibc/patches-0.9.32/480-powerpc_rel24_support.patch
index 831e7d347501a47ba6bd99889735c06268ea5500..06152491534742280774850d8504a07c09a5cbc6 100644
--- a/toolchain/uClibc/patches-0.9.32/480-powerpc_rel24_support.patch
+++ b/toolchain/uClibc/patches-0.9.32/480-powerpc_rel24_support.patch
@@ -1,6 +1,6 @@
 --- a/ldso/ldso/powerpc/elfinterp.c
 +++ b/ldso/ldso/powerpc/elfinterp.c
-@@ -293,22 +293,17 @@
+@@ -293,22 +293,17 @@ _dl_do_reloc (struct elf_resolve *tpnt,s
  		break;
  #endif
  	case R_PPC_REL24:
diff --git a/toolchain/uClibc/patches-0.9.32/600-ubicom32-uClibc.patch b/toolchain/uClibc/patches-0.9.32/600-ubicom32-uClibc.patch
index 82019617700e7844a714880050b93b709057050c..9bf95363a1d41f43ceb0a7e1e1a1393ec508fb69 100644
--- a/toolchain/uClibc/patches-0.9.32/600-ubicom32-uClibc.patch
+++ b/toolchain/uClibc/patches-0.9.32/600-ubicom32-uClibc.patch
@@ -1,6 +1,6 @@
 --- a/Rules.mak
 +++ b/Rules.mak
-@@ -481,6 +481,17 @@ ifeq ($(TARGET_ARCH),i960)
+@@ -484,6 +484,17 @@ ifeq ($(TARGET_ARCH),i960)
        SYMBOL_PREFIX=_
  endif
  
@@ -30,7 +30,7 @@
  config TARGET_v850
  	bool "v850 (BROKEN)"
  
-@@ -203,6 +206,10 @@ if TARGET_sparc
+@@ -206,6 +209,10 @@ if TARGET_sparc
  source "extra/Configs/Config.sparc"
  endif
  
@@ -43,7 +43,7 @@
  endif
 --- a/extra/Configs/Config.in.arch
 +++ b/extra/Configs/Config.in.arch
-@@ -149,7 +149,7 @@ config UCLIBC_HAS_SOFT_FLOAT
+@@ -153,7 +153,7 @@ config UCLIBC_HAS_SOFT_FLOAT
  config DO_C99_MATH
  	bool "Enable full C99 math library support"
  	depends on UCLIBC_HAS_FLOATS
@@ -101,7 +101,7 @@
 +	string
 --- a/include/elf.h
 +++ b/include/elf.h
-@@ -337,6 +337,8 @@ typedef struct
+@@ -338,6 +338,8 @@ typedef struct
  
  #define EM_XSTORMY16		0xad45
  
@@ -110,9 +110,9 @@
  /* FRV magic number - no EABI available??.  */
  #define EM_CYGNUS_FRV	0x5441
  
-@@ -3063,6 +3065,55 @@ typedef Elf32_Addr Elf32_Conflict;
- /* Keep this the last entry.  */
- #define R_XTENSA_NUM		50
+@@ -3108,6 +3110,55 @@ typedef Elf32_Addr Elf32_Conflict;
+ 
+ #define DT_C6000_NUM    4
  
 +/* Ubicom32 ELF relocation types */
 +#define R_UBICOM32_NONE               0
@@ -168,7 +168,7 @@
  #endif
 --- a/include/features.h
 +++ b/include/features.h
-@@ -445,4 +445,10 @@ uClibc was built without large file supp
+@@ -448,4 +448,10 @@ uClibc was built without large file supp
  # include <libc-internal.h>
  #endif
  
@@ -197,7 +197,7 @@
  
 --- a/ldso/ldso/ldso.c
 +++ b/ldso/ldso/ldso.c
-@@ -327,10 +327,12 @@ void _dl_get_ready_to_run(struct elf_res
+@@ -325,10 +325,12 @@ void _dl_get_ready_to_run(struct elf_res
  		_dl_progname = argv[0];
  	}
  
@@ -4170,7 +4170,7 @@
 +	.set __GI_vfork,vfork
 --- a/libpthread/linuxthreads.old/pthread.c
 +++ b/libpthread/linuxthreads.old/pthread.c
-@@ -393,6 +393,10 @@ void __pthread_initialize_minimal(void)
+@@ -391,6 +391,10 @@ void __pthread_initialize_minimal(void)
  #endif
  
      __libc_multiple_threads_ptr = __libc_pthread_init (ptr_pthread_functions);
@@ -4181,17 +4181,13 @@
  }
  
  
-@@ -461,8 +465,11 @@ static void pthread_initialize(void)
-    * __pthread_initial_thread_bos at address 0. These bounds are refined as we
-    * malloc other stack frames such that they don't overlap. -StS
+@@ -467,7 +471,8 @@ static void pthread_initialize(void)
+    * for a few more details.
     */
--  __pthread_initial_thread_tos =
--    (char *)(((long)CURRENT_STACK_FRAME + getpagesize()) & ~(getpagesize() - 1));
-+  if (__pthread_initial_thread_tos == NULL) {
-+    __pthread_initial_thread_tos =
-+      (char *)(((long)CURRENT_STACK_FRAME + getpagesize()) & ~(getpagesize() - 1));
-+  }
-+
+   __pthread_initial_thread_mid = CURRENT_STACK_FRAME;
+-  __pthread_initial_thread_tos = (char *) -1;
++  if (__pthread_initial_thread_tos == NULL)
++    __pthread_initial_thread_tos = (char *) -1;
    __pthread_initial_thread_bos = (char *) 1; /* set it non-zero so we know we have been here */
    PDEBUG("initial thread stack bounds: bos=%p, tos=%p\n",
  	 __pthread_initial_thread_bos, __pthread_initial_thread_tos);
diff --git a/toolchain/uClibc/patches-0.9.32/601-ubicom32_uClibc_fixes.patch b/toolchain/uClibc/patches-0.9.32/601-ubicom32_uClibc_fixes.patch
index b4f9ce681c24ba67d7c9efd234eedf0541e70771..c618e267b63db76c9d5805f71232bd99deed2f05 100644
--- a/toolchain/uClibc/patches-0.9.32/601-ubicom32_uClibc_fixes.patch
+++ b/toolchain/uClibc/patches-0.9.32/601-ubicom32_uClibc_fixes.patch
@@ -14,7 +14,7 @@
 @@ -166,7 +170,7 @@ unsigned int __dl_parse_dynamic_info(Elf
  	   we'd have to walk all the loadsegs to find out if it was
  	   actually unnecessary, so skip this optimization.  */
- #ifndef __FDPIC__
+ #if !defined __FDPIC__ && !defined __DSBT__
 -	if (load_off != 0)
 +	if (DL_LOADADDR_ISSET(load_off))
  #endif
diff --git a/toolchain/uClibc/patches-0.9.32/910-thumb_blind_options.patch b/toolchain/uClibc/patches-0.9.32/910-thumb_blind_options.patch
index 149668375bd2d385343eafbefd6fb7c37c54357b..9579932670826408f9df35bf26ffc6a9dcee1ccb 100644
--- a/toolchain/uClibc/patches-0.9.32/910-thumb_blind_options.patch
+++ b/toolchain/uClibc/patches-0.9.32/910-thumb_blind_options.patch
@@ -22,7 +22,7 @@ Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
 
 --- a/Rules.mak
 +++ b/Rules.mak
-@@ -348,9 +348,10 @@ ifeq ($(TARGET_ARCH),arm)
+@@ -351,9 +351,10 @@ ifeq ($(TARGET_ARCH),arm)
  	CPU_CFLAGS-$(CONFIG_ARM_SA1100)+=-mtune=strongarm1100 -march=armv4
  	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=$(call check_gcc,-mtune=xscale,-mtune=strongarm110)
  	CPU_CFLAGS-$(CONFIG_ARM_XSCALE)+=-march=armv5te -Wa,-mcpu=xscale
diff --git a/toolchain/uClibc/patches-0.9.32/920-remove_sub-arch_variants.patch b/toolchain/uClibc/patches-0.9.32/920-remove_sub-arch_variants.patch
index 4f71186514529940b500684213a5f36e156fc60d..254841b5dcedb75e74a2cb2f300d41e2f1f26570 100644
--- a/toolchain/uClibc/patches-0.9.32/920-remove_sub-arch_variants.patch
+++ b/toolchain/uClibc/patches-0.9.32/920-remove_sub-arch_variants.patch
@@ -17,7 +17,7 @@ Cc: Carmelo AMOROSO <carmelo.amoroso@st.com>
 
 --- a/Rules.mak
 +++ b/Rules.mak
-@@ -332,25 +332,6 @@ ifeq ($(TARGET_ARCH),arm)
+@@ -335,25 +335,6 @@ ifeq ($(TARGET_ARCH),arm)
  	OPTIMIZATION+=-fstrict-aliasing
  	CPU_CFLAGS-$(ARCH_LITTLE_ENDIAN)+=-mlittle-endian
  	CPU_CFLAGS-$(ARCH_BIG_ENDIAN)+=-mbig-endian