aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/uclibc/uclibc-0.9.27
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
committerDenys Dmytriyenko <denis@denix.org>2009-03-17 14:32:59 -0400
commit709c4d66e0b107ca606941b988bad717c0b45d9b (patch)
tree37ee08b1eb308f3b2b6426d5793545c38396b838 /recipes/uclibc/uclibc-0.9.27
parentfa6cd5a3b993f16c27de4ff82b42684516d433ba (diff)
downloadopenembedded-709c4d66e0b107ca606941b988bad717c0b45d9b.tar.gz
rename packages/ to recipes/ per earlier agreement
See links below for more details: http://thread.gmane.org/gmane.comp.handhelds.openembedded/21326 http://thread.gmane.org/gmane.comp.handhelds.openembedded/21816 Signed-off-by: Denys Dmytriyenko <denis@denix.org> Acked-by: Mike Westerhof <mwester@dls.net> Acked-by: Philip Balister <philip@balister.org> Acked-by: Khem Raj <raj.khem@gmail.com> Acked-by: Marcin Juszkiewicz <hrw@openembedded.org> Acked-by: Koen Kooi <koen@openembedded.org> Acked-by: Frans Meulenbroeks <fransmeulenbroeks@gmail.com>
Diffstat (limited to 'recipes/uclibc/uclibc-0.9.27')
-rw-r--r--recipes/uclibc/uclibc-0.9.27/arm-thumb-defined.patch84
-rw-r--r--recipes/uclibc/uclibc-0.9.27/arm/uClibc.config164
-rw-r--r--recipes/uclibc/uclibc-0.9.27/armeb/uClibc.config160
-rw-r--r--recipes/uclibc/uclibc-0.9.27/dyn-ldconfig.patch34
-rw-r--r--recipes/uclibc/uclibc-0.9.27/i386/uClibc.config170
-rw-r--r--recipes/uclibc/uclibc-0.9.27/i686/uClibc.config170
-rw-r--r--recipes/uclibc/uclibc-0.9.27/mipsel/uClibc.config161
-rw-r--r--recipes/uclibc/uclibc-0.9.27/sh3/uClibc.config159
-rw-r--r--recipes/uclibc/uclibc-0.9.27/sh4/uClibc.config160
-rw-r--r--recipes/uclibc/uclibc-0.9.27/thumb-interwork-asm.patch326
-rw-r--r--recipes/uclibc/uclibc-0.9.27/thumb-ldso-dlboot.patch21
-rw-r--r--recipes/uclibc/uclibc-0.9.27/thumb-static-main.patch60
-rw-r--r--recipes/uclibc/uclibc-0.9.27/thumb-swi.patch82
-rw-r--r--recipes/uclibc/uclibc-0.9.27/thumb-swp.patch102
-rw-r--r--recipes/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch25
-rw-r--r--recipes/uclibc/uclibc-0.9.27/ucslugc/uClibc.config160
-rw-r--r--recipes/uclibc/uclibc-0.9.27/wrt54/uClibc.config155
17 files changed, 2193 insertions, 0 deletions
diff --git a/recipes/uclibc/uclibc-0.9.27/arm-thumb-defined.patch b/recipes/uclibc/uclibc-0.9.27/arm-thumb-defined.patch
new file mode 100644
index 0000000000..675ab6f5c0
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/arm-thumb-defined.patch
@@ -0,0 +1,84 @@
+--- uClibc-0.9.27/ldso/include/dl-string.h.orig 2005-08-09 18:16:50.618935711 -0700
++++ uClibc-0.9.27/ldso/include/dl-string.h 2005-08-09 18:17:02.279669474 -0700
+@@ -250,7 +250,7 @@
+ }
+
+
+-#if defined(mc68000) || defined(__arm__) || defined(__mips__) || defined(__sh__) || defined(__powerpc__)
++#if defined(mc68000) || defined(__arm__) || defined(__mips__) || defined(__sh__) || defined(__powerpc__) || defined(__thumb__)
+ /* On some arches constant strings are referenced through the GOT. */
+ /* XXX Requires load_addr to be defined. */
+ #define SEND_STDERR(X) \
+--- uClibc-0.9.27/ldso/ldso/dl-startup.c.orig 2005-08-09 18:17:02.307671237 -0700
++++ uClibc-0.9.27/ldso/ldso/dl-startup.c 2005-08-09 18:19:40.633634061 -0700
+@@ -137,7 +137,7 @@
+ /* First obtain the information on the stack that tells us more about
+ what binary is loaded, where it is loaded, etc, etc */
+ GET_ARGV(aux_dat, args);
+-#if defined (__arm__) || defined (__mips__) || defined (__cris__)
++#if defined (__arm__) || defined (__mips__) || defined (__cris__) || defined(__thumb__)
+ aux_dat += 1;
+ #endif
+ argc = *(aux_dat - 1);
+@@ -200,7 +200,7 @@
+ __asm__("movel %%a5,%0":"=g"(got));
+ #elif defined(__sparc__)
+ __asm__("\tmov %%l7,%0\n\t":"=r"(got));
+-#elif defined(__arm__)
++#elif defined(__arm__) || defined(__thumb__)
+ __asm__("\tmov %0, r10\n\t":"=r"(got));
+ #elif defined(__powerpc__)
+ __asm__("\tbl _GLOBAL_OFFSET_TABLE_-4@local\n\t":"=l"(got));
+--- uClibc-0.9.27/libc/sysdeps/linux/common/create_module.c.orig 2005-08-09 18:19:40.769642620 -0700
++++ uClibc-0.9.27/libc/sysdeps/linux/common/create_module.c 2005-08-09 18:19:58.442754719 -0700
+@@ -31,7 +31,7 @@
+
+ #ifdef __NR_create_module
+
+-#if defined(__i386__) || defined(__m68k__) || defined(__arm__) || defined(__cris__) || defined(__i960__)
++#if defined(__i386__) || defined(__m68k__) || defined(__arm__) || defined(__cris__) || defined(__i960__) || defined(__thumb__)
+ #define __NR___create_module __NR_create_module
+ #ifdef __STR_NR_create_module
+ #define __STR_NR___create_module __STR_NR_create_module
+--- uClibc-0.9.27/libc/sysdeps/linux/common/iopl.c.orig 2005-08-09 18:20:02.302997628 -0700
++++ uClibc-0.9.27/libc/sysdeps/linux/common/iopl.c 2005-08-09 18:20:12.327628439 -0700
+@@ -9,7 +9,7 @@
+
+ #include "syscalls.h"
+ /* For arm there is a totally different implementation */
+-#if !defined(__arm__)
++#if !defined(__arm__) && !defined(__thumb__)
+ /* Tuns out the m68k unistd.h kernel header is broken */
+ # if defined __ARCH_HAS_MMU__ && defined __NR_iopl && ( !defined(__mc68000__))
+ _syscall1(int, iopl, int, level);
+--- uClibc-0.9.27/libm/math_private.h.orig 2005-08-09 18:20:18.584022129 -0700
++++ uClibc-0.9.27/libm/math_private.h 2005-08-09 18:21:26.280281986 -0700
+@@ -40,7 +40,7 @@
+ * For VFP, floats words follow the memory system mode.
+ */
+
+-#if (__BYTE_ORDER == __BIG_ENDIAN) || defined(__arm__) && !defined(__VFP_FP__)
++#if (__BYTE_ORDER == __BIG_ENDIAN) || (defined(__arm__) || defined(__thumb__)) && !defined(__VFP_FP__)
+
+ typedef union
+ {
+@@ -54,7 +54,7 @@
+
+ #endif
+
+-#if (__BYTE_ORDER == __LITTLE_ENDIAN) && (!defined(__arm__) || defined(__VFP_FP__))
++#if (__BYTE_ORDER == __LITTLE_ENDIAN) && ((!defined(__arm__) && !defined(__thumb__)) || defined(__VFP_FP__))
+
+ typedef union
+ {
+--- uClibc-0.9.27/utils/ldd.c.orig 2005-08-09 18:21:27.724372857 -0700
++++ uClibc-0.9.27/utils/ldd.c 2005-08-09 18:23:13.018998630 -0700
+@@ -51,7 +51,7 @@
+ #include <dmalloc.h>
+ #endif
+
+-#if defined(__arm__)
++#if defined(__arm__) || defined(__thumb__)
+ #define MATCH_MACHINE(x) (x == EM_ARM)
+ #define ELFCLASSM ELFCLASS32
+ #endif
diff --git a/recipes/uclibc/uclibc-0.9.27/arm/uClibc.config b/recipes/uclibc/uclibc-0.9.27/arm/uClibc.config
new file mode 100644
index 0000000000..a20c9a8b63
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/arm/uClibc.config
@@ -0,0 +1,164 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 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_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="arm"
+ARCH_SUPPORTS_BIG_ENDIAN=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM_SA110 is not set
+CONFIG_ARM_SA1100=y
+# CONFIG_ARM_XSCALE is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+# HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="<path/to/kernel/sources>"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+UCLIBC_PREGENERATED_LOCALE_DATA=y
+UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA=y
+UCLIBC_HAS_XLOCALE=y
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y
+UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+UCLIBC_HAS_SYS_ERRLIST=y
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+UCLIBC_HAS_SYS_SIGLIST=y
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.27/armeb/uClibc.config b/recipes/uclibc/uclibc-0.9.27/armeb/uClibc.config
new file mode 100644
index 0000000000..25e68fe378
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/armeb/uClibc.config
@@ -0,0 +1,160 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 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_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="arm"
+ARCH_SUPPORTS_BIG_ENDIAN=y
+CONFIG_GENERIC_ARM=y
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# ARCH_LITTLE_ENDIAN is not set
+ARCH_BIG_ENDIAN=y
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+# HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/home/kergoth/code/build-armeb/tmp.linux-uclibc/cross/armeb-linux-uclibc/include"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# UCLIBC_STATIC_LDCONFIG is not set
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.27/dyn-ldconfig.patch b/recipes/uclibc/uclibc-0.9.27/dyn-ldconfig.patch
new file mode 100644
index 0000000000..a053b9ee81
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/dyn-ldconfig.patch
@@ -0,0 +1,34 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- uClibc/utils/Makefile~dyn-ldconfig
++++ uClibc/utils/Makefile
+@@ -45,7 +45,7 @@
+ $(STRIPTOOL) -x -R .note -R .comment $@
+
+ ldconfig: ldconfig.c
+- $(CC) $(CFLAGS) -Wl,-s -static \
++ $(CC) $(CFLAGS) -Wl,-s $(if $(filter $(UCLIBC_STATIC_LDCONFIG),y),-static) \
+ -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
+ -DUCLIBC_LDSO=$(UCLIBC_LDSO) -I. -I../ldso/include \
+ $^ -o $@
+--- uClibc/extra/Configs/Config.in~dyn-ldconfig
++++ uClibc/extra/Configs/Config.in
+@@ -311,6 +311,15 @@
+ if you are using an older Linux kernel (2.0.x) that lacks large file
+ support. Enabling this option will increase the size of uClibc.
+
++config UCLIBC_STATIC_LDCONFIG
++ bool "Link ldconfig statically"
++ default y
++ help
++ If you wish to link the ldconfig binary statically, enable this option.
++ It being static can be beneficial if you have a library problem and need
++ ldconfig to recover from it. If keeping the size down is more important
++ to you than system recovery, disable this option.
++
+ choice
+ prompt "Malloc Implementation"
+ default MALLOC if ! ARCH_HAS_MMU
diff --git a/recipes/uclibc/uclibc-0.9.27/i386/uClibc.config b/recipes/uclibc/uclibc-0.9.27/i386/uClibc.config
new file mode 100644
index 0000000000..90d5ce1fd7
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/i386/uClibc.config
@@ -0,0 +1,170 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+TARGET_i386=y
+# TARGET_i960 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_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="i386"
+# CONFIG_GENERIC_386 is not set
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+CONFIG_PENTIUM4=y
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+HAS_FPU=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/home/kergoth/code/user/oe/build-colinux/tmp/cross/i686-linux-uclibc/include"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# UCLIBC_STATIC_LDCONFIG is not set
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+UCLIBC_PREGENERATED_LOCALE_DATA=y
+# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_HAS_XLOCALE=y
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y
+UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.27/i686/uClibc.config b/recipes/uclibc/uclibc-0.9.27/i686/uClibc.config
new file mode 100644
index 0000000000..90d5ce1fd7
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/i686/uClibc.config
@@ -0,0 +1,170 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+TARGET_i386=y
+# TARGET_i960 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_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="i386"
+# CONFIG_GENERIC_386 is not set
+# CONFIG_386 is not set
+# CONFIG_486 is not set
+# CONFIG_586 is not set
+# CONFIG_586MMX is not set
+# CONFIG_686 is not set
+# CONFIG_PENTIUMII is not set
+# CONFIG_PENTIUMIII is not set
+CONFIG_PENTIUM4=y
+# CONFIG_K6 is not set
+# CONFIG_K7 is not set
+# CONFIG_ELAN is not set
+# CONFIG_CRUSOE is not set
+# CONFIG_WINCHIPC6 is not set
+# CONFIG_WINCHIP2 is not set
+# CONFIG_CYRIXIII is not set
+# CONFIG_NEHEMIAH is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+HAS_FPU=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/home/kergoth/code/user/oe/build-colinux/tmp/cross/i686-linux-uclibc/include"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# UCLIBC_STATIC_LDCONFIG is not set
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+UCLIBC_PREGENERATED_LOCALE_DATA=y
+# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_HAS_XLOCALE=y
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y
+UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.27/mipsel/uClibc.config b/recipes/uclibc/uclibc-0.9.27/mipsel/uClibc.config
new file mode 100644
index 0000000000..b71ae46456
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/mipsel/uClibc.config
@@ -0,0 +1,161 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+TARGET_mips=y
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="mips"
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_SUPPORTS_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_MIPS64 is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+# HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/home/kergoth/code/build-wrt/tmp/cross/mipsel-linux-uclibc/include"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+UCLIBC_PREGENERATED_LOCALE_DATA=y
+# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_HAS_XLOCALE=y
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y
+UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.27/sh3/uClibc.config b/recipes/uclibc/uclibc-0.9.27/sh3/uClibc.config
new file mode 100644
index 0000000000..b557506b9b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/sh3/uClibc.config
@@ -0,0 +1,159 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 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=y
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="sh"
+ARCH_SUPPORTS_BIG_ENDIAN=y
+HAVE_DOT_HIDDEN=y
+# CONFIG_SH2 is not set
+CONFIG_SH3=y
+# CONFIG_SH4 is not set
+# CONFIG_SH5 is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+HAS_FPU=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/path/to/kernel/sources"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+FORCE_SHAREABLE_TEXT_SEGMENTS=y
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# UCLIBC_STATIC_LDCONFIG is not set
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+UCLIBC_PREGENERATED_LOCALE_DATA=y
+# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_HAS_XLOCALE=y
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y
+UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.27/sh4/uClibc.config b/recipes/uclibc/uclibc-0.9.27/sh4/uClibc.config
new file mode 100644
index 0000000000..a80f4dcbe1
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/sh4/uClibc.config
@@ -0,0 +1,160 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 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=y
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="sh"
+ARCH_SUPPORTS_BIG_ENDIAN=y
+# CONFIG_GENERIC_ARM is not set
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+HAVE_DOT_HIDDEN=y
+# CONFIG_SH2 is not set
+# CONFIG_SH3 is not set
+CONFIG_SH4=y
+# CONFIG_SH5 is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+HAS_FPU=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/path/to/kernel/sources"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+FORCE_SHAREABLE_TEXT_SEGMENTS=y
+# UCLIBC_PIE_SUPPORT is not set
+LDSO_LDD_SUPPORT=y
+UCLIBC_CTOR_DTOR=y
+# UCLIBC_PROPOLICE is not set
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+UCLIBC_HAS_LOCALE=y
+UCLIBC_PREGENERATED_LOCALE_DATA=y
+# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
+UCLIBC_HAS_XLOCALE=y
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_DIGIT_GROUPING=y
+UCLIBC_HAS_SCANF_LENIENT_DIGIT_GROUPING=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GETTEXT_AWARENESS=y
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.27/thumb-interwork-asm.patch b/recipes/uclibc/uclibc-0.9.27/thumb-interwork-asm.patch
new file mode 100644
index 0000000000..bc99f9a5db
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/thumb-interwork-asm.patch
@@ -0,0 +1,326 @@
+--- uClibc-0.9.27/ldso/include/dl-elf.h 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/ldso/include/dl-elf.h 2005-08-12 18:24:43.000000000 -0700
+@@ -112,6 +112,13 @@
+ # define ELF_RTYPE_CLASS_COPY (0x2)
+ #endif
+ #define ELF_RTYPE_CLASS_PLT (0x1)
++/* The type class can be qualified by a list (mask) of the acceptable
++ * STT_ symbol types, if not given the default is everything numerically
++ * <= STT_FUNC (from the original code...)
++ */
++#define ELF_RTYPE_CLASS_OF(type) ((1<<2) << (type))
++#define ELF_RTYPE_CLASS_ALL (0xffff << 2)
++#define ELF_RTYPE_CLASS_DEFAULT (((ELF_RTYPE_CLASS_OF(STT_FUNC) << 1) - 1)&ELF_RTYPE_CLASS_ALL)
+
+
+ /* Convert between the Linux flags for page protections and the
+--- uClibc-0.9.27/ldso/ldso/arm/resolve.S 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/ldso/ldso/arm/resolve.S 2005-08-13 15:08:27.523344709 -0700
+@@ -1,43 +1,117 @@
+ /*
+- * This function is _not_ called directly. It is jumped to (so no return
+- * address is on the stack) when attempting to use a symbol that has not yet
+- * been resolved. The first time a jump symbol (such as a function call inside
+- * a shared library) is used (before it gets resolved) it will jump here to
+- * _dl_linux_resolve. When we get called the stack looks like this:
+- * reloc_entry
+- * tpnt
+- *
+- * This function saves all the registers, puts a copy of reloc_entry and tpnt
+- * on the stack (as function arguments) then make the function call
+- * _dl_linux_resolver(tpnt, reloc_entry). _dl_linux_resolver() figures out
+- * where the jump symbol is _really_ supposed to have jumped to and returns
+- * that to us. Once we have that, we overwrite tpnt with this fixed up
+- * address. We then clean up after ourselves, put all the registers back how we
+- * found them, then we jump to the fixed up address, which is where the jump
+- * symbol that got us here really wanted to jump to in the first place.
+- * -Erik Andersen
++ * On ARM the PLT contains the following three instructions (for ARM calls):
++ *
++ * add ip, pc, #0xNN00000
++ * add ip, ip, #0xNN000
++ * ldr pc, [ip, #0xNNN]!
++ *
++ * So that, effectively, causes the following to happen:
++ *
++ * ip := pc+0x0NNNNNNN
++ * pc := *ip
++ *
++ * For thumb the above fragment is preceded by "bx pc, nop" to switch to ARM
++ * mode and the thumb 'bl' must go to PLT-4 - the PLT entry is expanded by
++ * four bytes to accomodate the trampoline code.
++ *
++ * 0x0NNNNNNN is the offset of the GOT entry for this function relative to
++ * the PLT entry for this function (where the code is). So the code in the
++ * PLT causes a branch to whatever is in the GOT, leaving the actual address
++ * of the GOT entry in ip. (Note that the GOT must follow the PLT - the
++ * added value is 28 bit unsigned).
++ *
++ * ip is a pointer to the GOT entry for this function, the first time round
++ * *ip points to this code:
++ *
++ * str lr, [sp, #-4]! @ save lr
++ * ldr lr, [pc, #4] @ lr := *dat (&GOT_TABLE[0]-.)
++ * add lr, pc, lr @ lr += &dat (so lr == &GOT_TABLE[0])
++ * ldr pc, [lr, #8]! @ pc := GOT_TABLE[2]
++ *dat: .long &GOT_TABLE[0] - .
++ *
++ * (this code is actually held in the first entry of the PLT). The code
++ * preserves lr then uses it as a scratch register (this preserves the ip
++ * value calculated above). GOT_TABLE[2] is initialized by INIT_GOT in
++ * dl-sysdep.h to point to _dl_linux_resolve - this function. The first
++ * three entries in the GOT are reserved, then they are followed by the
++ * entries for the PLT entries, in order.
++ *
++ * The linker initialises the following (non-reserved) GOT entries to
++ * the offset of the PLT with an associated relocation so that on load
++ * the entry is relocated to point to the PLT - the above code.
++ *
++ * The net effect of all this is that on the first call to an external (as
++ * yet unresolved) function all seven of the above instructions are
++ * executed in sequence and the program ends up executing _dl_linux_resolve
++ * with the following important values in registers:
++ *
++ * ip - a pointer to the GOT entry for the as yet unresolved function
++ * lr - &GOT_TABLE[2]
++ *
++ * GOT_TABLE[2] has already been initialised to _dl_linux_resolve, and
++ * GOT_TABLE[1] is a pointer to the (elf_resolve*) from INIT_GOT.
++ * _dl_linux_resolve unfrobnicates the ip and lr values to obtain arguments
++ * for a call to _dl_linux_resolver (not the additional 'r' on the end) -
++ * this is in elfinterp.c in this directory. The call takes arguments:
++ *
++ * _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
++ *
++ * And returns the address of the function, it also overwrites the GOT
++ * table entry so that the next time round only the first code fragment will
++ * be executed - it will call the function directly.
++ *
++ * [[Of course, this simply doesn't work on ARM 4T with a thumb target - because
++ * 4T did not do the thumb/arm change on ldr pc! It can be made to work by
++ * changing _dl_linux_resolver to return __%s_from_arm for an STT_TFUNC, but
++ * this hasn't been done, and there is no guarantee that the linker generated
++ * that glue anyway.]]
++ *
++ * _dl_linux_resolve gets the arguments to call the resolver as follows:
++ *
++ * tpnt GOT_TABLE[1], [lr-4]
++ * reloc-entry &GOT-&GOT_TABLE[3], (ip - lr - 4)/4
++ *
++ * (I.e. 'GOT' means the table entry for this function, the thing for which
++ * ip holds the address.) The reloc-entry is passed as an index, since
++ * since the GOT table has 4 byte entries the code needs to divide this by 4
++ * to get the actual index.
++ *
++ * John Bowler, August 13, 2005 - determined by experiment and examination
++ * of generated ARM code (there was no documentation...)
++ *
++ * This code is all ARM code - not thumb - _dl_linux_resolver may, itself,
++ * be thumb, in which case the linker will insert the appropriate glue. A
++ * call from thumb to the PLT hits the trampoline code described above.
++ * This code (now) builds a proper stack frame.
++ *
++ * The code does *not* set sb (r9,v6) - to do that the basic PLT instructions
++ * would need to save sb and load the new value and that would require
++ * support in the linker since it generates those instructions. (Also note
++ * that linux/uclibc seems to be using r10 - sl - as a PIC base register - see
++ * dl-startup.c).
+ */
+
+-#define sl r10
+-#define fp r11
+-#define ip r12
+-
+ .text
+ .globl _dl_linux_resolve
+ .type _dl_linux_resolve,%function
+ .align 4;
+
+ _dl_linux_resolve:
+- stmdb sp!, {r0, r1, r2, r3, sl, fp}
+- sub r1, ip, lr
+- sub r1, r1, #4
+- add r1, r1, r1
+- ldr r0, [lr, #-4]
+- mov r3,r0
++ @ _dl_linux_resolver is a standard subroutine call, therefore it
++ @ preserves everything except r0-r3 (a1-a4), ip and lr. This
++ @ function must branch to the real function, and that expects
++ @ r0-r3 and lr to be as they were before the whole PLT stuff -
++ @ ip can be trashed.
++ stmdb sp!, {r0-r3}
++ ldr r0, [lr, #-4] @ r0 := [lr-4] (GOT_TABLE[1])
++ sub r1, lr, ip @ r1 := (lr-ip) (a multple of 4)
++ mvn r1, r1, ASR #2 @ r1 := ~((lr-ip)>>2), since -x = (1+~x)
++ @ ~x = -x-1, therefore ~(r1>>2) = (-((lr-ip)>>2)-1)
++ @ = - ((lr-ip)/4) - 1 = (ip - lr - 4)/4, as required
+
+ bl _dl_linux_resolver
+
+- mov ip, r0
+- ldmia sp!, {r0, r1, r2, r3, sl, fp, lr}
+- mov pc,ip
++ mov ip, r0
++ ldmia sp!, {r0-r3, lr}
++ bx ip
+ .size _dl_linux_resolve, .-_dl_linux_resolve
+--- uClibc-0.9.27/ldso/ldso/arm/elfinterp.c 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/ldso/ldso/arm/elfinterp.c 2005-08-13 16:08:19.061345947 -0700
+@@ -128,7 +128,7 @@
+
+ rel_addr = (ELF_RELOC *) (tpnt->dynamic_info[DT_JMPREL] + tpnt->loadaddr);
+
+- this_reloc = rel_addr + (reloc_entry >> 3);
++ this_reloc = rel_addr + reloc_entry;
+ reloc_type = ELF32_R_TYPE(this_reloc->r_info);
+ symtab_index = ELF32_R_SYM(this_reloc->r_info);
+
+@@ -149,13 +149,20 @@
+ got_addr = (char **) instr_addr;
+
+ /* Get the address of the GOT entry */
+- new_addr = _dl_find_hash(symname, tpnt->symbol_scope,
+- tpnt, ELF_RTYPE_CLASS_PLT);
+- if (unlikely(!new_addr)) {
+- _dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
+- _dl_progname, symname);
+- _dl_exit(1);
+- };
++ new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt,
++ ELF_RTYPE_CLASS_PLT+ELF_RTYPE_CLASS_OF(STT_FUNC));
++ if (!new_addr) {
++ new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt,
++ ELF_RTYPE_CLASS_PLT+ELF_RTYPE_CLASS_OF(STT_ARM_TFUNC));
++ if (new_addr) {
++ /* Fix up the address for thumb. */
++ new_addr = (char*)((unsigned long)new_addr | 1);
++ } else {
++ _dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
++ _dl_progname, symname);
++ _dl_exit(1);
++ }
++ }
+ #if defined (__SUPPORT_LD_DEBUG__)
+ if ((unsigned long) got_addr < 0x40000000)
+ {
+@@ -278,7 +285,8 @@
+ if (symtab_index) {
+
+ symbol_addr = (unsigned long) _dl_find_hash(strtab + symtab[symtab_index].st_name,
+- scope, tpnt, elf_machine_type_class(reloc_type));
++ scope, tpnt, elf_machine_type_class(reloc_type) +
++ ELF_RTYPE_CLASS_DEFAULT + ELF_RTYPE_CLASS_OF(STT_ARM_TFUNC));
+
+ /*
+ * We want to allow undefined references to weak symbols - this might
+--- uClibc-0.9.27/ldso/ldso/dl-hash.c 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/ldso/ldso/dl-hash.c 2005-08-12 18:28:05.000000000 -0700
+@@ -148,7 +148,11 @@
+ char *weak_result = NULL;
+
+ elf_hash_number = _dl_elf_hash(name);
+-
++ /* The type class argument may specify the valid symbol types, if not
++ * any type <= STT_FUNC is permitted.
++ */
++ if ((type_class & ELF_RTYPE_CLASS_ALL) == 0)
++ type_class += ELF_RTYPE_CLASS_DEFAULT;
+ for (; rpnt; rpnt = rpnt->next) {
+ tpnt = rpnt->dyn;
+
+@@ -178,13 +182,16 @@
+ for (si = tpnt->elf_buckets[hn]; si != STN_UNDEF; si = tpnt->chains[si]) {
+ sym = &symtab[si];
+
++ /*... nb, ELF_RTYPE_CLASS_PLT is, must be, "1" - at least
++ * it must be for the following to work.
++ */
+ if (type_class & (sym->st_shndx == SHN_UNDEF))
+ continue;
+- if (_dl_strcmp(strtab + sym->st_name, name) != 0)
+- continue;
+ if (sym->st_value == 0)
+ continue;
+- if (ELF32_ST_TYPE(sym->st_info) > STT_FUNC)
++ if ((ELF_RTYPE_CLASS_OF(ELF32_ST_TYPE(sym->st_info)) & type_class) == 0)
++ continue;
++ if (_dl_strcmp(strtab + sym->st_name, name) != 0)
+ continue;
+
+ switch (ELF32_ST_BIND(sym->st_info)) {
+--- uClibc-0.9.27/libc/sysdeps/linux/arm/clone.S 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/clone.S 2005-08-13 11:56:47.275679748 -0700
+@@ -49,12 +49,13 @@
+ swi __NR_clone
+ movs a1, a1
+ blt __syscall_error (PLT)
+- movne pc, lr
++ bxne lr
+
+ @ pick the function arg and call address off the stack and execute
+ ldr r0, [sp, #4]
++ ldr ip, [sp]
+ mov lr, pc
+- ldr pc, [sp]
++ bx ip
+
+ @ and we are done, passing the return value through r0
+ b _exit (PLT)
+@@ -70,7 +71,7 @@
+
+ /* return -1 */
+ mvn r0, $0
+- mov pc, lr
++ bx lr
+ .size __clone,.-__clone;
+
+ .L4: .word errno
+--- uClibc-0.9.27/libc/sysdeps/linux/arm/mmap64.S 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/mmap64.S 2005-08-13 12:20:35.633560643 -0700
+@@ -44,7 +44,7 @@
+ mov ip, r0
+ swi __NR_mmap2
+ cmn r0, $4096
+- ldmccfd sp!, {r4, r5, pc}
++ ldmccfd sp!, {r4, r5, pc} @ requires >=5T
+ cmn r0, $ENOSYS
+ ldmnefd sp!, {r4, r5, lr}
+ bne __syscall_error (PLT)
+@@ -71,7 +71,7 @@
+
+ /* return -1 */
+ mvn r0, $0
+- mov pc, lr
++ bx lr
+ .size mmap64,.-mmap64;
+
+ .L4: .word errno
+--- uClibc-0.9.27/libc/sysdeps/linux/arm/vfork.S 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/vfork.S 2005-08-13 12:23:27.500375540 -0700
+@@ -37,7 +37,7 @@
+ #ifdef __NR_vfork
+ swi __NR_vfork
+ cmn r0, #4096
+- movcc pc, lr
++ bxcc lr
+
+ /* Check if vfork even exists. */
+ ldr r1, =-ENOSYS
+@@ -50,7 +50,7 @@
+ cmn r0, #4096
+
+ /* Syscal worked. Return to child/parent */
+- movcc pc, lr
++ bxcc lr
+
+ __syscall_error:
+
+@@ -64,7 +64,7 @@
+
+ /* return -1 */
+ mvn r0, $0
+- mov pc, lr
++ bx lr
+
+ .L4: .word errno
+
diff --git a/recipes/uclibc/uclibc-0.9.27/thumb-ldso-dlboot.patch b/recipes/uclibc/uclibc-0.9.27/thumb-ldso-dlboot.patch
new file mode 100644
index 0000000000..9d3cb6bbab
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/thumb-ldso-dlboot.patch
@@ -0,0 +1,21 @@
+--- /home/work-tmp/jbowler/nslu2/ucslugc.0807/work/uclibc-0.9.27-r5/uClibc-0.9.27/ldso/ldso/arm/dl-startup.h 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/ldso/ldso/arm/dl-startup.h 2005-08-11 23:40:01.393797745 -0700
+@@ -7,6 +7,9 @@
+
+ /* Overrive the default _dl_boot function, and replace it with a bit of asm.
+ * Then call the real _dl_boot function, which is now named _dl_boot2. */
++/*NOTE: the 'bx' instruction at the end replaces mov pc, r6 - which is not
++ * compatible with thumb interworking. The instruction should be supported
++ * on all modern ARM architectures (because they all support thumb). */
+ asm("" \
+ " .text\n" \
+ " .globl _dl_boot\n" \
+@@ -17,7 +20,7 @@
+ " bl _dl_boot2\n" \
+ " mov r6, r0\n" \
+ " mov r0, r7\n" \
+-" mov pc, r6\n" \
++" bx r6\n" \
+ );
+
+ #define DL_BOOT(X) static __attribute_used__ void* _dl_boot2 (X)
diff --git a/recipes/uclibc/uclibc-0.9.27/thumb-static-main.patch b/recipes/uclibc/uclibc-0.9.27/thumb-static-main.patch
new file mode 100644
index 0000000000..5b82f39bbf
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/thumb-static-main.patch
@@ -0,0 +1,60 @@
+# This patch almost works, it allows a statically linked application
+# to be compiled with a thumb main and to have this work from a
+# non-thumb uClibc build. However it stops the same thing working
+# in the dynamically linked case (because the value of 'main' doesn't
+# have the low bit set when loaded - something must be wrong with the
+# relocation for STT_ARM_TFUNC?) At present it is not included for
+# this reason.
+--- uClibc-0.9.27/libc/misc/internals/__uClibc_main.c 2005-08-13 18:04:09.078682965 -0700
++++ uClibc-0.9.27/libc/misc/internals/__uClibc_main.c 2005-08-13 18:07:38.159839613 -0700
+@@ -32,6 +32,13 @@
+ /*
+ * Prototypes.
+ */
++#if (defined __arm__ || defined __thumb__) && defined __THUMB_INTERWORK__ && defined __linux__
++/* Because when linking statically the GNU linker provides no glue for
++ * main, so if main is thumb and we are arm or vice versa the static
++ * link fails.
++ */
++# define main __arm_main
++#endif
+ extern int main(int argc, char **argv, char **envp);
+ extern void weak_function _stdio_init(void);
+ extern int *weak_const_function __errno_location(void);
+--- uClibc-0.9.27/libc/sysdeps/linux/arm/Makefile 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/Makefile 2005-08-13 18:08:08.953777353 -0700
+@@ -25,7 +25,7 @@
+ CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
+
+ SSRC=__longjmp.S vfork.S clone.S setjmp.S bsd-setjmp.S \
+- bsd-_setjmp.S sigrestorer.S mmap64.S
++ bsd-_setjmp.S sigrestorer.S mmap64.S mainglue.S
+ SOBJS=$(patsubst %.S,%.o, $(SSRC))
+
+ CSRC=brk.c syscall.c ioperm.c sigaction.c
+--- uClibc-0.9.27/.pc/thumb-static-main.patch/libc/sysdeps/linux/arm/mainglue.S 2005-08-13 18:20:44.181300825 -0700
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/mainglue.S 2005-08-13 19:11:05.031390937 -0700
+@@ -0,0 +1,23 @@
++/*
++ * Apparently the GNU linker doesn't generate the 'glue' code
++ * required for ARM/thumb interwork for the 'main' function -
++ * presumably glibc doesn't need it, but uClibc does.
++ *
++ * We can't provide this stuff, because the linker expects to
++ * have generated the glue code itself and asserts if the code
++ * is not in memory (because it has been read from a pre-existing
++ * definition), therefore we must avoid the glue - so we make
++ * __uClibc_main call __arm_main and define it here (in arm
++ * code).
++ */
++#if defined __THUMB_INTERWORK__
++ .text
++ .arm
++ .global __arm_main
++ .type __arm_main, %function
++__arm_main:
++ ldr ip, [pc]
++ bx ip
++ .word main
++ .size __arm_main,.-__arm_main
++#endif
diff --git a/recipes/uclibc/uclibc-0.9.27/thumb-swi.patch b/recipes/uclibc/uclibc-0.9.27/thumb-swi.patch
new file mode 100644
index 0000000000..a6929a9fc5
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/thumb-swi.patch
@@ -0,0 +1,82 @@
+--- uClibc-0.9.27/.pc/thumb-swi.patch/libc/sysdeps/linux/arm/bits/syscalls.h 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/bits/syscalls.h 2005-08-08 21:04:11.081932985 -0700
+@@ -97,6 +97,7 @@
+ #define INTERNAL_SYSCALL_DECL(err) do { } while (0)
+
+ #undef INTERNAL_SYSCALL
++#if !defined(__thumb__)
+ #define INTERNAL_SYSCALL(name, err, nr, args...) \
+ ({ unsigned int _sys_result; \
+ { \
+@@ -109,6 +110,21 @@
+ _sys_result = _a1; \
+ } \
+ (int) _sys_result; })
++#else
++#define INTERNAL_SYSCALL(name, err, nr, args...) \
++ ({ unsigned int _sys_result; \
++ { \
++ register int _a1 asm ("a1"); \
++ LOAD_ARGS_##nr (args) \
++ register int _r7 asm ("r7") = (int) (SYS_ify(name)); \
++ asm volatile ("swi 0 @ syscall " #name \
++ : "=r" (_a1) \
++ : "r" (_r7) ASM_ARGS_##nr \
++ : "memory"); \
++ _sys_result = _a1; \
++ } \
++ (int) _sys_result; })
++#endif
+
+ #undef INTERNAL_SYSCALL_ERROR_P
+ #define INTERNAL_SYSCALL_ERROR_P(val, err) \
+--- uClibc-0.9.27/libc/sysdeps/linux/arm/brk.c.orig 2005-01-11 23:59:21.000000000 -0800
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/brk.c 2005-08-09 12:44:56.000000000 -0700
+@@ -26,14 +26,7 @@
+
+ int brk (void *addr)
+ {
+- void *newbrk;
+-
+- asm ("mov a1, %1\n" /* save the argment in r0 */
+- "swi %2\n" /* do the system call */
+- "mov %0, a1;" /* keep the return value */
+- : "=r"(newbrk)
+- : "r"(addr), "i" (__NR_brk)
+- : "a1");
++ void *newbrk = (void*)INTERNAL_SYSCALL(brk, , 1, addr);
+
+ __curbrk = newbrk;
+
+--- uClibc-0.9.27/libc/sysdeps/linux/arm/syscall.c.orig 2005-08-09 12:51:10.681364959 -0700
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/syscall.c 2005-08-09 12:52:43.371197563 -0700
+@@ -26,6 +26,7 @@
+
+ long syscall(long sysnum, long a, long b, long c, long d, long e, long f)
+ {
++#if !defined(__thumb__)
+ register long _r0 asm("r0")=(long)(sysnum);
+ register long _r6 asm("r6")=(long)(f);
+ register long _r5 asm("r5")=(long)(e);
+@@ -40,6 +41,21 @@
+ "r"(_r2), "r"(_r3), "r"(_r4), "r"(_r5),
+ "r"(_r6)
+ : "memory");
++#else
++ register long _r7 asm("r7")=(long)(sysnum);
++ register long _r5 asm("r5")=(long)(f);
++ register long _r4 asm("r4")=(long)(e);
++ register long _r3 asm("r3")=(long)(d);
++ register long _r2 asm("r2")=(long)(c);
++ register long _r1 asm("r1")=(long)(b);
++ register long _r0 asm("r0")=(long)(a);
++ asm volatile(
++ "swi 0"
++ : "=r"(_r0)
++ : "r"(_r0), "r"(_r1), "r"(_r2), "r"(_r3),
++ "r"(_r4), "r"(_r5), "r"(_r7)
++ : "memory");
++#endif
+ if(_r0 >=(unsigned long) -4095) {
+ long err = _r0;
+ (*__errno_location())=(-err);
diff --git a/recipes/uclibc/uclibc-0.9.27/thumb-swp.patch b/recipes/uclibc/uclibc-0.9.27/thumb-swp.patch
new file mode 100644
index 0000000000..89171f735d
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/thumb-swp.patch
@@ -0,0 +1,102 @@
+--- uClibc-0.9.27/libc/sysdeps/linux/arm/bits/atomicity.h.orig 2005-08-09 13:12:59.663734027 -0700
++++ uClibc-0.9.27/libc/sysdeps/linux/arm/bits/atomicity.h 2005-08-09 17:54:14.581605661 -0700
+@@ -31,12 +31,23 @@
+ int tmp2;
+ int result;
+ __asm__ ("\n"
++#if defined(__thumb__)
++ "\t.align 0\n"
++ "\tbx pc\n"
++ "\tnop\n"
++ "\t.arm\n"
++#endif
+ "0:\tldr\t%0,[%3]\n\t"
+ "add\t%1,%0,%4\n\t"
+ "swp\t%2,%1,[%3]\n\t"
+ "cmp\t%0,%2\n\t"
+ "swpne\t%1,%2,[%3]\n\t"
+ "bne\t0b"
++#if defined(__thumb__)
++ "\torr %1, pc, #1\n"
++ "\tbx %1\n"
++ "\t.force_thumb"
++#endif
+ : "=&r" (result), "=&r" (tmp1), "=&r" (tmp2)
+ : "r" (mem), "r"(val)
+ : "cc", "memory");
+@@ -51,12 +62,23 @@
+ int tmp2;
+ int tmp3;
+ __asm__ ("\n"
++#if defined(__thumb__)
++ "\t.align 0\n"
++ "\tbx pc\n"
++ "\tnop\n"
++ "\t.arm\n"
++#endif
+ "0:\tldr\t%0,[%3]\n\t"
+ "add\t%1,%0,%4\n\t"
+ "swp\t%2,%1,[%3]\n\t"
+ "cmp\t%0,%2\n\t"
+ "swpne\t%1,%2,[%3]\n\t"
+ "bne\t0b"
++#if defined(__thumb__)
++ "\torr %1, pc, #1\n"
++ "\tbx %1\n"
++ "\t.force_thumb"
++#endif
+ : "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3)
+ : "r" (mem), "r"(val)
+ : "cc", "memory");
+@@ -68,6 +90,12 @@
+ {
+ int result, tmp;
+ __asm__ ("\n"
++#if defined(__thumb__)
++ "\t.align 0\n"
++ "\tbx pc\n"
++ "\tnop\n"
++ "\t.arm\n"
++#endif
+ "0:\tldr\t%1,[%2]\n\t"
+ "mov\t%0,#0\n\t"
+ "cmp\t%1,%4\n\t"
+@@ -78,6 +106,11 @@
+ "bne\t0b\n\t"
+ "mov\t%0,#1\n"
+ "1:"
++#if defined(__thumb__)
++ "\torr %1, pc, #1\n"
++ "\tbx %1\n"
++ "\t.force_thumb"
++#endif
+ : "=&r" (result), "=&r" (tmp)
+ : "r" (p), "r" (newval), "r" (oldval)
+ : "cc", "memory");
+--- uClibc-0.9.27/libpthread/linuxthreads/sysdeps/arm/pt-machine.h.orig 2005-08-09 14:16:50.204774778 -0700
++++ uClibc-0.9.27/libpthread/linuxthreads/sysdeps/arm/pt-machine.h 2005-08-09 17:55:54.027863420 -0700
+@@ -39,9 +39,24 @@
+ {
+ register unsigned int ret;
+
++#if defined(__thumb__)
++ void *pc;
++ __asm__ __volatile__(
++ ".align 0\n"
++ "\tbx pc\n"
++ "\tnop\n"
++ "\t.arm\n"
++ "\tswp %0, %2, [%3]\n"
++ "\torr %1, pc, #1\n"
++ "\tbx %1\n"
++ "\t.force_thumb"
++ : "=r"(ret), "=r"(pc)
++ : "0"(1), "r"(spinlock));
++#else
+ __asm__ __volatile__("swp %0, %1, [%2]"
+ : "=r"(ret)
+ : "0"(1), "r"(spinlock));
++#endif
+
+ return ret;
+ }
diff --git a/recipes/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch b/recipes/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch
new file mode 100644
index 0000000000..ce67e8f764
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/uclibc-makevars-in-quotes.patch
@@ -0,0 +1,25 @@
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+Index: uClibc-0.9.27/Makefile
+===================================================================
+--- uClibc-0.9.27.orig/Makefile 2008-07-23 20:05:34.000000000 -0700
++++ uClibc-0.9.27/Makefile 2008-07-23 20:06:27.000000000 -0700
+@@ -243,14 +243,14 @@ endif
+ .PHONY: utils
+ ifeq ($(strip $(HAVE_SHARED)),y)
+ utils:
+- $(MAKE) CROSS=$(CROSS) CC=$(CC) -C utils
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils
+ else
+ utils: dummy
+ endif
+
+ # Installs helper applications, such as 'ldd' and 'ldconfig'
+ install_utils: utils
+- $(MAKE) CROSS=$(CROSS) CC=$(CC) -C utils install
++ $(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils install
+ #ifeq ($(strip $(UCLIBC_HAS_LOCALE)),y)
+ # @$(MAKE) -C libc/misc/wchar iconv.target
+ # $(INSTALL) -d $(PREFIX)$(RUNTIME_PREFIX)/usr/bin;
diff --git a/recipes/uclibc/uclibc-0.9.27/ucslugc/uClibc.config b/recipes/uclibc/uclibc-0.9.27/ucslugc/uClibc.config
new file mode 100644
index 0000000000..7c8196e93b
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/ucslugc/uClibc.config
@@ -0,0 +1,160 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+TARGET_arm=y
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 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_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="arm"
+ARCH_SUPPORTS_BIG_ENDIAN=y
+CONFIG_GENERIC_ARM=y
+# CONFIG_ARM610 is not set
+# CONFIG_ARM710 is not set
+# CONFIG_ARM720T is not set
+# CONFIG_ARM920T is not set
+# CONFIG_ARM922T is not set
+# CONFIG_ARM926T is not set
+# CONFIG_ARM_SA110 is not set
+# CONFIG_ARM_SA1100 is not set
+# CONFIG_ARM_XSCALE is not set
+# ARCH_LITTLE_ENDIAN is not set
+ARCH_BIG_ENDIAN=y
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+# HAS_FPU is not set
+UCLIBC_HAS_SOFT_FLOAT=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/home/work-tmp/jbowler/nslu2/ucslugc/cross/armeb-linux-uclibc/include"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+PTHREADS_DEBUG_SUPPORT=y
+UCLIBC_HAS_LFS=y
+# UCLIBC_STATIC_LDCONFIG is not set
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+UNIX98PTY_ONLY=y
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+# UCLIBC_HAS_STRING_GENERIC_OPT is not set
+# UCLIBC_HAS_STRING_ARCH_OPT is not set
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+UCLIBC_HAS_STDIO_BUFSIZ_256=y
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_4096 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(DEVEL_PREFIX)/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="//usr"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set
diff --git a/recipes/uclibc/uclibc-0.9.27/wrt54/uClibc.config b/recipes/uclibc/uclibc-0.9.27/wrt54/uClibc.config
new file mode 100644
index 0000000000..5fddbed9ef
--- /dev/null
+++ b/recipes/uclibc/uclibc-0.9.27/wrt54/uClibc.config
@@ -0,0 +1,155 @@
+#
+# Automatically generated make config: don't edit
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_bfin is not set
+# TARGET_cris is not set
+# TARGET_e1 is not set
+# TARGET_frv is not set
+# TARGET_h8300 is not set
+# TARGET_i386 is not set
+# TARGET_i960 is not set
+# TARGET_m68k is not set
+# TARGET_microblaze is not set
+TARGET_mips=y
+# TARGET_nios is not set
+# TARGET_nios2 is not set
+# TARGET_powerpc is not set
+# TARGET_sh is not set
+# TARGET_sparc is not set
+# TARGET_v850 is not set
+
+#
+# Target Architecture Features and Options
+#
+HAVE_ELF=y
+ARCH_SUPPORTS_LITTLE_ENDIAN=y
+TARGET_ARCH="mips"
+ARCH_CFLAGS="-mno-split-addresses"
+ARCH_SUPPORTS_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_MIPS64 is not set
+ARCH_LITTLE_ENDIAN=y
+# ARCH_BIG_ENDIAN is not set
+# ARCH_HAS_NO_MMU is not set
+ARCH_HAS_MMU=y
+UCLIBC_HAS_FLOATS=y
+HAS_FPU=y
+DO_C99_MATH=y
+WARNINGS="-Wall"
+KERNEL_SOURCE="/data/wlan/wrt/openwrt.experimental/toolchain_build_mipsel/linux"
+C_SYMBOL_PREFIX=""
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# HAVE_NO_SHARED is not set
+HAVE_SHARED=y
+# ARCH_HAS_NO_LDSO is not set
+BUILD_UCLIBC_LDSO=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+# LDSO_PRELOAD_FILE_SUPPORT is not set
+LDSO_BASE_FILENAME="ld.so"
+UCLIBC_CTOR_DTOR=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+# PTHREADS_DEBUG_SUPPORT is not set
+UCLIBC_HAS_LFS=y
+# MALLOC is not set
+# MALLOC_SIMPLE is not set
+MALLOC_STANDARD=y
+MALLOC_GLIBC_COMPAT=y
+UCLIBC_DYNAMIC_ATEXIT=y
+HAS_SHADOW=y
+# UNIX98PTY_ONLY is not set
+ASSUME_DEVPTS=y
+UCLIBC_HAS_TM_EXTENSIONS=y
+UCLIBC_HAS_TZ_CACHING=y
+UCLIBC_HAS_TZ_FILE=y
+UCLIBC_HAS_TZ_FILE_READ_MANY=y
+UCLIBC_TZ_FILE_PATH="/etc/TZ"
+
+#
+# Networking Support
+#
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+
+#
+# String and Stdio Support
+#
+UCLIBC_HAS_STRING_GENERIC_OPT=y
+UCLIBC_HAS_STRING_ARCH_OPT=y
+UCLIBC_HAS_CTYPE_TABLES=y
+UCLIBC_HAS_CTYPE_SIGNED=y
+# UCLIBC_HAS_CTYPE_UNSAFE is not set
+UCLIBC_HAS_CTYPE_CHECKED=y
+# UCLIBC_HAS_CTYPE_ENFORCED is not set
+UCLIBC_HAS_WCHAR=y
+# UCLIBC_HAS_LOCALE is not set
+UCLIBC_HAS_HEXADECIMAL_FLOATS=y
+UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
+UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
+UCLIBC_HAS_SCANF_GLIBC_A_FLAG=y
+# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
+# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
+UCLIBC_HAS_STDIO_BUFSIZ_4096=y
+# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
+UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
+# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
+UCLIBC_HAS_STDIO_GETC_MACRO=y
+UCLIBC_HAS_STDIO_PUTC_MACRO=y
+UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
+# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
+UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
+UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
+UCLIBC_HAS_PRINTF_M_SPEC=y
+UCLIBC_HAS_ERRNO_MESSAGES=y
+# UCLIBC_HAS_SYS_ERRLIST is not set
+UCLIBC_HAS_SIGNUM_MESSAGES=y
+# UCLIBC_HAS_SYS_SIGLIST is not set
+UCLIBC_HAS_GNU_GETOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_WORDEXP is not set
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="/lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+
+#
+# uClibc security related options
+#
+# UCLIBC_SECURITY is not set
+
+#
+# uClibc development/debugging options
+#
+# DODEBUG is not set
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MJN3_ONLY is not set