Index: BOOK/packages.ent
===================================================================
--- BOOK/packages.ent	(revision 118c546c7a4776f52c311e3bea59731d3969ab1b)
+++ BOOK/packages.ent	(revision f5994eeabffbc375cf6bc92725c611ddc9728c63)
@@ -55,8 +55,8 @@
 <!ENTITY linux-dl-version "2.6">
 
-<!ENTITY linux-version "2.6.28.7">
-<!ENTITY linux-size "51,483 KB">
+<!ENTITY linux-version "2.6.29">
+<!ENTITY linux-size "55,253 KB">
 <!ENTITY linux-url "&kernel;linux/kernel/v&linux-dl-version;/linux-&linux-version;.tar.bz2">
-<!ENTITY linux-md5 "72d7d509c1f997e6d043bc9c683d89f1">
+<!ENTITY linux-md5 "64921b5ff5cdadbccfcd3820f03be7d8">
 <!ENTITY linux-home "http://www.kernel.org">
 
@@ -68,8 +68,8 @@
 <!ENTITY mpfr-home "http://www.mpfr.org/">
 
-<!ENTITY uclibc-version "0.9.30">
-<!ENTITY uclibc-size "2,238 KB">
+<!ENTITY uclibc-version "0.9.30.1">
+<!ENTITY uclibc-size "2,231 KB">
 <!ENTITY uclibc-url "http://www.uclibc.org/downloads/uClibc-&uclibc-version;.tar.bz2">
-<!ENTITY uclibc-md5 "e5766e2566e0297adebebbcc0aba1f2d">
+<!ENTITY uclibc-md5 "1a4b84e5536ad8170563ffa88c34679c">
 <!ENTITY uclibc-home "http://uclibc.org/">
 
Index: BOOK/patches.ent
===================================================================
--- BOOK/patches.ent	(revision 118c546c7a4776f52c311e3bea59731d3969ab1b)
+++ BOOK/patches.ent	(revision f5994eeabffbc375cf6bc92725c611ddc9728c63)
@@ -33,7 +33,7 @@
 <!ENTITY mpfr-branch_update-patch-size "3 KB">
 
-<!ENTITY uclibc-branch_update-patch "uClibc-&uclibc-version;-branch_update-3.patch">
-<!ENTITY uclibc-branch_update-patch-md5 "7987da42d5ad2a3cbcad571d780d81c6">
-<!ENTITY uclibc-branch_update-patch-size "93 KB">
+<!ENTITY uclibc-branch_update-patch "uClibc-&uclibc-version;-branch_update-1.patch">
+<!ENTITY uclibc-branch_update-patch-md5 "7f1ca40d176b74b865977fb085a5eb7f">
+<!ENTITY uclibc-branch_update-patch-size "36 KB">
 
 <!-- Beyond patches -->
