aboutsummaryrefslogtreecommitdiffstats
path: root/core/uclibc
diff options
context:
space:
mode:
Diffstat (limited to 'core/uclibc')
-rw-r--r--core/uclibc/0001-ldd-segfault-fix.patch49
-rw-r--r--core/uclibc/0001-linuxthreads-fixes-from-Will-Newton-will.newton-AT-g.patch281
-rw-r--r--core/uclibc/APKBUILD65
-rw-r--r--core/uclibc/ppoll.patch59
-rw-r--r--core/uclibc/pthread-new-aliasing-fix.diff147
-rw-r--r--core/uclibc/uclibc-0.9.30.1-pthread_getattr_np.patch137
-rw-r--r--core/uclibc/uclibc-0.9.30.1-resolv.patch13
-rw-r--r--core/uclibc/uclibc-fork-hook.diff36
-rw-r--r--core/uclibc/uclibc-i386-floating-stacks.diff23
-rw-r--r--core/uclibc/uclibc-resolv-cname-fix.diff16
-rw-r--r--core/uclibc/uclibcconfig246
11 files changed, 0 insertions, 1072 deletions
diff --git a/core/uclibc/0001-ldd-segfault-fix.patch b/core/uclibc/0001-ldd-segfault-fix.patch
deleted file mode 100644
index 4384fa548c..0000000000
--- a/core/uclibc/0001-ldd-segfault-fix.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From f29b6882327573ec4e694c1c852307c957d544b9 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 5 May 2009 14:10:42 +0000
-Subject: [PATCH] ldd segfault fix
-
-Fixes ldd segfault on this testcase:
-
-extern void _dl_getenv(void);
-void foo(void)
-{
- printf("foo: %x\n", &_dl_getenv);
-}
-
-linked as -shared
----
- utils/ldd.c | 8 +++++---
- 1 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/utils/ldd.c b/utils/ldd.c
-index 1f1dc25..2cd173c 100644
---- a/utils/ldd.c
-+++ b/utils/ldd.c
-@@ -576,18 +576,20 @@ static struct library *find_elf_interpreter(ElfW(Ehdr) *ehdr)
- }
- newlib->name = NULL;
- newlib->path = NULL;
-- return NULL;
-+ break;
- }
- }
-- if (newlib == NULL)
-+ if (newlib == NULL) {
- newlib = malloc(sizeof(struct library));
-+ if (newlib)
-+ newlib->next = NULL;
-+ }
- if (!newlib)
- return NULL;
- newlib->name = malloc(strlen(s) + 1);
- strcpy(newlib->name, s);
- newlib->path = strdup(newlib->name);
- newlib->resolved = 1;
-- newlib->next = NULL;
-
- #if 0
- /*printf("find_elf_interpreter is adding '%s' to '%s'\n", newlib->name, newlib->path); */
---
-1.6.2.3
-
diff --git a/core/uclibc/0001-linuxthreads-fixes-from-Will-Newton-will.newton-AT-g.patch b/core/uclibc/0001-linuxthreads-fixes-from-Will-Newton-will.newton-AT-g.patch
deleted file mode 100644
index 6b54d25f28..0000000000
--- a/core/uclibc/0001-linuxthreads-fixes-from-Will-Newton-will.newton-AT-g.patch
+++ /dev/null
@@ -1,281 +0,0 @@
-From 52c9ef85a65f4dc25a4d1ff79c0fba1ed53ef43a Mon Sep 17 00:00:00 2001
-From: Denis Vlasenko <vda.linux@googlemail.com>
-Date: Thu, 12 Mar 2009 20:56:59 +0000
-Subject: [PATCH 01/39] linuxthreads fixes from Will Newton (will.newton AT gmail.com):
- * share Sys V semaphores in order to get appropriate SEM_UNDO semantics.
- * correct guardaddr in pthread_free() for TLS case
- * move spinlock unlocking before restart()
- * When exit was called from a signal handler, the restart
- from the manager processing the exit request instead restarted the thread
- in pthread_cond_timedwait.
- (see http://sources.redhat.com/ml/libc-ports/2006-05/msg00000.html)
-
----
- libpthread/linuxthreads/descr.h | 2 --
- libpthread/linuxthreads/manager.c | 15 ++++++++-------
- libpthread/linuxthreads/pthread.c | 26 +++++++++++++++-----------
- libpthread/linuxthreads/specific.c | 10 ++++++----
- libpthread/linuxthreads/spinlock.c | 14 +++++++++++++-
- libpthread/linuxthreads/spinlock.h | 6 ++++--
- libpthread/linuxthreads/sysdeps/i386/tls.h | 2 --
- 7 files changed, 46 insertions(+), 29 deletions(-)
-
-diff --git a/libpthread/linuxthreads/descr.h b/libpthread/linuxthreads/descr.h
-index 24ec30b..47a9acd 100644
---- a/libpthread/linuxthreads/descr.h
-+++ b/libpthread/linuxthreads/descr.h
-@@ -123,9 +123,7 @@ struct _pthread_descr_struct
- union dtv *dtvp;
- pthread_descr self; /* Pointer to this structure */
- int multiple_threads;
--# ifdef NEED_DL_SYSINFO
- uintptr_t sysinfo;
--# endif
- } data;
- void *__padding[16];
- } p_header;
-diff --git a/libpthread/linuxthreads/manager.c b/libpthread/linuxthreads/manager.c
-index be1e8d2..b068d6c 100644
---- a/libpthread/linuxthreads/manager.c
-+++ b/libpthread/linuxthreads/manager.c
-@@ -742,15 +742,15 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr,
- pid = __clone2(pthread_start_thread_event,
- (void **)new_thread_bottom,
- (char *)stack_addr - new_thread_bottom,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
- __pthread_sig_cancel, new_thread);
- #elif _STACK_GROWS_UP
- pid = __clone(pthread_start_thread_event, (void *) new_thread_bottom,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
- __pthread_sig_cancel, new_thread);
- #else
- pid = __clone(pthread_start_thread_event, stack_addr,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
- __pthread_sig_cancel, new_thread);
- #endif
- saved_errno = errno;
-@@ -783,15 +783,15 @@ static int pthread_handle_create(pthread_t *thread, const pthread_attr_t *attr,
- pid = __clone2(pthread_start_thread,
- (void **)new_thread_bottom,
- (char *)stack_addr - new_thread_bottom,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
- __pthread_sig_cancel, new_thread);
- #elif _STACK_GROWS_UP
- pid = __clone(pthread_start_thread, (void *) new_thread_bottom,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
- __pthread_sig_cancel, new_thread);
- #else
- pid = __clone(pthread_start_thread, stack_addr,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM |
- __pthread_sig_cancel, new_thread);
- #endif /* !NEED_SEPARATE_REGISTER_STACK */
- saved_errno = errno;
-@@ -892,10 +892,11 @@ static void pthread_free(pthread_descr th)
- #ifdef _STACK_GROWS_UP
- # ifdef USE_TLS
- size_t stacksize = guardaddr - th->p_stackaddr;
-+ guardaddr = th->p_stackaddr;
- # else
- size_t stacksize = guardaddr - (char *)th;
--# endif
- guardaddr = (char *)th;
-+# endif
- #else
- /* Guardaddr is always set, even if guardsize is 0. This allows
- us to compute everything else. */
-diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c
-index 91333f2..4d1d906 100644
---- a/libpthread/linuxthreads/pthread.c
-+++ b/libpthread/linuxthreads/pthread.c
-@@ -740,17 +740,17 @@ int __pthread_initialize_manager(void)
- pid = __clone2(__pthread_manager_event,
- (void **) __pthread_manager_thread_bos,
- THREAD_MANAGER_STACK_SIZE,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM,
- mgr);
- #elif _STACK_GROWS_UP
- pid = __clone(__pthread_manager_event,
- (void **) __pthread_manager_thread_bos,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM,
- mgr);
- #else
- pid = __clone(__pthread_manager_event,
- (void **) __pthread_manager_thread_tos,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND,
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM,
- mgr);
- #endif
-
-@@ -780,13 +780,13 @@ int __pthread_initialize_manager(void)
- #ifdef NEED_SEPARATE_REGISTER_STACK
- pid = __clone2(__pthread_manager, (void **) __pthread_manager_thread_bos,
- THREAD_MANAGER_STACK_SIZE,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr);
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr);
- #elif _STACK_GROWS_UP
- pid = __clone(__pthread_manager, (void **) __pthread_manager_thread_bos,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr);
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr);
- #else
- pid = __clone(__pthread_manager, (void **) __pthread_manager_thread_tos,
-- CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, mgr);
-+ CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_SYSVSEM, mgr);
- #endif
- }
- if (__builtin_expect (pid, 0) == -1) {
-@@ -972,6 +972,10 @@ static void pthread_onexit_process(int retcode, void *arg)
- struct pthread_request request;
- pthread_descr self = thread_self();
-
-+ /* Make sure we come back here after suspend(), in case we entered
-+ from a signal handler. */
-+ THREAD_SETMEM(self, p_signal_jmp, NULL);
-+
- request.req_thread = self;
- request.req_kind = REQ_PROCESS_EXIT;
- request.req_args.exit.code = retcode;
-@@ -1201,13 +1205,13 @@ void __pthread_wait_for_restart_signal(pthread_descr self)
-
- void __pthread_restart_old(pthread_descr th)
- {
-- if (atomic_increment(&th->p_resume_count) == -1)
-+ if (pthread_atomic_increment(&th->p_resume_count) == -1)
- kill(th->p_pid, __pthread_sig_restart);
- }
-
- void __pthread_suspend_old(pthread_descr self)
- {
-- if (atomic_decrement(&self->p_resume_count) <= 0)
-+ if (pthread_atomic_decrement(&self->p_resume_count) <= 0)
- __pthread_wait_for_restart_signal(self);
- }
-
-@@ -1218,7 +1222,7 @@ __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime)
- int was_signalled = 0;
- sigjmp_buf jmpbuf;
-
-- if (atomic_decrement(&self->p_resume_count) == 0) {
-+ if (pthread_atomic_decrement(&self->p_resume_count) == 0) {
- /* Set up a longjmp handler for the restart signal, unblock
- the signal and sleep. */
-
-@@ -1275,9 +1279,9 @@ __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime)
- being delivered. */
-
- if (!was_signalled) {
-- if (atomic_increment(&self->p_resume_count) != -1) {
-+ if (pthread_atomic_increment(&self->p_resume_count) != -1) {
- __pthread_wait_for_restart_signal(self);
-- atomic_decrement(&self->p_resume_count); /* should be zero now! */
-+ pthread_atomic_decrement(&self->p_resume_count); /* should be zero now! */
- /* woke spontaneously and consumed restart signal */
- return 1;
- }
-diff --git a/libpthread/linuxthreads/specific.c b/libpthread/linuxthreads/specific.c
-index 92eec3d..764bf1e 100644
---- a/libpthread/linuxthreads/specific.c
-+++ b/libpthread/linuxthreads/specific.c
-@@ -104,13 +104,14 @@ int pthread_key_delete(pthread_key_t key)
- that if the key is reallocated later by pthread_key_create, its
- associated values will be NULL in all threads.
-
-- If no threads have been created yet, clear it just in the
-- current thread. */
-+ If no threads have been created yet, or if we are exiting, clear
-+ it just in the current thread. */
-
- struct pthread_key_delete_helper_args args;
- args.idx1st = key / PTHREAD_KEY_2NDLEVEL_SIZE;
- args.idx2nd = key % PTHREAD_KEY_2NDLEVEL_SIZE;
-- if (__pthread_manager_request != -1)
-+ if (__pthread_manager_request != -1
-+ && !(__builtin_expect (__pthread_exit_requested, 0)))
- {
- struct pthread_request request;
-
-@@ -203,8 +204,9 @@ void __pthread_destroy_specifics()
- __pthread_lock(THREAD_GETMEM(self, p_lock), self);
- for (i = 0; i < PTHREAD_KEY_1STLEVEL_SIZE; i++) {
- if (THREAD_GETMEM_NC(self, p_specific[i]) != NULL) {
-- free(THREAD_GETMEM_NC(self, p_specific[i]));
-+ void *p = THREAD_GETMEM_NC(self, p_specific[i]);
- THREAD_SETMEM_NC(self, p_specific[i], NULL);
-+ free(p);
- }
- }
- __pthread_unlock(THREAD_GETMEM(self, p_lock));
-diff --git a/libpthread/linuxthreads/spinlock.c b/libpthread/linuxthreads/spinlock.c
-index f325402..f0cf19c 100644
---- a/libpthread/linuxthreads/spinlock.c
-+++ b/libpthread/linuxthreads/spinlock.c
-@@ -637,8 +637,20 @@ void __pthread_alt_unlock(struct _pthread_fastlock *lock)
- #if defined HAS_COMPARE_AND_SWAP
- wait_node_dequeue(pp_head, pp_max_prio, p_max_prio);
- #endif
-+
-+ /* Release the spinlock *before* restarting. */
-+#if defined TEST_FOR_COMPARE_AND_SWAP
-+ if (!__pthread_has_cas)
-+#endif
-+#if !defined HAS_COMPARE_AND_SWAP || defined TEST_FOR_COMPARE_AND_SWAP
-+ {
-+ __pthread_release(&lock->__spinlock);
-+ }
-+#endif
-+
- restart(p_max_prio->thr);
-- break;
-+
-+ return;
- }
- }
-
-diff --git a/libpthread/linuxthreads/spinlock.h b/libpthread/linuxthreads/spinlock.h
-index 210ead4..2a3c227 100644
---- a/libpthread/linuxthreads/spinlock.h
-+++ b/libpthread/linuxthreads/spinlock.h
-@@ -172,7 +172,8 @@ static __inline__ int __pthread_alt_trylock (struct _pthread_fastlock * lock)
-
- /* Operations on pthread_atomic, which is defined in internals.h */
-
--static __inline__ long atomic_increment(struct pthread_atomic *pa)
-+static __inline__ long
-+pthread_atomic_increment (struct pthread_atomic *pa)
- {
- long oldval;
-
-@@ -184,7 +185,8 @@ static __inline__ long atomic_increment(struct pthread_atomic *pa)
- }
-
-
--static __inline__ long atomic_decrement(struct pthread_atomic *pa)
-+static __inline__ long
-+pthread_atomic_decrement (struct pthread_atomic *pa)
- {
- long oldval;
-
-diff --git a/libpthread/linuxthreads/sysdeps/i386/tls.h b/libpthread/linuxthreads/sysdeps/i386/tls.h
-index 2abd3a0..4c9b680 100644
---- a/libpthread/linuxthreads/sysdeps/i386/tls.h
-+++ b/libpthread/linuxthreads/sysdeps/i386/tls.h
-@@ -46,9 +46,7 @@ typedef struct
- dtv_t *dtv;
- void *self; /* Pointer to the thread descriptor. */
- int multiple_threads;
--#ifdef NEED_DL_SYSINFO
- uintptr_t sysinfo;
--#endif
- } tcbhead_t;
-
- #else /* __ASSEMBLER__ */
---
-1.6.3.2
-
diff --git a/core/uclibc/APKBUILD b/core/uclibc/APKBUILD
deleted file mode 100644
index 22914f15a6..0000000000
--- a/core/uclibc/APKBUILD
+++ /dev/null
@@ -1,65 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=uclibc
-pkgver=0.9.30.1
-pkgrel=11
-pkgdesc="C library for developing embedded Linux systems"
-url=http://uclibc.org
-license="LGPL-2"
-_mynamever=uClibc-$pkgver
-
-subpackages="$pkgname-dev"
-depends_dev="linux-headers"
-
-source="http://uclibc.org/downloads/$_mynamever.tar.bz2
- $pkgname-0.9.30.1-resolv.patch
- uclibc-0.9.30.1-pthread_getattr_np.patch
- 0001-ldd-segfault-fix.patch
- 0001-linuxthreads-fixes-from-Will-Newton-will.newton-AT-g.patch
- pthread-new-aliasing-fix.diff
- uclibc-resolv-cname-fix.diff
- uclibc-i386-floating-stacks.diff
- ppoll.patch
- uclibc-fork-hook.diff
- uclibcconfig
- "
-
-_prepare() {
- local i gcc_major
- cd "$srcdir/$_mynamever/"
- # patches goes here
- for i in ../*.patch ../*.diff; do
- msg "Applying $i..."
- patch -p1 < $i || return 1
- done
-}
-
-_compile() {
- cd "$srcdir/$_mynamever/"
- cp ../uclibcconfig .config
- make silentoldconfig
- # this is a hack to get uclibc-i386-floating-stacks.diff working
- touch libc/sysdeps/linux/i386/sysdep.h
- make || return 1
-}
-
-_install() {
- cd "$srcdir/$_mynamever/"
- make install DESTDIR="$pkgdir" install_utils
- install -Dm755 extra/scripts/getent "$pkgdir"/usr/bin/getent
-}
-
-build() {
- _prepare && _compile && _install
-}
-
-md5sums="1a4b84e5536ad8170563ffa88c34679c uClibc-0.9.30.1.tar.bz2
-ea91460617601b6e084ead66bc3948f5 uclibc-0.9.30.1-resolv.patch
-cf80c0d44a41e02f389be427ee615d61 uclibc-0.9.30.1-pthread_getattr_np.patch
-4079b20c763727863bc53408e4988434 0001-ldd-segfault-fix.patch
-bcd1c4c9c87f092fb4631559e6ec13ba 0001-linuxthreads-fixes-from-Will-Newton-will.newton-AT-g.patch
-969187e1da84d0a0a5957b392a3d5a2b pthread-new-aliasing-fix.diff
-bbb8475963e791f596c34c81ef5583d7 uclibc-resolv-cname-fix.diff
-0b3966ab7774ac42ecf34a7b596c661b uclibc-i386-floating-stacks.diff
-60738298e377295d359768a09adac0bb ppoll.patch
-55bb709f5efd937df323f0d39a202cfd uclibc-fork-hook.diff
-0a87f57d3e5001027f43b7c959d96319 uclibcconfig"
diff --git a/core/uclibc/ppoll.patch b/core/uclibc/ppoll.patch
deleted file mode 100644
index e73733e216..0000000000
--- a/core/uclibc/ppoll.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-commit f82635e74a7e174f71f955eaa4f5dc788e596cc0
-Author: Denis Vlasenko <vda.linux@googlemail.com>
-Date: Wed Jan 28 23:42:01 2009 +0000
-
- fix ppoll. we forgot to pass 5th parameter to the syscall
-
-diff --git a/libc/sysdeps/linux/common/ppoll.c b/libc/sysdeps/linux/common/ppoll.c
-index edcb1dc..d550ae8 100644
---- a/libc/sysdeps/linux/common/ppoll.c
-+++ b/libc/sysdeps/linux/common/ppoll.c
-@@ -17,6 +17,7 @@
- Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
- 02111-1307 USA. */
-
-+#include <signal.h>
- #include <sys/syscall.h>
- #include <sys/poll.h>
-
-@@ -26,24 +27,26 @@
-
- # define __NR___libc_ppoll __NR_ppoll
- static __always_inline
--_syscall4(int, __libc_ppoll, struct pollfd *, fds,
-- nfds_t, nfds, const struct timespec *, timeout,
-- const __sigset_t *, sigmask)
-+_syscall5(int, __libc_ppoll,
-+ struct pollfd *, fds,
-+ nfds_t, nfds,
-+ const struct timespec *, timeout,
-+ const __sigset_t *, sigmask,
-+ size_t, sigsetsize)
-
- int
--ppoll (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
-+ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
- const __sigset_t *sigmask)
- {
-- /* The Linux kernel can in some situations update the timeout value.
-- We do not want that so use a local variable. */
-- struct timespec tval;
-- if (timeout != NULL)
-- {
-- tval = *timeout;
-- timeout = &tval;
-- }
--
-- return __libc_ppoll(fds, nfds, timeout, sigmask);
-+ /* The Linux kernel can in some situations update the timeout value.
-+ We do not want that so use a local variable. */
-+ struct timespec tval;
-+ if (timeout != NULL) {
-+ tval = *timeout;
-+ timeout = &tval;
-+ }
-+
-+ return __libc_ppoll(fds, nfds, timeout, sigmask, _NSIG / 8);
- }
- libc_hidden_def(ppoll)
-
diff --git a/core/uclibc/pthread-new-aliasing-fix.diff b/core/uclibc/pthread-new-aliasing-fix.diff
deleted file mode 100644
index 2b2b37723a..0000000000
--- a/core/uclibc/pthread-new-aliasing-fix.diff
+++ /dev/null
@@ -1,147 +0,0 @@
-diff --git a/libpthread/linuxthreads/cancel.c b/libpthread/linuxthreads/cancel.c
-index 3435680..1412b57 100644
---- a/libpthread/linuxthreads/cancel.c
-+++ b/libpthread/linuxthreads/cancel.c
-@@ -152,8 +152,8 @@ void pthread_testcancel(void)
- __pthread_do_exit(PTHREAD_CANCELED, CURRENT_STACK_FRAME);
- }
-
--void _pthread_cleanup_push(struct _pthread_cleanup_buffer * buffer,
-- void (*routine)(void *), void * arg)
-+void __pthread_cleanup_push(struct _pthread_cleanup_buffer * buffer,
-+ void (*routine)(void *), void * arg)
- {
- pthread_descr self = thread_self();
- buffer->__routine = routine;
-@@ -163,17 +163,19 @@ void _pthread_cleanup_push(struct _pthread_cleanup_buffer * buffer,
- buffer->__prev = NULL;
- THREAD_SETMEM(self, p_cleanup, buffer);
- }
-+strong_alias(__pthread_cleanup_push, _pthread_cleanup_push);
-
--void _pthread_cleanup_pop(struct _pthread_cleanup_buffer * buffer,
-- int execute)
-+void __pthread_cleanup_pop(struct _pthread_cleanup_buffer * buffer,
-+ int execute)
- {
- pthread_descr self = thread_self();
- if (execute) buffer->__routine(buffer->__arg);
- THREAD_SETMEM(self, p_cleanup, buffer->__prev);
- }
-+strong_alias(__pthread_cleanup_pop, _pthread_cleanup_pop);
-
--void _pthread_cleanup_push_defer(struct _pthread_cleanup_buffer * buffer,
-- void (*routine)(void *), void * arg)
-+void __pthread_cleanup_push_defer(struct _pthread_cleanup_buffer * buffer,
-+ void (*routine)(void *), void * arg)
- {
- pthread_descr self = thread_self();
- buffer->__routine = routine;
-@@ -185,9 +187,10 @@ void _pthread_cleanup_push_defer(struct _pthread_cleanup_buffer * buffer,
- THREAD_SETMEM(self, p_canceltype, PTHREAD_CANCEL_DEFERRED);
- THREAD_SETMEM(self, p_cleanup, buffer);
- }
-+strong_alias(__pthread_cleanup_push_defer, _pthread_cleanup_push_defer);
-
--void _pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer * buffer,
-- int execute)
-+void __pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer * buffer,
-+ int execute)
- {
- pthread_descr self = thread_self();
- if (execute) buffer->__routine(buffer->__arg);
-@@ -198,6 +201,7 @@ void _pthread_cleanup_pop_restore(struct _pthread_cleanup_buffer * buffer,
- THREAD_GETMEM(self, p_canceltype) == PTHREAD_CANCEL_ASYNCHRONOUS)
- __pthread_do_exit(PTHREAD_CANCELED, CURRENT_STACK_FRAME);
- }
-+strong_alias(__pthread_cleanup_pop_restore, _pthread_cleanup_pop_restore);
-
- extern void __rpc_thread_destroy(void);
- void __pthread_perform_cleanup(char *currentframe)
-diff --git a/libpthread/linuxthreads/forward.c b/libpthread/linuxthreads/forward.c
-index f9f8ea1..385e79f 100644
---- a/libpthread/linuxthreads/forward.c
-+++ b/libpthread/linuxthreads/forward.c
-@@ -24,6 +24,10 @@
- /* psm: keep this before internals.h */
- /* libc_hidden_proto(exit) */
-
-+#define hidden_strong_alias(name, aliasname) \
-+ extern __typeof (name) aliasname __attribute__ ((alias (#name), \
-+ visibility ("hidden")));
-+
- #include "internals.h"
-
- /* Pointers to the libc functions. */
-@@ -104,8 +108,7 @@ FORWARD (pthread_equal, (pthread_t thread1, pthread_t thread2),
-
- /* Use an alias to avoid warning, as pthread_exit is declared noreturn. */
- FORWARD2 (__pthread_exit, void, (void *retval), (retval), exit (EXIT_SUCCESS))
--strong_alias (__pthread_exit, pthread_exit)
--
-+hidden_strong_alias (__pthread_exit, pthread_exit)
-
- FORWARD (pthread_getschedparam,
- (pthread_t target_thread, int *policy, struct sched_param *param),
-@@ -120,16 +123,16 @@ FORWARD (pthread_mutex_destroy, (pthread_mutex_t *mutex), (mutex), 0)
- FORWARD (pthread_mutex_init,
- (pthread_mutex_t *mutex, const pthread_mutexattr_t *mutexattr),
- (mutex, mutexattr), 0)
--strong_alias(pthread_mutex_init, __pthread_mutex_init)
-+hidden_strong_alias(pthread_mutex_init, __pthread_mutex_init)
-
- FORWARD (pthread_mutex_lock, (pthread_mutex_t *mutex), (mutex), 0)
--strong_alias(pthread_mutex_lock, __pthread_mutex_lock)
-+hidden_strong_alias(pthread_mutex_lock, __pthread_mutex_lock)
-
- FORWARD (pthread_mutex_trylock, (pthread_mutex_t *mutex), (mutex), 0)
--strong_alias(pthread_mutex_trylock, __pthread_mutex_trylock)
-+hidden_strong_alias(pthread_mutex_trylock, __pthread_mutex_trylock)
-
- FORWARD (pthread_mutex_unlock, (pthread_mutex_t *mutex), (mutex), 0)
--strong_alias(pthread_mutex_unlock, __pthread_mutex_unlock)
-+hidden_strong_alias(pthread_mutex_unlock, __pthread_mutex_unlock)
-
- FORWARD2 (pthread_self, pthread_t, (void), (), return 0)
-
-diff --git a/libpthread/linuxthreads/internals.h b/libpthread/linuxthreads/internals.h
-index eb0a519..4ad6a0d 100644
---- a/libpthread/linuxthreads/internals.h
-+++ b/libpthread/linuxthreads/internals.h
-@@ -380,6 +380,17 @@ extern int __pthread_setschedparam (pthread_t thread, int policy,
- extern int __pthread_setcancelstate (int state, int * oldstate);
- extern int __pthread_setcanceltype (int type, int * oldtype);
-
-+extern void __pthread_cleanup_push (struct _pthread_cleanup_buffer *__buffer,
-+ void (*__routine) (void *),
-+ void *__arg) __THROW;
-+extern void __pthread_cleanup_pop (struct _pthread_cleanup_buffer *__buffer,
-+ int __execute) __THROW;
-+extern void __pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *__buffer,
-+ void (*__routine) (void *),
-+ void *__arg) __THROW;
-+extern void __pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *__buffer,
-+ int __execute) __THROW;
-+
- extern void __pthread_restart_old(pthread_descr th);
- extern void __pthread_suspend_old(pthread_descr self);
- extern int __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime);
-diff --git a/libpthread/linuxthreads/pthread.c b/libpthread/linuxthreads/pthread.c
-index 4d1d906..012b74b 100644
---- a/libpthread/linuxthreads/pthread.c
-+++ b/libpthread/linuxthreads/pthread.c
-@@ -280,10 +280,10 @@ struct pthread_functions __pthread_functions =
- .ptr_pthread_sigaction = __pthread_sigaction,
- .ptr_pthread_sigwait = __pthread_sigwait,
- .ptr_pthread_raise = __pthread_raise,
-- .ptr__pthread_cleanup_push = _pthread_cleanup_push,
-- .ptr__pthread_cleanup_push_defer = _pthread_cleanup_push_defer,
-- .ptr__pthread_cleanup_pop = _pthread_cleanup_pop,
-- .ptr__pthread_cleanup_pop_restore = _pthread_cleanup_pop_restore,
-+ .ptr__pthread_cleanup_push = __pthread_cleanup_push,
-+ .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
-+ .ptr__pthread_cleanup_pop = __pthread_cleanup_pop,
-+ .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
- };
- #ifdef SHARED
- # define ptr_pthread_functions &__pthread_functions
diff --git a/core/uclibc/uclibc-0.9.30.1-pthread_getattr_np.patch b/core/uclibc/uclibc-0.9.30.1-pthread_getattr_np.patch
deleted file mode 100644
index 28469be236..0000000000
--- a/core/uclibc/uclibc-0.9.30.1-pthread_getattr_np.patch
+++ /dev/null
@@ -1,137 +0,0 @@
---- uClibc-0.9.30.1.orig/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2009-03-30 15:01:48.000000000 +0000
-+++ uClibc-0.9.30.1/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2009-03-30 15:48:16.000000000 +0000
-@@ -288,16 +288,12 @@
- __attr, size_t *__restrict __stacksize)
- __THROW;
-
--#if 0
--/* Not yet implemented in uClibc! */
--
- #ifdef __USE_GNU
- /* Initialize thread attribute *ATTR with attributes corresponding to the
- 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
--#endif
-
- /* Functions for scheduling control. */
-
-@@ -599,6 +595,11 @@
- cancelled. */
- extern void pthread_testcancel (void);
-
-+/* Return the previously set address for the stack. */
-+extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
-+ void **__restrict __stackaddr,
-+ size_t *__restrict __stacksize) __THROW;
-+
-
- /* Install a cleanup handler: ROUTINE will be called with arguments ARG
- when the thread is cancelled or calls pthread_exit. ROUTINE will also
---- a/libpthread/linuxthreads.old/attr.c.orig 2007-11-22 16:55:08.000000000 +0000
-+++ b/libpthread/linuxthreads.old/attr.c 2009-03-30 19:15:51.000000000 +0000
-@@ -38,6 +38,14 @@
- libpthread_hidden_proto(pthread_attr_getscope)
- libpthread_hidden_proto(pthread_attr_setscope)
-
-+#include <sys/resource.h>
-+#include <inttypes.h>
-+#include <stdio.h>
-+#include <stdio_ext.h>
-+#include <stdlib.h>
-+#include <sys/resource.h>
-+
-+
- /* NOTE: With uClibc I don't think we need this versioning stuff.
- * Therefore, define the function pthread_attr_init() here using
- * a strong symbol. */
-@@ -235,4 +243,88 @@
- *stacksize = attr->__stacksize;
- return 0;
- }
-+
-+
-+extern int *__libc_stack_end;
-+
- weak_alias (__pthread_attr_getstacksize, pthread_attr_getstacksize)
-+int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr)
-+{
-+ static void *stackBase = 0;
-+ static size_t stackSize = 0;
-+ int ret = 0;
-+ /* Stack size limit. */
-+ struct rlimit rl;
-+
-+ /* The safest way to get the top of the stack is to read
-+ /proc/self/maps and locate the line into which
-+ __libc_stack_end falls. */
-+ FILE *fp = fopen("/proc/self/maps", "rc");
-+ if (fp == NULL)
-+ ret = errno;
-+ /* We need the limit of the stack in any case. */
-+ else if (getrlimit (RLIMIT_STACK, &rl) != 0)
-+ ret = errno;
-+ else {
-+ /* We need no locking. */
-+ __fsetlocking (fp, FSETLOCKING_BYCALLER);
-+
-+ /* Until we found an entry (which should always be the case)
-+ mark the result as a failure. */
-+ ret = ENOENT;
-+
-+ char *line = NULL;
-+ size_t linelen = 0;
-+ uintptr_t last_to = 0;
-+
-+ while (! feof_unlocked (fp)) {
-+ if (getdelim (&line, &linelen, '\n', fp) <= 0)
-+ break;
-+
-+ uintptr_t from;
-+ uintptr_t to;
-+ if (sscanf (line, "%x-%x", &from, &to) != 2)
-+ continue;
-+ if (from <= (uintptr_t) __libc_stack_end
-+ && (uintptr_t) __libc_stack_end < to) {
-+ /* Found the entry. Now we have the info we need. */
-+ attr->__stacksize = rl.rlim_cur;
-+#ifdef _STACK_GROWS_UP
-+ /* Don't check to enforce a limit on the __stacksize */
-+ attr->__stackaddr = (void *) from;
-+#else
-+ attr->__stackaddr = (void *) to;
-+
-+ /* The limit might be too high. */
-+ if ((size_t) attr->__stacksize > (size_t) attr->__stackaddr - last_to)
-+ attr->__stacksize = (size_t) attr->__stackaddr - last_to;
-+#endif
-+
-+ /* We succeed and no need to look further. */
-+ ret = 0;
-+ break;
-+ }
-+ last_to = to;
-+ }
-+
-+ fclose (fp);
-+ free (line);
-+ }
-+ return ret;
-+}
-+
-+int __pthread_attr_getstack (const pthread_attr_t *attr, void **stackaddr,
-+ size_t *stacksize)
-+{
-+ /* XXX This function has a stupid definition. The standard specifies
-+ no error value but what is if no stack address was set? We simply
-+ return the value we have in the member. */
-+#ifndef _STACK_GROWS_UP
-+ *stackaddr = (char *) attr->__stackaddr - attr->__stacksize;
-+#else
-+ *stackaddr = attr->__stackaddr;
-+#endif
-+ *stacksize = attr->__stacksize;
-+ return 0;
-+}
-+weak_alias (__pthread_attr_getstack, pthread_attr_getstack)
diff --git a/core/uclibc/uclibc-0.9.30.1-resolv.patch b/core/uclibc/uclibc-0.9.30.1-resolv.patch
deleted file mode 100644
index 55b7d991e1..0000000000
--- a/core/uclibc/uclibc-0.9.30.1-resolv.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -ru uClibc-0.9.30.1.orig/libc/inet/resolv.c uClibc-0.9.30.1/libc/inet/resolv.c
---- uClibc-0.9.30.1.orig/libc/inet/resolv.c 2009-03-10 15:32:14.000000000 +0000
-+++ uClibc-0.9.30.1/libc/inet/resolv.c 2009-03-10 15:39:20.000000000 +0000
-@@ -1331,7 +1331,8 @@
- i = __dns_lookup(dname, type, __nameserversXX, __nameserverXX, &packet, &a);
-
- if (i < 0) {
-- h_errno = TRY_AGAIN;
-+ if (!h_errno) /* TODO: can this ever happen? */
-+ h_errno = TRY_AGAIN;
- return -1;
- }
-
diff --git a/core/uclibc/uclibc-fork-hook.diff b/core/uclibc/uclibc-fork-hook.diff
deleted file mode 100644
index 0126918836..0000000000
--- a/core/uclibc/uclibc-fork-hook.diff
+++ /dev/null
@@ -1,36 +0,0 @@
-diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c
-index e15b99b..70c750d 100644
---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c
-+++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c
-@@ -20,6 +20,7 @@
- #include <errno.h>
- #include <fork.h>
- #include <bits/libc-lock.h>
-+#include <internals.h>
-
- struct fork_block __fork_block =
- {
-@@ -28,3 +29,12 @@ struct fork_block __fork_block =
- .parent_list = { &__fork_block.parent_list, &__fork_block.parent_list },
- .child_list = { &__fork_block.child_list, &__fork_block.child_list }
- };
-+
-+pid_t
-+__libc_fork (void)
-+{
-+ return __libc_maybe_call2 (pthread_fork, (&__fork_block), ARCH_FORK ());
-+}
-+weak_alias (__libc_fork, __fork)
-+libc_hidden_def (__fork)
-+weak_alias (__libc_fork, fork)
-diff --git a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h
-index 85477eb..1e7379e 100644
---- a/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h
-+++ b/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h
-@@ -54,5 +54,5 @@ extern int __register_atfork (void (*__prepare) (void),
- void *dso_handle);
-
- #ifndef ARCH_FORK
--# define ARCH_FORK() __libc_fork()
-+# define ARCH_FORK() INLINE_SYSCALL (fork, 0)
- #endif
diff --git a/core/uclibc/uclibc-i386-floating-stacks.diff b/core/uclibc/uclibc-i386-floating-stacks.diff
deleted file mode 100644
index 553195e69f..0000000000
--- a/core/uclibc/uclibc-i386-floating-stacks.diff
+++ /dev/null
@@ -1,23 +0,0 @@
---- uClibc-0.9.30.1/libpthread/linuxthreads/sysdeps/i386/pt-machine.h Thu Sep 25 13:55:14 2008
-+++ /root/uClibc-0.9.30.1-patched/libpthread/linuxthreads/sysdeps/i386/pt-machine.h Wed Jun 24 13:13:31 2009
-@@ -113,6 +113,8 @@
- }
- #endif /* __ASSEMBLER__ */
-
-+#include "./useldt.h"
-+
- #endif /* pt-machine.h */
-
- #endif
---- uClibc-0.9.30.1/libpthread/linuxthreads/sysdeps/i386/useldt.h Tue May 15 00:35:00 2007
-+++ /root/uClibc-0.9.30.1-patched/libpthread/linuxthreads/sysdeps/i386/useldt.h Wed Jun 24 13:22:38 2009
-@@ -23,7 +23,8 @@
- #include <stddef.h> /* For offsetof. */
- #include <stdlib.h> /* For abort(). */
- #include <sysdep.h>
--
-+#include <sys/syscall.h>
-+#include <kernel-features.h>
-
- /* We don't want to include the kernel header. So duplicate the
- information. */
diff --git a/core/uclibc/uclibc-resolv-cname-fix.diff b/core/uclibc/uclibc-resolv-cname-fix.diff
deleted file mode 100644
index 041e150f35..0000000000
--- a/core/uclibc/uclibc-resolv-cname-fix.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/libc/inet/resolv.c.orig 2009-06-18 09:38:26.000000000 +0300
-+++ b/libc/inet/resolv.c 2009-06-18 09:38:32.000000000 +0300
-@@ -1337,10 +1337,9 @@ int res_query(const char *dname, int cla
-
- free(a.dotted);
-
-- if (a.atype == type) { /* CNAME */
-- i = MIN(anslen, i);
-- memcpy(answer, packet, i);
-- }
-+ i = MIN(anslen, i);
-+ memcpy(answer, packet, i);
-+
- free(packet);
- return i;
- }
diff --git a/core/uclibc/uclibcconfig b/core/uclibc/uclibcconfig
deleted file mode 100644
index 8cc64d90a8..0000000000
--- a/core/uclibc/uclibcconfig
+++ /dev/null
@@ -1,246 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# Version: 0.9.30.1
-# Mon Jun 15 09:42:10 2009
-#
-# 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=y
-# 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="i386"
-FORCE_OPTIONS_FOR_ARCH=y
-# CONFIG_GENERIC_386 is not set
-# CONFIG_386 is not set
-CONFIG_486=y
-# CONFIG_586 is not set
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_ELAN is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_WINCHIPC6 is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_NEHEMIAH is not set
-TARGET_SUBARCH=""
-
-#
-# Using ELF file format
-#
-ARCH_LITTLE_ENDIAN=y
-
-#
-# 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="/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=y
-LDSO_LDD_SUPPORT=y
-LDSO_CACHE_SUPPORT=y
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
-UCLIBC_STATIC_LDCONFIG=y
-LDSO_RUNPATH=y
-UCLIBC_CTOR_DTOR=y
-# LDSO_GNU_HASH_SUPPORT is not set
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_THREADS=y
-# PTHREADS_DEBUG_SUPPORT is not set
-# LINUXTHREADS_OLD is not set
-LINUXTHREADS_NEW=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=y
-UCLIBC_SUSV3_LEGACY=y
-UCLIBC_SUSV3_LEGACY_MACROS=y
-# 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 is not set
-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=y
-UCLIBC_HAS_BSD_ERR=y
-UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
-UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL=y
-# UCLIBC_NTP_LEGACY is not set
-UCLIBC_SV4_DEPRECATED=y
-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=y
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-UCLIBC_HAS_STRING_ARCH_OPT=y
-UCLIBC_HAS_CTYPE_TABLES=y
-UCLIBC_HAS_CTYPE_SIGNED=y
-# UCLIBC_HAS_CTYPE_UNSAFE is not set
-UCLIBC_HAS_CTYPE_CHECKED=y
-# UCLIBC_HAS_CTYPE_ENFORCED is not set
-UCLIBC_HAS_WCHAR=y
-# UCLIBC_HAS_LOCALE is not set
-UCLIBC_HAS_HEXADECIMAL_FLOATS=y
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
-# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
-# 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 is not set
-UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
-UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
-UCLIBC_HAS_PRINTF_M_SPEC=y
-UCLIBC_HAS_ERRNO_MESSAGES=y
-# UCLIBC_HAS_SYS_ERRLIST is not set
-UCLIBC_HAS_SIGNUM_MESSAGES=y
-# UCLIBC_HAS_SYS_SIGLIST is not set
-UCLIBC_HAS_GNU_GETOPT=y
-UCLIBC_HAS_GNU_GETSUBOPT=y
-
-#
-# Big and Tall
-#
-UCLIBC_HAS_REGEX=y
-UCLIBC_HAS_REGEX_OLD=y
-UCLIBC_HAS_FNMATCH=y
-UCLIBC_HAS_FNMATCH_OLD=y
-UCLIBC_HAS_WORDEXP=y
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GLOB=y
-UCLIBC_HAS_GNU_GLOB=y
-
-#
-# Library Installation Options
-#
-SHARED_LIB_LOADER_PREFIX="/lib"
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="/usr"
-
-#
-# Security options
-#
-UCLIBC_BUILD_PIE=y
-UCLIBC_HAS_ARC4RANDOM=y
-# HAVE_NO_SSP is not set
-UCLIBC_HAS_SSP=y
-UCLIBC_HAS_SSP_COMPAT=y
-# SSP_QUICK_CANARY is not set
-# PROPOLICE_BLOCK_ABRT is not set
-PROPOLICE_BLOCK_SEGV=y
-UCLIBC_BUILD_SSP=y
-UCLIBC_BUILD_RELRO=y
-UCLIBC_BUILD_NOW=y
-UCLIBC_BUILD_NOEXECSTACK=y
-
-#
-# uClibc development/debugging options
-#
-CROSS_COMPILER_PREFIX=""
-UCLIBC_EXTRA_CFLAGS=""
-# DODEBUG is not set
-# DOSTRIP is not set
-# 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