summaryrefslogtreecommitdiff
path: root/patches/uClibc
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-05-19 22:52:47 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-05-19 22:52:47 (GMT)
commitaa6ae43fd73be9e1d6fa02326b2ad4ebb52b96a9 (patch)
tree96298fbfa89b15017f2bdf73a8f2acecca4b888d /patches/uClibc
parent361c6173087b814a47492671521d74684d959734 (diff)
Add uClibc-0.9.29:
- associated patch set - update the munging function to accomodate the new config variables libfloat version was missing from the previous commit... :-( Better handle the case where the sample directory already exist but isn't under revision control, and in case the destination file doesn't exist in the sample directory.
Diffstat (limited to 'patches/uClibc')
-rw-r--r--patches/uClibc/0.9.29/100-conditional-sched_affinity.patch53
-rw-r--r--patches/uClibc/0.9.29/200-uClibc-0.9.29-fix-fget_putc.patch.dont_apply396
-rw-r--r--patches/uClibc/0.9.29/300-fix-gethostent_r-failure-retval.patch12
-rw-r--r--patches/uClibc/0.9.29/400-bits_sysnum_h.patch33
4 files changed, 494 insertions, 0 deletions
diff --git a/patches/uClibc/0.9.29/100-conditional-sched_affinity.patch b/patches/uClibc/0.9.29/100-conditional-sched_affinity.patch
new file mode 100644
index 0000000..509c42a
--- /dev/null
+++ b/patches/uClibc/0.9.29/100-conditional-sched_affinity.patch
@@ -0,0 +1,53 @@
+diff -ur uClibc-0.9.29/libc/sysdeps/linux/common/sched_getaffinity.c uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_getaffinity.c
+--- uClibc-0.9.29/libc/sysdeps/linux/common/sched_getaffinity.c 2007-02-12 16:52:32.000000000 -0600
++++ uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_getaffinity.c 2007-05-09 18:05:09.397411811 -0500
+@@ -29,6 +29,7 @@
+ #include <sys/param.h>
+ #include <sys/types.h>
+
++#ifdef __NR_sched_getaffinity
+ libc_hidden_proto(memset)
+
+ #define __NR___syscall_sched_getaffinity __NR_sched_getaffinity
+@@ -48,5 +49,15 @@
+ }
+ return res;
+ }
++#else
++/*
++int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset)
++{
++ __set_errno(ENOSYS);
++ return -1;
++}
++*/
+ #endif
+ #endif
++
++#endif
+diff -ur uClibc-0.9.29/libc/sysdeps/linux/common/sched_setaffinity.c uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_setaffinity.c
+--- uClibc-0.9.29/libc/sysdeps/linux/common/sched_setaffinity.c 2007-02-12 16:52:32.000000000 -0600
++++ uClibc-0.9.29-patched/libc/sysdeps/linux/common/sched_setaffinity.c 2007-05-09 18:05:09.397411811 -0500
+@@ -31,6 +31,7 @@
+ #include <sys/types.h>
+ #include <alloca.h>
+
++#ifdef __NR_sched_setaffinity
+ libc_hidden_proto(getpid)
+
+ #define __NR___syscall_sched_setaffinity __NR_sched_setaffinity
+@@ -74,5 +75,14 @@
+
+ return INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset);
+ }
++#else
++/*
++int sched_setaffinity(pid_t pid, size_t cpusetsize, const cpu_set_t *cpuset)
++{
++ __set_errno(ENOSYS);
++ return -1;
++}
++*/
++#endif
+ #endif
+ #endif
diff --git a/patches/uClibc/0.9.29/200-uClibc-0.9.29-fix-fget_putc.patch.dont_apply b/patches/uClibc/0.9.29/200-uClibc-0.9.29-fix-fget_putc.patch.dont_apply
new file mode 100644
index 0000000..15d6149
--- /dev/null
+++ b/patches/uClibc/0.9.29/200-uClibc-0.9.29-fix-fget_putc.patch.dont_apply
@@ -0,0 +1,396 @@
+diff -ur uClibc-0.9.29/libc/inet/rpc/rcmd.c uClibc-0.9.29-patched/libc/inet/rpc/rcmd.c
+--- uClibc-0.9.29/libc/inet/rpc/rcmd.c 2007-01-10 11:46:19.000000000 -0600
++++ uClibc-0.9.29-patched/libc/inet/rpc/rcmd.c 2007-05-09 18:05:21.638421151 -0500
+@@ -126,7 +126,7 @@
+ libc_hidden_proto(listen)
+ libc_hidden_proto(sigsetmask)
+ libc_hidden_proto(getc_unlocked)
+-libc_hidden_proto(__fgetc_unlocked)
++//libc_hidden_proto(fgetc_unlocked)
+ libc_hidden_proto(fopen)
+ libc_hidden_proto(fclose)
+ libc_hidden_proto(fprintf)
+diff -ur uClibc-0.9.29/libc/inet/rpc/ruserpass.c uClibc-0.9.29-patched/libc/inet/rpc/ruserpass.c
+--- uClibc-0.9.29/libc/inet/rpc/ruserpass.c 2006-03-23 05:14:16.000000000 -0600
++++ uClibc-0.9.29-patched/libc/inet/rpc/ruserpass.c 2007-05-09 18:05:21.638421151 -0500
+@@ -63,7 +63,7 @@
+ libc_hidden_proto(fopen)
+ libc_hidden_proto(fclose)
+ libc_hidden_proto(getc_unlocked)
+-libc_hidden_proto(__fgetc_unlocked)
++//libc_hidden_proto(__fgetc_unlocked)
+
+ #define _(X) (X)
+ /* #include "ftp_var.h" */
+diff -ur uClibc-0.9.29/libc/misc/error/error.c uClibc-0.9.29-patched/libc/misc/error/error.c
+--- uClibc-0.9.29/libc/misc/error/error.c 2006-05-04 09:44:13.000000000 -0500
++++ uClibc-0.9.29-patched/libc/misc/error/error.c 2007-05-09 18:05:21.646421810 -0500
+@@ -30,11 +30,14 @@
+ libc_hidden_proto(strerror)
+ libc_hidden_proto(fprintf)
+ libc_hidden_proto(exit)
++//#undef putc
+ libc_hidden_proto(putc)
++libc_hidden_proto(fputc)
+ libc_hidden_proto(vfprintf)
+ libc_hidden_proto(fflush)
+-libc_hidden_proto(fputc)
+-libc_hidden_proto(__fputc_unlocked)
++//#ifdef __UCLIBC_HAS_STDIO_PUTC_MACRO__
++libc_hidden_proto(fputc_unlocked)
++//#endif
+
+ /* This variable is incremented each time `error' is called. */
+ unsigned int error_message_count = 0;
+diff -ur uClibc-0.9.29/libc/misc/ttyent/getttyent.c uClibc-0.9.29-patched/libc/misc/ttyent/getttyent.c
+--- uClibc-0.9.29/libc/misc/ttyent/getttyent.c 2006-12-07 17:24:02.000000000 -0600
++++ uClibc-0.9.29-patched/libc/misc/ttyent/getttyent.c 2007-05-09 18:05:21.646421810 -0500
+@@ -44,8 +44,10 @@
+ libc_hidden_proto(__fsetlocking)
+ libc_hidden_proto(rewind)
+ libc_hidden_proto(fgets_unlocked)
++//#undef getc_unlocked
+ libc_hidden_proto(getc_unlocked)
+-libc_hidden_proto(__fgetc_unlocked)
++//#undef fgetc_unlocked
++libc_hidden_proto(fgetc_unlocked)
+ libc_hidden_proto(fopen)
+ libc_hidden_proto(fclose)
+ libc_hidden_proto(abort)
+diff -ur uClibc-0.9.29/libc/pwd_grp/pwd_grp.c uClibc-0.9.29-patched/libc/pwd_grp/pwd_grp.c
+--- uClibc-0.9.29/libc/pwd_grp/pwd_grp.c 2007-04-13 03:32:18.000000000 -0500
++++ uClibc-0.9.29-patched/libc/pwd_grp/pwd_grp.c 2007-05-09 18:05:21.638421151 -0500
+@@ -43,11 +43,12 @@
+ libc_hidden_proto(strtoul)
+ libc_hidden_proto(rewind)
+ libc_hidden_proto(fgets_unlocked)
+-libc_hidden_proto(__fputc_unlocked)
+ libc_hidden_proto(sprintf)
+ libc_hidden_proto(fopen)
+ libc_hidden_proto(fclose)
+ libc_hidden_proto(fprintf)
++//#undef fputc_unlocked
++libc_hidden_proto(fputc_unlocked)
+ #ifdef __UCLIBC_HAS_XLOCALE__
+ libc_hidden_proto(__ctype_b_loc)
+ #elif __UCLIBC_HAS_CTYPE_TABLES__
+@@ -801,7 +802,7 @@
+
+ do {
+ if (!*m) {
+- if (__fputc_unlocked('\n', f) >= 0) {
++ if (fputc_unlocked('\n', f) >= 0) {
+ rv = 0;
+ }
+ break;
+@@ -867,7 +868,7 @@
+ goto DO_UNLOCK;
+ }
+
+- if (__fputc_unlocked('\n', stream) > 0) {
++ if (fputc_unlocked('\n', stream) > 0) {
+ rv = 0;
+ }
+
+diff -ur uClibc-0.9.29/libc/stdio/_scanf.c uClibc-0.9.29-patched/libc/stdio/_scanf.c
+--- uClibc-0.9.29/libc/stdio/_scanf.c 2007-01-20 12:32:10.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/_scanf.c 2007-05-09 18:05:21.642421481 -0500
+@@ -86,7 +86,8 @@
+ libc_hidden_proto(vsscanf)
+ libc_hidden_proto(fclose)
+ libc_hidden_proto(getc_unlocked)
+-libc_hidden_proto(__fgetc_unlocked)
++//#undef fgetc_unlocked
++libc_hidden_proto(fgetc_unlocked)
+ #ifdef __UCLIBC_HAS_WCHAR__
+ libc_hidden_proto(wcslen)
+ libc_hidden_proto(vfwscanf)
+diff -ur uClibc-0.9.29/libc/stdio/fgetc.c uClibc-0.9.29-patched/libc/stdio/fgetc.c
+--- uClibc-0.9.29/libc/stdio/fgetc.c 2006-01-15 16:41:03.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/fgetc.c 2007-05-09 18:05:21.642421481 -0500
+@@ -13,13 +13,13 @@
+ #undef getc
+ #undef getc_unlocked
+
+-libc_hidden_proto(__fgetc_unlocked)
++libc_hidden_proto(fgetc_unlocked)
+
+ #ifdef __DO_UNLOCKED
+
+ libc_hidden_proto(fflush_unlocked)
+
+-int __fgetc_unlocked(FILE *stream)
++int fgetc_unlocked(FILE *stream)
+ {
+ __STDIO_STREAM_VALIDATE(stream);
+
+@@ -73,26 +73,22 @@
+
+ return EOF;
+ }
+-libc_hidden_def(__fgetc_unlocked)
+-
+-libc_hidden_proto(fgetc_unlocked)
+-strong_alias(__fgetc_unlocked,fgetc_unlocked)
+ libc_hidden_def(fgetc_unlocked)
+
+ //libc_hidden_proto(__getc_unlocked)
+-//strong_alias(__fgetc_unlocked,__getc_unlocked)
++//strong_alias(fgetc_unlocked,__getc_unlocked)
+ //libc_hidden_def(__getc_unlocked)
+
+ libc_hidden_proto(getc_unlocked)
+-strong_alias(__fgetc_unlocked,getc_unlocked)
++strong_alias(fgetc_unlocked,getc_unlocked)
+ libc_hidden_def(getc_unlocked)
+
+ #ifndef __UCLIBC_HAS_THREADS__
+ libc_hidden_proto(fgetc)
+-strong_alias(__fgetc_unlocked,fgetc)
++strong_alias(fgetc_unlocked,fgetc)
+ libc_hidden_def(fgetc)
+
+-strong_alias(__fgetc_unlocked,getc)
++strong_alias(fgetc_unlocked,getc)
+ #endif
+
+ #elif defined __UCLIBC_HAS_THREADS__
+diff -ur uClibc-0.9.29/libc/stdio/fgets.c uClibc-0.9.29-patched/libc/stdio/fgets.c
+--- uClibc-0.9.29/libc/stdio/fgets.c 2006-01-15 16:41:03.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/fgets.c 2007-05-09 18:05:21.638421151 -0500
+@@ -10,8 +10,7 @@
+ libc_hidden_proto(fgets_unlocked)
+
+ #ifdef __DO_UNLOCKED
+-
+-libc_hidden_proto(__fgetc_unlocked)
++libc_hidden_proto(fgetc_unlocked)
+
+ char *fgets_unlocked(char *__restrict s, int n,
+ register FILE * __restrict stream)
+@@ -38,7 +37,7 @@
+ break;
+ }
+ } else {
+- if ((c = __fgetc_unlocked(stream)) == EOF) {
++ if ((c = fgetc_unlocked(stream)) == EOF) {
+ if (__FERROR_UNLOCKED(stream)) {
+ goto ERROR;
+ }
+diff -ur uClibc-0.9.29/libc/stdio/fputc.c uClibc-0.9.29-patched/libc/stdio/fputc.c
+--- uClibc-0.9.29/libc/stdio/fputc.c 2007-04-14 12:03:18.000000000 -0500
++++ uClibc-0.9.29-patched/libc/stdio/fputc.c 2007-05-09 20:50:51.350629927 -0500
+@@ -16,7 +16,7 @@
+
+ #ifdef __DO_UNLOCKED
+
+-int __fputc_unlocked(int c, register FILE *stream)
++int fputc_unlocked(int c, register FILE *stream)
+ {
+ __STDIO_STREAM_VALIDATE(stream);
+
+@@ -70,22 +70,22 @@
+ BAD:
+ return EOF;
+ }
+-libc_hidden_def(__fputc_unlocked)
++libc_hidden_def(fputc_unlocked)
+
+ /* exposing these would be fundamentally *wrong*! fix you, instead! */
+ /* libc_hidden_proto(fputc_unlocked) */
+-strong_alias(__fputc_unlocked,fputc_unlocked)
++/* strong_alias(__fputc_unlocked,fputc_unlocked) */
+ /* exposing these would be fundamentally *wrong*! fix you, instead! */
+ /* libc_hidden_def(fputc_unlocked) */
+
+ libc_hidden_proto(putc_unlocked)
+-strong_alias(__fputc_unlocked,putc_unlocked)
++strong_alias(fputc_unlocked,putc_unlocked)
+ libc_hidden_def(putc_unlocked)
+ #ifndef __UCLIBC_HAS_THREADS__
+-strong_alias(__fputc_unlocked,fputc)
++strong_alias(fputc_unlocked,fputc)
+
+ libc_hidden_proto(putc)
+-strong_alias(__fputc_unlocked,putc)
++strong_alias(fputc_unlocked,putc)
+ libc_hidden_def(putc)
+ #endif
+
+diff -ur uClibc-0.9.29/libc/stdio/getchar.c uClibc-0.9.29-patched/libc/stdio/getchar.c
+--- uClibc-0.9.29/libc/stdio/getchar.c 2006-12-19 22:30:25.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/getchar.c 2007-05-09 18:05:21.642421481 -0500
+@@ -7,7 +7,8 @@
+
+ #include "_stdio.h"
+
+-libc_hidden_proto(__fgetc_unlocked)
++//#undef fgetc_unlocked
++libc_hidden_proto(fgetc_unlocked)
+
+ #undef getchar
+ #ifdef __DO_UNLOCKED
+diff -ur uClibc-0.9.29/libc/stdio/getdelim.c uClibc-0.9.29-patched/libc/stdio/getdelim.c
+--- uClibc-0.9.29/libc/stdio/getdelim.c 2006-02-13 02:52:46.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/getdelim.c 2007-05-09 18:05:21.642421481 -0500
+@@ -11,8 +11,8 @@
+ #include "_stdio.h"
+
+ libc_hidden_proto(getdelim)
+-
+-libc_hidden_proto(__fgetc_unlocked)
++//#undef fgetc_unlocked
++libc_hidden_proto(fgetc_unlocked)
+
+ /* Note: There is a defect in this function. (size_t vs ssize_t). */
+
+diff -ur uClibc-0.9.29/libc/stdio/old_vfprintf.c uClibc-0.9.29-patched/libc/stdio/old_vfprintf.c
+--- uClibc-0.9.29/libc/stdio/old_vfprintf.c 2006-01-22 13:35:08.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/old_vfprintf.c 2007-05-09 18:05:21.642421481 -0500
+@@ -149,7 +149,8 @@
+ libc_hidden_proto(strnlen)
+ libc_hidden_proto(memcpy)
+ libc_hidden_proto(putc_unlocked)
+-libc_hidden_proto(__fputc_unlocked)
++//#undef fputc_unlocked
++libc_hidden_proto(fputc_unlocked)
+ libc_hidden_proto(__glibc_strerror_r)
+
+ /* #undef __UCLIBC_HAS_FLOATS__ */
+diff -ur uClibc-0.9.29/libc/stdio/putchar.c uClibc-0.9.29-patched/libc/stdio/putchar.c
+--- uClibc-0.9.29/libc/stdio/putchar.c 2006-01-13 18:58:03.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/putchar.c 2007-05-09 18:05:21.642421481 -0500
+@@ -7,7 +7,8 @@
+
+ #include "_stdio.h"
+
+-libc_hidden_proto(__fputc_unlocked)
++//#undef fputc_unlocked
++libc_hidden_proto(fputc_unlocked)
+
+ #undef putchar
+ #ifdef __DO_UNLOCKED
+diff -ur uClibc-0.9.29/libc/stdio/puts.c uClibc-0.9.29-patched/libc/stdio/puts.c
+--- uClibc-0.9.29/libc/stdio/puts.c 2006-01-13 18:58:03.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/puts.c 2007-05-09 18:05:21.642421481 -0500
+@@ -7,7 +7,8 @@
+
+ #include "_stdio.h"
+
+-libc_hidden_proto(__fputc_unlocked)
++//#undef fputc_unlocked
++libc_hidden_proto(fputc_unlocked)
+ libc_hidden_proto(fputs_unlocked)
+
+ int puts(register const char * __restrict s)
+@@ -25,7 +26,7 @@
+ /* Note: Nonportable as fputs need only return nonnegative on success. */
+ if ((n = fputs_unlocked(s, stream)) != EOF) {
+ ++n;
+- if (__fputc_unlocked('\n', stream) == EOF) {
++ if (fputc_unlocked('\n', stream) == EOF) {
+ n = EOF;
+ }
+ }
+diff -ur uClibc-0.9.29/libc/stdio/putwchar.c uClibc-0.9.29-patched/libc/stdio/putwchar.c
+--- uClibc-0.9.29/libc/stdio/putwchar.c 2006-01-14 14:16:19.000000000 -0600
++++ uClibc-0.9.29-patched/libc/stdio/putwchar.c 2007-05-09 18:05:21.642421481 -0500
+@@ -22,7 +22,8 @@
+
+ #elif defined __UCLIBC_HAS_THREADS__
+
+-libc_hidden_proto(__fputc_unlocked)
++//#undef fputc_unlocked
++libc_hidden_proto(fputc_unlocked)
+ /* psm: should this be fputwc? */
+ libc_hidden_proto(fputc)
+
+diff -ur uClibc-0.9.29/libc/sysdeps/linux/common/bits/uClibc_stdio.h uClibc-0.9.29-patched/libc/sysdeps/linux/common/bits/uClibc_stdio.h
+--- uClibc-0.9.29/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2007-01-28 07:16:58.000000000 -0600
++++ uClibc-0.9.29-patched/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2007-05-09 20:56:02.408110608 -0500
+@@ -381,33 +381,29 @@
+ # define __FEOF(__stream) __FEOF_UNLOCKED(__stream)
+ #endif
+
+-extern int __fgetc_unlocked(FILE *__stream);
+-extern int __fputc_unlocked(int __c, FILE *__stream);
+-
+ /* First define the default definitions.
+ They are overridden below as necessary. */
+-#define __FGETC_UNLOCKED(__stream) (__fgetc_unlocked)((__stream))
++#define __FGETC_UNLOCKED(__stream) (fgetc_unlocked)((__stream))
+ #define __FGETC(__stream) (fgetc)((__stream))
+-#define __GETC_UNLOCKED_MACRO(__stream) (__fgetc_unlocked)((__stream))
+-#define __GETC_UNLOCKED(__stream) (__fgetc_unlocked)((__stream))
++#define __GETC_UNLOCKED_MACRO(__stream) (fgetc_unlocked)((__stream))
++#define __GETC_UNLOCKED(__stream) (fgetc_unlocked)((__stream))
+ #define __GETC(__stream) (fgetc)((__stream))
+
+-#define __FPUTC_UNLOCKED(__c, __stream) (__fputc_unlocked)((__c),(__stream))
++#define __FPUTC_UNLOCKED(__c, __stream) (fputc_unlocked)((__c),(__stream))
+ #define __FPUTC(__c, __stream) (fputc)((__c),(__stream))
+-#define __PUTC_UNLOCKED_MACRO(__c, __stream) (__fputc_unlocked)((__c),(__stream))
+-#define __PUTC_UNLOCKED(__c, __stream) (__fputc_unlocked)((__c),(__stream))
++#define __PUTC_UNLOCKED_MACRO(__c, __stream) (fputc_unlocked)((__c),(__stream))
++#define __PUTC_UNLOCKED(__c, __stream) (fputc_unlocked)((__c),(__stream))
+ #define __PUTC(__c, __stream) (fputc)((__c),(__stream))
+
+
+ #ifdef __STDIO_GETC_MACRO
+-
+ extern FILE *__stdin; /* For getchar() macro. */
+
+ # undef __GETC_UNLOCKED_MACRO
+ # define __GETC_UNLOCKED_MACRO(__stream) \
+ ( ((__stream)->__bufpos < (__stream)->__bufgetc_u) \
+ ? (*(__stream)->__bufpos++) \
+- : __fgetc_unlocked(__stream) )
++ : fgetc_unlocked(__stream) )
+
+ # if 0
+ /* Classic macro approach. getc{_unlocked} can have side effects. */
+@@ -453,20 +449,17 @@
+ # endif
+ # endif
+
+-#else
+-
+ #endif /* __STDIO_GETC_MACRO */
+
+
+ #ifdef __STDIO_PUTC_MACRO
+-
+ extern FILE *__stdout; /* For putchar() macro. */
+
+ # undef __PUTC_UNLOCKED_MACRO
+ # define __PUTC_UNLOCKED_MACRO(__c, __stream) \
+ ( ((__stream)->__bufpos < (__stream)->__bufputc_u) \
+ ? (*(__stream)->__bufpos++) = (__c) \
+- : __fputc_unlocked((__c),(__stream)) )
++ : (fputc_unlocked((__c),(__stream)) )
+
+ # if 0
+ /* Classic macro approach. putc{_unlocked} can have side effects.*/
+@@ -489,7 +482,8 @@
+ }) )
+
+ # undef __PUTC_UNLOCKED
+-# define __PUTC_UNLOCKED(__c, __stream) __FPUTC_UNLOCKED((__c), (__stream))
++# define __PUTC_UNLOCKED(__c, __stream) \
++ __FPUTC_UNLOCKED((__c), (__stream))
+
+ # ifdef __UCLIBC_HAS_THREADS__
+ # undef __FPUTC
+diff -ur uClibc-0.9.29/libc/unistd/getpass.c uClibc-0.9.29-patched/libc/unistd/getpass.c
+--- uClibc-0.9.29/libc/unistd/getpass.c 2006-07-05 05:58:38.000000000 -0500
++++ uClibc-0.9.29-patched/libc/unistd/getpass.c 2007-05-09 18:05:21.642421481 -0500
+@@ -36,7 +36,8 @@
+ libc_hidden_proto(fputs)
+ libc_hidden_proto(fputc)
+ libc_hidden_proto(putc)
+-libc_hidden_proto(__fputc_unlocked)
++//#undef fputc_unlocked
++libc_hidden_proto(fputc_unlocked)
+
+ /* It is desirable to use this bit on systems that have it.
+ The only bit of terminal state we want to twiddle is echoing, which is
diff --git a/patches/uClibc/0.9.29/300-fix-gethostent_r-failure-retval.patch b/patches/uClibc/0.9.29/300-fix-gethostent_r-failure-retval.patch
new file mode 100644
index 0000000..7b246c1
--- /dev/null
+++ b/patches/uClibc/0.9.29/300-fix-gethostent_r-failure-retval.patch
@@ -0,0 +1,12 @@
+diff -ur uClibc-0.9.29/libc/inet/resolv.c uClibc-0.9.29-patched/libc/inet/resolv.c
+--- uClibc-0.9.29/libc/inet/resolv.c 2007-04-23 12:01:05.000000000 -0500
++++ uClibc-0.9.29-patched/libc/inet/resolv.c 2007-05-09 18:05:33.563404419 -0500
+@@ -1700,7 +1700,7 @@
+ int gethostent_r(struct hostent *result_buf, char *buf, size_t buflen,
+ struct hostent **result, int *h_errnop)
+ {
+- int ret;
++ int ret = HOST_NOT_FOUND;
+
+ __UCLIBC_MUTEX_LOCK(mylock);
+ if (__gethostent_fp == NULL) {
diff --git a/patches/uClibc/0.9.29/400-bits_sysnum_h.patch b/patches/uClibc/0.9.29/400-bits_sysnum_h.patch
new file mode 100644
index 0000000..595a22e
--- /dev/null
+++ b/patches/uClibc/0.9.29/400-bits_sysnum_h.patch
@@ -0,0 +1,33 @@
+YEM-20070519:
+bits/sysnum.h needs a cross compiler to be built. Fortunately, this
+header is not needed to build gcc. Move generation of this header.
+
+Index: uClibc/Makefile.in
+===================================================================
+--- uClibc/Makefile.in (revision 18651)
++++ uClibc/Makefile.in (working copy)
+@@ -91,6 +91,11 @@
+ $(LN) -fs $$i .; \
+ done; \
+ fi
++ifeq ($(UCLIBC_HAS_LOCALE),y)
++ $(MAKE) locale_headers
++endif
++
++pregen: headers
+ $(Q)\
+ set -e; \
+ cd $(top_builddir); \
+@@ -102,12 +107,7 @@
+ else \
+ mv -f $$tmp include/bits/sysnum.h; \
+ fi
+-ifeq ($(UCLIBC_HAS_LOCALE),y)
+- $(MAKE) locale_headers
+-endif
+
+-pregen: headers
+-
+ install: install_runtime install_dev
+
+