Index: config/uClibc-0.9.30.1.config
===================================================================
--- config/uClibc-0.9.30.1.config	(revision f5994eeabffbc375cf6bc92725c611ddc9728c63)
+++ config/uClibc-0.9.30.1.config	(revision f5994eeabffbc375cf6bc92725c611ddc9728c63)
@@ -0,0 +1,225 @@
+#
+# Default CLFS Embedded uClibc config
+# Version: 0.9.30.1
+#
+# TARGET_alpha is not set
+# TARGET_arm is not set
+# TARGET_avr32 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_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
+
+#
+# Target Architecture Features and Options
+#
+TARGET_ARCH="none"
+FORCE_OPTIONS_FOR_ARCH=y
+# ARCH_LITTLE_ENDIAN is not set
+# ARCH_BIG_ENDIAN is not set
+# ARCH_WANTS_LITTLE_ENDIAN is not set
+# ARCH_WANTS_BIG_ENDIAN is not set
+
+# Using Little Endian
+#
+ARCH_HAS_MMU=y
+ARCH_USE_MMU=y
+UCLIBC_HAS_FLOATS=y
+UCLIBC_HAS_FPU=y
+DO_C99_MATH=y
+UCLIBC_HAS_FENV=y
+UCLIBC_HAS_LONG_DOUBLE_MATH=y
+KERNEL_HEADERS="/mnt/clfs-embedded/usr/include"
+HAVE_DOT_CONFIG=y
+
+#
+# General Library Settings
+#
+# HAVE_NO_PIC is not set
+DOPIC=y
+# ARCH_HAS_NO_SHARED is not set
+# ARCH_HAS_NO_LDSO is not set
+HAVE_SHARED=y
+# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
+LDSO_LDD_SUPPORT=y
+LDSO_CACHE_SUPPORT=y
+LDSO_PRELOAD_FILE_SUPPORT=y
+LDSO_BASE_FILENAME="ld.so"
+# UCLIBC_STATIC_LDCONFIG is not set
+LDSO_RUNPATH=y
+UCLIBC_CTOR_DTOR=y
+LDSO_GNU_HASH_SUPPORT=y
+# HAS_NO_THREADS is not set
+UCLIBC_HAS_THREADS=y
+# PTHREADS_DEBUG_SUPPORT is not set
+LINUXTHREADS_OLD=y
+UCLIBC_HAS_SYSLOG=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
+# COMPAT_ATEXIT is not set
+# UCLIBC_SUSV3_LEGACY is not set
+# UCLIBC_SUSV3_LEGACY_MACROS is not set
+# UCLIBC_HAS_STUBS is not set
+UCLIBC_HAS_SHADOW=y
+UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
+UCLIBC_HAS___PROGNAME=y
+UCLIBC_HAS_PTY=y
+ASSUME_DEVPTS=y
+UNIX98PTY_ONLY=y
+UCLIBC_HAS_GETPT=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"
+
+#
+# Advanced Library Settings
+#
+UCLIBC_PWD_BUFFER_SIZE=256
+UCLIBC_GRP_BUFFER_SIZE=256
+
+#
+# Support various families of functions
+#
+UCLIBC_LINUX_MODULE_24=y
+UCLIBC_LINUX_SPECIFIC=y
+UCLIBC_HAS_GNU_ERROR=y
+# UCLIBC_BSD_SPECIFIC is not set
+# UCLIBC_HAS_BSD_ERR is not set
+# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
+# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
+# UCLIBC_NTP_LEGACY is not set
+# UCLIBC_SV4_DEPRECATED is not set
+UCLIBC_HAS_REALTIME=y
+UCLIBC_HAS_ADVANCED_REALTIME=y
+UCLIBC_HAS_EPOLL=y
+UCLIBC_HAS_XATTR=y
+UCLIBC_HAS_PROFILING=y
+UCLIBC_HAS_CRYPT_IMPL=y
+UCLIBC_HAS_CRYPT=y
+UCLIBC_HAS_NETWORK_SUPPORT=y
+UCLIBC_HAS_SOCKET=y
+UCLIBC_HAS_IPV4=y
+UCLIBC_HAS_IPV6=y
+UCLIBC_HAS_RPC=y
+UCLIBC_HAS_FULL_RPC=y
+UCLIBC_HAS_REENTRANT_RPC=y
+UCLIBC_USE_NETLINK=y
+UCLIBC_SUPPORT_AI_ADDRCONFIG=y
+# UCLIBC_HAS_BSD_RES_CLOSE is not set
+
+#
+# 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 is not set
+UCLIBC_HAS_CTYPE_ENFORCED=y
+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_SHUTDOWN_ON_ABORT 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=y
+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
+UCLIBC_HAS_GNU_GETSUBOPT=y
+
+#
+# Big and Tall
+#
+UCLIBC_HAS_REGEX=y
+# UCLIBC_HAS_REGEX_OLD is not set
+UCLIBC_HAS_FNMATCH=y
+# UCLIBC_HAS_FNMATCH_OLD is not set
+UCLIBC_HAS_WORDEXP=y
+UCLIBC_HAS_FTW=y
+UCLIBC_HAS_GLOB=y
+UCLIBC_HAS_GNU_GLOB=y
+
+#
+# Library Installation Options
+#
+SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)lib"
+RUNTIME_PREFIX="/"
+DEVEL_PREFIX="/usr/"
+
+#
+# Security options
+#
+# UCLIBC_BUILD_PIE is not set
+UCLIBC_HAS_ARC4RANDOM=y
+# HAVE_NO_SSP is not set
+UCLIBC_HAS_SSP=y
+UCLIBC_HAS_SSP_COMPAT=y
+SSP_QUICK_CANARY=y
+PROPOLICE_BLOCK_ABRT=y
+# PROPOLICE_BLOCK_SEGV is not set
+UCLIBC_BUILD_SSP=y
+UCLIBC_BUILD_RELRO=y
+UCLIBC_BUILD_NOW=y
+UCLIBC_BUILD_NOEXECSTACK=y
+
+#
+# uClibc development/debugging options
+#
+CROSS_COMPILER_PREFIX="i586-unknown-linux-uclibc-"
+UCLIBC_EXTRA_CFLAGS=""
+# DODEBUG is not set
+# DODEBUG_PT is not set
+DOSTRIP=y
+# DOASSERTS is not set
+# SUPPORT_LD_DEBUG is not set
+# SUPPORT_LD_DEBUG_EARLY is not set
+# UCLIBC_MALLOC_DEBUGGING is not set
+WARNINGS="-Wall"
+# EXTRA_WARNINGS is not set
+# DOMULTI is not set
+# UCLIBC_MJN3_ONLY is not set
Index: nfig/uClibc-0.9.30.config
===================================================================
--- config/uClibc-0.9.30.config	(revision 118c546c7a4776f52c311e3bea59731d3969ab1b)
+++ 	(revision )
@@ -1,225 +1,0 @@
-#
-# Default CLFS Embedded uClibc config
-# Version: 0.9.30
-#
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_avr32 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_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
-
-#
-# Target Architecture Features and Options
-#
-TARGET_ARCH="none"
-FORCE_OPTIONS_FOR_ARCH=y
-# ARCH_LITTLE_ENDIAN is not set
-# ARCH_BIG_ENDIAN is not set
-# ARCH_WANTS_LITTLE_ENDIAN is not set
-# ARCH_WANTS_BIG_ENDIAN is not set
-
-# Using Little Endian
-#
-ARCH_HAS_MMU=y
-ARCH_USE_MMU=y
-UCLIBC_HAS_FLOATS=y
-UCLIBC_HAS_FPU=y
-DO_C99_MATH=y
-UCLIBC_HAS_FENV=y
-UCLIBC_HAS_LONG_DOUBLE_MATH=y
-KERNEL_HEADERS="/mnt/clfs-embedded/usr/include"
-HAVE_DOT_CONFIG=y
-
-#
-# General Library Settings
-#
-# HAVE_NO_PIC is not set
-DOPIC=y
-# ARCH_HAS_NO_SHARED is not set
-# ARCH_HAS_NO_LDSO is not set
-HAVE_SHARED=y
-# FORCE_SHAREABLE_TEXT_SEGMENTS is not set
-LDSO_LDD_SUPPORT=y
-LDSO_CACHE_SUPPORT=y
-LDSO_PRELOAD_FILE_SUPPORT=y
-LDSO_BASE_FILENAME="ld.so"
-# UCLIBC_STATIC_LDCONFIG is not set
-LDSO_RUNPATH=y
-UCLIBC_CTOR_DTOR=y
-LDSO_GNU_HASH_SUPPORT=y
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_THREADS=y
-# PTHREADS_DEBUG_SUPPORT is not set
-LINUXTHREADS_OLD=y
-UCLIBC_HAS_SYSLOG=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
-# COMPAT_ATEXIT is not set
-# UCLIBC_SUSV3_LEGACY is not set
-# UCLIBC_SUSV3_LEGACY_MACROS is not set
-# UCLIBC_HAS_STUBS is not set
-UCLIBC_HAS_SHADOW=y
-UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y
-UCLIBC_HAS___PROGNAME=y
-UCLIBC_HAS_PTY=y
-ASSUME_DEVPTS=y
-UNIX98PTY_ONLY=y
-UCLIBC_HAS_GETPT=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"
-
-#
-# Advanced Library Settings
-#
-UCLIBC_PWD_BUFFER_SIZE=256
-UCLIBC_GRP_BUFFER_SIZE=256
-
-#
-# Support various families of functions
-#
-UCLIBC_LINUX_MODULE_24=y
-UCLIBC_LINUX_SPECIFIC=y
-UCLIBC_HAS_GNU_ERROR=y
-# UCLIBC_BSD_SPECIFIC is not set
-# UCLIBC_HAS_BSD_ERR is not set
-# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set
-# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set
-# UCLIBC_NTP_LEGACY is not set
-# UCLIBC_SV4_DEPRECATED is not set
-UCLIBC_HAS_REALTIME=y
-UCLIBC_HAS_ADVANCED_REALTIME=y
-UCLIBC_HAS_EPOLL=y
-UCLIBC_HAS_XATTR=y
-UCLIBC_HAS_PROFILING=y
-UCLIBC_HAS_CRYPT_IMPL=y
-UCLIBC_HAS_CRYPT=y
-UCLIBC_HAS_NETWORK_SUPPORT=y
-UCLIBC_HAS_SOCKET=y
-UCLIBC_HAS_IPV4=y
-UCLIBC_HAS_IPV6=y
-UCLIBC_HAS_RPC=y
-UCLIBC_HAS_FULL_RPC=y
-UCLIBC_HAS_REENTRANT_RPC=y
-UCLIBC_USE_NETLINK=y
-UCLIBC_SUPPORT_AI_ADDRCONFIG=y
-# UCLIBC_HAS_BSD_RES_CLOSE is not set
-
-#
-# 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 is not set
-UCLIBC_HAS_CTYPE_ENFORCED=y
-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_SHUTDOWN_ON_ABORT 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=y
-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
-UCLIBC_HAS_GNU_GETSUBOPT=y
-
-#
-# Big and Tall
-#
-UCLIBC_HAS_REGEX=y
-# UCLIBC_HAS_REGEX_OLD is not set
-UCLIBC_HAS_FNMATCH=y
-# UCLIBC_HAS_FNMATCH_OLD is not set
-UCLIBC_HAS_WORDEXP=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GLOB=y
-UCLIBC_HAS_GNU_GLOB=y
-
-#
-# Library Installation Options
-#
-SHARED_LIB_LOADER_PREFIX="$(RUNTIME_PREFIX)lib"
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="/usr/"
-
-#
-# Security options
-#
-# UCLIBC_BUILD_PIE is not set
-UCLIBC_HAS_ARC4RANDOM=y
-# HAVE_NO_SSP is not set
-UCLIBC_HAS_SSP=y
-UCLIBC_HAS_SSP_COMPAT=y
-SSP_QUICK_CANARY=y
-PROPOLICE_BLOCK_ABRT=y
-# PROPOLICE_BLOCK_SEGV is not set
-UCLIBC_BUILD_SSP=y
-UCLIBC_BUILD_RELRO=y
-UCLIBC_BUILD_NOW=y
-UCLIBC_BUILD_NOEXECSTACK=y
-
-#
-# uClibc development/debugging options
-#
-CROSS_COMPILER_PREFIX="i586-unknown-linux-uclibc-"
-UCLIBC_EXTRA_CFLAGS=""
-# DODEBUG is not set
-# DODEBUG_PT is not set
-DOSTRIP=y
-# DOASSERTS is not set
-# SUPPORT_LD_DEBUG is not set
-# SUPPORT_LD_DEBUG_EARLY is not set
-# UCLIBC_MALLOC_DEBUGGING is not set
-WARNINGS="-Wall"
-# EXTRA_WARNINGS is not set
-# DOMULTI is not set
-# UCLIBC_MJN3_ONLY is not set
Index: tches/uClibc-0.9.30-branch_update-3.patch
===================================================================
--- patches/uClibc-0.9.30-branch_update-3.patch	(revision 118c546c7a4776f52c311e3bea59731d3969ab1b)
+++ 	(revision )
@@ -1,2682 +1,0 @@
-Submitted By: Jim Gifford (jim at cross-lfs dot org)
-Date: 02-07-2009
-Initial Package Version: 0.9.30
-Origin: Upstream
-Upstream Status: Applied
-Description: This is a branch update for uClibc-0.9.30, and should be
-             rechecked periodically.
-
-diff -Naur uClibc-0.9.30.orig/extra/locale/gen_wc8bit.c uClibc-0.9.30/extra/locale/gen_wc8bit.c
---- uClibc-0.9.30.orig/extra/locale/gen_wc8bit.c	2008-10-09 05:21:41.000000000 -0700
-+++ uClibc-0.9.30/extra/locale/gen_wc8bit.c	2008-11-25 04:33:55.200309000 -0800
-@@ -219,8 +219,8 @@
- 			fprintf(out, "\t{ /* %.*s */", n, s0);
- 		}
- 
--		memset(&csd[numsets],sizeof(charset_data),0);
--		memset(xi, sizeof(xi), 0);
-+		memset(&csd[numsets], 0, sizeof(charset_data));
-+		memset(xi, 0, sizeof(xi));
- 		{
- 			unsigned long c, wc;
- 			int lines;
-diff -Naur uClibc-0.9.30.orig/extra/scripts/conf-header.sh uClibc-0.9.30/extra/scripts/conf-header.sh
---- uClibc-0.9.30.orig/extra/scripts/conf-header.sh	2007-03-16 19:45:59.000000000 -0700
-+++ uClibc-0.9.30/extra/scripts/conf-header.sh	2009-01-21 14:13:07.946159000 -0800
-@@ -8,7 +8,7 @@
- fi
- 
- cat <<EOF
--#if !defined __FEATURES_H && !defined __need_uClibc_config_h
-+#if !defined _FEATURES_H && !defined __need_uClibc_config_h
- # error Never include <bits/uClibc_config.h> directly; use <features.h> instead
- #endif
- 
-diff -Naur uClibc-0.9.30.orig/include/math.h uClibc-0.9.30/include/math.h
---- uClibc-0.9.30.orig/include/math.h	2008-10-03 07:24:28.000000000 -0700
-+++ uClibc-0.9.30/include/math.h	2008-12-22 03:55:13.991752000 -0800
-@@ -46,6 +46,10 @@
- /* Get general and ISO C99 specific information.  */
- #include <bits/mathdef.h>
- 
-+#if !(defined _LIBC && (defined NOT_IN_libc && defined IS_IN_libm))
-+# define libm_hidden_proto(name, attrs...)
-+#endif
-+
- /* The file <bits/mathcalls.h> contains the prototypes for all the
-    actual math functions.  These macros are used for those prototypes,
-    so we can easily declare each function as both `name' and `__name',
-@@ -54,16 +58,30 @@
- #define __MATHCALL(function,suffix, args)	\
-   __MATHDECL (_Mdouble_,function,suffix, args)
- #define __MATHDECL(type, function,suffix, args) \
--  __MATHDECL_1(type, function,suffix, args); \
--  __MATHDECL_1(type, __CONCAT(__,function),suffix, args)
-+  __MATHDECL_1(type, function,suffix, args);
- #define __MATHCALLX(function,suffix, args, attrib)	\
-   __MATHDECLX (_Mdouble_,function,suffix, args, attrib)
- #define __MATHDECLX(type, function,suffix, args, attrib) \
-   __MATHDECL_1(type, function,suffix, args) __attribute__ (attrib); \
--  __MATHDECL_1(type, __CONCAT(__,function),suffix, args) __attribute__ (attrib)
-+  __MATHDECLI_MAINVARIANT(function)
- #define __MATHDECL_1(type, function,suffix, args) \
-   extern type __MATH_PRECNAME(function,suffix) args __THROW
-+/* Decls which are also used internally in libm.
-+   Only the main variant is used internally, no need to try to avoid relocs
-+   for the {l,f} variants.  */
-+#define __MATHCALLI(function,suffix, args)	\
-+  __MATHDECLI (_Mdouble_,function,suffix, args)
-+#define __MATHDECLI(type, function,suffix, args) \
-+  __MATHDECL_1(type, function,suffix, args); \
-+  __MATHDECLI_MAINVARIANT(function)
-+/* Private helpers for purely macro impls below.
-+   Only make __foo{,f,l} visible but not (the macro-only) foo.  */
-+#define __MATHDECL_PRIV(type, function,suffix, args, attrib) \
-+  __MATHDECL_1(type, __CONCAT(__,function),suffix, args) \
-+						__attribute__ (attrib); \
-+  libm_hidden_proto(__MATH_PRECNAME(__##function,suffix))
- 
-+#define __MATHDECLI_MAINVARIANT libm_hidden_proto
- #define _Mdouble_		double
- #define __MATH_PRECNAME(name,r)	__CONCAT(name,r)
- # define _Mdouble_BEGIN_NAMESPACE __BEGIN_NAMESPACE_STD
-@@ -72,7 +90,9 @@
- #undef	_Mdouble_
- #undef _Mdouble_BEGIN_NAMESPACE
- #undef _Mdouble_END_NAMESPACE
--#undef	__MATH_PRECNAME
-+#undef __MATH_PRECNAME
-+#undef __MATHDECLI_MAINVARIANT
-+#define __MATHDECLI_MAINVARIANT(x)
- 
- #if defined __USE_MISC || defined __USE_ISOC99
- 
-diff -Naur uClibc-0.9.30.orig/include/sched.h uClibc-0.9.30/include/sched.h
---- uClibc-0.9.30.orig/include/sched.h	2007-02-12 14:52:32.000000000 -0800
-+++ uClibc-0.9.30/include/sched.h	2008-11-15 07:55:31.019090000 -0800
-@@ -63,7 +63,7 @@
- extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __THROW;
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Access macros for `cpu_set'.  */
- #define CPU_SETSIZE __CPU_SETSIZE
- #define CPU_SET(cpu, cpusetp)	__CPU_SET (cpu, cpusetp)
-diff -Naur uClibc-0.9.30.orig/include/sys/mman.h uClibc-0.9.30/include/sys/mman.h
---- uClibc-0.9.30.orig/include/sys/mman.h	2008-07-23 04:19:00.000000000 -0700
-+++ uClibc-0.9.30/include/sys/mman.h	2008-11-15 07:55:31.019090000 -0800
-@@ -157,11 +157,13 @@
- extern void *mremap (void *__addr, size_t __old_len, size_t __new_len,
- 		     int __flags, ...) __THROW;
- 
-+#ifdef __UCLIBC_LINUX_SPECIFIC__
- /* Remap arbitrary pages of a shared backing store within an existing
-    VMA.  */
- extern int remap_file_pages (void *__start, size_t __size, int __prot,
- 			     size_t __pgoff, int __flags) __THROW;
- #endif
-+#endif
- 
- 
- /* Open shared memory segment.  */
-diff -Naur uClibc-0.9.30.orig/include/sys/sysinfo.h uClibc-0.9.30/include/sys/sysinfo.h
---- uClibc-0.9.30.orig/include/sys/sysinfo.h	2003-10-22 02:15:57.000000000 -0700
-+++ uClibc-0.9.30/include/sys/sysinfo.h	2008-11-15 07:55:31.019090000 -0800
-@@ -48,7 +48,7 @@
- /* Returns information on overall system statistics.  */
- extern int sysinfo (struct sysinfo *__info) __THROW;
- 
--
-+#if 0
- /* Return number of configured processors.  */
- extern int get_nprocs_conf (void) __THROW;
- 
-@@ -61,6 +61,7 @@
- 
- /* Return number of available physical pages of memory in the system.  */
- extern long int get_avphys_pages (void) __THROW;
-+#endif
- 
- __END_DECLS
- 
-diff -Naur uClibc-0.9.30.orig/include/unistd.h uClibc-0.9.30/include/unistd.h
---- uClibc-0.9.30.orig/include/unistd.h	2008-07-07 19:41:21.000000000 -0700
-+++ uClibc-0.9.30/include/unistd.h	2008-11-15 07:55:31.019090000 -0800
-@@ -869,10 +869,12 @@
-      __THROW __nonnull ((1)) __wur;
- #endif
- 
-+#if defined __UCLIBC_LINUX_SPECIFIC__
- /* Revoke access permissions to all processes currently communicating
-    with the control terminal, and then send a SIGHUP signal to the process
-    group of the control terminal.  */
- extern int vhangup (void) __THROW;
-+#endif
- 
- #if 0
- /* Revoke the access of all descriptors currently open on FILE.  */
-diff -Naur uClibc-0.9.30.orig/ldso/ldso/dl-elf.c uClibc-0.9.30/ldso/ldso/dl-elf.c
---- uClibc-0.9.30.orig/ldso/ldso/dl-elf.c	2008-09-23 08:07:43.000000000 -0700
-+++ uClibc-0.9.30/ldso/ldso/dl-elf.c	2008-11-18 06:01:35.928405000 -0800
-@@ -928,29 +928,3 @@
- {
- 	__dl_parse_dynamic_info(dpnt, dynamic_info, debug_addr, load_off);
- }
--
--/* we want this in ldso.so and libdl.a but nowhere else */
--#ifdef __USE_GNU
--#if defined IS_IN_rtld || (defined IS_IN_libdl && ! defined SHARED)
--extern __typeof(dl_iterate_phdr) __dl_iterate_phdr;
--int
--__dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t size, void *data), void *data)
--{
--	struct elf_resolve *l;
--	struct dl_phdr_info info;
--	int ret = 0;
--
--	for (l = _dl_loaded_modules; l != NULL; l = l->next) {
--		info.dlpi_addr = l->loadaddr;
--		info.dlpi_name = l->libname;
--		info.dlpi_phdr = l->ppnt;
--		info.dlpi_phnum = l->n_phent;
--		ret = callback (&info, sizeof (struct dl_phdr_info), data);
--		if (ret)
--			break;
--	}
--	return ret;
--}
--strong_alias(__dl_iterate_phdr, dl_iterate_phdr)
--#endif
--#endif
-diff -Naur uClibc-0.9.30.orig/ldso/ldso/dl-hash.c uClibc-0.9.30/ldso/ldso/dl-hash.c
---- uClibc-0.9.30.orig/ldso/ldso/dl-hash.c	2008-07-23 04:19:00.000000000 -0700
-+++ uClibc-0.9.30/ldso/ldso/dl-hash.c	2008-11-18 06:01:35.928405000 -0800
-@@ -32,14 +32,6 @@
- 
- 
- /* Various symbol table handling functions, including symbol lookup */
--
--/*
-- * This is the start of the linked list that describes all of the files present
-- * in the system with pointers to all of the symbol, string, and hash tables,
-- * as well as all of the other good stuff in the binary.
-- */
--struct elf_resolve *_dl_loaded_modules = NULL;
--
- /*
-  * This is the list of modules that are loaded when the image is first
-  * started.  As we add more via dlopen, they get added into other
-diff -Naur uClibc-0.9.30.orig/ldso/ldso/dl-symbols.c uClibc-0.9.30/ldso/ldso/dl-symbols.c
---- uClibc-0.9.30.orig/ldso/ldso/dl-symbols.c	1969-12-31 16:00:00.000000000 -0800
-+++ uClibc-0.9.30/ldso/ldso/dl-symbols.c	2008-11-18 06:01:35.928405000 -0800
-@@ -0,0 +1,21 @@
-+/*
-+ * This contains all symbols shared between
-+ * dynamic linker ld.so and into static libc
-+ *
-+ * Copyright (c) 2008  STMicroelectronics Ltd
-+ * Author: Carmelo Amoroso <carmelo.amoroso@st.com>
-+ *
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+
-+/*
-+ * This is the start of the linked list that describes all of the files present
-+ * in the system with pointers to all of the symbol, string, and hash tables,
-+ * as well as all of the other good stuff in the binary.
-+ */
-+#include <ldso.h>
-+
-+struct elf_resolve *_dl_loaded_modules = NULL;
-+
-diff -Naur uClibc-0.9.30.orig/ldso/ldso/ldso.c uClibc-0.9.30/ldso/ldso/ldso.c
---- uClibc-0.9.30.orig/ldso/ldso/ldso.c	2008-09-30 05:09:55.000000000 -0700
-+++ uClibc-0.9.30/ldso/ldso/ldso.c	2008-11-18 06:01:35.928405000 -0800
-@@ -67,6 +67,7 @@
- unsigned long attribute_hidden _dl_skip_args = 0;
- const char *_dl_progname = UCLIBC_LDSO;      /* The name of the executable being run */
- #include "dl-startup.c"
-+#include "dl-symbols.c"
- #include "dl-array.c"
- /* Forward function declarations */
- static int _dl_suid_ok(void);
-diff -Naur uClibc-0.9.30.orig/libc/inet/getaddrinfo.c uClibc-0.9.30/libc/inet/getaddrinfo.c
---- uClibc-0.9.30.orig/libc/inet/getaddrinfo.c	2008-10-28 09:25:10.000000000 -0700
-+++ uClibc-0.9.30/libc/inet/getaddrinfo.c	2008-12-08 08:29:41.229254000 -0800
-@@ -186,7 +186,7 @@
- 			return seen;
- 		}
- 
--		for (runp = ifa; runp != NULL; runp = runp->ifa_next)
-+		for (runp = ifa; runp != NULL; runp = runp->ifa_next) {
- #if defined __UCLIBC_HAS_IPV4__
- 			if (runp->ifa_addr->sa_family == PF_INET)
- 				seen |= SEEN_IPV4;
-@@ -195,7 +195,7 @@
- 			if (runp->ifa_addr->sa_family == PF_INET6)
- 				seen |= SEEN_IPV6;
- #endif /* __UCLIBC_HAS_IPV6__ */
--
-+		}
- 		freeifaddrs(ifa);
- 	}
- #else
-diff -Naur uClibc-0.9.30.orig/libc/inet/ifaddrs.c uClibc-0.9.30/libc/inet/ifaddrs.c
---- uClibc-0.9.30.orig/libc/inet/ifaddrs.c	2008-10-28 02:55:44.000000000 -0700
-+++ uClibc-0.9.30/libc/inet/ifaddrs.c	2008-11-15 07:55:31.019090000 -0800
-@@ -330,7 +330,7 @@
-    that a RTM_NEWADDR index is not known to this map.  */
- static int
- internal_function
--map_newlink (int index, struct ifaddrs_storage *ifas, int *map, int max)
-+map_newlink (int idx, struct ifaddrs_storage *ifas, int *map, int max)
- {
-   int i;
- 
-@@ -338,12 +338,12 @@
-     {
-       if (map[i] == -1)
- 	{
--	  map[i] = index;
-+	  map[i] = idx;
- 	  if (i > 0)
- 	    ifas[i - 1].ifa.ifa_next = &ifas[i].ifa;
- 	  return i;
- 	}
--      else if (map[i] == index)
-+      else if (map[i] == idx)
- 	return i;
-     }
-   /* This should never be reached. If this will be reached, we have
-diff -Naur uClibc-0.9.30.orig/libc/misc/elf/dl-core.c uClibc-0.9.30/libc/misc/elf/dl-core.c
---- uClibc-0.9.30.orig/libc/misc/elf/dl-core.c	1969-12-31 16:00:00.000000000 -0800
-+++ uClibc-0.9.30/libc/misc/elf/dl-core.c	2008-11-18 06:01:35.928405000 -0800
-@@ -0,0 +1,20 @@
-+/*
-+ * This contains all symbols and functions to support
-+ * dynamic linking into static libc.
-+
-+ * Copyright (c) 2008  STMicroelectronics Ltd
-+ * Author: Carmelo Amoroso <carmelo.amoroso@st.com>
-+ *
-+ * Based on draft work by Peter S. Mazinger <ps.m@gmx.net>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+
-+#ifdef SHARED
-+#error "This file is not suitable for linking into dynamic libc"
-+#else
-+/* Include ldso symbols and functions used into static libc */
-+#include "../../../ldso/ldso/dl-symbols.c"
-+#endif
-+
-diff -Naur uClibc-0.9.30.orig/libc/misc/elf/dl-iterate-phdr.c uClibc-0.9.30/libc/misc/elf/dl-iterate-phdr.c
---- uClibc-0.9.30.orig/libc/misc/elf/dl-iterate-phdr.c	1969-12-31 16:00:00.000000000 -0800
-+++ uClibc-0.9.30/libc/misc/elf/dl-iterate-phdr.c	2008-11-18 06:01:35.928405000 -0800
-@@ -0,0 +1,76 @@
-+/* Get loaded objects program headers.
-+
-+  Based on GNU C library (file: libc/elf/dl-iteratephdr.c)
-+
-+  Copyright (C) 2001,2002,2003,2004,2006,2007 Free Software Foundation, Inc.
-+  Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
-+
-+  Copyright (C) 2008 STMicroelectronics Ltd.
-+  Author: Carmelo Amoroso <carmelo.amoroso@st.com>
-+
-+  Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+*/
-+
-+
-+#include <link.h>
-+#include <ldso.h>
-+
-+/* we want this in libc but nowhere else */
-+#ifdef __USE_GNU
-+
-+extern __typeof(dl_iterate_phdr) __dl_iterate_phdr;
-+
-+hidden_proto(__dl_iterate_phdr)
-+int
-+__dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t size, void *data), void *data)
-+{
-+	struct elf_resolve *l;
-+	struct dl_phdr_info info;
-+	int ret = 0;
-+
-+	for (l = _dl_loaded_modules; l != NULL; l = l->next) {
-+		info.dlpi_addr = l->loadaddr;
-+		info.dlpi_name = l->libname;
-+		info.dlpi_phdr = l->ppnt;
-+		info.dlpi_phnum = l->n_phent;
-+		ret = callback (&info, sizeof (struct dl_phdr_info), data);
-+		if (ret)
-+			break;
-+	}
-+	return ret;
-+}
-+hidden_def (__dl_iterate_phdr)
-+
-+# ifdef SHARED
-+
-+weak_alias(__dl_iterate_phdr, dl_iterate_phdr)
-+
-+# else
-+
-+/* dl-support.c defines these and initializes them early on.  */
-+extern ElfW(Phdr) *_dl_phdr;
-+extern size_t _dl_phnum;
-+
-+int
-+dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info,
-+                                  size_t size, void *data), void *data)
-+{
-+  if (_dl_phnum != 0)
-+    {
-+      /* This entry describes this statically-linked program itself.  */
-+      struct dl_phdr_info info;
-+      int ret;
-+      info.dlpi_addr = 0;
-+      info.dlpi_name = "";
-+      info.dlpi_phdr = _dl_phdr;
-+      info.dlpi_phnum = _dl_phnum;
-+      ret = (*callback) (&info, sizeof (struct dl_phdr_info), data);
-+      if (ret)
-+        return ret;
-+    }
-+   /* Then invoke callback on loaded modules, if any */
-+  return __dl_iterate_phdr (callback, data);
-+}
-+
-+# endif
-+#endif
-diff -Naur uClibc-0.9.30.orig/libc/misc/elf/dl-support.c uClibc-0.9.30/libc/misc/elf/dl-support.c
---- uClibc-0.9.30.orig/libc/misc/elf/dl-support.c	1969-12-31 16:00:00.000000000 -0800
-+++ uClibc-0.9.30/libc/misc/elf/dl-support.c	2008-11-18 06:01:35.928405000 -0800
-@@ -0,0 +1,29 @@
-+/*
-+ * Support for dynamic linking code in static libc.
-+ * Copyright (C) 1996-2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-+ *
-+ * Partially based on GNU C Library (file: libc/elf/dl-support.c)
-+ *
-+ * Copyright (C) 2008 STMicroelectronics Ltd.
-+ * Author: Carmelo Amoroso <carmelo.amoroso@st.com>
-+ *
-+ * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+ *
-+ */
-+
-+#include <link.h>
-+#include <elf.h>
-+
-+ElfW(Phdr) *_dl_phdr;
-+size_t _dl_phnum;
-+
-+void
-+internal_function
-+_dl_aux_init (ElfW(auxv_t) *av)
-+{
-+   /* Get the program headers base address from the aux vect */
-+   _dl_phdr = (ElfW(Phdr) *) av[AT_PHDR].a_un.a_val;
-+
-+   /* Get the number of program headers from the aux vect */
-+   _dl_phnum = (size_t) av[AT_PHNUM].a_un.a_val;
-+}
-diff -Naur uClibc-0.9.30.orig/libc/misc/elf/Makefile uClibc-0.9.30/libc/misc/elf/Makefile
---- uClibc-0.9.30.orig/libc/misc/elf/Makefile	1969-12-31 16:00:00.000000000 -0800
-+++ uClibc-0.9.30/libc/misc/elf/Makefile	2008-11-18 06:01:35.928405000 -0800
-@@ -0,0 +1,12 @@
-+# Copyright (C) 2008 STMicroelectronics Ltd.
-+# Author: Carmelo Amoroso <carmelo.amoroso@st.com>
-+
-+# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+#
-+
-+top_srcdir=../../../
-+top_builddir=../../../
-+all: objs
-+include $(top_builddir)Rules.mak
-+include Makefile.in
-+include $(top_srcdir)Makerules
-diff -Naur uClibc-0.9.30.orig/libc/misc/elf/Makefile.in uClibc-0.9.30/libc/misc/elf/Makefile.in
---- uClibc-0.9.30.orig/libc/misc/elf/Makefile.in	1969-12-31 16:00:00.000000000 -0800
-+++ uClibc-0.9.30/libc/misc/elf/Makefile.in	2008-11-18 06:01:35.928405000 -0800
-@@ -0,0 +1,20 @@
-+# Copyright (C) 2008 STMicroelectronics Ltd.
-+# Author: Carmelo Amoroso <carmelo.amoroso@st.com>
-+
-+# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
-+#
-+
-+libc_a_CSRC = dl-support.c dl-core.c dl-iterate-phdr.c
-+CFLAGS-dl-iterate-phdr.c=-D_GNU_SOURCE -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) -I$(top_srcdir)ldso/include
-+CFLAGS-dl-core.c=-I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) -I$(top_srcdir)ldso/include
-+
-+MISC_ELF_OUT:=$(top_builddir)libc/misc/elf
-+MISC_ELF_OBJ:=$(patsubst %.c,$(MISC_ELF_OUT)/%.o,$(libc_a_CSRC))
-+
-+libc-static-y += $(MISC_ELF_OBJ)
-+libc-shared-y += $(MISC_ELF_OUT)/dl-iterate-phdr.oS
-+
-+objclean-y+= misc_elf_objclean
-+
-+misc_elf_objclean:
-+	$(RM) $(MISC_ELF_OUT)/*.{o,os,oS}
-diff -Naur uClibc-0.9.30.orig/libc/misc/internals/__uClibc_main.c uClibc-0.9.30/libc/misc/internals/__uClibc_main.c
---- uClibc-0.9.30.orig/libc/misc/internals/__uClibc_main.c	2008-06-27 12:12:50.000000000 -0700
-+++ uClibc-0.9.30/libc/misc/internals/__uClibc_main.c	2008-11-18 06:01:35.928405000 -0800
-@@ -72,6 +72,11 @@
- #  endif
- # endif
- 
-+/*
-+ * Needed to initialize _dl_phdr when statically linked
-+ */
-+
-+void internal_function _dl_aux_init (ElfW(auxv_t) *av);
- #endif /* !SHARED */
- 
- /*
-@@ -114,9 +119,8 @@
- #endif
- 
- /*
-- * Declare the __environ global variable and create a strong alias environ.
-- * Note: Apparently we must initialize __environ to ensure that the strong
-- * environ symbol is also included.
-+ * Declare the __environ global variable and create a weak alias environ.
-+ * This must be initialized; we cannot have a weak alias into bss.
-  */
- char **__environ = 0;
- weak_alias(__environ, environ)
-@@ -310,6 +314,12 @@
- 	}
- 	aux_dat += 2;
-     }
-+#ifndef SHARED
-+    /* Get the program headers (_dl_phdr) from the aux vector
-+       It will be used into __libc_setup_tls. */
-+
-+    _dl_aux_init (auxvt);
-+#endif
- #endif
- 
-     /* We need to initialize uClibc.  If we are dynamically linked this
-diff -Naur uClibc-0.9.30.orig/libc/misc/Makefile.in uClibc-0.9.30/libc/misc/Makefile.in
---- uClibc-0.9.30.orig/libc/misc/Makefile.in	2007-01-10 14:03:34.000000000 -0800
-+++ uClibc-0.9.30/libc/misc/Makefile.in	2008-11-18 06:01:35.928405000 -0800
-@@ -12,6 +12,7 @@
- include $(top_srcdir)libc/misc/ctype/Makefile.in
- include $(top_srcdir)libc/misc/dirent/Makefile.in
- include $(top_srcdir)libc/misc/error/Makefile.in
-+include $(top_srcdir)libc/misc/elf/Makefile.in
- include $(top_srcdir)libc/misc/file/Makefile.in
- include $(top_srcdir)libc/misc/fnmatch/Makefile.in
- include $(top_srcdir)libc/misc/ftw/Makefile.in
-diff -Naur uClibc-0.9.30.orig/libc/misc/wchar/wchar.c uClibc-0.9.30/libc/misc/wchar/wchar.c
---- uClibc-0.9.30.orig/libc/misc/wchar/wchar.c	2008-09-29 01:51:31.000000000 -0700
-+++ uClibc-0.9.30/libc/misc/wchar/wchar.c	2008-12-02 09:15:35.191305000 -0800
-@@ -1143,6 +1143,13 @@
- {
- 	int count;
- 	wchar_t wc;
-+	size_t i;
-+
-+	for (i = 0 ; (i < n) && pwcs[i] ; i++) {
-+		if (pwcs[i] != (pwcs[i] & 0x7f)) {
-+			return -1;
-+		}
-+	}
- 
-     for (count = 0 ; n && (wc = *pwcs++) ; n--) {
- 		if (wc <= 0xff) {
-@@ -1246,7 +1253,7 @@
- 	"\x08\xec""UCS-4\x00"		/* always BE */
- 	"\x0a\xec""UCS-4BE\x00"
- 	"\x0a\xed""UCS-4LE\x00"
--	"\x09\fe4""UTF-32\x00"		/* platform endian with BOM */
-+	"\x09\xe4""UTF-32\x00"		/* platform endian with BOM */
- 	"\x0b\xe4""UTF-32BE\x00"
- 	"\x0b\xe5""UTF-32LE\x00"
- 	"\x08\xe2""UCS-2\x00"		/* always BE */
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/alpha/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/alpha/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/alpha/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/alpha/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -159,7 +159,6 @@
-   };
- #endif
- 
--
- /* Define some more compatibility macros to be backward compatible with
-    BSD systems which did not managed to hide these kernel macros.  */
- #ifdef	__USE_BSD
-@@ -181,7 +180,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -204,7 +203,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/arm/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/arm/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/arm/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/arm/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -189,7 +189,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -212,7 +212,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/arm/crt1.S uClibc-0.9.30/libc/sysdeps/linux/arm/crt1.S
---- uClibc-0.9.30.orig/libc/sysdeps/linux/arm/crt1.S	2008-03-26 06:40:36.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/arm/crt1.S	2008-11-25 04:27:50.759727000 -0800
-@@ -238,7 +238,11 @@
- 
- #ifdef __PIC__
- .L_GOT:
-+#ifdef __thumb__
-+	.word	_GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+4)
-+#else /* __thumb2__ */
- 	.word	_GLOBAL_OFFSET_TABLE_-(.L_GOT_OFF+8)
-+#endif
- 	.word _fini(GOT)
- 	.word _init(GOT)
- 	.word main(GOT)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/avr32/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/avr32/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/avr32/bits/fcntl.h	2008-11-03 07:48:07.000000000 -0800
-+++ uClibc-0.9.30/libc/sysdeps/linux/avr32/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -167,8 +167,8 @@
- # define POSIX_FADV_NOREUSE     5 /* Data will be accessed once.  */
- #endif
- 
--#ifdef __USE_GNU
- 
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/bfin/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/bfin/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/bfin/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/bfin/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -185,7 +185,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -208,7 +208,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/common/bits/mathcalls.h uClibc-0.9.30/libc/sysdeps/linux/common/bits/mathcalls.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/common/bits/mathcalls.h	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/common/bits/mathcalls.h	2008-12-22 03:55:13.991752000 -0800
-@@ -52,59 +52,45 @@
- 
- _Mdouble_BEGIN_NAMESPACE
- /* Arc cosine of X.  */
--__MATHCALL (acos,, (_Mdouble_ __x));
--libm_hidden_proto(acos)
-+__MATHCALLI (acos,, (_Mdouble_ __x));
- /* Arc sine of X.  */
--__MATHCALL (asin,, (_Mdouble_ __x));
--libm_hidden_proto(asin)
-+__MATHCALLI (asin,, (_Mdouble_ __x));
- /* Arc tangent of X.  */
--__MATHCALL (atan,, (_Mdouble_ __x));
--libm_hidden_proto(atan)
-+__MATHCALLI (atan,, (_Mdouble_ __x));
- /* Arc tangent of Y/X.  */
--__MATHCALL (atan2,, (_Mdouble_ __y, _Mdouble_ __x));
--libm_hidden_proto(atan2)
-+__MATHCALLI (atan2,, (_Mdouble_ __y, _Mdouble_ __x));
- 
- /* Cosine of X.  */
--__MATHCALL (cos,, (_Mdouble_ __x));
--libm_hidden_proto(cos)
-+__MATHCALLI (cos,, (_Mdouble_ __x));
- /* Sine of X.  */
--__MATHCALL (sin,, (_Mdouble_ __x));
--libm_hidden_proto(sin)
-+__MATHCALLI (sin,, (_Mdouble_ __x));
- /* Tangent of X.  */
--__MATHCALL (tan,, (_Mdouble_ __x));
--libm_hidden_proto(tan)
-+__MATHCALLI (tan,, (_Mdouble_ __x));
- 
- /* Hyperbolic functions.  */
- 
- /* Hyperbolic cosine of X.  */
--__MATHCALL (cosh,, (_Mdouble_ __x));
--libm_hidden_proto(cosh)
-+__MATHCALLI (cosh,, (_Mdouble_ __x));
- /* Hyperbolic sine of X.  */
--__MATHCALL (sinh,, (_Mdouble_ __x));
--libm_hidden_proto(sinh)
-+__MATHCALLI (sinh,, (_Mdouble_ __x));
- /* Hyperbolic tangent of X.  */
--__MATHCALL (tanh,, (_Mdouble_ __x));
--libm_hidden_proto(tanh)
-+__MATHCALLI (tanh,, (_Mdouble_ __x));
- _Mdouble_END_NAMESPACE
- 
- #if 0 /*def __USE_GNU*/
- /* Cosine and sine of X.  */
- __MATHDECL (void,sincos,,
- 	    (_Mdouble_ __x, _Mdouble_ *__sinx, _Mdouble_ *__cosx));
--libm_hidden_proto(sincos)
- #endif
- 
- #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Hyperbolic arc cosine of X.  */
--__MATHCALL (acosh,, (_Mdouble_ __x));
--libm_hidden_proto(acosh)
-+__MATHCALLI (acosh,, (_Mdouble_ __x));
- /* Hyperbolic arc sine of X.  */
--__MATHCALL (asinh,, (_Mdouble_ __x));
--libm_hidden_proto(asinh)
-+__MATHCALLI (asinh,, (_Mdouble_ __x));
- /* Hyperbolic arc tangent of X.  */
--__MATHCALL (atanh,, (_Mdouble_ __x));
--libm_hidden_proto(atanh)
-+__MATHCALLI (atanh,, (_Mdouble_ __x));
- __END_NAMESPACE_C99
- #endif
- 
-@@ -112,64 +98,51 @@
- 
- _Mdouble_BEGIN_NAMESPACE
- /* Exponential function of X.  */
--__MATHCALL (exp,, (_Mdouble_ __x));
--libm_hidden_proto(exp)
-+__MATHCALLI (exp,, (_Mdouble_ __x));
- 
- /* Break VALUE into a normalized fraction and an integral power of 2.  */
--__MATHCALL (frexp,, (_Mdouble_ __x, int *__exponent));
--libm_hidden_proto(frexp)
-+__MATHCALLI (frexp,, (_Mdouble_ __x, int *__exponent));
- 
- /* X times (two to the EXP power).  */
--__MATHCALL (ldexp,, (_Mdouble_ __x, int __exponent));
--libm_hidden_proto(ldexp)
-+__MATHCALLI (ldexp,, (_Mdouble_ __x, int __exponent));
- 
- /* Natural logarithm of X.  */
--__MATHCALL (log,, (_Mdouble_ __x));
--libm_hidden_proto(log)
-+__MATHCALLI (log,, (_Mdouble_ __x));
- 
- /* Base-ten logarithm of X.  */
--__MATHCALL (log10,, (_Mdouble_ __x));
--libm_hidden_proto(log10)
-+__MATHCALLI (log10,, (_Mdouble_ __x));
- 
- /* Break VALUE into integral and fractional parts.  */
--__MATHCALL (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr));
--libm_hidden_proto(modf)
-+__MATHCALLI (modf,, (_Mdouble_ __x, _Mdouble_ *__iptr));
- _Mdouble_END_NAMESPACE
- 
- #if 0 /*def __USE_GNU*/
- /* A function missing in all standards: compute exponent to base ten.  */
- __MATHCALL (exp10,, (_Mdouble_ __x));
--libm_hidden_proto(exp10)
- /* Another name occasionally used.  */
- __MATHCALL (pow10,, (_Mdouble_ __x));
--libm_hidden_proto(pow10)
- #endif
- 
- #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Return exp(X) - 1.  */
--__MATHCALL (expm1,, (_Mdouble_ __x));
--libm_hidden_proto(expm1)
-+__MATHCALLI (expm1,, (_Mdouble_ __x));
- 
- /* Return log(1 + X).  */
--__MATHCALL (log1p,, (_Mdouble_ __x));
--libm_hidden_proto(log1p)
-+__MATHCALLI (log1p,, (_Mdouble_ __x));
- 
- /* Return the base 2 signed integral exponent of X.  */
--__MATHCALL (logb,, (_Mdouble_ __x));
--libm_hidden_proto(logb)
-+__MATHCALLI (logb,, (_Mdouble_ __x));
- __END_NAMESPACE_C99
- #endif
- 
- #ifdef __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Compute base-2 exponential of X.  */
--__MATHCALL (exp2,, (_Mdouble_ __x));
--libm_hidden_proto(exp2)
-+__MATHCALLI (exp2,, (_Mdouble_ __x));
- 
- /* Compute base-2 logarithm of X.  */
- __MATHCALL (log2,, (_Mdouble_ __x));
--libm_hidden_proto(log2)
- __END_NAMESPACE_C99
- #endif
- 
-@@ -178,27 +151,23 @@
- 
- _Mdouble_BEGIN_NAMESPACE
- /* Return X to the Y power.  */
--__MATHCALL (pow,, (_Mdouble_ __x, _Mdouble_ __y));
--libm_hidden_proto(pow)
-+__MATHCALLI (pow,, (_Mdouble_ __x, _Mdouble_ __y));
- 
- /* Return the square root of X.  */
--__MATHCALL (sqrt,, (_Mdouble_ __x));
--libm_hidden_proto(sqrt)
-+__MATHCALLI (sqrt,, (_Mdouble_ __x));
- _Mdouble_END_NAMESPACE
- 
- #if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Return `sqrt(X*X + Y*Y)'.  */
--__MATHCALL (hypot,, (_Mdouble_ __x, _Mdouble_ __y));
--libm_hidden_proto(hypot)
-+__MATHCALLI (hypot,, (_Mdouble_ __x, _Mdouble_ __y));
- __END_NAMESPACE_C99
- #endif
- 
- #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Return the cube root of X.  */
--__MATHCALL (cbrt,, (_Mdouble_ __x));
--libm_hidden_proto(cbrt)
-+__MATHCALLI (cbrt,, (_Mdouble_ __x));
- __END_NAMESPACE_C99
- #endif
- 
-@@ -208,56 +177,46 @@
- _Mdouble_BEGIN_NAMESPACE
- /* Smallest integral value not less than X.  */
- __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__));
--libm_hidden_proto(ceil)
- 
- /* Absolute value of X.  */
- __MATHCALLX (fabs,, (_Mdouble_ __x), (__const__));
--libm_hidden_proto(fabs)
- 
- /* Largest integer not greater than X.  */
- __MATHCALLX (floor,, (_Mdouble_ __x), (__const__));
--libm_hidden_proto(floor)
- 
- /* Floating-point modulo remainder of X/Y.  */
--__MATHCALL (fmod,, (_Mdouble_ __x, _Mdouble_ __y));
--libm_hidden_proto(fmod)
-+__MATHCALLI (fmod,, (_Mdouble_ __x, _Mdouble_ __y));
- 
- 
- /* Return 0 if VALUE is finite or NaN, +1 if it
-    is +Infinity, -1 if it is -Infinity.  */
--__MATHDECL_1 (int,__isinf,, (_Mdouble_ __value)) __attribute__ ((__const__));
--libm_hidden_proto(__isinf)
-+__MATHDECL_PRIV (int,isinf,, (_Mdouble_ __value), (__const__));
- 
- /* Return nonzero if VALUE is finite and not NaN.  */
--__MATHDECL_1 (int,__finite,, (_Mdouble_ __value)) __attribute__ ((__const__));
--libm_hidden_proto(__finite)
-+__MATHDECL_PRIV (int,finite,, (_Mdouble_ __value), (__const__));
- _Mdouble_END_NAMESPACE
- 
- #ifdef __USE_MISC
-+#if 0
- /* Return 0 if VALUE is finite or NaN, +1 if it
-    is +Infinity, -1 if it is -Infinity.  */
--__MATHDECL_1 (int,isinf,, (_Mdouble_ __value)) __attribute__ ((__const__));
--libm_hidden_proto(isinf)
-+__MATHDECL_PRIV (int,isinf,, (_Mdouble_ __value), (__const__));
- 
- /* Return nonzero if VALUE is finite and not NaN.  */
--__MATHDECL_1 (int,finite,, (_Mdouble_ __value)) __attribute__ ((__const__));
--libm_hidden_proto(finite)
--
-+__MATHDECL_PRIV (int,finite,, (_Mdouble_ __value), (__const__));
-+#endif
- /* Return the remainder of X/Y.  */
- __MATHCALL (drem,, (_Mdouble_ __x, _Mdouble_ __y));
--libm_hidden_proto(drem)
- 
- 
- /* Return the fractional part of X after dividing out `ilogb (X)'.  */
- __MATHCALL (significand,, (_Mdouble_ __x));
--libm_hidden_proto(significand)
- #endif /* Use misc.  */
- 
- #if defined __USE_MISC || defined __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Return X with its signed changed to Y's.  */
- __MATHCALLX (copysign,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
--libm_hidden_proto(copysign)
- __END_NAMESPACE_C99
- #endif
- 
-@@ -265,60 +224,46 @@
- __BEGIN_NAMESPACE_C99
- /* Return representation of NaN for double type.  */
- __MATHCALLX (nan,, (__const char *__tagb), (__const__));
--libm_hidden_proto(nan)
- __END_NAMESPACE_C99
- #endif
- 
- 
- /* Return nonzero if VALUE is not a number.  */
--__MATHDECL_1 (int,__isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
--libm_hidden_proto(__isnan)
-+__MATHDECL_PRIV (int,__isnan,, (_Mdouble_ __value), (__const__));
- 
- #if defined __USE_MISC || defined __USE_XOPEN
- /* Return nonzero if VALUE is not a number.  */
--__MATHDECL_1 (int,isnan,, (_Mdouble_ __value)) __attribute__ ((__const__));
--libm_hidden_proto(isnan)
-+__MATHDECL_PRIV (int,isnan,, (_Mdouble_ __value), (__const__));
- 
- /* Bessel functions.  */
- __MATHCALL (j0,, (_Mdouble_));
--libm_hidden_proto(j0)
- __MATHCALL (j1,, (_Mdouble_));
--libm_hidden_proto(j1)
- __MATHCALL (jn,, (int, _Mdouble_));
--libm_hidden_proto(jn)
- __MATHCALL (y0,, (_Mdouble_));
--libm_hidden_proto(y0)
- __MATHCALL (y1,, (_Mdouble_));
--libm_hidden_proto(y1)
- __MATHCALL (yn,, (int, _Mdouble_));
--libm_hidden_proto(yn)
- #endif
- 
- 
- #if defined __USE_MISC || defined __USE_XOPEN || defined __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* Error and gamma functions.  */
--__MATHCALL (erf,, (_Mdouble_));
--libm_hidden_proto(erf)
--__MATHCALL (erfc,, (_Mdouble_));
--libm_hidden_proto(erfc)
--__MATHCALL (lgamma,, (_Mdouble_));
--libm_hidden_proto(lgamma)
-+__MATHCALLI (erf,, (_Mdouble_));
-+__MATHCALLI (erfc,, (_Mdouble_));
-+__MATHCALLI (lgamma,, (_Mdouble_));
- __END_NAMESPACE_C99
- #endif
- 
- #ifdef __USE_ISOC99
- __BEGIN_NAMESPACE_C99
- /* True gamma function.  */
--__MATHCALL (tgamma,, (_Mdouble_));
--libm_hidden_proto(tgamma)
-+__MATHCALLI (tgamma,, (_Mdouble_));
- __END_NAMESPACE_C99
- #endif
- 
- #if defined __USE_MISC || defined __USE_XOPEN
- /* Obsolete alias for `lgamma'.  */
- __MATHCALL (gamma,, (_Mdouble_));
--libm_hidden_proto(gamma)
- #endif
- 
- #ifdef __USE_MISC
-@@ -326,7 +271,6 @@
-    `signgam'.  The reentrant version instead takes a pointer and stores
-    the value through it.  */
- __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp));
--libm_hidden_proto(lgamma_r)
- #endif
- 
- 
-@@ -334,103 +278,80 @@
- __BEGIN_NAMESPACE_C99
- /* Return the integer nearest X in the direction of the
-    prevailing rounding mode.  */
--__MATHCALL (rint,, (_Mdouble_ __x));
--libm_hidden_proto(rint)
-+__MATHCALLI (rint,, (_Mdouble_ __x));
- 
- /* Return X + epsilon if X < Y, X - epsilon if X > Y.  */
- __MATHCALLX (nextafter,, (_Mdouble_ __x, _Mdouble_ __y), (__const__));
--libm_hidden_proto(nextafter)
- # if defined __USE_ISOC99 && !defined __LDBL_COMPAT
- __MATHCALLX (nexttoward,, (_Mdouble_ __x, long double __y), (__const__));
--libm_hidden_proto(nexttoward)
- # endif
- 
- /* Return the remainder of integer divison X / Y with infinite precision.  */
--__MATHCALL (remainder,, (_Mdouble_ __x, _Mdouble_ __y));
--libm_hidden_proto(remainder)
-+__MATHCALLI (remainder,, (_Mdouble_ __x, _Mdouble_ __y));
- 
- # if defined __USE_MISC || defined __USE_ISOC99
- /* Return X times (2 to the Nth power).  */
--__MATHCALL (scalbn,, (_Mdouble_ __x, int __n));
--libm_hidden_proto(scalbn)
-+__MATHCALLI (scalbn,, (_Mdouble_ __x, int __n));
- # endif
- 
- /* Return the binary exponent of X, which must be nonzero.  */
--__MATHDECL (int,ilogb,, (_Mdouble_ __x));
--libm_hidden_proto(ilogb)
-+__MATHDECLI (int,ilogb,, (_Mdouble_ __x));
- #endif
- 
- #ifdef __USE_ISOC99
- /* Return X times (2 to the Nth power).  */
--__MATHCALL (scalbln,, (_Mdouble_ __x, long int __n));
--libm_hidden_proto(scalbln)
-+__MATHCALLI (scalbln,, (_Mdouble_ __x, long int __n));
- 
- /* Round X to integral value in floating-point format using current
-    rounding direction, but do not raise inexact exception.  */
--__MATHCALL (nearbyint,, (_Mdouble_ __x));
--libm_hidden_proto(nearbyint)
-+__MATHCALLI (nearbyint,, (_Mdouble_ __x));
- 
- /* Round X to nearest integral value, rounding halfway cases away from
-    zero.  */
- __MATHCALLX (round,, (_Mdouble_ __x), (__const__));
--libm_hidden_proto(round)
- 
- /* Round X to the integral value in floating-point format nearest but
-    not larger in magnitude.  */
- __MATHCALLX (trunc,, (_Mdouble_ __x), (__const__));
--libm_hidden_proto(trunc)
- 
- /* Compute remainder of X and Y and put in *QUO a value with sign of x/y
-    and magnitude congruent `mod 2^n' to the magnitude of the integral
-    quotient x/y, with n >= 3.  */
--__MATHCALL (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo));
--libm_hidden_proto(remquo)
-+__MATHCALLI (remquo,, (_Mdouble_ __x, _Mdouble_ __y, int *__quo));
- 
- 
- /* Conversion functions.  */
- 
- /* Round X to nearest integral value according to current rounding
-    direction.  */
--__MATHDECL (long int,lrint,, (_Mdouble_ __x));
--libm_hidden_proto(lrint)
--__MATHDECL (long long int,llrint,, (_Mdouble_ __x));
--libm_hidden_proto(llrint)
-+__MATHDECLI (long int,lrint,, (_Mdouble_ __x));
-+__MATHDECLI (long long int,llrint,, (_Mdouble_ __x));
- 
- /* Round X to nearest integral value, rounding halfway cases away from
-    zero.  */
--__MATHDECL (long int,lround,, (_Mdouble_ __x));
--libm_hidden_proto(lround)
--__MATHDECL (long long int,llround,, (_Mdouble_ __x));
--libm_hidden_proto(llround)
-+__MATHDECLI (long int,lround,, (_Mdouble_ __x));
-+__MATHDECLI (long long int,llround,, (_Mdouble_ __x));
- 
- 
- /* Return positive difference between X and Y.  */
--__MATHCALL (fdim,, (_Mdouble_ __x, _Mdouble_ __y));
--libm_hidden_proto(fdim)
-+__MATHCALLI (fdim,, (_Mdouble_ __x, _Mdouble_ __y));
- 
- /* Return maximum numeric value from X and Y.  */
--__MATHCALL (fmax,, (_Mdouble_ __x, _Mdouble_ __y));
--libm_hidden_proto(fmax)
-+__MATHCALLI (fmax,, (_Mdouble_ __x, _Mdouble_ __y));
- 
- /* Return minimum numeric value from X and Y.  */
--__MATHCALL (fmin,, (_Mdouble_ __x, _Mdouble_ __y));
--libm_hidden_proto(fmin)
-+__MATHCALLI (fmin,, (_Mdouble_ __x, _Mdouble_ __y));
- 
- 
- /* Classify given number.  */
--__MATHDECL_1 (int, __fpclassify,, (_Mdouble_ __value))
--     __attribute__ ((__const__));
--libm_hidden_proto(__fpclassify)
-+__MATHDECL_PRIV (int, fpclassify,, (_Mdouble_ __value), (__const__));
- 
- /* Test for negative number.  */
--__MATHDECL_1 (int, __signbit,, (_Mdouble_ __value))
--     __attribute__ ((__const__));
--libm_hidden_proto(__signbit)
-+__MATHDECL_PRIV (int, signbit,, (_Mdouble_ __value), (__const__));
- 
- 
- /* Multiply-add function computed as a ternary operation.  */
--__MATHCALL (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
--libm_hidden_proto(fma)
-+__MATHCALLI (fma,, (_Mdouble_ __x, _Mdouble_ __y, _Mdouble_ __z));
- #endif /* Use ISO C99.  */
- 
- #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED || defined __USE_ISOC99
-@@ -440,5 +361,4 @@
- #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
- /* Return X times (2 to the Nth power).  */
- __MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n));
--libm_hidden_proto(scalb)
- #endif
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/cris/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/cris/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/cris/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/cris/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -186,7 +186,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -209,7 +209,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/e1/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/e1/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/e1/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/e1/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -182,7 +182,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -205,7 +205,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-@@ -231,4 +231,4 @@
- 
- #endif
- __END_DECLS
--
-+#endif /* LINUX_SPECIFIC */
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/frv/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/frv/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/frv/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/frv/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -164,7 +164,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -187,7 +187,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/h8300/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/h8300/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/h8300/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/h8300/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -182,7 +182,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -205,7 +205,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/hppa/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/hppa/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/hppa/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/hppa/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -176,7 +176,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -199,7 +199,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/i386/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/i386/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/i386/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/i386/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -189,7 +189,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -212,7 +212,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/i386/bits/kernel_types.h uClibc-0.9.30/libc/sysdeps/linux/i386/bits/kernel_types.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/i386/bits/kernel_types.h	2008-07-23 04:23:36.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/i386/bits/kernel_types.h	2009-01-12 07:04:25.958006000 -0800
-@@ -7,9 +7,14 @@
- 
- /* a hack for compiling a 32 bit user space with 64 bit
-  * kernel on x86_64  */
--#if !defined(__ARCH_I386_POSIX_TYPES_H) && !defined(_ASM_X86_64_POSIX_TYPES_H)
-+#if !defined(__ARCH_I386_POSIX_TYPES_H) && \
-+    !defined(_ASM_X86_64_POSIX_TYPES_H) && \
-+    !defined(_ASM_X86_POSIX_TYPES_32_H) && \
-+    !defined(_ASM_X86_POSIX_TYPES_64_H)
- #define _ASM_X86_64_POSIX_TYPES_H
- #define __ARCH_I386_POSIX_TYPES_H
-+#define _ASM_X86_POSIX_TYPES_32_H
-+#define _ASM_X86_POSIX_TYPES_64_H
- 
- typedef unsigned short	__kernel_dev_t;
- typedef unsigned long	__kernel_ino_t;
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/i960/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/i960/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/i960/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/i960/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -182,7 +182,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -205,7 +205,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/ia64/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/ia64/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/ia64/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/ia64/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -161,7 +161,6 @@
-   };
- #endif
- 
--
- /* Define some more compatibility macros to be backward compatible with
-    BSD systems which did not managed to hide these kernel macros.  */
- #ifdef	__USE_BSD
-@@ -183,7 +182,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -206,7 +205,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/m68k/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/m68k/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/m68k/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/m68k/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -185,7 +185,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -208,7 +208,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/microblaze/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/microblaze/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/microblaze/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/microblaze/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -182,7 +182,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -205,7 +205,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/mips/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/mips/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/mips/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/mips/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -209,7 +209,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -232,7 +232,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/mips/bits/socket.h uClibc-0.9.30/libc/sysdeps/linux/mips/bits/socket.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/mips/bits/socket.h	2008-10-06 01:54:40.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/mips/bits/socket.h	2008-12-04 12:06:41.248672000 -0800
-@@ -268,8 +268,8 @@
- 			 + CMSG_ALIGN (sizeof (struct cmsghdr)))
- #define CMSG_LEN(len)   (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
- 
--extern struct cmsghdr * __NTH (__cmsg_nxthdr (struct msghdr *__mhdr,
--				      struct cmsghdr *__cmsg)) __THROW;
-+extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
-+				      struct cmsghdr *__cmsg) __THROW;
- #ifdef __USE_EXTERN_INLINES
- # ifndef _EXTERN_INLINE
- #  define _EXTERN_INLINE extern __inline
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/nios/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/nios/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/nios/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/nios/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -185,7 +185,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -208,7 +208,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/nios2/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/nios2/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/nios2/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/nios2/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -185,7 +185,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -208,7 +208,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/powerpc/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/powerpc/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/powerpc/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/powerpc/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -189,7 +189,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -212,7 +212,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/sh/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/sh/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/sh/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/sh/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -189,7 +189,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -212,7 +212,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/sh64/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/sh64/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/sh64/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/sh64/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -164,7 +164,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -187,7 +187,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/sparc/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/sparc/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/sparc/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/sparc/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -208,7 +208,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -231,7 +231,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/v850/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/v850/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/v850/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/v850/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -182,7 +182,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -205,7 +205,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/vax/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/vax/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/vax/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/vax/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -162,7 +162,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -185,7 +185,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/x86_64/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/x86_64/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/x86_64/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/x86_64/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -203,7 +203,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -226,7 +226,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/x86_64/bits/kernel_types.h uClibc-0.9.30/libc/sysdeps/linux/x86_64/bits/kernel_types.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/x86_64/bits/kernel_types.h	2008-07-23 04:23:36.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/x86_64/bits/kernel_types.h	2009-01-12 07:04:25.958006000 -0800
-@@ -4,8 +4,17 @@
-  * our private content, and not the kernel header, will win.
-  *  -Erik
-  */
--#ifndef _ASM_X86_64_POSIX_TYPES_H
-+
-+/* a hack for compiling a 32 bit user space with 64 bit
-+ * kernel on x86_64  */
-+#if !defined(__ARCH_I386_POSIX_TYPES_H) && \
-+    !defined(_ASM_X86_64_POSIX_TYPES_H) && \
-+    !defined(_ASM_X86_POSIX_TYPES_32_H) && \
-+    !defined(_ASM_X86_POSIX_TYPES_64_H)
- #define _ASM_X86_64_POSIX_TYPES_H
-+#define __ARCH_I386_POSIX_TYPES_H
-+#define _ASM_X86_POSIX_TYPES_32_H
-+#define _ASM_X86_POSIX_TYPES_64_H
- 
- typedef unsigned long	__kernel_dev_t;
- typedef unsigned long	__kernel_ino_t;
-diff -Naur uClibc-0.9.30.orig/libc/sysdeps/linux/xtensa/bits/fcntl.h uClibc-0.9.30/libc/sysdeps/linux/xtensa/bits/fcntl.h
---- uClibc-0.9.30.orig/libc/sysdeps/linux/xtensa/bits/fcntl.h	2008-09-16 07:02:54.000000000 -0700
-+++ uClibc-0.9.30/libc/sysdeps/linux/xtensa/bits/fcntl.h	2008-11-15 07:55:31.019090000 -0800
-@@ -186,7 +186,7 @@
- #endif
- 
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- /* Flags for SYNC_FILE_RANGE.  */
- # define SYNC_FILE_RANGE_WAIT_BEFORE	1 /* Wait upon writeout of all pages
- 					     in the range before performing the
-@@ -209,7 +209,7 @@
- 
- __BEGIN_DECLS
- 
--#ifdef __USE_GNU
-+#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
- 
- /* Provide kernel hint to read ahead.  */
- extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
-diff -Naur uClibc-0.9.30.orig/libm/e_scalb.c uClibc-0.9.30/libm/e_scalb.c
---- uClibc-0.9.30.orig/libm/e_scalb.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/e_scalb.c	2008-12-22 03:55:13.991752000 -0800
-@@ -44,7 +44,7 @@
- 	return scalbn(x,fn);
- #else
- 	if (isnan(x)||isnan(fn)) return x*fn;
--	if (!finite(fn)) {
-+	if (!isfinite(fn)) {
- 	    if(fn>0.0) return x*fn;
- 	    else       return x/(-fn);
- 	}
-diff -Naur uClibc-0.9.30.orig/libm/float_wrappers.c uClibc-0.9.30/libm/float_wrappers.c
---- uClibc-0.9.30.orig/libm/float_wrappers.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/float_wrappers.c	2008-12-22 03:55:13.991752000 -0800
-@@ -36,6 +36,7 @@
- float       atan2f(float, float);
- float       atanf(float);
- float       atanhf(float);
-+float       cargf(float complex);
- float       cbrtf(float);
- float       ceilf(float);
- float       copysignf(float, float);
-@@ -133,7 +134,7 @@
- #ifdef L_cargf
- float cargf (float complex x)
- {
--	return (float) carg( (double)x );
-+	return (float) carg( (double complex)x );
- }
- #endif
- 
-@@ -532,3 +533,10 @@
- 	return (float) trunc( (double)x );
- }
- #endif
-+
-+#ifdef L_fmaf
-+float fmaf (float x, float y, float z)
-+{
-+	return (float) fma( (double)x, (double)y, (double)z );
-+}
-+#endif
-diff -Naur uClibc-0.9.30.orig/libm/ldouble_wrappers.c uClibc-0.9.30/libm/ldouble_wrappers.c
---- uClibc-0.9.30.orig/libm/ldouble_wrappers.c	2008-10-03 07:24:28.000000000 -0700
-+++ uClibc-0.9.30/libm/ldouble_wrappers.c	2009-01-22 05:37:09.015514000 -0800
-@@ -11,6 +11,8 @@
-  */
- 
- #include "math.h"
-+#include <complex.h>
-+
- 
- /* Implement the following, as defined by SuSv3 */
- #if 0
-@@ -21,6 +23,7 @@
- long double atan2l(long double, long double);
- long double atanhl(long double);
- long double atanl(long double);
-+long double cargl(long double complex);
- long double cbrtl(long double);
- long double ceill(long double);
- long double copysignl(long double, long double);
-@@ -128,6 +131,14 @@
- #endif
- 
- 
-+#ifdef L_cargl
-+long double cargl (long double complex x)
-+{
-+	return (long double) carg( (double complex)x );
-+}
-+#endif
-+
-+
- #ifdef L_cbrtl
- long double cbrtl (long double x)
- {
-@@ -521,3 +532,43 @@
- 	return (long double) trunc( (double)x );
- }
- #endif
-+
-+
-+#ifdef __DO_C99_MATH__
-+
-+#ifdef L_fpclassifyl
-+int __fpclassifyl (long double x)
-+{
-+	return __fpclassify ( (double) x );
-+}
-+#endif
-+
-+#ifdef L_finitel
-+int __finitel (long double x)
-+{
-+	return __finite ( (double)x );
-+}
-+#endif
-+
-+#ifdef L_signbitl
-+int __signbitl (long double x)
-+{
-+	return __signbitl ( (double)x );
-+}
-+#endif
-+
-+#ifdef L_isnanl
-+int __isnanl (long double x)
-+{
-+	return __isnan ( (double)x );
-+}
-+#endif
-+
-+#ifdef L_isinfl
-+int __isinfl (long double x)
-+{
-+	return __isinf ( (double)x );
-+}
-+#endif
-+
-+#endif
-diff -Naur uClibc-0.9.30.orig/libm/Makefile.in uClibc-0.9.30/libm/Makefile.in
---- uClibc-0.9.30.orig/libm/Makefile.in	2008-11-07 13:15:53.000000000 -0800
-+++ uClibc-0.9.30/libm/Makefile.in	2008-12-22 03:55:13.991752000 -0800
-@@ -86,13 +86,13 @@
- 	scalblnf.o scalbnf.o sinf.o sinhf.o sqrtf.o tanf.o tanhf.o \
- 	tgammaf.o truncf.o cargf.o llrintf.o
- 
--LD_MOBJ := acoshl.o acosl.o asinhl.o asinl.o atan2l.o atanhl.o atanl.o cbrtl.o \
-+LD_MOBJ := acoshl.o acosl.o asinhl.o asinl.o atan2l.o atanhl.o atanl.o cargl.o cbrtl.o \
- 	ceill.o copysignl.o coshl.o cosl.o erfcl.o erfl.o exp2l.o expl.o \
--	expm1l.o fabsl.o fdiml.o floorl.o fmal.o fmaxl.o fminl.o fmodl.o \
--	frexpl.o gammal.o hypotl.o ilogbl.o ldexpl.o lgammal.o llrintl.o \
-+	expm1l.o fabsl.o finitel.o fdiml.o floorl.o fmal.o fmaxl.o fminl.o fmodl.o fpclassifyl.o \
-+	frexpl.o gammal.o hypotl.o ilogbl.o isinfl.o isnanl.o ldexpl.o lgammal.o llrintl.o \
- 	llroundl.o log10l.o log1pl.o XXXlog2l.o logbl.o logl.o lrintl.o lroundl.o \
- 	modfl.o nearbyintl.o nextafterl.o XXXnexttowardl.o powl.o remainderl.o \
--	remquol.o rintl.o roundl.o scalblnl.o scalbnl.o sinhl.o sinl.o sqrtl.o \
-+	remquol.o rintl.o roundl.o scalblnl.o scalbnl.o signbitl.o sinhl.o sinl.o sqrtl.o \
- 	tanhl.o tanl.o tgammal.o truncl.o
- else
- # This list of math functions was taken from POSIX/IEEE 1003.1b-1993
-@@ -139,21 +139,21 @@
- libm_OBJ := $(patsubst $(libm_DIR)/%.c,$(libm_OUT)/%.o,$(libm_SRC))
- 
- ifeq ($(strip $(UCLIBC_HAS_LONG_DOUBLE_MATH)),y)
--libm_MSRC2 := $(libm_DIR)/$(LD_MSRC)
--libm_MOBJ2 := $(patsubst %.o,$(libm_OUT)/%.o,$(LD_MOBJ))
-+libm_MSRC_LD := $(libm_DIR)/$(LD_MSRC)
-+libm_MOBJ_LD := $(patsubst %.o,$(libm_OUT)/%.o,$(LD_MOBJ))
- endif
--libm_MSRC := $(libm_DIR)/$(FL_MSRC)
--libm_MOBJ := $(patsubst %.o,$(libm_OUT)/%.o,$(FL_MOBJ))
-+libm_MSRC_FL := $(libm_DIR)/$(FL_MSRC)
-+libm_MOBJ_FL := $(patsubst %.o,$(libm_OUT)/%.o,$(FL_MOBJ))
- 
- 
- ifneq ($(DOMULTI),n)
--CFLAGS-libm += $(patsubst %,-DL_%,$(subst .o,,$(notdir $(libm_MOBJ))))
-+CFLAGS-libm += $(patsubst %,-DL_%,$(subst .o,,$(notdir $(libm_MOBJ_FL))))
- ifeq ($(strip $(UCLIBC_HAS_LONG_DOUBLE_MATH)),y)
--CFLAGS-libm += $(patsubst %,-DL_%,$(subst .o,,$(notdir $(libm_MOBJ2))))
-+CFLAGS-libm += $(patsubst %,-DL_%,$(subst .o,,$(notdir $(libm_MOBJ_LD))))
- endif
- endif
- 
--libm_OBJS := $(libm_OBJ) $(libm_MOBJ) $(libm_MOBJ2)
-+libm_OBJS := $(libm_OBJ) $(libm_MOBJ_FL) $(libm_MOBJ_LD)
- 
- ifeq ($(DOPIC),y)
- libm-a-y += $(libm_OBJS:.o=.os)
-@@ -182,7 +182,7 @@
- 	$(Q)$(RM) $@
- 	$(do_ar)
- 
--$(libm_OUT)/libm.oS: $(libm_SRC) $(libm_MSRC) $(libm_MSRC2) $(libm_ARCH_SRC)
-+$(libm_OUT)/libm.oS: $(libm_SRC) $(libm_MSRC_FL) $(libm_MSRC_LD) $(libm_ARCH_SRC)
- 	$(Q)$(RM) $@
- 	$(compile-m)
- 
-@@ -191,17 +191,24 @@
- 	$(Q)$(RM) $@
- 	$(do_ar)
- 
--$(libm_MOBJ): $(libm_MSRC)
-+$(libm_MOBJ_FL): $(libm_MSRC_FL)
- 	$(compile.m)
- 
--$(libm_MOBJ2): $(libm_MSRC2)
-+$(libm_MOBJ_LD): $(libm_MSRC_LD)
- 	$(compile.m)
- 
--$(libm_MOBJ:.o=.os): $(libm_MSRC)
-+$(libm_MOBJ_FL:.o=.os): $(libm_MSRC_FL)
- 	$(compile.m)
- 
--$(libm_MOBJ2:.o=.os): $(libm_MSRC2)
-+$(libm_MOBJ_LD:.o=.os): $(libm_MSRC_LD)
- 	$(compile.m)
- 
-+# spare us from adding a gazillion dummy two-liner files
-+$(libm_MOBJ_FL:.o=.i): $(libm_MSRC_FL)
-+	$(compile.mi)
-+
-+$(libm_MOBJ_LD:.o=.i): $(libm_MSRC_LD)
-+	$(compile.mi)
-+
- libm_clean:
- 	$(do_rm) $(addprefix $(libm_OUT)/,$(foreach e, o os oS a,$(foreach d, *. */*. */*/*.,$(d)$(e))))
-diff -Naur uClibc-0.9.30.orig/libm/s_finite.c uClibc-0.9.30/libm/s_finite.c
---- uClibc-0.9.30.orig/libm/s_finite.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_finite.c	2008-12-22 03:55:13.991752000 -0800
-@@ -25,5 +25,3 @@
- 	return (int)((u_int32_t)((hx&0x7fffffff)-0x7ff00000)>>31);
- }
- libm_hidden_def(__finite)
--weak_alias(__finite,finite)
--libm_hidden_weak(finite)
-diff -Naur uClibc-0.9.30.orig/libm/s_finitef.c uClibc-0.9.30/libm/s_finitef.c
---- uClibc-0.9.30.orig/libm/s_finitef.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_finitef.c	2008-12-22 03:55:13.991752000 -0800
-@@ -21,7 +21,6 @@
- #include "math.h"
- #include "math_private.h"
- 
--libm_hidden_proto(__finitef)
- int __finitef(float x)
- {
- 	int32_t ix;
-@@ -29,4 +28,3 @@
- 	return (int)((u_int32_t)((ix&0x7fffffff)-0x7f800000)>>31);
- }
- libm_hidden_def(__finitef)
--strong_alias(__finitef,finitef)
-diff -Naur uClibc-0.9.30.orig/libm/s_fma.c uClibc-0.9.30/libm/s_fma.c
---- uClibc-0.9.30.orig/libm/s_fma.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_fma.c	2008-12-22 03:55:13.991752000 -0800
-@@ -20,11 +20,9 @@
- 
- #include <math.h>
- 
--libm_hidden_proto(__fma)
- double
--__fma (double x, double y, double z)
-+fma (double x, double y, double z)
- {
-   return (x * y) + z;
- }
--libm_hidden_def(__fma)
--strong_alias (__fma, fma)
-+libm_hidden_def(fma)
-diff -Naur uClibc-0.9.30.orig/libm/s_fpclassify.c uClibc-0.9.30/libm/s_fpclassify.c
---- uClibc-0.9.30.orig/libm/s_fpclassify.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_fpclassify.c	2008-12-22 03:55:13.991752000 -0800
-@@ -40,4 +40,4 @@
- 
-   return retval;
- }
--libm_hidden_def (__fpclassify)
-+libm_hidden_def(__fpclassify)
-diff -Naur uClibc-0.9.30.orig/libm/s_fpclassifyf.c uClibc-0.9.30/libm/s_fpclassifyf.c
---- uClibc-0.9.30.orig/libm/s_fpclassifyf.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_fpclassifyf.c	2008-12-22 03:55:13.991752000 -0800
-@@ -21,9 +21,7 @@
- #include <math.h>
- #include "math_private.h"
- 
--libm_hidden_proto (__fpclassifyf)
--int
--__fpclassifyf (float x)
-+int __fpclassifyf (float x)
- {
-   u_int32_t wx;
-   int retval = FP_NORMAL;
-@@ -39,4 +37,4 @@
- 
-   return retval;
- }
--libm_hidden_def (__fpclassifyf)
-+libm_hidden_def(__fpclassifyf)
-diff -Naur uClibc-0.9.30.orig/libm/s_isinf.c uClibc-0.9.30/libm/s_isinf.c
---- uClibc-0.9.30.orig/libm/s_isinf.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_isinf.c	2008-12-22 03:55:13.991752000 -0800
-@@ -22,5 +22,3 @@
- 	return ~(lx >> 31) & (hx >> 30);
- }
- libm_hidden_def(__isinf)
--weak_alias (__isinf, isinf)
--libm_hidden_weak(isinf)
-diff -Naur uClibc-0.9.30.orig/libm/s_isinff.c uClibc-0.9.30/libm/s_isinff.c
---- uClibc-0.9.30.orig/libm/s_isinff.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_isinff.c	2008-12-22 03:55:13.991752000 -0800
-@@ -11,7 +11,6 @@
- #include "math.h"
- #include "math_private.h"
- 
--libm_hidden_proto(__isinff)
- int
- __isinff (float x)
- {
-@@ -23,4 +22,3 @@
- 	return ~(t >> 31) & (ix >> 30);
- }
- libm_hidden_def(__isinff)
--strong_alias (__isinff, isinff)
-diff -Naur uClibc-0.9.30.orig/libm/s_isnan.c uClibc-0.9.30/libm/s_isnan.c
---- uClibc-0.9.30.orig/libm/s_isnan.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_isnan.c	2008-12-22 03:55:13.991752000 -0800
-@@ -18,12 +18,7 @@
- #include "math.h"
- #include "math_private.h"
- 
--#ifdef __STDC__
--	int __isnan(double x)
--#else
--	int __isnan(x)
--	double x;
--#endif
-+int __isnan(double x)
- {
- 	int32_t hx,lx;
- 	EXTRACT_WORDS(hx,lx,x);
-@@ -33,5 +28,3 @@
- 	return (int)(((u_int32_t)hx)>>31);
- }
- libm_hidden_def(__isnan)
--weak_alias(__isnan,isnan)
--libm_hidden_weak(isnan)
-diff -Naur uClibc-0.9.30.orig/libm/s_isnanf.c uClibc-0.9.30/libm/s_isnanf.c
---- uClibc-0.9.30.orig/libm/s_isnanf.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_isnanf.c	2008-12-22 03:55:13.991752000 -0800
-@@ -21,7 +21,6 @@
- #include "math.h"
- #include "math_private.h"
- 
--libm_hidden_proto (__isnanf)
- int __isnanf(float x)
- {
- 	int32_t ix;
-@@ -30,5 +29,4 @@
- 	ix = 0x7f800000 - ix;
- 	return (int)(((u_int32_t)(ix))>>31);
- }
--libm_hidden_def (__isnanf)
--weak_alias (__isnanf, isnanf)
-+libm_hidden_def(__isnanf)
-diff -Naur uClibc-0.9.30.orig/libm/s_ldexp.c uClibc-0.9.30/libm/s_ldexp.c
---- uClibc-0.9.30.orig/libm/s_ldexp.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_ldexp.c	2008-12-22 03:55:13.991752000 -0800
-@@ -26,9 +26,9 @@
- 	double value; int exp;
- #endif
- {
--	if(!finite(value)||value==0.0) return value;
-+	if(!isfinite(value)||value==0.0) return value;
- 	value = scalbn(value,exp);
--	if(!finite(value)||value==0.0) errno = ERANGE;
-+	if(!isfinite(value)||value==0.0) errno = ERANGE;
- 	return value;
- }
- libm_hidden_def(ldexp)
-diff -Naur uClibc-0.9.30.orig/libm/s_signbitf.c uClibc-0.9.30/libm/s_signbitf.c
---- uClibc-0.9.30.orig/libm/s_signbitf.c	2008-09-25 10:43:58.000000000 -0700
-+++ uClibc-0.9.30/libm/s_signbitf.c	2008-12-22 03:55:13.991752000 -0800
-@@ -22,7 +22,6 @@
- 
- #include "math_private.h"
- 
--libm_hidden_proto(__signbitf)
- int
- __signbitf (float x)
- {
-diff -Naur uClibc-0.9.30.orig/libm/s_significand.c uClibc-0.9.30/libm/s_significand.c
---- uClibc-0.9.30.orig/libm/s_significand.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/s_significand.c	2008-12-22 03:55:13.991752000 -0800
-@@ -33,4 +33,3 @@
- {
- 	return __ieee754_scalb(x,(double) -ilogb(x));
- }
--libm_hidden_def(significand)
-diff -Naur uClibc-0.9.30.orig/libm/w_drem.c uClibc-0.9.30/libm/w_drem.c
---- uClibc-0.9.30.orig/libm/w_drem.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_drem.c	2008-12-22 03:55:13.991752000 -0800
-@@ -12,4 +12,3 @@
- {
- 	return remainder(x, y);
- }
--libm_hidden_def(drem)
-diff -Naur uClibc-0.9.30.orig/libm/w_exp.c uClibc-0.9.30/libm/w_exp.c
---- uClibc-0.9.30.orig/libm/w_exp.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_exp.c	2008-12-22 03:55:13.991752000 -0800
-@@ -42,7 +42,7 @@
- 	double z;
- 	z = __ieee754_exp(x);
- 	if(_LIB_VERSION == _IEEE_) return z;
--	if(finite(x)) {
-+	if(isfinite(x)) {
- 	    if(x>o_threshold)
- 	        return __kernel_standard(x,x,6); /* exp overflow */
- 	    else if(x<u_threshold)
-diff -Naur uClibc-0.9.30.orig/libm/w_gamma.c uClibc-0.9.30/libm/w_gamma.c
---- uClibc-0.9.30.orig/libm/w_gamma.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_gamma.c	2008-12-22 03:55:13.991752000 -0800
-@@ -37,7 +37,7 @@
-         double y;
-         y = __ieee754_lgamma_r(x,&signgam);
-         if(_LIB_VERSION == _IEEE_) return y;
--        if(!finite(y)&&finite(x)) {
-+        if(!isfinite(y)&&isfinite(x)) {
-             if(floor(x)==x&&x<=0.0)
-                 return __kernel_standard(x,x,41); /* gamma pole */
-             else
-@@ -46,4 +46,3 @@
-             return y;
- #endif
- }
--libm_hidden_def(gamma)
-diff -Naur uClibc-0.9.30.orig/libm/w_gamma_r.c uClibc-0.9.30/libm/w_gamma_r.c
---- uClibc-0.9.30.orig/libm/w_gamma_r.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_gamma_r.c	2008-12-22 03:55:13.991752000 -0800
-@@ -37,7 +37,7 @@
-         double y;
-         y = __ieee754_lgamma_r(x,signgamp);
-         if(_LIB_VERSION == _IEEE_) return y;
--        if(!finite(y)&&finite(x)) {
-+        if(!isfinite(y)&&isfinite(x)) {
-             if(floor(x)==x&&x<=0.0)
-                 return __kernel_standard(x,x,41); /* gamma pole */
-             else
-diff -Naur uClibc-0.9.30.orig/libm/w_hypot.c uClibc-0.9.30/libm/w_hypot.c
---- uClibc-0.9.30.orig/libm/w_hypot.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_hypot.c	2008-12-22 03:55:13.991752000 -0800
-@@ -34,7 +34,7 @@
- 	double z;
- 	z = __ieee754_hypot(x,y);
- 	if(_LIB_VERSION == _IEEE_) return z;
--	if((!finite(z))&&finite(x)&&finite(y))
-+	if((!isfinite(z))&&isfinite(x)&&isfinite(y))
- 	    return __kernel_standard(x,y,4); /* hypot overflow */
- 	else
- 	    return z;
-diff -Naur uClibc-0.9.30.orig/libm/w_j0.c uClibc-0.9.30/libm/w_j0.c
---- uClibc-0.9.30.orig/libm/w_j0.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_j0.c	2008-12-22 03:55:13.991752000 -0800
-@@ -39,7 +39,6 @@
- 	    return z;
- #endif
- }
--libm_hidden_def(j0)
- 
- #ifdef __STDC__
- 	double y0(double x)		/* wrapper y0 */
-@@ -68,4 +67,3 @@
- 	    return z;
- #endif
- }
--libm_hidden_def(y0)
-diff -Naur uClibc-0.9.30.orig/libm/w_j1.c uClibc-0.9.30/libm/w_j1.c
---- uClibc-0.9.30.orig/libm/w_j1.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_j1.c	2008-12-22 03:55:13.991752000 -0800
-@@ -40,7 +40,6 @@
- 	    return z;
- #endif
- }
--libm_hidden_def(j1)
- 
- #ifdef __STDC__
- 	double y1(double x)		/* wrapper y1 */
-@@ -69,4 +68,3 @@
- 	    return z;
- #endif
- }
--libm_hidden_def(y1)
-diff -Naur uClibc-0.9.30.orig/libm/w_jn.c uClibc-0.9.30/libm/w_jn.c
---- uClibc-0.9.30.orig/libm/w_jn.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_jn.c	2008-12-22 03:55:13.991752000 -0800
-@@ -62,7 +62,6 @@
- 	    return z;
- #endif
- }
--libm_hidden_def(jn)
- 
- #ifdef __STDC__
- 	double yn(int n, double x)	/* wrapper yn */
-@@ -91,4 +90,3 @@
- 	    return z;
- #endif
- }
--libm_hidden_def(yn)
-diff -Naur uClibc-0.9.30.orig/libm/w_lgamma.c uClibc-0.9.30/libm/w_lgamma.c
---- uClibc-0.9.30.orig/libm/w_lgamma.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_lgamma.c	2008-12-22 03:55:13.991752000 -0800
-@@ -37,7 +37,7 @@
-         double y;
-         y = __ieee754_lgamma_r(x,&signgam);
-         if(_LIB_VERSION == _IEEE_) return y;
--        if(!finite(y)&&finite(x)) {
-+        if(!isfinite(y)&&isfinite(x)) {
-             if(floor(x)==x&&x<=0.0)
-                 return __kernel_standard(x,x,15); /* lgamma pole */
-             else
-diff -Naur uClibc-0.9.30.orig/libm/w_lgamma_r.c uClibc-0.9.30/libm/w_lgamma_r.c
---- uClibc-0.9.30.orig/libm/w_lgamma_r.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_lgamma_r.c	2008-12-22 03:55:13.991752000 -0800
-@@ -34,7 +34,7 @@
-         double y;
-         y = __ieee754_lgamma_r(x,signgamp);
-         if(_LIB_VERSION == _IEEE_) return y;
--        if(!finite(y)&&finite(x)) {
-+        if(!isfinite(y)&&isfinite(x)) {
-             if(floor(x)==x&&x<=0.0)
-                 return __kernel_standard(x,x,15); /* lgamma pole */
-             else
-@@ -43,4 +43,3 @@
-             return y;
- #endif
- }
--libm_hidden_def(lgamma_r)
-diff -Naur uClibc-0.9.30.orig/libm/w_log2.c uClibc-0.9.30/libm/w_log2.c
---- uClibc-0.9.30.orig/libm/w_log2.c	2008-10-06 03:24:41.000000000 -0700
-+++ uClibc-0.9.30/libm/w_log2.c	2008-12-22 03:55:13.991752000 -0800
-@@ -11,4 +11,3 @@
- {
- 	return __ieee754_log2 (d);
- }
--libm_hidden_def(log2)
-diff -Naur uClibc-0.9.30.orig/libm/w_pow.c uClibc-0.9.30/libm/w_pow.c
---- uClibc-0.9.30.orig/libm/w_pow.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_pow.c	2008-12-22 03:55:13.991752000 -0800
-@@ -41,19 +41,19 @@
- 	if(x==0.0){
- 	    if(y==0.0)
- 	        return __kernel_standard(x,y,20); /* pow(0.0,0.0) */
--	    if(finite(y)&&y<0.0)
-+	    if(isfinite(y)&&y<0.0)
- 	        return __kernel_standard(x,y,23); /* pow(0.0,negative) */
- 	    return z;
- 	}
--	if(!finite(z)) {
--	    if(finite(x)&&finite(y)) {
-+	if(!isfinite(z)) {
-+	    if(isfinite(x)&&isfinite(y)) {
- 	        if(isnan(z))
- 	            return __kernel_standard(x,y,24); /* pow neg**non-int */
- 	        else
- 	            return __kernel_standard(x,y,21); /* pow overflow */
- 	    }
- 	}
--	if(z==0.0&&finite(x)&&finite(y))
-+	if(z==0.0&&isfinite(x)&&isfinite(y))
- 	    return __kernel_standard(x,y,22); /* pow underflow */
- 	return z;
- #endif
-diff -Naur uClibc-0.9.30.orig/libm/w_scalb.c uClibc-0.9.30/libm/w_scalb.c
---- uClibc-0.9.30.orig/libm/w_scalb.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_scalb.c	2008-12-22 03:55:13.991752000 -0800
-@@ -46,16 +46,15 @@
- 	double z;
- 	z = __ieee754_scalb(x,fn);
- 	if(_LIB_VERSION == _IEEE_) return z;
--	if(!(finite(z)||isnan(z))&&finite(x)) {
-+	if(!(isfinite(z)||isnan(z))&&isfinite(x)) {
- 	    return __kernel_standard(x,(double)fn,32); /* scalb overflow */
- 	}
- 	if(z==0.0&&z!=x) {
- 	    return __kernel_standard(x,(double)fn,33); /* scalb underflow */
- 	}
- #ifndef _SCALB_INT
--	if(!finite(fn)) errno = ERANGE;
-+	if(!isfinite(fn)) errno = ERANGE;
- #endif
- 	return z;
- #endif
- }
--libm_hidden_def(scalb)
-diff -Naur uClibc-0.9.30.orig/libm/w_sinh.c uClibc-0.9.30/libm/w_sinh.c
---- uClibc-0.9.30.orig/libm/w_sinh.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_sinh.c	2008-12-22 03:55:13.991752000 -0800
-@@ -34,7 +34,7 @@
- 	double z;
- 	z = __ieee754_sinh(x);
- 	if(_LIB_VERSION == _IEEE_) return z;
--	if(!finite(z)&&finite(x)) {
-+	if(!isfinite(z)&&isfinite(x)) {
- 	    return __kernel_standard(x,x,25); /* sinh overflow */
- 	} else
- 	    return z;
-diff -Naur uClibc-0.9.30.orig/libm/w_tgamma.c uClibc-0.9.30/libm/w_tgamma.c
---- uClibc-0.9.30.orig/libm/w_tgamma.c	2008-09-26 07:50:16.000000000 -0700
-+++ uClibc-0.9.30/libm/w_tgamma.c	2008-12-22 03:55:13.991752000 -0800
-@@ -35,7 +35,7 @@
- #else
- 	if(_LIB_VERSION == _IEEE_) return y;
- 
--	if(!finite(y)&&finite(x)) {
-+	if(!isfinite(y)&&isfinite(x)) {
- 	  if(floor(x)==x&&x<=0.0)
- 	    return __kernel_standard(x,x,41); /* tgamma pole */
- 	  else
-diff -Naur uClibc-0.9.30.orig/libnsl/Makefile.in uClibc-0.9.30/libnsl/Makefile.in
---- uClibc-0.9.30.orig/libnsl/Makefile.in	2008-11-07 13:15:53.000000000 -0800
-+++ uClibc-0.9.30/libnsl/Makefile.in	2009-01-22 01:50:29.175100000 -0800
-@@ -7,7 +7,7 @@
- 
- CFLAGS-libnsl := -DNOT_IN_libc -DIS_IN_libnsl $(SSP_ALL_CFLAGS)
- 
--LDFLAGS-libnsl.so := $(LDFLAGS)
-+LDFLAGS-libnsl.so := $(LDFLAGS) $(call link.asneeded,-lc)
- 
- LIBS-libnsl.so := $(LIBS)
- 
-diff -Naur uClibc-0.9.30.orig/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h uClibc-0.9.30/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h
---- uClibc-0.9.30.orig/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h	1969-12-31 16:00:00.000000000 -0800
-+++ uClibc-0.9.30/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h	2009-02-07 23:04:10.002829166 -0800
-@@ -0,0 +1,9 @@
-+#include <sysdep.h>
-+
-+/* No multi-thread handling enabled.  */
-+#define SINGLE_THREAD_P (1)
-+#define RTLD_SINGLE_THREAD_P (1)
-+#define LIBC_CANCEL_ASYNC()	0 /* Just a dummy value.  */
-+#define LIBC_CANCEL_RESET(val)	((void)(val)) /* Nothing, but evaluate it.  */
-+#define LIBC_CANCEL_HANDLED()	/* Nothing.  */
-+
-diff -Naur uClibc-0.9.30.orig/libpthread/linuxthreads/sysdeps/arm/sysdep.h uClibc-0.9.30/libpthread/linuxthreads/sysdeps/arm/sysdep.h
---- uClibc-0.9.30.orig/libpthread/linuxthreads/sysdeps/arm/sysdep.h	1969-12-31 16:00:00.000000000 -0800
-+++ uClibc-0.9.30/libpthread/linuxthreads/sysdeps/arm/sysdep.h	2009-02-07 23:04:39.476557900 -0800
-@@ -0,0 +1,138 @@
-+/* Generic asm macros used on many machines.
-+   Copyright (C) 1991,92,93,96,98,2002,2003 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#ifndef C_LABEL
-+
-+/* Define a macro we can use to construct the asm name for a C symbol.  */
-+#ifdef	NO_UNDERSCORES
-+#ifdef	__STDC__
-+#define C_LABEL(name)		name##:
-+#else
-+#define C_LABEL(name)		name/**/:
-+#endif
-+#else
-+#ifdef	__STDC__
-+#define C_LABEL(name)		_##name##:
-+#else
-+#define C_LABEL(name)		_/**/name/**/:
-+#endif
-+#endif
-+
-+#endif
-+
-+#ifdef __ASSEMBLER__
-+/* Mark the end of function named SYM.  This is used on some platforms
-+   to generate correct debugging information.  */
-+#ifndef END
-+#define END(sym)
-+#endif
-+
-+#ifndef JUMPTARGET
-+#define JUMPTARGET(sym)		sym
-+#endif
-+
-+/* Makros to generate eh_frame unwind information.  */
-+# ifdef HAVE_ASM_CFI_DIRECTIVES
-+#  define cfi_startproc			.cfi_startproc
-+#  define cfi_endproc			.cfi_endproc
-+#  define cfi_def_cfa(reg, off)		.cfi_def_cfa reg, off
-+#  define cfi_def_cfa_register(reg)	.cfi_def_cfa_register reg
-+#  define cfi_def_cfa_offset(off)	.cfi_def_cfa_offset off
-+#  define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
-+#  define cfi_offset(reg, off)		.cfi_offset reg, off
-+#  define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
-+#  define cfi_register(r1, r2)		.cfi_register r1, r2
-+#  define cfi_return_column(reg)	.cfi_return_column reg
-+#  define cfi_restore(reg)		.cfi_restore reg
-+#  define cfi_same_value(reg)		.cfi_same_value reg
-+#  define cfi_undefined(reg)		.cfi_undefined reg
-+#  define cfi_remember_state		.cfi_remember_state
-+#  define cfi_restore_state		.cfi_restore_state
-+#  define cfi_window_save		.cfi_window_save
-+# else
-+#  define cfi_startproc
-+#  define cfi_endproc
-+#  define cfi_def_cfa(reg, off)
-+#  define cfi_def_cfa_register(reg)
-+#  define cfi_def_cfa_offset(off)
-+#  define cfi_adjust_cfa_offset(off)
-+#  define cfi_offset(reg, off)
-+#  define cfi_rel_offset(reg, off)
-+#  define cfi_register(r1, r2)
-+#  define cfi_return_column(reg)
-+#  define cfi_restore(reg)
-+#  define cfi_same_value(reg)
-+#  define cfi_undefined(reg)
-+#  define cfi_remember_state
-+#  define cfi_restore_state
-+#  define cfi_window_save
-+# endif
-+
-+#else /* ! ASSEMBLER */
-+# ifdef HAVE_ASM_CFI_DIRECTIVES
-+#  define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
-+#  define CFI_STRINGIFY2(Name) #Name
-+#  define CFI_STARTPROC	".cfi_startproc"
-+#  define CFI_ENDPROC	".cfi_endproc"
-+#  define CFI_DEF_CFA(reg, off)	\
-+   ".cfi_def_cfa " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
-+#  define CFI_DEF_CFA_REGISTER(reg) \
-+   ".cfi_def_cfa_register " CFI_STRINGIFY(reg)
-+#  define CFI_DEF_CFA_OFFSET(off) \
-+   ".cfi_def_cfa_offset " CFI_STRINGIFY(off)
-+#  define CFI_ADJUST_CFA_OFFSET(off) \
-+   ".cfi_adjust_cfa_offset " CFI_STRINGIFY(off)
-+#  define CFI_OFFSET(reg, off) \
-+   ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
-+#  define CFI_REL_OFFSET(reg, off) \
-+   ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
-+#  define CFI_REGISTER(r1, r2) \
-+   ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)
-+#  define CFI_RETURN_COLUMN(reg) \
-+   ".cfi_return_column " CFI_STRINGIFY(reg)
-+#  define CFI_RESTORE(reg) \
-+   ".cfi_restore " CFI_STRINGIFY(reg)
-+#  define CFI_UNDEFINED(reg) \
-+   ".cfi_undefined " CFI_STRINGIFY(reg)
-+#  define CFI_REMEMBER_STATE \
-+   ".cfi_remember_state"
-+#  define CFI_RESTORE_STATE \
-+   ".cfi_restore_state"
-+#  define CFI_WINDOW_SAVE \
-+   ".cfi_window_save"
-+# else
-+#  define CFI_STARTPROC
-+#  define CFI_ENDPROC
-+#  define CFI_DEF_CFA(reg, off)
-+#  define CFI_DEF_CFA_REGISTER(reg)
-+#  define CFI_DEF_CFA_OFFSET(off)
-+#  define CFI_ADJUST_CFA_OFFSET(off)
-+#  define CFI_OFFSET(reg, off)
-+#  define CFI_REL_OFFSET(reg, off)
-+#  define CFI_REGISTER(r1, r2)
-+#  define CFI_RETURN_COLUMN(reg)
-+#  define CFI_RESTORE(reg)
-+#  define CFI_UNDEFINED(reg)
-+#  define CFI_REMEMBER_STATE
-+#  define CFI_RESTORE_STATE
-+#  define CFI_WINDOW_SAVE
-+# endif
-+
-+#endif /* __ASSEMBLER__ */
-+
-diff -Naur uClibc-0.9.30.orig/libpthread/linuxthreads/sysdeps/pthread/pthread.h uClibc-0.9.30/libpthread/linuxthreads/sysdeps/pthread/pthread.h
---- uClibc-0.9.30.orig/libpthread/linuxthreads/sysdeps/pthread/pthread.h	2006-12-07 19:19:36.000000000 -0800
-+++ uClibc-0.9.30/libpthread/linuxthreads/sysdeps/pthread/pthread.h	2009-01-21 15:19:15.303392000 -0800
-@@ -290,7 +290,7 @@
- 
- #ifdef __USE_GNU
- /* Initialize thread attribute *ATTR with attributes corresponding to the
--   already running thread TH.  It shall be called on unitialized ATTR
-+   already running thread TH.  It shall be called on uninitialized ATTR
-    and destroyed with pthread_attr_destroy when no longer needed.  */
- extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) __THROW;
- #endif
-diff -Naur uClibc-0.9.30.orig/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h uClibc-0.9.30/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h
---- uClibc-0.9.30.orig/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h	2008-07-23 04:19:00.000000000 -0700
-+++ uClibc-0.9.30/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h	2008-11-18 00:01:04.405155000 -0800
-@@ -25,40 +25,13 @@
- #define _PT_MACHINE_H   1
- 
- #include <features.h>
-+#include <sgidefs.h>
-+#include <sys/tas.h>
- 
- #ifndef PT_EI
- # define PT_EI __extern_always_inline
- #endif
- 
--/* Copyright (C) 2000, 2002 Free Software Foundation, Inc.
--   This file is part of the GNU C Library.
--   Contributed by Maciej W. Rozycki <macro@ds2.pg.gda.pl>, 2000.  */
--static __inline__ int
--__NTH (_test_and_set (int *p, int v))
--{
--  int r, t;
--
--  __asm__ __volatile__
--    ("/* Inline test and set */\n"
--     "1:\n\t"
--     ".set	push\n\t"
--     ".set	mips2\n\t"
--     "ll	%0,%3\n\t"
--     "move	%1,%4\n\t"
--     "beq	%0,%4,2f\n\t"
--     "sc	%1,%2\n\t"
--     ".set	pop\n\t"
--     "beqz	%1,1b\n"
--     "2:\n\t"
--     "/* End test and set */"
--     : "=&r" (r), "=&r" (t), "=m" (*p)
--     : "m" (*p), "r" (v)
--     : "memory");
--
--  return r;
--}
--
--
- /* Spinlock implementation; required.  */
- 
- PT_EI long int
-@@ -86,12 +59,22 @@
-     ("/* Inline compare & swap */\n"
-      "1:\n\t"
-      ".set	push\n\t"
-+#if _MIPS_SIM == _ABIO32
-      ".set	mips2\n\t"
-+#endif
-+#if _MIPS_SIM == _ABI64
-+     "lld	%1,%5\n\t"
-+#else
-      "ll	%1,%5\n\t"
-+#endif
-      "move	%0,$0\n\t"
-      "bne	%1,%3,2f\n\t"
-      "move	%0,%4\n\t"
-+#if _MIPS_SIM == _ABI64
-+     "scd	%0,%2\n\t"
-+#else
-      "sc	%0,%2\n\t"
-+#endif
-      ".set	pop\n\t"
-      "beqz	%0,1b\n"
-      "2:\n\t"
-diff -Naur uClibc-0.9.30.orig/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h uClibc-0.9.30/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h
---- uClibc-0.9.30.orig/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h	2007-11-22 08:55:08.000000000 -0800
-+++ uClibc-0.9.30/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h	2009-01-21 15:19:15.303392000 -0800
-@@ -293,7 +293,7 @@
- 
- #ifdef __USE_GNU
- /* Initialize thread attribute *ATTR with attributes corresponding to the
--   already running thread TH.  It shall be called on unitialized ATTR
-+   already running thread TH.  It shall be called on uninitialized ATTR
-    and destroyed with pthread_attr_destroy when no longer needed.  */
- extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) __THROW;
- #endif
-diff -Naur uClibc-0.9.30.orig/libresolv/Makefile.in uClibc-0.9.30/libresolv/Makefile.in
---- uClibc-0.9.30.orig/libresolv/Makefile.in	2008-11-07 13:15:53.000000000 -0800
-+++ uClibc-0.9.30/libresolv/Makefile.in	2009-01-22 01:50:29.175100000 -0800
-@@ -7,7 +7,7 @@
- 
- CFLAGS-libresolv := -DNOT_IN_libc -DIS_IN_libresolv $(SSP_ALL_CFLAGS)
- 
--LDFLAGS-libresolv.so := $(LDFLAGS)
-+LDFLAGS-libresolv.so := $(LDFLAGS) $(call link.asneeded,-lc)
- 
- LIBS-libresolv.so := $(LIBS)
- 
-diff -Naur uClibc-0.9.30.orig/librt/Makefile.in uClibc-0.9.30/librt/Makefile.in
---- uClibc-0.9.30.orig/librt/Makefile.in	2008-11-07 13:15:53.000000000 -0800
-+++ uClibc-0.9.30/librt/Makefile.in	2009-01-22 01:50:29.175100000 -0800
-@@ -7,7 +7,7 @@
- 
- CFLAGS-librt := -DNOT_IN_libc -DIS_IN_librt $(SSP_ALL_CFLAGS)
- 
--LDFLAGS-librt.so := $(LDFLAGS)
-+LDFLAGS-librt.so := $(LDFLAGS) $(call link.asneeded,-lc)
- 
- LIBS-librt.so := $(LIBS)
- 
-diff -Naur uClibc-0.9.30.orig/Makefile.in uClibc-0.9.30/Makefile.in
---- uClibc-0.9.30.orig/Makefile.in	2008-11-07 13:15:53.000000000 -0800
-+++ uClibc-0.9.30/Makefile.in	2008-11-17 14:38:34.243941000 -0800
-@@ -159,7 +159,7 @@
- 	@$(disp_gen)
- 	$(Q)set -e; \
- 	cd $(top_builddir); \
--	tmp=`mktemp include/bits/sysnum.h.XXXXXX 2>/dev/null`; \
-+	tmp=`mktemp include/bits/sysnum.h.XXXXXX 2>/dev/null || true`; \
- 	[ -z "$$tmp" ] && tmp='include/bits/sysnum.h.new'; \
- 	KERNEL_HEADERS="${KERNEL_HEADERS}" top_builddir=. CC="$(CC) $(CPU_CFLAGS)" $(SHELL) extra/scripts/gen_bits_syscall_h.sh > $$tmp; \
- 	if cmp include/bits/sysnum.h $$tmp >/dev/null 2>&1; then \
-@@ -167,6 +167,15 @@
- 	else \
- 		mv -f $$tmp include/bits/sysnum.h; \
- 	fi
-+	@# Ugly linux specific hack..
-+	$(Q)if grep -q __NR_ $@; then true; else \
-+		rm -f $@; \
-+		echo "ERROR: Could not generate syscalls."; \
-+		echo "Make sure that you have proper kernel headers."; \
-+		echo "Your .config in KERNEL_HEADERS=\"\" was set to:"; \
-+		echo "${KERNEL_HEADERS}"; \
-+		exit 1; \
-+	fi
- 
- $(LOCAL_INSTALL_PATH):
- 	$(Q)$(MAKE) PREFIX=$(shell pwd)/ RUNTIME_PREFIX=./ \
-@@ -315,7 +324,13 @@
- 	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/inotify.h
- 	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/perm.h
- 	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/personality.h
-+	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/prctl.h
-+	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/reboot.h
-+	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/sendfile.h
-+	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/fsuid.h
- 	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/signalfd.h
-+	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/swap.h
-+	$(RM) $(PREFIX)$(DEVEL_PREFIX)include/sys/sysctl.h
- endif
- ifneq ($(UCLIBC_SV4_DEPRECATED),y)
- 	# Remove ustat.h since deprecated SV4 support was disabled upon request
-diff -Naur uClibc-0.9.30.orig/Makerules uClibc-0.9.30/Makerules
---- uClibc-0.9.30.orig/Makerules	2008-11-07 13:15:53.000000000 -0800
-+++ uClibc-0.9.30/Makerules	2009-01-14 08:03:24.358149000 -0800
-@@ -80,6 +80,7 @@
- pur_disp_compile.u = echo "  "CC $(show_objs)
- pur_disp_compile.S = echo "  "AS $(show_objs)
- pur_disp_compile.m = $(pur_disp_compile.c)
-+pur_disp_compile.mi= echo "  "CPP-m $(show_objs)
- pur_disp_compile-m = echo "  "CC-m $(show_objs)
- pur_disp_hcompile.u= echo "  "HOSTCC $(show_objs)
- pur_disp_hcompile.o= echo "  "HOSTCC-o $(show_objs)
-@@ -99,6 +100,7 @@
- sil_disp_compile.u = true
- sil_disp_compile.S = true
- sil_disp_compile.m = true
-+sil_disp_compile.mi= true
- sil_disp_compile-m = true
- sil_disp_hcompile.u= true
- sil_disp_hcompile.o= true
-@@ -118,6 +120,7 @@
- ver_disp_compile.u = echo $(cmd_compile.u)
- ver_disp_compile.S = echo $(cmd_compile.S)
- ver_disp_compile.m = echo $(cmd_compile.m)
-+ver_disp_compile.mi= echo $(cmd_compile.mi)
- ver_disp_compile-m = echo $(cmd_compile-m)
- ver_disp_hcompile.u= echo $(cmd_hcompile.u)
- ver_disp_hcompile.o= echo $(cmd_hcompile.o)
-@@ -137,6 +140,7 @@
- disp_compile.u = $($(DISP)_disp_compile.u)
- disp_compile.S = $($(DISP)_disp_compile.S)
- disp_compile.m = $($(DISP)_disp_compile.m)
-+disp_compile.mi= $($(DISP)_disp_compile.mi)
- disp_compile-m = $($(DISP)_disp_compile-m)
- disp_hcompile.u= $($(DISP)_disp_hcompile.u)
- disp_hcompile.o= $($(DISP)_disp_hcompile.o)
-@@ -189,6 +193,7 @@
- cmd_compile.u = $(CC) $^ $(DEPS-$(notdir $@)) -o $@ $(CFLAGS) $(CFLAGS-$(notdir $(^D))) $(CFLAGS-$(notdir $@)) $(CFLAGS_gen.dep)
- cmd_compile.S = $(filter-out -std=gnu99, $(cmd_compile.c)) -D__ASSEMBLER__ $(ASFLAGS) $(ARCH_ASFLAGS) $(ASFLAGS-$(suffix $@)) $(ASFLAGS-$(notdir $<)) $(ASFLAGS-$(notdir $@))
- cmd_compile.m = $(cmd_compile.c) -DL_$(patsubst %$(suffix $(notdir $@)),%,$(notdir $@))
-+cmd_compile.mi= $(cmd_compile.m:-c=-E -dD $(EXTRA_CPPFLAGS))
- 
- cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(ARCH_CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $(@D))) $(CFLAGS-$(notdir $@))
- cmd_strip     = $(STRIPTOOL) $(STRIP_FLAGS) $^
-@@ -211,7 +216,8 @@
- compile.s =  $(call maybe_exec,compile.s)
- compile.S = @$(call maybe_exec,compile.S)
- compile.m = @$(call maybe_exec,compile.m)
--compile-m = @$(disp_compile-m) ; $(cmd_compile-m) ; $(cmd_t_strip)
-+compile.mi=  $(call maybe_exec,compile.mi)
-+compile-m = @$(disp_compile-m) ; $(cmd_compile-m) && $(cmd_t_strip)
- do_strip  = @$(disp_strip)     ; $(cmd_strip)
- do_t_strip= @$(disp_t_strip)   ; $(cmd_t_strip)
- do_unifdef= @$(disp_unifdef)   ; $(cmd_unifdef)
-@@ -302,7 +308,7 @@
- 	$(Q)$(INSTALL) -d $(dir $@)
- 	$(Q)echo "/* Force shared libraries to know about the correct library loader */" > $@
- 	$(Q)echo "#include <features.h>" >> $@
--	$(Q)echo "const char __dl_ldso__[] __attribute__ ((section " \
-+	$(Q)echo "const char __dl_ldso__[] attribute_hidden __attribute__ ((weak)) __attribute__ ((section " \
- 		"(\".interp\"))) =\""$(SHARED_LIB_LOADER_PREFIX)/$(UCLIBC_LDSO)"\";" >> $@
- 
- $(interp): $(top_builddir)lib/interp.c
-diff -Naur uClibc-0.9.30.orig/Rules.mak uClibc-0.9.30/Rules.mak
---- uClibc-0.9.30.orig/Rules.mak	2008-11-12 04:24:16.000000000 -0800
-+++ uClibc-0.9.30/Rules.mak	2009-02-03 09:31:45.098218000 -0800
-@@ -417,22 +417,39 @@
- 
- # Keep the check_gcc from being needlessly executed
- ifndef PIEFLAG
--ifneq ($(UCLIBC_BUILD_PIE),y)
--export PIEFLAG:=
--else
- export PIEFLAG:=$(call check_gcc,$(PIEFLAG_NAME),$(PICFLAG))
- endif
--endif
- # We need to keep track of both the CC PIE flag (above) as
- # well as the LD PIE flag (below) because we can't rely on
--# gcc passing -pie if we used -fPIE
-+# gcc passing -pie if we used -fPIE. We need to directly use -pie
-+# instead of -Wl,-pie as gcc picks up the wrong startfile/endfile
- ifndef LDPIEFLAG
--ifneq ($(UCLIBC_BUILD_PIE),y)
--export LDPIEFLAG:=
--else
--export LDPIEFLAG:=$(shell $(LD) --help 2>/dev/null | grep -q -- -pie && echo "-Wl,-pie")
-+export LDPIEFLAG:=$(shell $(LD) --help 2>/dev/null | grep -q -- -pie && echo "-pie")
-+endif
-+
-+# Check for --as-needed support in linker
-+ifndef LD_FLAG_ASNEEDED
-+_LD_FLAG_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -- --as-needed)
-+ifneq ($(_LD_FLAG_ASNEEDED),)
-+export LD_FLAG_ASNEEDED:=--as-needed
-+endif
- endif
-+ifndef LD_FLAG_NO_ASNEEDED
-+ifdef LD_FLAG_ASNEEDED
-+export LD_FLAG_NO_ASNEEDED:=--no-as-needed
- endif
-+endif
-+ifndef CC_FLAG_ASNEEDED
-+ifdef LD_FLAG_ASNEEDED
-+export CC_FLAG_ASNEEDED:=-Wl,$(LD_FLAG_ASNEEDED)
-+endif
-+endif
-+ifndef CC_FLAG_NO_ASNEEDED
-+ifdef LD_FLAG_NO_ASNEEDED
-+export CC_FLAG_NO_ASNEEDED:=-Wl,$(LD_FLAG_NO_ASNEEDED)
-+endif
-+endif
-+link.asneeded = $(if $(and $(CC_FLAG_ASNEEDED),$(CC_FLAG_NO_ASNEEDED)),$(CC_FLAG_ASNEEDED) $(1) $(CC_FLAG_NO_ASNEEDED))
- 
- # Check for AS_NEEDED support in linker script (binutils>=2.16.1 has it)
- ifndef ASNEEDED
-@@ -520,7 +537,9 @@
- # Be sure that binutils support it
- LDFLAGS_GNUHASH:=$(call check_ld,--hash-style=gnu)
- ifeq ($(LDFLAGS_GNUHASH),)
-+ifneq ($(filter-out install_headers,$(MAKECMDGOALS)),)
- $(error Your binutils don't support --hash-style option, while you want to use it)
-+endif
- else
- LDFLAGS_NOSTRIP += -Wl,$(LDFLAGS_GNUHASH)
- endif
-diff -Naur uClibc-0.9.30.orig/test/locale-mbwc/dat_iswctype.c uClibc-0.9.30/test/locale-mbwc/dat_iswctype.c
---- uClibc-0.9.30.orig/test/locale-mbwc/dat_iswctype.c	2008-07-10 03:30:28.000000000 -0700
-+++ uClibc-0.9.30/test/locale-mbwc/dat_iswctype.c	2008-12-02 09:15:35.191305000 -0800
-@@ -240,7 +240,7 @@
-       {	 { 0x007B, "cntrl"  }, { 0,1,0 }  },
-       {	 { 0x007E, "cntrl"  }, { 0,1,0 }  },
-       {	 { 0x007F, "cntrl"  }, { 0,0,0 }  },
--      {	 { 0x0080, "cntrl"  }, { 0,0,0 }  },
-+      {	 { 0x0080, "cntrl"  }, { 0,1,0 }  },
-       {	 { 0x0000, "digit"  }, { 0,1,0 }  },
-       {	 { 0x001F, "digit"  }, { 0,1,0 }  },
-       {	 { 0x0020, "digit"  }, { 0,1,0 }  },
-diff -Naur uClibc-0.9.30.orig/utils/Makefile.in uClibc-0.9.30/utils/Makefile.in
---- uClibc-0.9.30.orig/utils/Makefile.in	2008-11-09 05:10:50.000000000 -0800
-+++ uClibc-0.9.30/utils/Makefile.in	2009-01-14 07:54:12.372155000 -0800
-@@ -8,7 +8,10 @@
- CFLAGS-utils := -DNOT_IN_libc $(SSP_ALL_CFLAGS) -B$(top_builddir)lib -Wl,-rpath-link,$(top_builddir)lib
- 
- CFLAGS-utils-common := -I$(top_srcdir)ldso/include -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" -DUCLIBC_LDSO=$(UCLIBC_LDSO)
-+CFLAGS-utils-shared :=
-+ifeq ($(UCLIBC_BUILD_PIE),y)
- CFLAGS-utils-shared := $(PIEFLAG) $(LDPIEFLAG)
-+endif
- 
- CFLAGS-ldconfig := $(CFLAGS-utils-common)
- 
-
Index: patches/uClibc-0.9.30.1-branch_update-1.patch
===================================================================
--- patches/uClibc-0.9.30.1-branch_update-1.patch	(revision f5994eeabffbc375cf6bc92725c611ddc9728c63)
+++ patches/uClibc-0.9.30.1-branch_update-1.patch	(revision f5994eeabffbc375cf6bc92725c611ddc9728c63)
@@ -0,0 +1,1005 @@
+Submitted By: Jim Gifford (jim at cross-lfs dot org)
+Date: 03-28-2009
+Initial Package Version: 0.9.30.1
+Origin: Upstream
+Upstream Status: Applied
+Description: This is a branch update for uClibc-0.9.30.1, and should be
+             rechecked periodically.
+
+diff -Naur uClibc-0.9.30.1.orig/include/math.h uClibc-0.9.30.1/include/math.h
+--- uClibc-0.9.30.1.orig/include/math.h	2008-12-22 03:55:13.000000000 -0800
++++ uClibc-0.9.30.1/include/math.h	2009-03-12 09:51:53.727930000 -0700
+@@ -118,7 +118,7 @@
+ # undef	__MATH_PRECNAME
+ 
+ # if (__STDC__ - 0 || __GNUC__ - 0) \
+-     && (defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ || defined __LDBL_COMPAT)
++     && (!defined __NO_LONG_DOUBLE_MATH || defined __LDBL_COMPAT)
+ #  ifdef __LDBL_COMPAT
+ 
+ #   ifdef __USE_ISOC99
+@@ -230,7 +230,7 @@
+   };
+ 
+ /* Return number of classification appropriate for X.  */
+-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# ifdef __NO_LONG_DOUBLE_MATH
+ #  define fpclassify(x) \
+      (sizeof (x) == sizeof (float) ? __fpclassifyf (x) : __fpclassify (x))
+ # else
+@@ -242,7 +242,7 @@
+ # endif
+ 
+ /* Return nonzero value if sign of X is negative.  */
+-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# ifdef __NO_LONG_DOUBLE_MATH
+ #  define signbit(x) \
+      (sizeof (x) == sizeof (float) ? __signbitf (x) : __signbit (x))
+ # else
+@@ -254,7 +254,7 @@
+ # endif
+ 
+ /* Return nonzero value if X is not +-Inf or NaN.  */
+-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# ifdef __NO_LONG_DOUBLE_MATH
+ #  define isfinite(x) \
+      (sizeof (x) == sizeof (float) ? __finitef (x) : __finite (x))
+ # else
+@@ -270,7 +270,7 @@
+ 
+ /* Return nonzero value if X is a NaN.  We could use `fpclassify' but
+    we already have this functions `__isnan' and it is faster.  */
+-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# ifdef __NO_LONG_DOUBLE_MATH
+ #  define isnan(x) \
+      (sizeof (x) == sizeof (float) ? __isnanf (x) : __isnan (x))
+ # else
+@@ -282,7 +282,7 @@
+ # endif
+ 
+ /* Return nonzero value is X is positive or negative infinity.  */
+-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# ifdef __NO_LONG_DOUBLE_MATH
+ #  define isinf(x) \
+      (sizeof (x) == sizeof (float) ? __isinff (x) : __isinf (x))
+ # else
+diff -Naur uClibc-0.9.30.1.orig/include/tgmath.h uClibc-0.9.30.1/include/tgmath.h
+--- uClibc-0.9.30.1.orig/include/tgmath.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/include/tgmath.h	2009-03-12 09:51:53.727930000 -0700
+@@ -36,7 +36,7 @@
+ 
+ #if __GNUC_PREREQ (2, 7)
+ 
+-# ifndef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# ifdef __NO_LONG_DOUBLE_MATH
+ #  define __tgml(fct) fct
+ # else
+ #  define __tgml(fct) fct ## l
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/arm/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/arm/dl-sysdep.h	2008-09-25 01:35:20.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -15,7 +15,7 @@
+   GOT_BASE[1] = (unsigned long) MODULE; \
+ }
+ 
+-static __inline__ unsigned long arm_modulus(unsigned long m, unsigned long p)
++static __always_inline unsigned long arm_modulus(unsigned long m, unsigned long p)
+ {
+ 	unsigned long i,t,inc;
+ 	i=p; t=0;
+@@ -72,7 +72,7 @@
+    first element of the GOT.  We used to use the PIC register to do this
+    without a constant pool reference, but GCC 4.2 will use a pseudo-register
+    for the PIC base, so it may not be in r10.  */
+-static __inline__ Elf32_Addr __attribute__ ((unused))
++static __always_inline Elf32_Addr __attribute__ ((unused))
+ elf_machine_dynamic (void)
+ {
+   Elf32_Addr dynamic;
+@@ -104,7 +104,7 @@
+ }
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ Elf32_Addr __attribute__ ((unused))
++static __always_inline Elf32_Addr __attribute__ ((unused))
+ elf_machine_load_address (void)
+ {
+ 	extern void __dl_start __asm__ ("_dl_start");
+@@ -128,7 +128,7 @@
+ 	return pcrel_addr - got_addr;
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
+ 		      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/bfin/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/bfin/dl-sysdep.h	2008-07-23 04:23:36.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -213,7 +213,7 @@
+ #endif
+ 
+ #include <elf.h>
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr,
+ 		      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/cris/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/cris/dl-sysdep.h	2008-07-23 04:19:00.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -39,7 +39,7 @@
+      || ((type) == R_CRIS_GLOB_DAT)) * ELF_RTYPE_CLASS_PLT)	\
+    | (((type) == R_CRIS_COPY) * ELF_RTYPE_CLASS_COPY))
+ 
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr
+ elf_machine_dynamic(void)
+ {
+ 	/* Don't just set this to an asm variable "r0" since that's not logical
+@@ -61,7 +61,7 @@
+    there's some other symbol we could use, that we don't *have* to force a
+    GOT entry for.  */
+ 
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr
+ elf_machine_load_address(void)
+ {
+ 	Elf32_Addr gotaddr_diff;
+@@ -95,7 +95,7 @@
+ 	return gotaddr_diff;
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
+                      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/i386/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/i386/dl-sysdep.h	2008-09-15 09:36:11.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -42,8 +42,8 @@
+ /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
+    first element of the GOT.  This must be inlined in a function which
+    uses global data.  */
+-static __inline__ Elf32_Addr elf_machine_dynamic (void) attribute_unused;
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr elf_machine_dynamic (void) attribute_unused;
++static __always_inline Elf32_Addr
+ elf_machine_dynamic (void)
+ {
+ 	register Elf32_Addr *got __asm__ ("%ebx");
+@@ -52,8 +52,8 @@
+ 
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ Elf32_Addr elf_machine_load_address (void) attribute_unused;
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr elf_machine_load_address (void) attribute_unused;
++static __always_inline Elf32_Addr
+ elf_machine_load_address (void)
+ {
+ 	/* It doesn't matter what variable this is, the reference never makes
+@@ -66,7 +66,7 @@
+ 	return addr;
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
+ 		      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/m68k/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/m68k/dl-sysdep.h	2008-09-15 09:36:11.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -41,7 +41,7 @@
+ /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
+    first element of the GOT.  This must be inlined in a function which
+    uses global data.  */
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr
+ elf_machine_dynamic (void)
+ {
+ 	register Elf32_Addr *got __asm__ ("%a5");
+@@ -50,7 +50,7 @@
+ 
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr
+ elf_machine_load_address (void)
+ {
+ 	Elf32_Addr addr;
+@@ -60,7 +60,7 @@
+ 	return addr;
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
+ 		      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/mips/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/mips/dl-sysdep.h	2008-09-15 09:36:11.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -163,7 +163,7 @@
+ 
+ #define OFFSET_GP_GOT 0x7ff0
+ 
+-static __inline__ ElfW(Addr) *
++static __always_inline ElfW(Addr) *
+ elf_mips_got_from_gpreg (ElfW(Addr) gpreg)
+ {
+ 	/* FIXME: the offset of gp from GOT may be system-dependent. */
+@@ -173,7 +173,7 @@
+ /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
+    first element of the GOT.  This must be inlined in a function which
+    uses global data.  We assume its $gp points to the primary GOT.  */
+-static __inline__ ElfW(Addr)
++static __always_inline ElfW(Addr)
+ elf_machine_dynamic (void)
+ {
+ 	register ElfW(Addr) gp __asm__ ("$28");
+@@ -192,7 +192,7 @@
+ #endif
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ ElfW(Addr)
++static __always_inline ElfW(Addr)
+ elf_machine_load_address (void)
+ {
+ 	ElfW(Addr) addr;
+@@ -208,7 +208,7 @@
+ 	return addr;
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (ElfW(Addr) load_off, const ElfW(Addr) rel_addr,
+ 		      ElfW(Word) relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/powerpc/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/powerpc/dl-sysdep.h	2008-09-15 09:36:11.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -90,7 +90,7 @@
+ #define ELF_MACHINE_PLTREL_OVERLAP 1
+ 
+ /* Return the value of the GOT pointer.  */
+-static __inline__ Elf32_Addr * __attribute__ ((const))
++static __always_inline Elf32_Addr * __attribute__ ((const))
+ ppc_got (void)
+ {
+ 	Elf32_Addr *got;
+@@ -109,14 +109,14 @@
+ 
+ /* Return the link-time address of _DYNAMIC, stored as
+    the first value in the GOT. */
+-static __inline__ Elf32_Addr __attribute__ ((const))
++static __always_inline Elf32_Addr __attribute__ ((const))
+ elf_machine_dynamic (void)
+ {
+ 	return *ppc_got();
+ }
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ Elf32_Addr __attribute__ ((const))
++static __always_inline Elf32_Addr __attribute__ ((const))
+ elf_machine_load_address (void)
+ {
+   Elf32_Addr *branchaddr;
+@@ -164,7 +164,7 @@
+   return runtime_dynamic - elf_machine_dynamic ();
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
+ 		      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/sh/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/sh/dl-sysdep.h	2008-09-15 09:36:11.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -25,7 +25,7 @@
+ struct elf_resolve;
+ extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
+ 
+-static __inline__ unsigned int
++static __always_inline unsigned int
+ _dl_urem(unsigned int n, unsigned int base)
+ {
+   int res;
+@@ -100,7 +100,7 @@
+ /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
+    first element of the GOT.  This must be inlined in a function which
+    uses global data.  */
+-static __inline__ Elf32_Addr __attribute__ ((unused))
++static __always_inline Elf32_Addr __attribute__ ((unused))
+ elf_machine_dynamic (void)
+ {
+ 	register Elf32_Addr *got;
+@@ -109,7 +109,7 @@
+ }
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ Elf32_Addr __attribute__ ((unused))
++static __always_inline Elf32_Addr __attribute__ ((unused))
+ elf_machine_load_address (void)
+ {
+ 	Elf32_Addr addr;
+@@ -151,7 +151,7 @@
+     } \
+   }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
+ 		      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/sh64/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/sh64/dl-sysdep.h	2008-09-15 09:36:11.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -42,7 +42,7 @@
+ /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
+    first element of the GOT.  This must be inlined in a function which
+    uses global data.  */
+-static __inline__ Elf32_Addr elf_machine_dynamic(void)
++static __always_inline Elf32_Addr elf_machine_dynamic(void)
+ {
+ 	register Elf32_Addr *got;
+ 
+@@ -70,7 +70,7 @@
+ }
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ Elf32_Addr elf_machine_load_address(void)
++static __always_inline Elf32_Addr elf_machine_load_address(void)
+ {
+ 	Elf32_Addr addr;
+ 
+@@ -123,7 +123,7 @@
+ 	}						\
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
+ 		     Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/sparc/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/sparc/dl-sysdep.h	2008-09-15 09:36:11.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -49,7 +49,7 @@
+ 
+ #ifndef COMPILE_ASM
+ /* Cheap modulo implementation, taken from arm/ld_sysdep.h. */
+-static __inline__ unsigned long
++static __always_inline unsigned long
+ sparc_mod(unsigned long m, unsigned long p)
+ {
+ 	unsigned long i, t, inc;
+@@ -127,7 +127,7 @@
+ /* Return the link-time address of _DYNAMIC.  Conveniently, this is the
+    first element of the GOT.  This must be inlined in a function which
+    uses global data.  */
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr
+ elf_machine_dynamic (void)
+ {
+ 	register Elf32_Addr *got __asm__ ("%l7");
+@@ -138,7 +138,7 @@
+ }
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr
+ elf_machine_load_address (void)
+ {
+ 	register Elf32_Addr *pc __asm__ ("%o7"), *got __asm__ ("%l7");
+@@ -157,7 +157,7 @@
+ 	return (Elf32_Addr) got - *got + (pc[2] - pc[3]) * 4 - 4;
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
+ 		      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/ldso/ldso/xtensa/dl-sysdep.h uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h
+--- uClibc-0.9.30.1.orig/ldso/ldso/xtensa/dl-sysdep.h	2008-07-23 04:19:00.000000000 -0700
++++ uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h	2009-03-05 09:18:44.955696000 -0800
+@@ -87,7 +87,7 @@
+   (((type) == R_XTENSA_JMP_SLOT) * ELF_RTYPE_CLASS_PLT)
+ 
+ /* Return the link-time address of _DYNAMIC.  */
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr
+ elf_machine_dynamic (void)
+ {
+   /* This function is only used while bootstrapping the runtime linker.
+@@ -97,7 +97,7 @@
+ }
+ 
+ /* Return the run-time load address of the shared object.  */
+-static __inline__ Elf32_Addr
++static __always_inline Elf32_Addr
+ elf_machine_load_address (void)
+ {
+   Elf32_Addr addr, tmp;
+@@ -118,7 +118,7 @@
+   return addr - 3;
+ }
+ 
+-static __inline__ void
++static __always_inline void
+ elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
+ 		      Elf32_Word relative_count)
+ {
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/alpha/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/alpha/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -78,3 +78,7 @@
+ 
+ # endif /* GNUC before 3.4 */
+ #endif /* COMPLEX_H */
++
++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/alpha/bits/wordsize.h uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/alpha/bits/wordsize.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h	2009-03-12 09:51:53.727930000 -0700
+@@ -18,13 +18,13 @@
+ 
+ #define __WORDSIZE	64
+ 
+-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL
++#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL
+ 
+ /* Signal that we didn't used to have a `long double'. The changes all
+    the `long double' function variants to be redirects to the double
+    functions.  */
+ # define __LONG_DOUBLE_MATH_OPTIONAL	1
+ # ifndef __LONG_DOUBLE_128__
+-#  undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#  define __NO_LONG_DOUBLE_MATH		1
+ # endif
+ #endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/arm/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/arm/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -34,3 +34,11 @@
+ # define FP_ILOGBNAN	(2147483647)
+ 
+ #endif	/* ISO C99 */
++
++#ifndef __NO_LONG_DOUBLE_MATH
++/* Signal that we do not really have a `long double'.  This disables the
++   declaration of all the `long double' function variants.  */
++/* XXX The FPA does support this but the patterns in GCC are currently
++   turned off.  */
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/common/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/common/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -35,3 +35,9 @@
+ # define FP_ILOGBNAN	2147483647
+ 
+ #endif	/* ISO C99 */
++
++#ifndef __NO_LONG_DOUBLE_MATH
++/* Signal that we do not really have a `long double'.  The disables the
++   declaration of all the `long double' function variants.  */
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/i386/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/i386/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -44,3 +44,7 @@
+ # define FP_ILOGBNAN	(-2147483647 - 1)
+ 
+ #endif	/* ISO C99 */
++
++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/ia64/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/ia64/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -35,3 +35,7 @@
+ # define FP_ILOGBNAN	2147483647
+ 
+ #endif	/* ISO C99 */
++
++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/m68k/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/m68k/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -36,3 +36,7 @@
+ # define FP_ILOGBNAN	(2147483647)
+ 
+ #endif	/* ISO C99 */
++
++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/mips/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/mips/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -39,8 +39,10 @@
+ 
+ #endif	/* ISO C99 */
+ 
+-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && _MIPS_SIM == _ABIO32
++#if ! defined __NO_LONG_DOUBLE_MATH && _MIPS_SIM == _ABIO32
+ /* Signal that we do not really have a `long double'.  This disables the
+    declaration of all the `long double' function variants.  */
+-# error defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ and _MIPS_SIM == _ABIO32
++# define __NO_LONG_DOUBLE_MATH	1
++#elif !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# define __NO_LONG_DOUBLE_MATH	1
+ #endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/nios/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/nios/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -34,3 +34,11 @@
+ # define FP_ILOGBNAN	(2147483647)
+ 
+ #endif	/* ISO C99 */
++
++#ifndef __NO_LONG_DOUBLE_MATH
++/* Signal that we do not really have a `long double'.  This disables the
++   declaration of all the `long double' function variants.  */
++/* XXX The FPA does support this but the patterns in GCC are currently
++   turned off.  */
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/nios2/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/nios2/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -34,3 +34,11 @@
+ # define FP_ILOGBNAN	(2147483647)
+ 
+ #endif	/* ISO C99 */
++
++#ifndef __NO_LONG_DOUBLE_MATH
++/* Signal that we do not really have a `long double'.  This disables the
++   declaration of all the `long double' function variants.  */
++/* XXX The FPA does support this but the patterns in GCC are currently
++   turned off.  */
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/powerpc/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/powerpc/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -65,11 +65,13 @@
+ 
+ #endif	/* ISO C99 */
+ 
+-#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#ifndef __NO_LONG_DOUBLE_MATH
+ #include <bits/wordsize.h>
+ /* Signal that we do not really have a `long double'.  The disables the
+    declaration of all the `long double' function variants.  */
+ # if __WORDSIZE == 32
+-#  undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#  define __NO_LONG_DOUBLE_MATH	1
++# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#  define __NO_LONG_DOUBLE_MATH	1
+ # endif  /* __WORDSIZE == 32 */
+-#endif  /* __UCLIBC_HAS_LONG_DOUBLE_MATH__ */
++#endif  /* __NO_LONG_DOUBLE_MATH */
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/powerpc/bits/wordsize.h uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/powerpc/bits/wordsize.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h	2009-03-12 09:51:53.727930000 -0700
+@@ -7,13 +7,13 @@
+ # define __WORDSIZE	32
+ #endif
+ 
+-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL
++#if !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL
+ 
+ /* Signal the glibc ABI didn't used to have a `long double'.
+    The changes all the `long double' function variants to be redirects
+    to the double functions.  */
+ # define __LONG_DOUBLE_MATH_OPTIONAL   1
+ # ifndef __LONG_DOUBLE_128__
+-#  undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#  define __NO_LONG_DOUBLE_MATH        1
+ # endif
+ #endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/sh/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sh/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -61,3 +61,9 @@
+ # define FP_ILOGBNAN	0x7fffffff
+ 
+ #endif	/* ISO C99 */
++
++#ifndef __NO_LONG_DOUBLE_MATH
++/* Signal that we do not really have a `long double'.  The disables the
++   declaration of all the `long double' function variants.  */
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/sparc/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sparc/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -57,13 +57,15 @@
+ 
+ #endif	/* ISO C99 */
+ 
+-#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#ifndef __NO_LONG_DOUBLE_MATH
+ 
+ # if __WORDSIZE == 32
+ /* Signal that in 32bit ABI we do not really have a `long double'.
+    The disables the declaration of all the `long double' function
+    variants.  */
+-#  undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#  define __NO_LONG_DOUBLE_MATH	1
++# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#  define __NO_LONG_DOUBLE_MATH	1
+ # endif
+ 
+ #endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/sparc/bits/mathinline.h uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sparc/bits/mathinline.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h	2009-03-12 09:51:53.727930000 -0700
+@@ -37,7 +37,7 @@
+ 
+ # if __WORDSIZE == 32
+ 
+-#  ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#  ifndef __NO_LONG_DOUBLE_MATH
+ 
+ #   define __unordered_cmp(x, y) \
+   (__extension__							      \
+@@ -157,7 +157,7 @@
+   return __u.__i[0] < 0;
+ }
+ 
+-#    ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#    ifndef __NO_LONG_DOUBLE_MATH
+ __MATH_INLINE int
+ __NTH (__signbitl (long double __x))
+ {
+@@ -219,7 +219,7 @@
+   _Qp_sqrt (&__r, &__x);
+   return __r;
+ }
+-#   elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#   elif !defined __NO_LONG_DOUBLE_MATH
+ __MATH_INLINE long double
+ sqrtl (long double __x) __THROW
+ {
+@@ -257,7 +257,7 @@
+   _Qp_sqrt(&__r, &__x);
+   return __r;
+ }
+-#   elif defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#   elif !defined __NO_LONG_DOUBLE_MATH
+ __MATH_INLINE long double
+ __ieee754_sqrtl (long double __x)
+ {
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/sparc/bits/wordsize.h uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/sparc/bits/wordsize.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h	2009-03-12 09:51:53.727930000 -0700
+@@ -6,7 +6,7 @@
+ # define __WORDSIZE	32
+ #endif
+ 
+-#if 0 /* uClibc: done in mathdefs.h: defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __LONG_DOUBLE_MATH_OPTIONAL*/
++#if 0 /* uClibc: done in mathdefs.h: !defined __NO_LONG_DOUBLE_MATH && !defined __LONG_DOUBLE_MATH_OPTIONAL*/
+ 
+ # if __WORDSIZE == 32
+ /* Signal that in 32bit ABI we didn't used to have a `long double'.
+@@ -14,7 +14,7 @@
+    to the double functions.  */
+ #  define __LONG_DOUBLE_MATH_OPTIONAL   1
+ #  ifndef __LONG_DOUBLE_128__
+-#   undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#   define __NO_LONG_DOUBLE_MATH        1
+ #  endif
+ # endif
+ #endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/x86_64/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/x86_64/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -46,3 +46,7 @@
+ # define FP_ILOGBNAN	(-2147483647 - 1)
+ 
+ #endif	/* ISO C99 */
++
++#if !defined __NO_LONG_DOUBLE_MATH && !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# define __NO_LONG_DOUBLE_MATH	1
++#endif
+diff -Naur uClibc-0.9.30.1.orig/libc/sysdeps/linux/xtensa/bits/mathdef.h uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h
+--- uClibc-0.9.30.1.orig/libc/sysdeps/linux/xtensa/bits/mathdef.h	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h	2009-03-12 09:51:53.727930000 -0700
+@@ -36,8 +36,8 @@
+ 
+ #endif	/* ISO C99 */
+ 
+-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#ifndef __NO_LONG_DOUBLE_MATH
+ /* Signal that we do not really have a `long double'.  The disables the
+    declaration of all the `long double' function variants.  */
+-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
++# define __NO_LONG_DOUBLE_MATH	1
+ #endif
+diff -Naur uClibc-0.9.30.1.orig/libm/ldouble_wrappers.c uClibc-0.9.30.1/libm/ldouble_wrappers.c
+--- uClibc-0.9.30.1.orig/libm/ldouble_wrappers.c	2009-02-24 06:31:14.000000000 -0800
++++ uClibc-0.9.30.1/libm/ldouble_wrappers.c	2009-03-12 09:51:53.727930000 -0700
+@@ -13,6 +13,16 @@
+ #include "math.h"
+ #include <complex.h>
+ 
++#if defined __NO_LONG_DOUBLE_MATH
++# define int_WRAPPER_C99(func) /* not needed */
++# else
++# define int_WRAPPER_C99(func) \
++int func##l(long double x) \
++{ \
++    return func((double) x); \
++} \
++libm_hidden_def(func##l)
++#endif
+ 
+ /* Implement the following, as defined by SuSv3 */
+ #if 0
+@@ -543,46 +553,28 @@
+ #endif
+ 
+ 
+-#ifdef __DO_C99_MATH__
++#if defined __DO_C99_MATH__
+ 
+ #ifdef L_fpclassifyl
+-int __fpclassifyl (long double x)
+-{
+-	return __fpclassify ( (double) x );
+-}
+-libm_hidden_def(__fpclassifyl)
++int_WRAPPER_C99(__fpclassify)
+ #endif
+ 
+ #ifdef L_finitel
+-int __finitel (long double x)
+-{
+-	return __finite ( (double)x );
+-}
+-libm_hidden_def(__finitel)
++int_WRAPPER_C99(__finite)
+ #endif
+ 
+ #ifdef L_signbitl
+-int __signbitl (long double x)
+-{
+-	return __signbitl ( (double)x );
+-}
+-libm_hidden_def(__signbitl)
++int_WRAPPER_C99(__signbit)
+ #endif
+ 
+ #ifdef L_isnanl
+-int __isnanl (long double x)
+-{
+-	return __isnan ( (double)x );
+-}
+-libm_hidden_def(__isnanl)
++int_WRAPPER_C99(__isnan)
+ #endif
+ 
+ #ifdef L_isinfl
+-int __isinfl (long double x)
+-{
+-	return __isinf ( (double)x );
+-}
+-libm_hidden_def(__isinfl)
++int_WRAPPER_C99(__isinf)
+ #endif
+ 
+-#endif
++#endif /* DO_C99_MATH */
++
++#undef int_WRAPPER_C99
+diff -Naur uClibc-0.9.30.1.orig/libm/nan.c uClibc-0.9.30.1/libm/nan.c
+--- uClibc-0.9.30.1.orig/libm/nan.c	2008-10-03 07:24:28.000000000 -0700
++++ uClibc-0.9.30.1/libm/nan.c	2009-03-12 09:51:53.727930000 -0700
+@@ -45,7 +45,7 @@
+ }
+ libm_hidden_def(nanf)
+ 
+-#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
++#if defined __UCLIBC_HAS_LONG_DOUBLE_MATH__ && !defined __NO_LONG_DOUBLE_MATH
+ libm_hidden_proto(nanl)
+ long double nanl (const char *tagp)
+ {
+diff -Naur uClibc-0.9.30.1.orig/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h uClibc-0.9.30.1/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h
+--- uClibc-0.9.30.1.orig/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h	1969-12-31 16:00:00.000000000 -0800
++++ uClibc-0.9.30.1/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h	2009-03-28 09:09:19.312443917 -0700
+@@ -0,0 +1,9 @@
++#include <sysdep.h>
++
++/* No multi-thread handling enabled.  */
++#define SINGLE_THREAD_P (1)
++#define RTLD_SINGLE_THREAD_P (1)
++#define LIBC_CANCEL_ASYNC()	0 /* Just a dummy value.  */
++#define LIBC_CANCEL_RESET(val)	((void)(val)) /* Nothing, but evaluate it.  */
++#define LIBC_CANCEL_HANDLED()	/* Nothing.  */
++
+diff -Naur uClibc-0.9.30.1.orig/libpthread/linuxthreads/sysdeps/arm/sysdep.h uClibc-0.9.30.1/libpthread/linuxthreads/sysdeps/arm/sysdep.h
+--- uClibc-0.9.30.1.orig/libpthread/linuxthreads/sysdeps/arm/sysdep.h	1969-12-31 16:00:00.000000000 -0800
++++ uClibc-0.9.30.1/libpthread/linuxthreads/sysdeps/arm/sysdep.h	2009-03-28 09:10:02.267196257 -0700
+@@ -0,0 +1,138 @@
++/* Generic asm macros used on many machines.
++   Copyright (C) 1991,92,93,96,98,2002,2003 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef C_LABEL
++
++/* Define a macro we can use to construct the asm name for a C symbol.  */
++#ifdef	NO_UNDERSCORES
++#ifdef	__STDC__
++#define C_LABEL(name)		name##:
++#else
++#define C_LABEL(name)		name/**/:
++#endif
++#else
++#ifdef	__STDC__
++#define C_LABEL(name)		_##name##:
++#else
++#define C_LABEL(name)		_/**/name/**/:
++#endif
++#endif
++
++#endif
++
++#ifdef __ASSEMBLER__
++/* Mark the end of function named SYM.  This is used on some platforms
++   to generate correct debugging information.  */
++#ifndef END
++#define END(sym)
++#endif
++
++#ifndef JUMPTARGET
++#define JUMPTARGET(sym)		sym
++#endif
++
++/* Makros to generate eh_frame unwind information.  */
++# ifdef HAVE_ASM_CFI_DIRECTIVES
++#  define cfi_startproc			.cfi_startproc
++#  define cfi_endproc			.cfi_endproc
++#  define cfi_def_cfa(reg, off)		.cfi_def_cfa reg, off
++#  define cfi_def_cfa_register(reg)	.cfi_def_cfa_register reg
++#  define cfi_def_cfa_offset(off)	.cfi_def_cfa_offset off
++#  define cfi_adjust_cfa_offset(off)	.cfi_adjust_cfa_offset off
++#  define cfi_offset(reg, off)		.cfi_offset reg, off
++#  define cfi_rel_offset(reg, off)	.cfi_rel_offset reg, off
++#  define cfi_register(r1, r2)		.cfi_register r1, r2
++#  define cfi_return_column(reg)	.cfi_return_column reg
++#  define cfi_restore(reg)		.cfi_restore reg
++#  define cfi_same_value(reg)		.cfi_same_value reg
++#  define cfi_undefined(reg)		.cfi_undefined reg
++#  define cfi_remember_state		.cfi_remember_state
++#  define cfi_restore_state		.cfi_restore_state
++#  define cfi_window_save		.cfi_window_save
++# else
++#  define cfi_startproc
++#  define cfi_endproc
++#  define cfi_def_cfa(reg, off)
++#  define cfi_def_cfa_register(reg)
++#  define cfi_def_cfa_offset(off)
++#  define cfi_adjust_cfa_offset(off)
++#  define cfi_offset(reg, off)
++#  define cfi_rel_offset(reg, off)
++#  define cfi_register(r1, r2)
++#  define cfi_return_column(reg)
++#  define cfi_restore(reg)
++#  define cfi_same_value(reg)
++#  define cfi_undefined(reg)
++#  define cfi_remember_state
++#  define cfi_restore_state
++#  define cfi_window_save
++# endif
++
++#else /* ! ASSEMBLER */
++# ifdef HAVE_ASM_CFI_DIRECTIVES
++#  define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
++#  define CFI_STRINGIFY2(Name) #Name
++#  define CFI_STARTPROC	".cfi_startproc"
++#  define CFI_ENDPROC	".cfi_endproc"
++#  define CFI_DEF_CFA(reg, off)	\
++   ".cfi_def_cfa " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
++#  define CFI_DEF_CFA_REGISTER(reg) \
++   ".cfi_def_cfa_register " CFI_STRINGIFY(reg)
++#  define CFI_DEF_CFA_OFFSET(off) \
++   ".cfi_def_cfa_offset " CFI_STRINGIFY(off)
++#  define CFI_ADJUST_CFA_OFFSET(off) \
++   ".cfi_adjust_cfa_offset " CFI_STRINGIFY(off)
++#  define CFI_OFFSET(reg, off) \
++   ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
++#  define CFI_REL_OFFSET(reg, off) \
++   ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
++#  define CFI_REGISTER(r1, r2) \
++   ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)
++#  define CFI_RETURN_COLUMN(reg) \
++   ".cfi_return_column " CFI_STRINGIFY(reg)
++#  define CFI_RESTORE(reg) \
++   ".cfi_restore " CFI_STRINGIFY(reg)
++#  define CFI_UNDEFINED(reg) \
++   ".cfi_undefined " CFI_STRINGIFY(reg)
++#  define CFI_REMEMBER_STATE \
++   ".cfi_remember_state"
++#  define CFI_RESTORE_STATE \
++   ".cfi_restore_state"
++#  define CFI_WINDOW_SAVE \
++   ".cfi_window_save"
++# else
++#  define CFI_STARTPROC
++#  define CFI_ENDPROC
++#  define CFI_DEF_CFA(reg, off)
++#  define CFI_DEF_CFA_REGISTER(reg)
++#  define CFI_DEF_CFA_OFFSET(off)
++#  define CFI_ADJUST_CFA_OFFSET(off)
++#  define CFI_OFFSET(reg, off)
++#  define CFI_REL_OFFSET(reg, off)
++#  define CFI_REGISTER(r1, r2)
++#  define CFI_RETURN_COLUMN(reg)
++#  define CFI_RESTORE(reg)
++#  define CFI_UNDEFINED(reg)
++#  define CFI_REMEMBER_STATE
++#  define CFI_RESTORE_STATE
++#  define CFI_WINDOW_SAVE
++# endif
++
++#endif /* __ASSEMBLER__ */
++
+diff -Naur uClibc-0.9.30.1.orig/Rules.mak uClibc-0.9.30.1/Rules.mak
+--- uClibc-0.9.30.1.orig/Rules.mak	2009-03-02 13:10:04.000000000 -0800
++++ uClibc-0.9.30.1/Rules.mak	2009-03-25 12:26:54.011652000 -0700
+@@ -85,7 +85,7 @@
+ MAJOR_VERSION := 0
+ MINOR_VERSION := 9
+ SUBLEVEL      := 30
+-EXTRAVERSION  :=.1
++EXTRAVERSION  :=.2-svn
+ VERSION       := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
+ ifneq ($(EXTRAVERSION),)
+ VERSION       := $(VERSION)$(EXTRAVERSION)
+@@ -393,7 +393,7 @@
+ 	# -shared by itself would get us global function descriptors
+ 	# and calls through PLTs, dynamic resolution of symbols, etc,
+ 	# which would break as well, but -Bsymbolic comes to the rescue.
+-	export LDPIEFLAG:=-Wl,-shared -Wl,-Bsymbolic
++	export LDPIEFLAG:=-shared -Wl,-Bsymbolic
+ 	UCLIBC_LDSO=ld.so.1
+ endif
+ 
+@@ -520,7 +520,7 @@
+ 
+ CFLAGS += $(call check_gcc,-std=gnu99,)
+ 
+-LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -Wl,-shared \
++LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -shared \
+ 	-Wl,--warn-common -Wl,--warn-once -Wl,-z,combreloc
+ # binutils-2.16.1 warns about ignored sections, 2.16.91.0.3 and newer are ok
+ #LDFLAGS_NOSTRIP+=$(call check_ld,--gc-sections)
Index: scripts/patch/uclibc-patches.sh
===================================================================
--- scripts/patch/uclibc-patches.sh	(revision 118c546c7a4776f52c311e3bea59731d3969ab1b)
+++ scripts/patch/uclibc-patches.sh	(revision f5994eeabffbc375cf6bc92725c611ddc9728c63)
@@ -5,10 +5,12 @@
 #
 VERSION=$1
+SOURCEVERSION=$2
 
 # Check Input
 #
-if [ "${VERSION}" = "" ]; then
+if [ "${VERSION}" = "" -o "${SOURCEVERSION}" = "" ]; then
   echo "$0 - uClibc_Version"
-  echo "This will Create a Patch for uClibc uClibc_Version"
+  echo "This will Create a Patch for uClibc uClibc_Series uClibc_Version"
+  echo "Example $0 0.9.30 0.9.30.1"
   exit 255
 fi
@@ -17,6 +19,6 @@
 #
 cd /usr/src
-if ! [ -e uClibc-${VERSION}.tar.bz2  ]; then
-  wget http://www.uclibc.org/downloads/uClibc-${VERSION}.tar.bz2
+if ! [ -e uClibc-${SOURCEVERSION}.tar.bz2  ]; then
+  wget http://www.uclibc.org/downloads/uClibc-${SOURCEVERSION}.tar.bz2
 fi
 
@@ -25,5 +27,5 @@
 cd /usr/src
 wget http://svn.cross-lfs.org/svn/repos/cross-lfs/branches/clfs-embedded/patches/ --no-remove-listing
-PATCH_NUM=$(cat index.html | grep uClibc | grep "${VERSION}" | grep branch_update | cut -f2 -d'"' | cut -f1 -d'"'| cut -f4 -d- | cut -f1 -d. | tail -n 1)
+PATCH_NUM=$(cat index.html | grep uClibc | grep "${SOURCEVERSION}" | grep branch_update | cut -f2 -d'"' | cut -f1 -d'"'| cut -f4 -d- | cut -f1 -d. | tail -n 1)
 PATCH_NUM=$(expr ${PATCH_NUM} + 1)
 rm -f index.html
@@ -31,7 +33,7 @@
 # Cleanup Directory
 #
-rm -rf uClibc-${VERSION} uClibc-${VERSION}.orig
-tar xvf uClibc-${VERSION}.tar.bz2
-mv uClibc-${VERSION} uClibc-${VERSION}.orig
+rm -rf uClibc-${SOURCEVERSION} uClibc-${SOURCEVERSION}.orig
+tar xvf uClibc-${SOURCEVERSION}.tar.bz2
+mv uClibc-${SOURCEVERSION} uClibc-${SOURCEVERSION}.orig
 CURRENTDIR=$(pwd -P)
 
@@ -40,17 +42,17 @@
 cd /usr/src
 FIXEDVERSION=$(echo ${VERSION} | sed -e 's/\./_/g')
-svn export  svn://uclibc.org/branches/uClibc_${FIXEDVERSION} uClibc-${VERSION}
+svn export svn://uclibc.org/branches/uClibc_${FIXEDVERSION} uClibc-${SOURCEVERSION}
 
 # Create Patch
 #
 cd /usr/src
-echo "Submitted By: Jim Gifford (jim at cross-lfs dot org)" > uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-echo "Date: `date +%m-%d-%Y`" >> uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-echo "Initial Package Version: ${VERSION}" >> uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-echo "Origin: Upstream" >> uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-echo "Upstream Status: Applied" >> uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-echo "Description: This is a branch update for uClibc-${VERSION}, and should be" >> uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-echo "             rechecked periodically." >> uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-echo "" >> uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-diff -Naur uClibc-${VERSION}.orig uClibc-${VERSION} >> uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch
-echo "Created /usr/src/uClibc-${VERSION}-branch_update-${PATCH_NUM}.patch."
+echo "Submitted By: Jim Gifford (jim at cross-lfs dot org)" > uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+echo "Date: `date +%m-%d-%Y`" >> uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+echo "Initial Package Version: ${SOURCEVERSION}" >> uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+echo "Origin: Upstream" >> uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+echo "Upstream Status: Applied" >> uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+echo "Description: This is a branch update for uClibc-${SOURCEVERSION}, and should be" >> uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+echo "             rechecked periodically." >> uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+echo "" >> uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+diff -Naur uClibc-${SOURCEVERSION}.orig uClibc-${SOURCEVERSION} >> uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch
+echo "Created /usr/src/uClibc-${SOURCEVERSION}-branch_update-${PATCH_NUM}.patch."
