From de859f6b2ac8660113e15aff6bc394a441dda60e Mon Sep 17 00:00:00 2001 From: Peter Korsgaard Date: Fri, 12 Mar 2010 23:14:59 +0100 Subject: toolchain: Add uClibc 0.9.30.3, remove older 0.9.30.x As the 0.9.30.x stable releases only contain bugfixes, there isn't much sense in using the older 0.9.30.x releases instead of .3, so use a single 0.9.30.x config similar to how we do it for the kernel headers. Signed-off-by: Peter Korsgaard --- CHANGES | 8 +- toolchain/uClibc/Config.in | 16 +- toolchain/uClibc/uClibc-0.9.30-64bit-strtouq.patch | 48 --- ...uClibc-0.9.30-arm-fix-linuxthreads-sysdep.patch | 177 -------- .../uClibc/uClibc-0.9.30-unifdef-getline.patch | 29 -- .../uClibc-0.9.30-x86-2.6.28+-headers-fix.patch | 59 --- .../uClibc-0.9.30-xtensa-000p-fix-procfs.patch | 24 -- .../uClibc-0.9.30-xtensa-005-sigcontext.patch | 45 -- .../uClibc-0.9.30-xtensa-009-testandset.patch | 59 --- .../uClibc-0.9.30-xtensa-010-sigaction.c.patch | 11 - .../uClibc/uClibc-0.9.30-xtensa-011-sysdep.h.patch | 19 - .../uClibc-0.9.30-xtensa-012-fnmatch_old.c.patch | 11 - .../uClibc/uClibc-0.9.30-xtensa-013-atomic.h.patch | 165 ------- .../uClibc-0.9.30-xtensa-014-setjump.S.patch | 11 - .../uClibc/uClibc-0.9.30.1-64bit-strtouq.patch | 48 --- ...libc-0.9.30.1-arm-fix-linuxthreads-sysdep.patch | 177 -------- .../uClibc/uClibc-0.9.30.1-c99-ldbl-math.patch | 474 --------------------- .../uClibc/uClibc-0.9.30.1-dl-sysdep-inline.patch | 371 ---------------- .../uClibc/uClibc-0.9.30.1-fix-getaddrinfo.patch | 13 - ...9.30.1-fix-varargs-in-prctl-syscall.patch.avr32 | 29 -- .../uClibc/uClibc-0.9.30.1-unifdef-getline.patch | 29 -- .../uClibc-0.9.30.2-LT-pthread_atfork-unhide.patch | 64 --- ...ke-use-of-macros-from-sys-asm.h-in-crt1.S.patch | 87 ---- ...-Make-install_dev-depend-on-install_runti.patch | 30 -- ...-Unbreak-build-for-sparc-on-some-config-s.patch | 42 -- ...r32-add-varargs-handling-of-prctl-syscall.patch | 74 ---- ...libc-0.9.30.2-clean-up-O_CLOEXEC-handling.patch | 297 ------------- ...libc-0.9.30.2-fix-make-install-host-utils.patch | 153 ------- ...statat-fix-up-behavior-on-32-64-bit-hosts.patch | 113 ----- ...uClibc-0.9.30.2-getdents-Fix-mips64-build.patch | 72 ---- ...ibc-0.9.30.2-host-utils-depend-on-headers.patch | 35 -- ...ibc-0.9.30.2-libc-Fix-typo-in-include-rpc.patch | 63 --- ...libc-0.9.30.2-libm-enable-log2f-and-exp2f.patch | 70 --- ...race-condition-and-other-bugs-in-the-no-m.patch | 89 ---- ...30.2-rpc-fix-typo-in-version-mismatch-msg.patch | 26 -- .../uClibc-0.9.30.3-xtensa-000p-fix-procfs.patch | 24 ++ .../uClibc-0.9.30.3-xtensa-005-sigcontext.patch | 45 ++ .../uClibc-0.9.30.3-xtensa-009-testandset.patch | 59 +++ .../uClibc-0.9.30.3-xtensa-010-sigaction.c.patch | 11 + .../uClibc-0.9.30.3-xtensa-011-sysdep.h.patch | 19 + .../uClibc-0.9.30.3-xtensa-012-fnmatch_old.c.patch | 11 + .../uClibc-0.9.30.3-xtensa-013-atomic.h.patch | 165 +++++++ .../uClibc-0.9.30.3-xtensa-014-setjump.S.patch | 11 + 43 files changed, 352 insertions(+), 3031 deletions(-) delete mode 100644 toolchain/uClibc/uClibc-0.9.30-64bit-strtouq.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-arm-fix-linuxthreads-sysdep.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-unifdef-getline.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-x86-2.6.28+-headers-fix.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-xtensa-000p-fix-procfs.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-xtensa-005-sigcontext.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-xtensa-009-testandset.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-xtensa-010-sigaction.c.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-xtensa-011-sysdep.h.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-xtensa-012-fnmatch_old.c.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-xtensa-013-atomic.h.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30-xtensa-014-setjump.S.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.1-64bit-strtouq.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.1-arm-fix-linuxthreads-sysdep.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.1-c99-ldbl-math.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.1-dl-sysdep-inline.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.1-fix-getaddrinfo.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.1-fix-varargs-in-prctl-syscall.patch.avr32 delete mode 100644 toolchain/uClibc/uClibc-0.9.30.1-unifdef-getline.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-LT-pthread_atfork-unhide.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-Make-use-of-macros-from-sys-asm.h-in-crt1.S.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-Makefile.in-Make-install_dev-depend-on-install_runti.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-Unbreak-build-for-sparc-on-some-config-s.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-clean-up-O_CLOEXEC-handling.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-fix-make-install-host-utils.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-fstatat-fix-up-behavior-on-32-64-bit-hosts.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-getdents-Fix-mips64-build.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-host-utils-depend-on-headers.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-libc-Fix-typo-in-include-rpc.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-libm-enable-log2f-and-exp2f.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-malloc-fix-race-condition-and-other-bugs-in-the-no-m.patch delete mode 100644 toolchain/uClibc/uClibc-0.9.30.2-rpc-fix-typo-in-version-mismatch-msg.patch create mode 100644 toolchain/uClibc/uClibc-0.9.30.3-xtensa-000p-fix-procfs.patch create mode 100644 toolchain/uClibc/uClibc-0.9.30.3-xtensa-005-sigcontext.patch create mode 100644 toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch create mode 100644 toolchain/uClibc/uClibc-0.9.30.3-xtensa-010-sigaction.c.patch create mode 100644 toolchain/uClibc/uClibc-0.9.30.3-xtensa-011-sysdep.h.patch create mode 100644 toolchain/uClibc/uClibc-0.9.30.3-xtensa-012-fnmatch_old.c.patch create mode 100644 toolchain/uClibc/uClibc-0.9.30.3-xtensa-013-atomic.h.patch create mode 100644 toolchain/uClibc/uClibc-0.9.30.3-xtensa-014-setjump.S.patch diff --git a/CHANGES b/CHANGES index 1a95412a8..8a2c8a0db 100644 --- a/CHANGES +++ b/CHANGES @@ -1,9 +1,11 @@ 2010.05, Not yet released - X.org updated to 7.5. + Toolchain: uClibc 0.9.30.3, older 0.9.30.x removed. - Updated/fixed packages: busybox, dosfstools, e2fsprogs, - mtd-utils, squashfs + X.org updated to 7.5. + + Updated/fixed packages: busybox, dosfstools, e2fsprogs, + mtd-utils, squashfs 2010.02, Release February 26th, 2010: diff --git a/toolchain/uClibc/Config.in b/toolchain/uClibc/Config.in index 0d41de159..351ccc323 100644 --- a/toolchain/uClibc/Config.in +++ b/toolchain/uClibc/Config.in @@ -20,15 +20,7 @@ choice bool "uClibc 0.9.29" config BR2_UCLIBC_VERSION_0_9_30 - depends on BR2_DEPRECATED - bool "uClibc 0.9.30" - - config BR2_UCLIBC_VERSION_0_9_30_1 - depends on BR2_RECENT || BR2_DEPRECATED - bool "uClibc 0.9.30.1" - - config BR2_UCLIBC_VERSION_0_9_30_2 - bool "uClibc 0.9.30.2" + bool "uClibc 0.9.30.x" config BR2_UCLIBC_VERSION_SNAPSHOT bool "daily snapshot" @@ -46,9 +38,7 @@ config BR2_UCLIBC_VERSION_STRING string default 0.9.28.3 if BR2_UCLIBC_VERSION_0_9_28_3 default 0.9.29 if BR2_UCLIBC_VERSION_0_9_29 - default 0.9.30 if BR2_UCLIBC_VERSION_0_9_30 - default 0.9.30.1 if BR2_UCLIBC_VERSION_0_9_30_1 - default 0.9.30.2 if BR2_UCLIBC_VERSION_0_9_30_2 + default 0.9.30.3 if BR2_UCLIBC_VERSION_0_9_30 default $BR2_USE_UCLIBC_SNAPSHOT if BR2_UCLIBC_VERSION_SNAPSHOT config BR2_UCLIBC_CONFIG @@ -56,8 +46,6 @@ config BR2_UCLIBC_CONFIG default "toolchain/uClibc/uClibc-0.9.28.config" if BR2_UCLIBC_VERSION_0_9_28_3 default "toolchain/uClibc/uClibc-0.9.29.config" if BR2_UCLIBC_VERSION_0_9_29 default "toolchain/uClibc/uClibc-0.9.30.config" if BR2_UCLIBC_VERSION_0_9_30 - default "toolchain/uClibc/uClibc-0.9.30.config" if BR2_UCLIBC_VERSION_0_9_30_1 - default "toolchain/uClibc/uClibc-0.9.30.config" if BR2_UCLIBC_VERSION_0_9_30_2 default "toolchain/uClibc/uClibc-snapshot.config" if BR2_UCLIBC_VERSION_SNAPSHOT help Some people may wish to use their own modified uClibc configuration diff --git a/toolchain/uClibc/uClibc-0.9.30-64bit-strtouq.patch b/toolchain/uClibc/uClibc-0.9.30-64bit-strtouq.patch deleted file mode 100644 index bd4ecaae3..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-64bit-strtouq.patch +++ /dev/null @@ -1,48 +0,0 @@ -[PATCH]: Add strtouq alias (to strtoul) for 64bit - -The strtouq alias was only available on 32bit, breaking compilation of stuff -using strtouq on 64bit machines. At the same time use the correct return -type (u_quad_t). - -Signed-of-by: Peter Korsgaard ---- - include/stdlib.h | 4 +++- - libc/stdlib/stdlib.c | 1 + - 2 files changed, 4 insertions(+), 1 deletion(-) - -Index: uClibc-0.9.30.1/libc/stdlib/stdlib.c -=================================================================== ---- uClibc-0.9.30.1.orig/libc/stdlib/stdlib.c -+++ uClibc-0.9.30.1/libc/stdlib/stdlib.c -@@ -401,6 +401,9 @@ - libc_hidden_proto(__XL_NPP(strtoull)) - strong_alias(__XL_NPP(strtoul),__XL_NPP(strtoull)) - libc_hidden_def(__XL_NPP(strtoull)) -+#if !defined(L_strtoul_l) -+strong_alias(strtoul,strtouq) -+#endif - #endif - - -Index: uClibc-0.9.30.1/include/stdlib.h -=================================================================== ---- uClibc-0.9.30.1.orig/include/stdlib.h -+++ uClibc-0.9.30.1/include/stdlib.h -@@ -203,6 +203,8 @@ - __END_NAMESPACE_STD - - #ifdef __USE_BSD -+#include /* for u_quad_t */ -+ - /* Convert a string to a quadword integer. */ - __extension__ - extern long long int strtoq (__const char *__restrict __nptr, -@@ -210,7 +212,7 @@ - __THROW __nonnull ((1)) __wur; - /* Convert a string to an unsigned quadword integer. */ - __extension__ --extern unsigned long long int strtouq (__const char *__restrict __nptr, -+extern u_quad_t strtouq (__const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __THROW __nonnull ((1)) __wur; - #endif /* GCC and use BSD. */ diff --git a/toolchain/uClibc/uClibc-0.9.30-arm-fix-linuxthreads-sysdep.patch b/toolchain/uClibc/uClibc-0.9.30-arm-fix-linuxthreads-sysdep.patch deleted file mode 100644 index 65e23608d..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-arm-fix-linuxthreads-sysdep.patch +++ /dev/null @@ -1,177 +0,0 @@ -From 1b6e90090da7194a8f94277aa132873044f7e8e7 Mon Sep 17 00:00:00 2001 -From: carmelo -Date: Wed, 28 Jan 2009 15:23:51 +0000 -Subject: [PATCH] Added sysdep.h and sysdep-cancel.h for linuxthreads ARM - -Signed-off-by: Will Wagner - - - -git-svn-id: svn+ssh://uclibc.org/svn/trunk/uClibc@25099 69ca8d6d-28ef-0310-b511-8ec308f3f277 ---- - .../linuxthreads/sysdeps/arm/sysdep-cancel.h | 8 + - libpthread/linuxthreads/sysdeps/arm/sysdep.h | 137 ++++++++++++++++++++ - 2 files changed, 145 insertions(+), 0 deletions(-) - create mode 100644 libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h - create mode 100644 libpthread/linuxthreads/sysdeps/arm/sysdep.h - -diff --git a/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h -new file mode 100644 -index 0000000..ba6a1e0 ---- /dev/null -+++ b/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h -@@ -0,0 +1,8 @@ -+#include -+ -+/* 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 --git a/libpthread/linuxthreads/sysdeps/arm/sysdep.h b/libpthread/linuxthreads/sysdeps/arm/sysdep.h -new file mode 100644 -index 0000000..15d951c ---- /dev/null -+++ b/libpthread/linuxthreads/sysdeps/arm/sysdep.h -@@ -0,0 +1,137 @@ -+/* 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__ */ --- -1.5.6.5 - diff --git a/toolchain/uClibc/uClibc-0.9.30-unifdef-getline.patch b/toolchain/uClibc/uClibc-0.9.30-unifdef-getline.patch deleted file mode 100644 index eb8888470..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-unifdef-getline.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- uClibc-0.9.30.1.orig/extra/scripts/unifdef.c -+++ uClibc-0.9.30.1/extra/scripts/unifdef.c -@@ -206,7 +206,7 @@ static void done(void); - static void error(const char *); - static int findsym(const char *); - static void flushline(bool); --static Linetype getline(void); -+static Linetype get_line(void); - static Linetype ifeval(const char **); - static void ignoreoff(void); - static void ignoreon(void); -@@ -512,7 +512,7 @@ process(void) - - for (;;) { - linenum++; -- lineval = getline(); -+ lineval = get_line(); - trans_table[ifstate[depth]][lineval](); - debug("process %s -> %s depth %d", - linetype_name[lineval], -@@ -526,7 +526,7 @@ process(void) - * help from skipcomment(). - */ - static Linetype --getline(void) -+get_line(void) - { - const char *cp; - int cursym; diff --git a/toolchain/uClibc/uClibc-0.9.30-x86-2.6.28+-headers-fix.patch b/toolchain/uClibc/uClibc-0.9.30-x86-2.6.28+-headers-fix.patch deleted file mode 100644 index f5155a8de..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-x86-2.6.28+-headers-fix.patch +++ /dev/null @@ -1,59 +0,0 @@ -From df180f43dd9fc651ac760e7fe4a4dcf9e6dd42f1 Mon Sep 17 00:00:00 2001 -From: kraj -Date: Tue, 23 Dec 2008 09:04:50 +0000 -Subject: [PATCH] These defines needs to be considered after recent linux kernel combined i386 and x86_64 into x86 - -git-svn-id: svn+ssh://uclibc.org/svn/trunk/uClibc@24515 69ca8d6d-28ef-0310-b511-8ec308f3f277 -git-svn-id: svn+ssh://uclibc.org/svn/trunk/uClibc@24799 69ca8d6d-28ef-0310-b511-8ec308f3f277 ---- - libc/sysdeps/linux/i386/bits/kernel_types.h | 8 ++++++-- - libc/sysdeps/linux/x86_64/bits/kernel_types.h | 11 ++++++++++- - 1 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/libc/sysdeps/linux/i386/bits/kernel_types.h b/libc/sysdeps/linux/i386/bits/kernel_types.h -index 6609dd3..8641a48 100644 ---- a/libc/sysdeps/linux/i386/bits/kernel_types.h -+++ b/libc/sysdeps/linux/i386/bits/kernel_types.h -@@ -7,10 +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; - typedef unsigned short __kernel_mode_t; -diff --git a/libc/sysdeps/linux/x86_64/bits/kernel_types.h b/libc/sysdeps/linux/x86_64/bits/kernel_types.h -index 73f6ffb..b2f7341 100644 ---- a/libc/sysdeps/linux/x86_64/bits/kernel_types.h -+++ b/libc/sysdeps/linux/x86_64/bits/kernel_types.h -@@ -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; --- -1.5.6.5 - diff --git a/toolchain/uClibc/uClibc-0.9.30-xtensa-000p-fix-procfs.patch b/toolchain/uClibc/uClibc-0.9.30-xtensa-000p-fix-procfs.patch deleted file mode 100644 index 8e62d205f..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-xtensa-000p-fix-procfs.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- uClibc-0.9.29-orig/libc/sysdeps/linux/xtensa/sys/procfs.h 2007-11-16 23:21:00.000000000 -0800 -+++ uClibc-0.9.29/libc/sysdeps/linux/xtensa/sys/procfs.h 2007-11-16 23:26:59.000000000 -0800 -@@ -32,19 +32,11 @@ - #include - #include - #include -+#include - - __BEGIN_DECLS - --/* Type for a general-purpose register. */ --typedef unsigned long elf_greg_t; -- --#define ELF_NGREG 128 --typedef elf_greg_t elf_gregset_t[ELF_NGREG]; -- --/* Register set for the floating-point registers. */ --#define ELF_NFPREG 18 --typedef unsigned long elf_fpreg_t; --typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; -+/* Note: we get elf_gregset_t and elf_fpregset_t from . */ - - /* Signal info. */ - struct elf_siginfo diff --git a/toolchain/uClibc/uClibc-0.9.30-xtensa-005-sigcontext.patch b/toolchain/uClibc/uClibc-0.9.30-xtensa-005-sigcontext.patch deleted file mode 100644 index 7d7d684b1..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-xtensa-005-sigcontext.patch +++ /dev/null @@ -1,45 +0,0 @@ -diff -u /dev/null uClibc-0.9.30/libc/sysdeps/linux/xtensa/bits/sigcontext.h ---- /dev/null -+++ uClibc-0.9.30/libc/sysdeps/linux/xtensa/bits/sigcontext.h -@@ -0,0 +1,41 @@ -+/* Copyright (C) 2006, 2007, 2008, 2009 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., 51 Franklin Street - Fifth Floor, -+ Boston, MA 02110-1301, USA. */ -+ -+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H -+# error "Never use directly; include instead." -+#endif -+ -+#ifndef _BITS_SIGCONTEXT_H -+#define _BITS_SIGCONTEXT_H 1 -+ -+struct sigcontext -+{ -+ unsigned long sc_pc; -+ unsigned long sc_ps; -+ unsigned long sc_lbeg; -+ unsigned long sc_lend; -+ unsigned long sc_lcount; -+ unsigned long sc_sar; -+ unsigned long sc_acclo; -+ unsigned long sc_acchi; -+ void *sc_xtregs; -+ unsigned long sc_a[16]; -+}; -+ -+#endif /* _BITS_SIGCONTEXT_H */ -+ diff --git a/toolchain/uClibc/uClibc-0.9.30-xtensa-009-testandset.patch b/toolchain/uClibc/uClibc-0.9.30-xtensa-009-testandset.patch deleted file mode 100644 index f0e4eb272..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-xtensa-009-testandset.patch +++ /dev/null @@ -1,59 +0,0 @@ ---- uClibc-0.9.29/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h.orig 2008-09-12 09:51:50.000000000 -0700 -+++ uClibc-0.9.29/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h 2008-10-04 12:14:57.000000000 -0700 -@@ -26,19 +26,51 @@ - #include - - #ifndef PT_EI --# define PT_EI __extern_always_inline -+# define PT_EI extern inline __attribute__ ((gnu_inline)) - #endif - --/* Memory barrier. */ - #define MEMORY_BARRIER() __asm__ ("memw" : : : "memory") -+#define HAS_COMPARE_AND_SWAP -+ -+extern long int testandset (int *spinlock); -+extern int __compare_and_swap (long int *p, long int oldval, long int newval); - - /* Spinlock implementation; required. */ - PT_EI long int - testandset (int *spinlock) - { -- int unused = 0; -- return INTERNAL_SYSCALL (xtensa, , 4, SYS_XTENSA_ATOMIC_SET, -- spinlock, 1, unused); -+ unsigned long tmp; -+ __asm__ volatile ( -+" movi %0, 0 \n" -+" wsr %0, SCOMPARE1 \n" -+" movi %0, 1 \n" -+" s32c1i %0, %1, 0 \n" -+ : "=&a" (tmp) -+ : "a" (spinlock) -+ : "memory" -+ ); -+ return tmp; -+} -+ -+PT_EI int -+__compare_and_swap (long int *p, long int oldval, long int newval) -+{ -+ unsigned long tmp; -+ unsigned long value; -+ __asm__ volatile ( -+"1: l32i %0, %2, 0 \n" -+" bne %0, %4, 2f \n" -+" wsr %0, SCOMPARE1 \n" -+" mov %1, %0 \n" -+" mov %0, %3 \n" -+" s32c1i %0, %2, 0 \n" -+" bne %1, %0, 1b \n" -+"2: \n" -+ : "=&a" (tmp), "=&a" (value) -+ : "a" (p), "a" (newval), "a" (oldval) -+ : "memory" ); -+ -+ return tmp == oldval; - } - - /* Get some notion of the current stack. Need not be exactly the top diff --git a/toolchain/uClibc/uClibc-0.9.30-xtensa-010-sigaction.c.patch b/toolchain/uClibc/uClibc-0.9.30-xtensa-010-sigaction.c.patch deleted file mode 100644 index 5717c2582..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-xtensa-010-sigaction.c.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/libc/sysdeps/linux/xtensa/sigaction.c 2008-09-23 21:11:02.000000000 -0700 -+++ b/libc/sysdeps/linux/xtensa/sigaction.c 2008-09-23 21:12:31.000000000 -0700 -@@ -17,6 +17,8 @@ - - #define SA_RESTORER 0x04000000 - -+extern __typeof(sigaction) __libc_sigaction; -+ - extern void __default_sa_restorer (void); - - libc_hidden_proto(memcpy) diff --git a/toolchain/uClibc/uClibc-0.9.30-xtensa-011-sysdep.h.patch b/toolchain/uClibc/uClibc-0.9.30-xtensa-011-sysdep.h.patch deleted file mode 100644 index 692b0a722..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-xtensa-011-sysdep.h.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- a/libc/sysdeps/linux/xtensa/sysdep.h 2008-09-23 21:17:42.000000000 -0700 -+++ b/libc/sysdeps/linux/xtensa/sysdep.h 2008-09-23 21:17:59.000000000 -0700 -@@ -114,15 +114,7 @@ - - #define ret_ERRVAL retw - --#if RTLD_PRIVATE_ERRNO --# define SYSCALL_ERROR_HANDLER \ --0: movi a4, rtld_errno; \ -- neg a2, a2; \ -- s32i a2, a4, 0; \ -- movi a2, -1; \ -- j .Lpseudo_end; -- --#elif defined _LIBC_REENTRANT -+#if defined _LIBC_REENTRANT - - # if USE___THREAD - # ifndef NOT_IN_libc diff --git a/toolchain/uClibc/uClibc-0.9.30-xtensa-012-fnmatch_old.c.patch b/toolchain/uClibc/uClibc-0.9.30-xtensa-012-fnmatch_old.c.patch deleted file mode 100644 index 66cb1f609..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-xtensa-012-fnmatch_old.c.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/libc/misc/fnmatch/fnmatch_old.c 2008-09-23 21:23:13.000000000 -0700 -+++ b/libc/misc/fnmatch/fnmatch_old.c 2008-09-23 21:23:33.000000000 -0700 -@@ -15,7 +15,7 @@ - not, write to the Free Software Foundation, Inc., 675 Mass Ave, - Cambridge, MA 02139, USA. */ - --#if HAVE_CONFIG_H -+#ifdef HAVE_CONFIG_H - # include - #endif - diff --git a/toolchain/uClibc/uClibc-0.9.30-xtensa-013-atomic.h.patch b/toolchain/uClibc/uClibc-0.9.30-xtensa-013-atomic.h.patch deleted file mode 100644 index fd2037111..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-xtensa-013-atomic.h.patch +++ /dev/null @@ -1,165 +0,0 @@ ---- /dev/null 2008-09-18 06:50:54.356228028 -0700 -+++ uClibc-0.9.29/libc/sysdeps/linux/xtensa/bits/atomic.h 2008-10-04 11:40:21.000000000 -0700 -@@ -0,0 +1,162 @@ -+/* -+ * Copyright (C) 2008 Tensilica, Inc. -+ * Contributed by Joe Taylor 2008 -+ * -+ * This file is subject to the terms and conditions of the GNU Lesser General -+ * Public License. See the file "COPYING.LIB" in the main directory of this -+ * archive for more details. -+ */ -+ -+#ifndef _XTENSA_BITS_ATOMIC_H -+#define _XTENSA_BITS_ATOMIC_H 1 -+ -+/* Xtensa has only a 32-bit form of a store-conditional instruction, -+ so just stub out the rest. */ -+ -+/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL. -+ Return the old *MEM value. */ -+ -+#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \ -+ ({__typeof__(*(mem)) __tmp, __value; \ -+ __asm__ __volatile__( \ -+ "1: l32i %1, %2, 0 \n" \ -+ " bne %1, %4, 2f \n" \ -+ " wsr %1, SCOMPARE1 \n" \ -+ " mov %0, %1 \n" \ -+ " mov %1, %3 \n" \ -+ " s32c1i %1, %2, 0 \n" \ -+ " bne %0, %1, 1b \n" \ -+ "2: \n" \ -+ : "=&a" (__value), "=&a" (__tmp) \ -+ : "a" (mem), "a" (newval), "a" (oldval) \ -+ : "memory" ); \ -+ __tmp; \ -+ }) -+ -+/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL. -+ Return zero if *MEM was changed or non-zero if no exchange happened. */ -+ -+#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \ -+ ({__typeof__(*(mem)) __tmp, __value; \ -+ __asm__ __volatile__( \ -+ "1: l32i %0, %2, 0 \n" \ -+ " sub %1, %4, %0 \n" \ -+ " bnez %1, 2f \n" \ -+ " wsr %0, SCOMPARE1 \n" \ -+ " mov %1, %3 \n" \ -+ " s32c1i %1, %2, 0 \n" \ -+ " bne %0, %1, 1b \n" \ -+ " movi %1, 0 \n" \ -+ "2: \n" \ -+ : "=&a" (__value), "=&a" (__tmp) \ -+ : "a" (mem), "a" (newval), "a" (oldval) \ -+ : "memory" ); \ -+ __tmp != 0; \ -+ }) -+ -+/* Store NEWVALUE in *MEM and return the old value. */ -+ -+#define __arch_exchange_32_acq(mem, newval) \ -+ ({__typeof__(*(mem)) __tmp, __value; \ -+ __asm__ __volatile__( \ -+ "1: l32i %0, %2, 0 \n" \ -+ " wsr %0, SCOMPARE1 \n" \ -+ " mov %1, %3 \n" \ -+ " s32c1i %1, %2, 0 \n" \ -+ " bne %0, %1, 1b \n" \ -+ : "=&a" (__value), "=&a" (__tmp) \ -+ : "a" (mem), "a" (newval) \ -+ : "memory" ); \ -+ __tmp; \ -+ }) -+ -+/* Add VALUE to *MEM and return the old value of *MEM. */ -+ -+#define __arch_atomic_exchange_and_add_32(mem, value) \ -+ ({__typeof__(*(mem)) __tmp, __value; \ -+ __asm__ __volatile__( \ -+ "1: l32i %0, %2, 0 \n" \ -+ " wsr %0, SCOMPARE1 \n" \ -+ " add %1, %0, %3 \n" \ -+ " s32c1i %1, %2, 0 \n" \ -+ " bne %0, %1, 1b \n" \ -+ : "=&a" (__value), "=&a" (__tmp) \ -+ : "a" (mem), "a" (value) \ -+ : "memory" ); \ -+ __tmp; \ -+ }) -+ -+/* Subtract VALUE from *MEM and return the old value of *MEM. */ -+ -+#define __arch_atomic_exchange_and_sub_32(mem, value) \ -+ ({__typeof__(*(mem)) __tmp, __value; \ -+ __asm__ __volatile__( \ -+ "1: l32i %0, %2, 0 \n" \ -+ " wsr %0, SCOMPARE1 \n" \ -+ " sub %1, %0, %3 \n" \ -+ " s32c1i %1, %2, 0 \n" \ -+ " bne %0, %1, 1b \n" \ -+ : "=&a" (__value), "=&a" (__tmp) \ -+ : "a" (mem), "a" (value) \ -+ : "memory" ); \ -+ __tmp; \ -+ }) -+ -+/* Decrement *MEM if it is > 0, and return the old value. */ -+ -+#define __arch_atomic_decrement_if_positive_32(mem) \ -+ ({__typeof__(*(mem)) __tmp, __value; \ -+ __asm__ __volatile__( \ -+ "1: l32i %0, %2, 0 \n" \ -+ " blti %0, 1, 2f \n" \ -+ " wsr %0, SCOMPARE1 \n" \ -+ " addi %1, %0, -1 \n" \ -+ " s32c1i %1, %2, 0 \n" \ -+ " bne %0, %1, 1b \n" \ -+ "2: \n" \ -+ : "=&a" (__value), "=&a" (__tmp) \ -+ : "a" (mem) \ -+ : "memory" ); \ -+ __tmp; \ -+ }) -+ -+ -+/* These are the preferred public interfaces: */ -+ -+#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \ -+ ({ \ -+ if (sizeof (*mem) != 4) \ -+ abort(); \ -+ __arch_compare_and_exchange_val_32_acq(mem, newval, oldval); \ -+ }) -+ -+#define atomic_exchange_acq(mem, newval) \ -+ ({ \ -+ if (sizeof(*(mem)) != 4) \ -+ abort(); \ -+ __arch_exchange_32_acq(mem, newval); \ -+ }) -+ -+#define atomic_exchange_and_add(mem, newval) \ -+ ({ \ -+ if (sizeof(*(mem)) != 4) \ -+ abort(); \ -+ __arch_atomic_exchange_and_add_32(mem, newval); \ -+ }) -+ -+#define atomic_exchange_and_sub(mem, newval) \ -+ ({ \ -+ if (sizeof(*(mem)) != 4) \ -+ abort(); \ -+ __arch_atomic_exchange_and_sub_32(mem, newval); \ -+ }) -+ -+#define atomic_decrement_if_positive(mem) \ -+ ({ \ -+ if (sizeof(*(mem)) != 4) \ -+ abort(); \ -+ __arch_atomic_decrement_if_positive_32(mem); \ -+ }) -+ -+#endif /* _XTENSA_BITS_ATOMIC_H */ -+ diff --git a/toolchain/uClibc/uClibc-0.9.30-xtensa-014-setjump.S.patch b/toolchain/uClibc/uClibc-0.9.30-xtensa-014-setjump.S.patch deleted file mode 100644 index 720b44b58..000000000 --- a/toolchain/uClibc/uClibc-0.9.30-xtensa-014-setjump.S.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- uClibc-0.9.30/libc/sysdeps/linux/xtensa/setjmp.S.orig 2009-05-01 16:57:16.195893000 -0700 -+++ uClibc-0.9.30/libc/sysdeps/linux/xtensa/setjmp.S 2009-05-01 16:58:03.885160000 -0700 -@@ -86,7 +86,7 @@ ENTRY (__sigsetjmp) - /* Copy 0-8 words from the register overflow area. */ - extui a3, a0, 30, 2 - blti a3, 2, .Lendsj -- l32i a7, a1, 4 -+ l32i a7, a5, 4 - slli a4, a3, 4 - sub a5, a7, a4 - addi a6, a2, 16 diff --git a/toolchain/uClibc/uClibc-0.9.30.1-64bit-strtouq.patch b/toolchain/uClibc/uClibc-0.9.30.1-64bit-strtouq.patch deleted file mode 100644 index bd4ecaae3..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.1-64bit-strtouq.patch +++ /dev/null @@ -1,48 +0,0 @@ -[PATCH]: Add strtouq alias (to strtoul) for 64bit - -The strtouq alias was only available on 32bit, breaking compilation of stuff -using strtouq on 64bit machines. At the same time use the correct return -type (u_quad_t). - -Signed-of-by: Peter Korsgaard ---- - include/stdlib.h | 4 +++- - libc/stdlib/stdlib.c | 1 + - 2 files changed, 4 insertions(+), 1 deletion(-) - -Index: uClibc-0.9.30.1/libc/stdlib/stdlib.c -=================================================================== ---- uClibc-0.9.30.1.orig/libc/stdlib/stdlib.c -+++ uClibc-0.9.30.1/libc/stdlib/stdlib.c -@@ -401,6 +401,9 @@ - libc_hidden_proto(__XL_NPP(strtoull)) - strong_alias(__XL_NPP(strtoul),__XL_NPP(strtoull)) - libc_hidden_def(__XL_NPP(strtoull)) -+#if !defined(L_strtoul_l) -+strong_alias(strtoul,strtouq) -+#endif - #endif - - -Index: uClibc-0.9.30.1/include/stdlib.h -=================================================================== ---- uClibc-0.9.30.1.orig/include/stdlib.h -+++ uClibc-0.9.30.1/include/stdlib.h -@@ -203,6 +203,8 @@ - __END_NAMESPACE_STD - - #ifdef __USE_BSD -+#include /* for u_quad_t */ -+ - /* Convert a string to a quadword integer. */ - __extension__ - extern long long int strtoq (__const char *__restrict __nptr, -@@ -210,7 +212,7 @@ - __THROW __nonnull ((1)) __wur; - /* Convert a string to an unsigned quadword integer. */ - __extension__ --extern unsigned long long int strtouq (__const char *__restrict __nptr, -+extern u_quad_t strtouq (__const char *__restrict __nptr, - char **__restrict __endptr, int __base) - __THROW __nonnull ((1)) __wur; - #endif /* GCC and use BSD. */ diff --git a/toolchain/uClibc/uClibc-0.9.30.1-arm-fix-linuxthreads-sysdep.patch b/toolchain/uClibc/uClibc-0.9.30.1-arm-fix-linuxthreads-sysdep.patch deleted file mode 100644 index 65e23608d..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.1-arm-fix-linuxthreads-sysdep.patch +++ /dev/null @@ -1,177 +0,0 @@ -From 1b6e90090da7194a8f94277aa132873044f7e8e7 Mon Sep 17 00:00:00 2001 -From: carmelo -Date: Wed, 28 Jan 2009 15:23:51 +0000 -Subject: [PATCH] Added sysdep.h and sysdep-cancel.h for linuxthreads ARM - -Signed-off-by: Will Wagner - - - -git-svn-id: svn+ssh://uclibc.org/svn/trunk/uClibc@25099 69ca8d6d-28ef-0310-b511-8ec308f3f277 ---- - .../linuxthreads/sysdeps/arm/sysdep-cancel.h | 8 + - libpthread/linuxthreads/sysdeps/arm/sysdep.h | 137 ++++++++++++++++++++ - 2 files changed, 145 insertions(+), 0 deletions(-) - create mode 100644 libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h - create mode 100644 libpthread/linuxthreads/sysdeps/arm/sysdep.h - -diff --git a/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h b/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h -new file mode 100644 -index 0000000..ba6a1e0 ---- /dev/null -+++ b/libpthread/linuxthreads/sysdeps/arm/sysdep-cancel.h -@@ -0,0 +1,8 @@ -+#include -+ -+/* 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 --git a/libpthread/linuxthreads/sysdeps/arm/sysdep.h b/libpthread/linuxthreads/sysdeps/arm/sysdep.h -new file mode 100644 -index 0000000..15d951c ---- /dev/null -+++ b/libpthread/linuxthreads/sysdeps/arm/sysdep.h -@@ -0,0 +1,137 @@ -+/* 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__ */ --- -1.5.6.5 - diff --git a/toolchain/uClibc/uClibc-0.9.30.1-c99-ldbl-math.patch b/toolchain/uClibc/uClibc-0.9.30.1-c99-ldbl-math.patch deleted file mode 100644 index f3718431e..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.1-c99-ldbl-math.patch +++ /dev/null @@ -1,474 +0,0 @@ -Index: uClibc-0.9.30.1/libm/ldouble_wrappers.c -=================================================================== ---- uClibc-0.9.30.1/libm/ldouble_wrappers.c (revision 25552) -+++ uClibc-0.9.30.1/libm/ldouble_wrappers.c (working copy) -@@ -13,6 +13,16 @@ - #include "math.h" - #include - -+#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 @@ long double truncl (long double x) - #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 -Index: uClibc-0.9.30.1/libm/nan.c -=================================================================== ---- uClibc-0.9.30.1/libm/nan.c (revision 25552) -+++ uClibc-0.9.30.1/libm/nan.c (working copy) -@@ -45,7 +45,7 @@ float nanf (const char *tagp) - } - 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) - { -Index: uClibc-0.9.30.1/include/math.h -=================================================================== ---- uClibc-0.9.30.1/include/math.h (revision 25552) -+++ uClibc-0.9.30.1/include/math.h (working copy) -@@ -118,7 +118,7 @@ __BEGIN_DECLS - # 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 @@ enum - }; - - /* 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 @@ enum - # 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 @@ enum - # 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 @@ enum - - /* 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 @@ enum - # 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 -Index: uClibc-0.9.30.1/include/tgmath.h -=================================================================== ---- uClibc-0.9.30.1/include/tgmath.h (revision 25552) -+++ uClibc-0.9.30.1/include/tgmath.h (working copy) -@@ -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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/wordsize.h (working copy) -@@ -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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/powerpc/bits/mathdef.h (working copy) -@@ -65,11 +65,13 @@ typedef double double_t; - - #endif /* ISO C99 */ - --#ifdef __UCLIBC_HAS_LONG_DOUBLE_MATH__ -+#ifndef __NO_LONG_DOUBLE_MATH - #include - /* 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 */ -Index: uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/arm/bits/mathdef.h (working copy) -@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/m68k/bits/mathdef.h (working copy) -@@ -36,3 +36,7 @@ typedef long double double_t; /* `double - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/wordsize.h (working copy) -@@ -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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/alpha/bits/mathdef.h (working copy) -@@ -78,3 +78,7 @@ typedef double double_t; - - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/common/bits/mathdef.h (working copy) -@@ -35,3 +35,9 @@ typedef double double_t; /* `double' exp - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/i386/bits/mathdef.h (working copy) -@@ -44,3 +44,7 @@ typedef long double double_t; /* `double - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/nios2/bits/mathdef.h (working copy) -@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/x86_64/bits/mathdef.h (working copy) -@@ -46,3 +46,7 @@ typedef long double double_t; /* `double - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/xtensa/bits/mathdef.h (working copy) -@@ -36,8 +36,8 @@ typedef double double_t; /* `double' exp - - #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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/ia64/bits/mathdef.h (working copy) -@@ -35,3 +35,7 @@ typedef double double_t; /* `double' exp - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/mathdef.h (working copy) -@@ -39,8 +39,10 @@ typedef double double_t; /* `double' exp - - #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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/nios/bits/mathdef.h (working copy) -@@ -34,3 +34,11 @@ typedef double double_t; /* `double' exp - # 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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/wordsize.h (working copy) -@@ -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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathdef.h (working copy) -@@ -57,13 +57,15 @@ typedef double double_t; - - #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 -Index: uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/sparc/bits/mathinline.h (working copy) -@@ -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 @@ __NTH (__signbit (double __x)) - 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 @@ __NTH (sqrtl (long double __x)) - _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 @@ __ieee754_sqrtl (long double __x) - _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) - { -Index: uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h -=================================================================== ---- uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h (revision 25552) -+++ uClibc-0.9.30.1/libc/sysdeps/linux/sh/bits/mathdef.h (working copy) -@@ -61,3 +61,9 @@ typedef double double_t; - # 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 --git a/toolchain/uClibc/uClibc-0.9.30.1-dl-sysdep-inline.patch b/toolchain/uClibc/uClibc-0.9.30.1-dl-sysdep-inline.patch deleted file mode 100644 index cf72c888d..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.1-dl-sysdep-inline.patch +++ /dev/null @@ -1,371 +0,0 @@ -Index: uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/arm/dl-sysdep.h (working copy) -@@ -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 @@ unsigned long _dl_linux_resolver(struct - 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 @@ elf_machine_dynamic (void) - } - - /* 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 @@ elf_machine_load_address (void) - 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) - { -Index: uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/powerpc/dl-sysdep.h (working copy) -@@ -90,7 +90,7 @@ void _dl_init_got(unsigned long *lpnt,st - #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 @@ ppc_got (void) - - /* 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 @@ elf_machine_load_address (void) - 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) - { -Index: uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/sh64/dl-sysdep.h (working copy) -@@ -42,7 +42,7 @@ extern unsigned long _dl_linux_resolver( - /* 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 @@ static __inline__ Elf32_Addr elf_machine - } - - /* 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__ Elf32_Addr elf_machine - } \ - } - --static __inline__ void -+static __always_inline void - elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr, - Elf32_Word relative_count) - { -Index: uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/m68k/dl-sysdep.h (working copy) -@@ -41,7 +41,7 @@ extern unsigned long _dl_linux_resolver - /* 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 @@ elf_machine_dynamic (void) - - - /* 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 @@ elf_machine_load_address (void) - 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) - { -Index: uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/i386/dl-sysdep.h (working copy) -@@ -42,8 +42,8 @@ extern unsigned long _dl_linux_resolver( - /* 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 @@ elf_machine_dynamic (void) - - - /* 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 @@ elf_machine_load_address (void) - 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) - { -Index: uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/cris/dl-sysdep.h (working copy) -@@ -39,7 +39,7 @@ extern unsigned long _dl_linux_resolver( - || ((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 @@ elf_machine_dynamic(void) - 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 @@ elf_machine_load_address(void) - 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) - { -Index: uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/xtensa/dl-sysdep.h (working copy) -@@ -87,7 +87,7 @@ extern unsigned long _dl_linux_resolver - (((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 @@ elf_machine_dynamic (void) - } - - /* 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 @@ elf_machine_load_address (void) - 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) - { -Index: uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/sparc/dl-sysdep.h (working copy) -@@ -49,7 +49,7 @@ unsigned long _dl_linux_resolver(struct - - #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 @@ do { register Elf32_Addr pc __asm__(" - /* 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 @@ elf_machine_dynamic (void) - } - - /* 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 @@ elf_machine_load_address (void) - 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) - { -Index: uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/mips/dl-sysdep.h (working copy) -@@ -163,7 +163,7 @@ void _dl_perform_mips_global_got_relocat - - #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 @@ elf_mips_got_from_gpreg (ElfW(Addr) gpre - /* 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 @@ elf_machine_dynamic (void) - #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 @@ elf_machine_load_address (void) - 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) - { -Index: uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/sh/dl-sysdep.h (working copy) -@@ -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 @@ _dl_urem(unsigned int n, unsigned int ba - /* 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 @@ elf_machine_dynamic (void) - } - - /* 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 @@ elf_machine_load_address (void) - } \ - } - --static __inline__ void -+static __always_inline void - elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr, - Elf32_Word relative_count) - { -Index: uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h -=================================================================== ---- uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h (revision 25503) -+++ uClibc-0.9.30.1/ldso/ldso/bfin/dl-sysdep.h (working copy) -@@ -213,7 +213,7 @@ while (0) - #endif - - #include --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 --git a/toolchain/uClibc/uClibc-0.9.30.1-fix-getaddrinfo.patch b/toolchain/uClibc/uClibc-0.9.30.1-fix-getaddrinfo.patch deleted file mode 100644 index 449d33c5a..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.1-fix-getaddrinfo.patch +++ /dev/null @@ -1,13 +0,0 @@ -[PATCH]: runp->ifa_addr can be NULL. Backport of r24336. -diff -Narup uClibc-0.9.30.1.orig/libc/inet/getaddrinfo.c uClibc-0.9.30.1/libc/inet/getaddrinfo.c ---- uClibc-0.9.30.1.orig/libc/inet/getaddrinfo.c 2009-02-26 21:49:14.000000000 +0900 -+++ uClibc-0.9.30.1/libc/inet/getaddrinfo.c 2009-03-06 00:59:23.000000000 +0900 -@@ -187,6 +187,8 @@ static unsigned __check_pf(void) - } - - for (runp = ifa; runp != NULL; runp = runp->ifa_next) { -+ if (runp->ifa_addr == NULL) -+ continue; - #if defined __UCLIBC_HAS_IPV4__ - if (runp->ifa_addr->sa_family == PF_INET) - seen |= SEEN_IPV4; diff --git a/toolchain/uClibc/uClibc-0.9.30.1-fix-varargs-in-prctl-syscall.patch.avr32 b/toolchain/uClibc/uClibc-0.9.30.1-fix-varargs-in-prctl-syscall.patch.avr32 deleted file mode 100644 index 8b27a84f7..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.1-fix-varargs-in-prctl-syscall.patch.avr32 +++ /dev/null @@ -1,29 +0,0 @@ ---- a/libc/sysdeps/linux/common/prctl.c -+++ b/libc/sysdeps/linux/common/prctl.c -@@ -12,6 +12,24 @@ - /* psm: including sys/prctl.h would depend on kernel headers */ - - #ifdef __NR_prctl --extern int prctl (int, long, long, long, long); --_syscall5(int, prctl, int, option, long, arg2, long, arg3, long, arg4, long, arg5) -+#define __NR___syscall_prctl __NR_prctl -+static inline _syscall5(int, __syscall_prctl, int, option, long, arg2, long, arg3, long, -+ arg4, long, arg5); -+ -+int prctl(int option, ...) { -+ long arg2 = 0; -+ long arg3 = 0; -+ long arg4 = 0; -+ long arg5 = 0; -+ va_list ap; -+ -+ va_start(ap, option); -+ arg2 = va_arg(ap, long); -+ arg3 = va_arg(ap, long); -+ arg4 = va_arg(ap, long); -+ arg5 = va_arg(ap, long); -+ va_end(ap); -+ -+ return __syscall_prctl(option, arg2, arg3, arg4, arg5); -+} - #endif diff --git a/toolchain/uClibc/uClibc-0.9.30.1-unifdef-getline.patch b/toolchain/uClibc/uClibc-0.9.30.1-unifdef-getline.patch deleted file mode 100644 index eb8888470..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.1-unifdef-getline.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- uClibc-0.9.30.1.orig/extra/scripts/unifdef.c -+++ uClibc-0.9.30.1/extra/scripts/unifdef.c -@@ -206,7 +206,7 @@ static void done(void); - static void error(const char *); - static int findsym(const char *); - static void flushline(bool); --static Linetype getline(void); -+static Linetype get_line(void); - static Linetype ifeval(const char **); - static void ignoreoff(void); - static void ignoreon(void); -@@ -512,7 +512,7 @@ process(void) - - for (;;) { - linenum++; -- lineval = getline(); -+ lineval = get_line(); - trans_table[ifstate[depth]][lineval](); - debug("process %s -> %s depth %d", - linetype_name[lineval], -@@ -526,7 +526,7 @@ process(void) - * help from skipcomment(). - */ - static Linetype --getline(void) -+get_line(void) - { - const char *cp; - int cursym; diff --git a/toolchain/uClibc/uClibc-0.9.30.2-LT-pthread_atfork-unhide.patch b/toolchain/uClibc/uClibc-0.9.30.2-LT-pthread_atfork-unhide.patch deleted file mode 100644 index dfe4567e1..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-LT-pthread_atfork-unhide.patch +++ /dev/null @@ -1,64 +0,0 @@ -From a05c4380c5aaa6e107a4c7e1e5a139ec4cc43f0c Mon Sep 17 00:00:00 2001 -From: Henning Heinold -Date: Sun, 21 Feb 2010 11:55:32 +0100 -Subject: [PATCH 14/15] LT pthread_atfork: unhide - -Trying to compile perl with uClibc new linuxthreads on arm. -I run into the problem that pthread_atfork is not available. -The problem was that it was synced with the glibc version, which has -compat ifdefs we do not need in uClibc. The inital checked in version -is right and works. So either revert the commit 2 years ago -or patch it with the patch attached I made for openembedded. - -Signed-off-by: Henning Heinold -Signed-off-by: Bernhard Reutner-Fischer ---- - libpthread/linuxthreads/Makefile.in | 2 +- - libpthread/linuxthreads/pthread_atfork.c | 13 +++---------- - 2 files changed, 4 insertions(+), 11 deletions(-) - -diff --git a/libpthread/linuxthreads/Makefile.in b/libpthread/linuxthreads/Makefile.in -index 947dea9..d53b5fa 100644 ---- a/libpthread/linuxthreads/Makefile.in -+++ b/libpthread/linuxthreads/Makefile.in -@@ -45,7 +45,7 @@ pthread_sysdep_SRC := $(patsubst %,$(libpthread_DIR)/sysdeps/pthread/%.c,$(pthre - pthread_SRC := \ - attr barrier cancel condvar errno events join pthread \ - lockfile manager mutex pt-machine ptcleanup \ -- ptclock_gettime ptclock_settime ptfork pthandles \ -+ ptclock_gettime ptclock_settime ptfork pthandles pthread_atfork \ - pthread_setegid pthread_seteuid pthread_setgid pthread_setregid \ - pthread_setresgid pthread_setresuid pthread_setreuid pthread_setuid \ - rwlock semaphore sighandler signals specific spinlock -diff --git a/libpthread/linuxthreads/pthread_atfork.c b/libpthread/linuxthreads/pthread_atfork.c -index 2464acb..4c83dd0 100644 ---- a/libpthread/linuxthreads/pthread_atfork.c -+++ b/libpthread/linuxthreads/pthread_atfork.c -@@ -43,12 +43,8 @@ extern void *__dso_handle __attribute__ ((__weak__)); - - /* Hide the symbol so that no definition but the one locally in the - executable or DSO is used. */ --int --#ifndef __pthread_atfork --/* Don't mark the compatibility function as hidden. */ --attribute_hidden --#endif --__pthread_atfork (prepare, parent, child) -+ -+int attribute_hidden __pthread_atfork (prepare, parent, child) - void (*prepare) (void); - void (*parent) (void); - void (*child) (void); -@@ -56,8 +52,5 @@ __pthread_atfork (prepare, parent, child) - return __register_atfork (prepare, parent, child, - &__dso_handle == NULL ? NULL : __dso_handle); - } --#ifndef __pthread_atfork --extern int pthread_atfork (void (*prepare) (void), void (*parent) (void), -- void (*child) (void)) attribute_hidden; -+ - strong_alias (__pthread_atfork, pthread_atfork) --#endif --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-Make-use-of-macros-from-sys-asm.h-in-crt1.S.patch b/toolchain/uClibc/uClibc-0.9.30.2-Make-use-of-macros-from-sys-asm.h-in-crt1.S.patch deleted file mode 100644 index 25b796422..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-Make-use-of-macros-from-sys-asm.h-in-crt1.S.patch +++ /dev/null @@ -1,87 +0,0 @@ -From 2911103dd4a03bbd3aad11eddfce524a5c9ba9b3 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 22 Jan 2010 13:00:20 +0100 -Subject: [PATCH 03/15] Make use of macros from sys/asm.h in crt1.S - -Needed for mips nptl to boot once again. -(cherry picked from commit 9c343fd4030dcd7a52616f365893177dded50346) - -Signed-off-by: Bernhard Reutner-Fischer ---- - libc/sysdeps/linux/mips/crt1.S | 46 +++++++++++---------------------------- - 1 files changed, 13 insertions(+), 33 deletions(-) - -diff --git a/libc/sysdeps/linux/mips/crt1.S b/libc/sysdeps/linux/mips/crt1.S -index e851d52..6a80412 100644 ---- a/libc/sysdeps/linux/mips/crt1.S -+++ b/libc/sysdeps/linux/mips/crt1.S -@@ -85,29 +85,10 @@ - - __start: - #ifdef __PIC__ --#if _MIPS_SIM == _MIPS_SIM_ABI32 -- .frame sp, 24, sp -- .set noreorder -- move $0, $31 /* Save old ra. */ -- bal 10f /* Find addr of cpload. */ -- nop --10: -- .cpload $31 -- move $31, $0 -- .set reorder -- .cprestore 16 --#else -- move $0, $31; /* Save old ra. */ -- .set noreorder -- bal 10f /* Find addr of .cpsetup. */ -- nop --10: -- .set reorder -- .cpsetup $31, $25, 10b -- move $31, $0 --#endif -+ SETUP_GPX($0) -+ SETUP_GPX64($25,$0) - #else -- la $28, _gp /* Setup GP correctly if we're non-PIC. */ -+ PTR_LA $28, _gp /* Setup GP correctly if we're non-PIC. */ - move $31, $0 - #endif - -@@ -118,18 +99,18 @@ __start: - /* Allocate space on the stack for seven arguments and - * make sure the stack is aligned to double words (8 bytes) */ - -+ and $29, -2 * SZREG -+ - #if _MIPS_SIM == _MIPS_SIM_ABI32 -- and $29, -2 * 4 -- subu $29, 32 -- la $7, _init /* init */ -- la $8, _fini -- sw $8, 16($29) /* fini */ -- sw $2, 20($29) /* rtld_fini */ -- sw $29, 24($29) /* stack_end */ --#else -- and $29, -2 * PTRSIZE -+ PTR_SUBIU $29, 32 -+#endif - PTR_LA $7, _init /* init */ -- PTR_LA $8, _fini /* fini */ -+ PTR_LA $8, _fini -+#if _MIPS_SIM == _MIPS_SIM_ABI32 -+ PTR_S $8, 16($29) /* fini */ -+ PTR_S $2, 20($29) /* rtld_fini */ -+ PTR_S $29, 24($29) /* stack_end */ -+#else - move $9, $2 /* rtld_fini */ - move $10, $29 /* stack_end */ - #endif -@@ -148,4 +129,3 @@ __data_start: - .weak data_start - data_start = __data_start - -- --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-Makefile.in-Make-install_dev-depend-on-install_runti.patch b/toolchain/uClibc/uClibc-0.9.30.2-Makefile.in-Make-install_dev-depend-on-install_runti.patch deleted file mode 100644 index 88c84902f..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-Makefile.in-Make-install_dev-depend-on-install_runti.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 323453d85ed29ccba7a81d884479188869cd64b7 Mon Sep 17 00:00:00 2001 -From: Henning Heinold -Date: Sat, 23 Jan 2010 21:29:42 -0800 -Subject: [PATCH 13/15] Makefile.in: Make install_dev depend on install_runtime. - -* Helps in parallel build. - -Signed-off-by: Henning Heinold -Signed-off-by: Khem Raj -Signed-off-by: Bernhard Reutner-Fischer ---- - Makefile.in | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index ec4c28e..a889838 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -370,7 +370,7 @@ ifneq ($(UCLIBC_SUPPORT_AI_ADDRCONFIG),y) - endif - - # Installs development library links. --install_dev: install_headers all -+install_dev: install_headers install_runtime - $(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib - -$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/ - ifeq ($(HAVE_SHARED),y) --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-Unbreak-build-for-sparc-on-some-config-s.patch b/toolchain/uClibc/uClibc-0.9.30.2-Unbreak-build-for-sparc-on-some-config-s.patch deleted file mode 100644 index 21d779abd..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-Unbreak-build-for-sparc-on-some-config-s.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 7b964170536951a260f7d552db99b428d1ea5026 Mon Sep 17 00:00:00 2001 -From: Austin Foxley -Date: Wed, 3 Feb 2010 12:12:10 -0800 -Subject: [PATCH 08/15] Unbreak build for sparc on some config's - -Thanks to rob@landley.net - -Signed-off-by: Austin Foxley ---- - libc/sysdeps/linux/sparc/sigaction.c | 9 ++++----- - 1 files changed, 4 insertions(+), 5 deletions(-) - -diff --git a/libc/sysdeps/linux/sparc/sigaction.c b/libc/sysdeps/linux/sparc/sigaction.c -index a22ac40..7140fd3 100644 ---- a/libc/sysdeps/linux/sparc/sigaction.c -+++ b/libc/sysdeps/linux/sparc/sigaction.c -@@ -34,7 +34,8 @@ _syscall5(int, rt_sigaction, int, a, int, b, int, c, int, d, int, e); - static void __rt_sigreturn_stub(void); - static void __sigreturn_stub(void); - --int __libc_sigaction(int sig, const struct sigaction *act, struct sigaction *oact) -+libc_hidden_proto(sigaction) -+int sigaction(int sig, const struct sigaction *act, struct sigaction *oact) - { - int ret; - struct sigaction kact, koact; -@@ -65,10 +66,8 @@ int __libc_sigaction(int sig, const struct sigaction *act, struct sigaction *oac - return ret; - } - --#ifndef LIBC_SIGACTION --weak_alias(__libc_sigaction,sigaction) --libc_hidden_weak(sigaction) --#endif -+libc_hidden_def(sigaction) -+weak_alias(sigaction,__libc_sigaction) - - static void - __rt_sigreturn_stub(void) --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch b/toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch deleted file mode 100644 index cd228831a..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-avr32-add-varargs-handling-of-prctl-syscall.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 85bc04d5436ca6c8a30a1ad28862260a04b8b3d5 Mon Sep 17 00:00:00 2001 -From: Hans-Christian Egtvedt -Date: Wed, 16 Dec 2009 13:16:08 +0100 -Subject: [PATCH 02/15] avr32: add varargs handling of prctl syscall - -prctl is defined to use varargs in the header file, hence it needs varargs -specific handling in the source. This patch properly handles the variodic -argument before the syscall is passed to the kernel for the AVR32 architecture. - -Signed-off-by: Hans-Christian Egtvedt ---- - libc/sysdeps/linux/avr32/Makefile.arch | 2 +- - libc/sysdeps/linux/avr32/prctl.c | 36 ++++++++++++++++++++++++++++++++ - 2 files changed, 37 insertions(+), 1 deletions(-) - create mode 100644 libc/sysdeps/linux/avr32/prctl.c - -diff --git a/libc/sysdeps/linux/avr32/Makefile.arch b/libc/sysdeps/linux/avr32/Makefile.arch -index bc5f625..98b85a7 100644 ---- a/libc/sysdeps/linux/avr32/Makefile.arch -+++ b/libc/sysdeps/linux/avr32/Makefile.arch -@@ -5,7 +5,7 @@ - # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. - # - --CSRC := brk.c clone.c mmap.c sigaction.c -+CSRC := brk.c clone.c mmap.c prctl.c sigaction.c - - SSRC := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \ - sigrestorer.S syscall.S vfork.S -diff --git a/libc/sysdeps/linux/avr32/prctl.c b/libc/sysdeps/linux/avr32/prctl.c -new file mode 100644 -index 0000000..4e146e3 ---- /dev/null -+++ b/libc/sysdeps/linux/avr32/prctl.c -@@ -0,0 +1,36 @@ -+/* -+ * prctl syscall for AVR32 Linux. -+ * -+ * Copyright (C) 2010 Atmel Corporation -+ * -+ * This file is subject to the terms and conditions of the GNU Lesser General -+ * Public License. See the file "COPYING.LIB" in the main directory of this -+ * archive for more details. -+ */ -+#include -+#include -+#include -+ -+#ifdef __NR_prctl -+#define __NR___syscall_prctl __NR_prctl -+static inline _syscall5(int, __syscall_prctl, int, option, long, arg2, -+ long, arg3, long, arg4, long, arg5); -+ -+int prctl(int __option, ...) -+{ -+ long arg2; -+ long arg3; -+ long arg4; -+ long arg5; -+ va_list ap; -+ -+ va_start(ap, __option); -+ arg2 = va_arg(ap, long); -+ arg3 = va_arg(ap, long); -+ arg4 = va_arg(ap, long); -+ arg5 = va_arg(ap, long); -+ va_end(ap); -+ -+ return INLINE_SYSCALL(prctl, 5, __option, arg2, arg3, arg4, arg5); -+} -+#endif --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-clean-up-O_CLOEXEC-handling.patch b/toolchain/uClibc/uClibc-0.9.30.2-clean-up-O_CLOEXEC-handling.patch deleted file mode 100644 index a96707c44..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-clean-up-O_CLOEXEC-handling.patch +++ /dev/null @@ -1,297 +0,0 @@ -From 74ca5695cd9913691192e075449b8be5794d50f0 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger -Date: Thu, 8 Oct 2009 02:51:55 +0000 -Subject: [PATCH 12/15] clean up O_CLOEXEC handling - -Drop the "#ifndef O_CLOEXEC" cruft, enable O_CLOEXEC in most fcntl.h -headers, and import __ASSUME_O_CLOEXEC from glibc. - -Signed-off-by: Mike Frysinger -Signed-off-by: Bernhard Reutner-Fischer ---- - libc/pwd_grp/lckpwdf.c | 8 +++++++- - libc/sysdeps/linux/alpha/bits/fcntl.h | 2 -- - libc/sysdeps/linux/arm/bits/fcntl.h | 2 -- - libc/sysdeps/linux/avr32/bits/fcntl.h | 1 + - libc/sysdeps/linux/bfin/bits/fcntl.h | 2 ++ - libc/sysdeps/linux/cris/bits/fcntl.h | 1 + - libc/sysdeps/linux/frv/bits/fcntl.h | 2 ++ - libc/sysdeps/linux/hppa/bits/fcntl.h | 1 + - libc/sysdeps/linux/i386/bits/fcntl.h | 2 -- - libc/sysdeps/linux/ia64/bits/fcntl.h | 2 -- - libc/sysdeps/linux/m68k/bits/fcntl.h | 1 + - libc/sysdeps/linux/microblaze/bits/fcntl.h | 2 ++ - libc/sysdeps/linux/mips/bits/fcntl.h | 1 + - libc/sysdeps/linux/powerpc/bits/fcntl.h | 2 -- - libc/sysdeps/linux/sh/bits/fcntl.h | 2 -- - libc/sysdeps/linux/sh64/bits/fcntl.h | 2 ++ - libc/sysdeps/linux/sparc/bits/fcntl.h | 2 -- - libc/sysdeps/linux/x86_64/bits/fcntl.h | 2 -- - libc/sysdeps/linux/xtensa/bits/fcntl.h | 1 + - 19 files changed, 21 insertions(+), 17 deletions(-) - -diff --git a/libc/pwd_grp/lckpwdf.c b/libc/pwd_grp/lckpwdf.c -index 0b0fb47..aec6283 100644 ---- a/libc/pwd_grp/lckpwdf.c -+++ b/libc/pwd_grp/lckpwdf.c -@@ -75,7 +75,7 @@ lckpwdf (void) - /* Prevent problems caused by multiple threads. */ - __UCLIBC_MUTEX_LOCK(mylock); - -- lock_fd = open (_PATH_PASSWD, O_WRONLY); -+ lock_fd = open (_PATH_PASSWD, O_WRONLY | O_CLOEXEC); - if (lock_fd == -1) { - /* Cannot create lock file. */ - goto DONE; -@@ -97,6 +97,12 @@ lckpwdf (void) - goto DONE; - } - -+#ifndef __ASSUME_O_CLOEXEC -+ /* Make sure file gets correctly closed when process finished. */ -+ fcntl (lock_fd, F_SETFD, FD_CLOEXEC); -+#endif -+ -+ - /* Now we have to get exclusive write access. Since multiple - process could try this we won't stop when it first fails. - Instead we set a timeout for the system call. Once the timer -diff --git a/libc/sysdeps/linux/alpha/bits/fcntl.h b/libc/sysdeps/linux/alpha/bits/fcntl.h -index 2a6b9ea..649c563 100644 ---- a/libc/sysdeps/linux/alpha/bits/fcntl.h -+++ b/libc/sysdeps/linux/alpha/bits/fcntl.h -@@ -50,9 +50,7 @@ - # define O_NOFOLLOW 0200000 /* Do not follow links. */ - # define O_DIRECT 02000000 /* Direct disk access. */ - # define O_NOATIME 04000000 /* Do not set atime. */ --# if 0 - # define O_CLOEXEC 010000000 /* Set close_on_exec. */ --# endif - #endif - - #ifdef __USE_LARGEFILE64 -diff --git a/libc/sysdeps/linux/arm/bits/fcntl.h b/libc/sysdeps/linux/arm/bits/fcntl.h -index 86cea4b..7cc5a9d 100644 ---- a/libc/sysdeps/linux/arm/bits/fcntl.h -+++ b/libc/sysdeps/linux/arm/bits/fcntl.h -@@ -50,9 +50,7 @@ - # define O_NOFOLLOW 0100000 /* Do not follow links. */ - # define O_DIRECT 0200000 /* Direct disk access. */ - # define O_NOATIME 01000000 /* Do not set atime. */ --# if 0 - # define O_CLOEXEC 02000000 /* Set close_on_exec. */ --# endif - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/avr32/bits/fcntl.h b/libc/sysdeps/linux/avr32/bits/fcntl.h -index 2301e22..767243e 100644 ---- a/libc/sysdeps/linux/avr32/bits/fcntl.h -+++ b/libc/sysdeps/linux/avr32/bits/fcntl.h -@@ -30,6 +30,7 @@ - # define O_DIRECTORY 00200000 /* direct disk access */ - # define O_NOFOLLOW 00400000 /* don't follow links */ - # define O_NOATIME 01000000 /* don't set atime */ -+# define O_CLOEXEC 02000000 /* set close_on_exec */ - #endif - - #ifdef __USE_LARGEFILE64 -diff --git a/libc/sysdeps/linux/bfin/bits/fcntl.h b/libc/sysdeps/linux/bfin/bits/fcntl.h -index 7d0bcf9..aabf94d 100644 ---- a/libc/sysdeps/linux/bfin/bits/fcntl.h -+++ b/libc/sysdeps/linux/bfin/bits/fcntl.h -@@ -48,6 +48,8 @@ - # define O_DIRECTORY 040000 /* Must be a directory. */ - # define O_NOFOLLOW 0100000 /* Do not follow links. */ - # define O_DIRECT 0200000 /* Direct disk access. */ -+# define O_NOATIME 01000000 /* don't set atime */ -+# define O_CLOEXEC 02000000 /* set close_on_exec * - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/cris/bits/fcntl.h b/libc/sysdeps/linux/cris/bits/fcntl.h -index a2106ef..29443ba 100644 ---- a/libc/sysdeps/linux/cris/bits/fcntl.h -+++ b/libc/sysdeps/linux/cris/bits/fcntl.h -@@ -50,6 +50,7 @@ - # define O_DIRECTORY 0200000 /* Must be a directory. */ - # define O_NOFOLLOW 0400000 /* Do not follow links. */ - # define O_NOATIME 01000000 /* Do not set atime. */ -+# define O_CLOEXEC 02000000 /* set close_on_exec */ - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/frv/bits/fcntl.h b/libc/sysdeps/linux/frv/bits/fcntl.h -index 06e8860..5bff4d3 100644 ---- a/libc/sysdeps/linux/frv/bits/fcntl.h -+++ b/libc/sysdeps/linux/frv/bits/fcntl.h -@@ -45,6 +45,8 @@ - # define O_DIRECT 040000 /* Direct disk access. */ - # define O_DIRECTORY 0200000 /* Must be a directory. */ - # define O_NOFOLLOW 0400000 /* Do not follow links. */ -+# define O_NOATIME 01000000 /* don't set atime */ -+# define O_CLOEXEC 02000000 /* set close_on_exec */ - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/hppa/bits/fcntl.h b/libc/sysdeps/linux/hppa/bits/fcntl.h -index cc23bf8..86e3b6f 100644 ---- a/libc/sysdeps/linux/hppa/bits/fcntl.h -+++ b/libc/sysdeps/linux/hppa/bits/fcntl.h -@@ -50,6 +50,7 @@ - # define O_DIRECTORY 00010000 /* Must be a directory. */ - # define O_NOFOLLOW 00000200 /* Do not follow links. */ - # define O_NOATIME 04000000 /* Do not set atime. */ -+# define O_CLOEXEC 010000000 /* set close_on_exec */ - #endif - - #ifdef __USE_LARGEFILE64 -diff --git a/libc/sysdeps/linux/i386/bits/fcntl.h b/libc/sysdeps/linux/i386/bits/fcntl.h -index 7f0b552..22e073b 100644 ---- a/libc/sysdeps/linux/i386/bits/fcntl.h -+++ b/libc/sysdeps/linux/i386/bits/fcntl.h -@@ -50,9 +50,7 @@ - # define O_DIRECTORY 0200000 /* Must be a directory. */ - # define O_NOFOLLOW 0400000 /* Do not follow links. */ - # define O_NOATIME 01000000 /* Do not set atime. */ --# if 0 - # define O_CLOEXEC 02000000 /* Set close_on_exec. */ --# endif - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/ia64/bits/fcntl.h b/libc/sysdeps/linux/ia64/bits/fcntl.h -index d134c4b..85a55f6 100644 ---- a/libc/sysdeps/linux/ia64/bits/fcntl.h -+++ b/libc/sysdeps/linux/ia64/bits/fcntl.h -@@ -49,9 +49,7 @@ - # define O_DIRECTORY 0200000 /* must be a directory */ - # define O_NOFOLLOW 0400000 /* don't follow links */ - # define O_NOATIME 01000000 /* Do not set atime. */ --# if 0 - # define O_CLOEXEC 02000000 /* Set close_on_exec. */ --# endif - #endif - - #ifdef __USE_LARGEFILE64 -diff --git a/libc/sysdeps/linux/m68k/bits/fcntl.h b/libc/sysdeps/linux/m68k/bits/fcntl.h -index d36198d..e564b42 100644 ---- a/libc/sysdeps/linux/m68k/bits/fcntl.h -+++ b/libc/sysdeps/linux/m68k/bits/fcntl.h -@@ -49,6 +49,7 @@ - # define O_NOFOLLOW 0100000 /* Do not follow links. */ - # define O_DIRECT 0200000 /* Direct disk access. */ - # define O_NOATIME 01000000 /* Do not set atime. */ -+# define O_CLOEXEC 02000000 /* set close_on_exec */ - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/microblaze/bits/fcntl.h b/libc/sysdeps/linux/microblaze/bits/fcntl.h -index c8aeb91..da35209 100644 ---- a/libc/sysdeps/linux/microblaze/bits/fcntl.h -+++ b/libc/sysdeps/linux/microblaze/bits/fcntl.h -@@ -45,6 +45,8 @@ - # define O_DIRECTORY 040000 /* Must be a directory. */ - # define O_NOFOLLOW 0100000 /* Do not follow links. */ - # define O_DIRECT 0200000 /* Direct disk access. */ -+# define O_NOATIME 01000000 /* Do not set atime. */ -+# define O_CLOEXEC 02000000 /* set close_on_exec */ - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/mips/bits/fcntl.h b/libc/sysdeps/linux/mips/bits/fcntl.h -index ef015a4..f0072fd 100644 ---- a/libc/sysdeps/linux/mips/bits/fcntl.h -+++ b/libc/sysdeps/linux/mips/bits/fcntl.h -@@ -51,6 +51,7 @@ - # define O_DIRECT 0x8000 /* Direct disk access hint. */ - # define O_DIRECTORY 0x10000 /* Must be a directory. */ - # define O_NOATIME 0x40000 /* Do not set atime. */ -+# define O_CLOEXEC 02000000 /* set close_on_exec */ - #endif - - /* For now Linux has no synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/powerpc/bits/fcntl.h b/libc/sysdeps/linux/powerpc/bits/fcntl.h -index ceb75b4..0759c6a 100644 ---- a/libc/sysdeps/linux/powerpc/bits/fcntl.h -+++ b/libc/sysdeps/linux/powerpc/bits/fcntl.h -@@ -50,9 +50,7 @@ - # define O_DIRECTORY 040000 /* Must be a directory. */ - # define O_NOFOLLOW 0100000 /* Do not follow links. */ - # define O_NOATIME 01000000 /* Do not set atime. */ --# if 0 - # define O_CLOEXEC 02000000 /* Set close_on_exec. */ --# endif - #endif - - #ifdef __USE_LARGEFILE64 -diff --git a/libc/sysdeps/linux/sh/bits/fcntl.h b/libc/sysdeps/linux/sh/bits/fcntl.h -index 570484c..adb7377 100644 ---- a/libc/sysdeps/linux/sh/bits/fcntl.h -+++ b/libc/sysdeps/linux/sh/bits/fcntl.h -@@ -50,9 +50,7 @@ - # define O_DIRECTORY 0200000 /* Must be a directory. */ - # define O_NOFOLLOW 0400000 /* Do not follow links. */ - # define O_NOATIME 01000000 /* Do not set atime. */ --# if 0 - # define O_CLOEXEC 02000000 /* Set close_on_exec. */ --# endif - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/sh64/bits/fcntl.h b/libc/sysdeps/linux/sh64/bits/fcntl.h -index 06e8860..245d35a 100644 ---- a/libc/sysdeps/linux/sh64/bits/fcntl.h -+++ b/libc/sysdeps/linux/sh64/bits/fcntl.h -@@ -45,6 +45,8 @@ - # define O_DIRECT 040000 /* Direct disk access. */ - # define O_DIRECTORY 0200000 /* Must be a directory. */ - # define O_NOFOLLOW 0400000 /* Do not follow links. */ -+# define O_NOATIME 01000000 /* Do not set atime. */ -+# define O_CLOEXEC 02000000 /* set close_on_exec */ - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/sparc/bits/fcntl.h b/libc/sysdeps/linux/sparc/bits/fcntl.h -index 29c09a9..31a6d9b 100644 ---- a/libc/sysdeps/linux/sparc/bits/fcntl.h -+++ b/libc/sysdeps/linux/sparc/bits/fcntl.h -@@ -49,9 +49,7 @@ - # define O_NOFOLLOW 0x20000 /* don't follow links */ - # define O_DIRECT 0x100000 /* direct disk access hint */ - # define O_NOATIME 0x200000 /* Do not set atime. */ --# if 0 - # define O_CLOEXEC 0x400000 /* Set close_on_exit. */ --# endif - #endif - - #ifdef __USE_LARGEFILE64 -diff --git a/libc/sysdeps/linux/x86_64/bits/fcntl.h b/libc/sysdeps/linux/x86_64/bits/fcntl.h -index be00e4a..f1cf388 100644 ---- a/libc/sysdeps/linux/x86_64/bits/fcntl.h -+++ b/libc/sysdeps/linux/x86_64/bits/fcntl.h -@@ -50,9 +50,7 @@ - # define O_DIRECTORY 0200000 /* Must be a directory. */ - # define O_NOFOLLOW 0400000 /* Do not follow links. */ - # define O_NOATIME 01000000 /* Do not set atime. */ --# if 0 - # define O_CLOEXEC 02000000 /* Set close_on_exec. */ --# endif - #endif - - /* For now Linux has synchronisity options for data and read operations. -diff --git a/libc/sysdeps/linux/xtensa/bits/fcntl.h b/libc/sysdeps/linux/xtensa/bits/fcntl.h -index a89362e..921a626 100644 ---- a/libc/sysdeps/linux/xtensa/bits/fcntl.h -+++ b/libc/sysdeps/linux/xtensa/bits/fcntl.h -@@ -50,6 +50,7 @@ - # define O_DIRECTORY 0200000 /* Must be a directory. */ - # define O_NOFOLLOW 0400000 /* Do not follow links. */ - # define O_NOATIME 01000000 /* Do not set atime. */ -+# define O_CLOEXEC 02000000 /* set close_on_exec */ - #endif - - /* For now Linux has synchronisity options for data and read operations. --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-fix-make-install-host-utils.patch b/toolchain/uClibc/uClibc-0.9.30.2-fix-make-install-host-utils.patch deleted file mode 100644 index 526dfb178..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-fix-make-install-host-utils.patch +++ /dev/null @@ -1,153 +0,0 @@ -From d75ad2e129b3f22296cead3db53c784527deab60 Mon Sep 17 00:00:00 2001 -From: Bernhard Reutner-Fischer -Date: Fri, 18 Sep 2009 14:07:31 +0000 -Subject: fix make {,install_}{,host}utils - -Signed-off-by: Bernhard Reutner-Fischer ---- -diff --git a/extra/locale/programs/locale.c b/extra/locale/programs/locale.c -index 462a579..dfd2029 100644 ---- a/extra/locale/programs/locale.c -+++ b/extra/locale/programs/locale.c -@@ -10,10 +10,9 @@ - * - */ - -- -+#include - #include - #include --#include - #include - #include - #ifdef __UCLIBC_HAS_GETOPT_LONG__ -diff --git a/libc/misc/wchar/wchar.c b/libc/misc/wchar/wchar.c -index 290e680..3ce884d 100644 ---- a/libc/misc/wchar/wchar.c -+++ b/libc/misc/wchar/wchar.c -@@ -171,7 +171,6 @@ extern size_t _wchar_utf8sntowcs(wchar_t *__restrict pwc, size_t wn, - - extern size_t _wchar_wcsntoutf8s(char *__restrict s, size_t n, - const wchar_t **__restrict src, size_t wn) attribute_hidden; -- - #endif /* _LIBC */ - /**********************************************************************/ - #ifdef L_btowc -@@ -1201,45 +1200,6 @@ typedef struct { - int skip_invalid_input; /* To support iconv -c option. */ - } _UC_iconv_t; - -- -- --#ifdef L_iconv -- --#include --#include --#include --#include -- --#if (__BYTE_ORDER != __BIG_ENDIAN) && (__BYTE_ORDER != __LITTLE_ENDIAN) --#error unsupported endianness for iconv --#endif -- --#ifndef __CTYPE_HAS_8_BIT_LOCALES --#error currently iconv requires 8 bit locales --#endif --#ifndef __CTYPE_HAS_UTF_8_LOCALES --#error currently iconv requires UTF-8 locales --#endif -- -- --enum { -- IC_WCHAR_T = 0xe0, -- IC_MULTIBYTE = 0xe0, --#if __BYTE_ORDER == __BIG_ENDIAN -- IC_UCS_4 = 0xec, -- IC_UTF_32 = 0xe4, -- IC_UCS_2 = 0xe2, -- IC_UTF_16 = 0xea, --#else -- IC_UCS_4 = 0xed, -- IC_UTF_32 = 0xe5, -- IC_UCS_2 = 0xe3, -- IC_UTF_16 = 0xeb, --#endif -- IC_UTF_8 = 2, -- IC_ASCII = 1 --}; -- - /* For the multibyte - * bit 0 means swap endian - * bit 1 means 2 byte -@@ -1247,8 +1207,13 @@ enum { - * - */ - -+#if defined L_iconv && defined _LIBC -+/* Used externally only by iconv utility */ - extern const unsigned char __iconv_codesets[]; - libc_hidden_proto(__iconv_codesets) -+#endif -+ -+#if defined L_iconv || defined L_iconv_main - const unsigned char __iconv_codesets[] = - "\x0a\xe0""WCHAR_T\x00" /* superset of UCS-4 but platform-endian */ - #if __BYTE_ORDER == __BIG_ENDIAN -@@ -1281,7 +1246,48 @@ const unsigned char __iconv_codesets[] = - "\x08\x02""UTF-8\x00" - "\x0b\x01""US-ASCII\x00" - "\x07\x01""ASCII"; /* Must be last! (special case to save a nul) */ -+#endif -+#if defined L_iconv && defined _LIBC - libc_hidden_data_def(__iconv_codesets) -+#endif -+ -+ -+#ifdef L_iconv -+ -+#include -+#include -+#include -+#include -+ -+#if (__BYTE_ORDER != __BIG_ENDIAN) && (__BYTE_ORDER != __LITTLE_ENDIAN) -+#error unsupported endianness for iconv -+#endif -+ -+#ifndef __CTYPE_HAS_8_BIT_LOCALES -+#error currently iconv requires 8 bit locales -+#endif -+#ifndef __CTYPE_HAS_UTF_8_LOCALES -+#error currently iconv requires UTF-8 locales -+#endif -+ -+ -+enum { -+ IC_WCHAR_T = 0xe0, -+ IC_MULTIBYTE = 0xe0, -+#if __BYTE_ORDER == __BIG_ENDIAN -+ IC_UCS_4 = 0xec, -+ IC_UTF_32 = 0xe4, -+ IC_UCS_2 = 0xe2, -+ IC_UTF_16 = 0xea, -+#else -+ IC_UCS_4 = 0xed, -+ IC_UTF_32 = 0xe5, -+ IC_UCS_2 = 0xe3, -+ IC_UTF_16 = 0xeb, -+#endif -+ IC_UTF_8 = 2, -+ IC_ASCII = 1 -+}; - - /* Experimentally off - libc_hidden_proto(strcasecmp) */ - -@@ -1575,6 +1581,4 @@ size_t weak_function iconv(iconv_t cd, char **__restrict inbuf, - } - return nrcount; - } -- - #endif -- --- -cgit v0.8.2.1 diff --git a/toolchain/uClibc/uClibc-0.9.30.2-fstatat-fix-up-behavior-on-32-64-bit-hosts.patch b/toolchain/uClibc/uClibc-0.9.30.2-fstatat-fix-up-behavior-on-32-64-bit-hosts.patch deleted file mode 100644 index 52ae2a550..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-fstatat-fix-up-behavior-on-32-64-bit-hosts.patch +++ /dev/null @@ -1,113 +0,0 @@ -From d43f068e84513ed88392df4ca27d49ad01145fd2 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger -Date: Sun, 6 Sep 2009 12:12:12 -0400 -Subject: [PATCH 07/15] fstatat: fix up behavior on 32/64 bit hosts -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The fstatat() syscall is a little funky in that it sometimes changes name -between 32 and 64 bit hosts, but it should always operate on a 64bit stat -structure. So for the fstatat() function, make sure we convert it from a -64bit kstat to a 32bit stat. - -Along these lines, we need to restore the __xstat32_conv() function. - -Reported-by: Timo Teräs -Signed-off-by: Mike Frysinger -Signed-off-by: Bernhard Reutner-Fischer ---- - libc/sysdeps/linux/common/fstatat.c | 9 +++++++-- - libc/sysdeps/linux/common/fstatat64.c | 5 +++++ - libc/sysdeps/linux/common/xstatconv.c | 19 +++++++++++++++++++ - libc/sysdeps/linux/common/xstatconv.h | 1 + - 4 files changed, 32 insertions(+), 2 deletions(-) - -diff --git a/libc/sysdeps/linux/common/fstatat.c b/libc/sysdeps/linux/common/fstatat.c -index 149c189..33daa7c 100644 ---- a/libc/sysdeps/linux/common/fstatat.c -+++ b/libc/sysdeps/linux/common/fstatat.c -@@ -10,15 +10,20 @@ - #include - #include "xstatconv.h" - -+/* 64bit ports tend to favor newfstatat() */ -+#ifdef __NR_newfstatat -+# define __NR_fstatat64 __NR_newfstatat -+#endif -+ - #ifdef __NR_fstatat64 - int fstatat(int fd, const char *file, struct stat *buf, int flag) - { - int ret; -- struct kernel_stat kbuf; -+ struct kernel_stat64 kbuf; - - ret = INLINE_SYSCALL(fstatat64, 4, fd, file, &kbuf, flag); - if (ret == 0) -- __xstat_conv(&kbuf, buf); -+ __xstat32_conv(&kbuf, buf); - - return ret; - } -diff --git a/libc/sysdeps/linux/common/fstatat64.c b/libc/sysdeps/linux/common/fstatat64.c -index 5ae1fad..95627af 100644 ---- a/libc/sysdeps/linux/common/fstatat64.c -+++ b/libc/sysdeps/linux/common/fstatat64.c -@@ -12,6 +12,11 @@ - - #ifdef __UCLIBC_HAS_LFS__ - -+/* 64bit ports tend to favor newfstatat() */ -+#ifdef __NR_newfstatat -+# define __NR_fstatat64 __NR_newfstatat -+#endif -+ - #ifdef __NR_fstatat64 - int fstatat64(int fd, const char *file, struct stat64 *buf, int flag) - { -diff --git a/libc/sysdeps/linux/common/xstatconv.c b/libc/sysdeps/linux/common/xstatconv.c -index e575b26..50455c6 100644 ---- a/libc/sysdeps/linux/common/xstatconv.c -+++ b/libc/sysdeps/linux/common/xstatconv.c -@@ -46,6 +46,25 @@ void attribute_hidden __xstat_conv(struct kernel_stat *kbuf, struct stat *buf) - buf->st_ctim = kbuf->st_ctim; - } - -+void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) -+{ -+ /* Convert to current kernel version of `struct stat64'. */ -+ memset(buf, 0x00, sizeof(*buf)); -+ buf->st_dev = kbuf->st_dev; -+ buf->st_ino = kbuf->st_ino; -+ buf->st_mode = kbuf->st_mode; -+ buf->st_nlink = kbuf->st_nlink; -+ buf->st_uid = kbuf->st_uid; -+ buf->st_gid = kbuf->st_gid; -+ buf->st_rdev = kbuf->st_rdev; -+ buf->st_size = kbuf->st_size; -+ buf->st_blksize = kbuf->st_blksize; -+ buf->st_blocks = kbuf->st_blocks; -+ buf->st_atim = kbuf->st_atim; -+ buf->st_mtim = kbuf->st_mtim; -+ buf->st_ctim = kbuf->st_ctim; -+} -+ - #ifdef __UCLIBC_HAS_LFS__ - - void attribute_hidden __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf) -diff --git a/libc/sysdeps/linux/common/xstatconv.h b/libc/sysdeps/linux/common/xstatconv.h -index 57c8bcb..7568da8 100644 ---- a/libc/sysdeps/linux/common/xstatconv.h -+++ b/libc/sysdeps/linux/common/xstatconv.h -@@ -26,6 +26,7 @@ - #include - - extern void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf) attribute_hidden; -+extern void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) attribute_hidden; - #if defined __UCLIBC_HAS_LFS__ - extern void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf) attribute_hidden; - #endif --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-getdents-Fix-mips64-build.patch b/toolchain/uClibc/uClibc-0.9.30.2-getdents-Fix-mips64-build.patch deleted file mode 100644 index 3e5713ed4..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-getdents-Fix-mips64-build.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 13545bce877b33e30155fc412ad44cc118d83f77 Mon Sep 17 00:00:00 2001 -From: Atsushi Nemoto -Date: Sat, 30 Jan 2010 00:24:37 +0900 -Subject: [PATCH 15/15] getdents: Fix mips64 build - -On Wed, 27 Jan 2010 07:14:08 +0100, Carmelo AMOROSO wrote: -> I would re-write your patch in a simpler way. -> -> We already have the following -> -> 136 #if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64 -> 137 attribute_hidden strong_alias(__getdents,__getdents64) -> 138 #endif -> -> I think that it's simpler to move in the proper place this statement. - -Thanks, indeed. If we came into "#elif WORDSIZE == 32" block, above -condition never be true. So we can just move this statement out of -"#if...#elif...#elif...#endif" block. Here is a revised patch. - ------------------------------------------------------- -From: Atsushi Nemoto -Subject: [PATCH] getdents: Fix mips64 build - -Some archs (such as mips64) do not have getdents64 syscall but have -getdents syscall. Define alias for it. - -This fixes regression from 0.9.30.1. - -Backgrounds: -This is once done by commit e8b1c674. But after the commit 33bcf733 -("Use getdents syscall if kernel provide supports for this instead of -relying upon getdents64."), if __ASSUME_GETDENTS32_D_TYPE was defined -the alias for getdents64 is not defined. The macro -__ASSUME_GETDENTS32_D_TYPE had been effectively ignored until 0.9.30.1 -but the commit 0f0f20ab ("Move kernel-features.h header from the -linuxthread directory to a common one...") really enables it. - -Signed-off-by: Atsushi Nemoto -Signed-off-by: Khem Raj -Signed-off-by: Bernhard Reutner-Fischer ---- - libc/sysdeps/linux/common/getdents.c | 8 ++++---- - 1 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libc/sysdeps/linux/common/getdents.c b/libc/sysdeps/linux/common/getdents.c -index b518cc0..66a03b3 100644 ---- a/libc/sysdeps/linux/common/getdents.c -+++ b/libc/sysdeps/linux/common/getdents.c -@@ -136,10 +136,6 @@ ssize_t __getdents (int fd, char *buf, size_t nbytes) - return (char *) dp - buf; - } - --#if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64 --attribute_hidden strong_alias(__getdents,__getdents64) --#endif -- - #elif __WORDSIZE == 32 - - /* Experimentally off - libc_hidden_proto(memmove) */ -@@ -171,4 +167,8 @@ ssize_t __getdents (int fd, char *buf, size_t nbytes) - } - #endif - -+#if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64 -+attribute_hidden strong_alias(__getdents,__getdents64) -+#endif -+ - #endif --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-host-utils-depend-on-headers.patch b/toolchain/uClibc/uClibc-0.9.30.2-host-utils-depend-on-headers.patch deleted file mode 100644 index 39b964261..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-host-utils-depend-on-headers.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 47e88c04e01299f975ff23f33035d0f34a8f6787 Mon Sep 17 00:00:00 2001 -From: Bernhard Reutner-Fischer -Date: Fri, 22 Jan 2010 13:32:44 +0100 -Subject: [PATCH 06/15] {,host}utils depend on headers - -Signed-off-by: Bernhard Reutner-Fischer ---- - Makefile.in | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile.in b/Makefile.in -index 4c5aecb..ec4c28e 100644 ---- a/Makefile.in -+++ b/Makefile.in -@@ -436,7 +436,7 @@ ifeq ($(HAVE_SHARED),y) - fi - endif - --utils: -+utils: headers - $(Q)$(MAKE) CROSS="$(CROSS)" CC="$(CC)" -C utils $@ - - # Installs helper applications, such as 'ldd' and 'ldconfig' -@@ -445,7 +445,7 @@ install_utils: utils - - endif # ifeq ($(HAVE_DOT_CONFIG),y) - --hostutils: -+hostutils: headers - $(Q)$(MAKE) CROSS="$(CROSS)" CC="$(CC)" HOSTCC="$(HOSTCC)" DOTHOST=.host -C utils $@ - - install_hostutils: hostutils --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-libc-Fix-typo-in-include-rpc.patch b/toolchain/uClibc/uClibc-0.9.30.2-libc-Fix-typo-in-include-rpc.patch deleted file mode 100644 index 423617a47..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-libc-Fix-typo-in-include-rpc.patch +++ /dev/null @@ -1,63 +0,0 @@ -From b4d6a6e94d87ff2b4ae687a21048833f19b9dd48 Mon Sep 17 00:00:00 2001 -From: Carmelo Amoroso -Date: Mon, 8 Feb 2010 16:24:06 +0100 -Subject: [PATCH 11/15] libc: Fix typo in include/rpc - -s/GNU_SOUCE/GNU_SOURCE/ in include/rcp/ - -Signed-off-by: Jason Woodward -Signed-off-by: Carmelo Amoroso ---- - include/rpc/auth.h | 4 ++-- - include/rpc/rpc.h | 4 ++-- - include/rpc/types.h | 4 ++-- - 3 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/include/rpc/auth.h b/include/rpc/auth.h -index 17eb59f..12297e6 100644 ---- a/include/rpc/auth.h -+++ b/include/rpc/auth.h -@@ -47,8 +47,8 @@ - #ifndef __FORCE_GLIBC - #define __FORCE_GLIBC - #endif --#ifndef _GNU_SOUCE --#define _GNU_SOUCE -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE - #endif - #define _(X) X - #endif -diff --git a/include/rpc/rpc.h b/include/rpc/rpc.h -index 8194ffe..219910e 100644 ---- a/include/rpc/rpc.h -+++ b/include/rpc/rpc.h -@@ -44,8 +44,8 @@ - #ifndef __FORCE_GLIBC - #define __FORCE_GLIBC - #endif --#ifndef _GNU_SOUCE --#define _GNU_SOUCE -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE - #endif - #define _(X) X - #include -diff --git a/include/rpc/types.h b/include/rpc/types.h -index 469576e..05f49c3 100644 ---- a/include/rpc/types.h -+++ b/include/rpc/types.h -@@ -39,8 +39,8 @@ - #ifndef __FORCE_GLIBC - #define __FORCE_GLIBC - #endif --#ifndef _GNU_SOUCE --#define _GNU_SOUCE -+#ifndef _GNU_SOURCE -+#define _GNU_SOURCE - #endif - #define _(X) X - #endif --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-libm-enable-log2f-and-exp2f.patch b/toolchain/uClibc/uClibc-0.9.30.2-libm-enable-log2f-and-exp2f.patch deleted file mode 100644 index 3b43356b2..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-libm-enable-log2f-and-exp2f.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 956a0087e282e53ba9c085dbbc469391f7234944 Mon Sep 17 00:00:00 2001 -From: Aurelien Jacobs -Date: Thu, 4 Feb 2010 09:31:40 -0800 -Subject: [PATCH 10/15] libm: enable log2f and exp2f - -Signed-off-by: Aurelien Jacobs -Signed-off-by: Austin Foxley ---- - libm/float_wrappers.c | 4 ++-- - test/math/compile_test.c | 4 ++-- - 2 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/libm/float_wrappers.c b/libm/float_wrappers.c -index dc315e7..b7317a1 100644 ---- a/libm/float_wrappers.c -+++ b/libm/float_wrappers.c -@@ -15,12 +15,10 @@ - - /* For the time being, do _NOT_ implement these functions - * that are defined by SuSv3 */ --#undef L_exp2f /*float exp2f(float);*/ - #undef L_fdimf /*float fdimf(float, float);*/ - #undef L_fmaf /*float fmaf(float, float, float);*/ - #undef L_fmaxf /*float fmaxf(float, float);*/ - #undef L_fminf /*float fminf(float, float);*/ --#undef L_log2f /*float log2f(float);*/ - #undef L_nearbyintf /*float nearbyintf(float);*/ - #undef L_nexttowardf /*float nexttowardf(float, long double);*/ - #undef L_remquof /*float remquof(float, float, int *);*/ -@@ -43,6 +41,7 @@ float cosf(float); - float coshf(float); - float erfcf(float); - float erff(float); -+float exp2f(float); - float expf(float); - float expm1f(float); - float fabsf(float); -@@ -56,6 +55,7 @@ float lgammaf(float); - long long llroundf(float); - float log10f(float); - float log1pf(float); -+float log2f(float); - float logbf(float); - float logf(float); - long lroundf(float); -diff --git a/test/math/compile_test.c b/test/math/compile_test.c -index 9990520..ee5e2e3 100644 ---- a/test/math/compile_test.c -+++ b/test/math/compile_test.c -@@ -18,7 +18,7 @@ r += cosf(float_x); - r += coshf(float_x); - r += erfcf(float_x); - r += erff(float_x); --/*r += exp2f(float_x); - uclibc does not have it (yet?) */ -+r += exp2f(float_x); - r += expf(float_x); - r += expm1f(float_x); - r += fabsf(float_x); -@@ -38,7 +38,7 @@ r += llrintf(float_x); - r += llroundf(float_x); - r += log10f(float_x); - r += log1pf(float_x); --/*r += log2f(float_x); - uclibc does not have it (yet?) */ -+r += log2f(float_x); - r += logbf(float_x); - r += logf(float_x); - r += lrintf(float_x); --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-malloc-fix-race-condition-and-other-bugs-in-the-no-m.patch b/toolchain/uClibc/uClibc-0.9.30.2-malloc-fix-race-condition-and-other-bugs-in-the-no-m.patch deleted file mode 100644 index aa9c2f42f..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-malloc-fix-race-condition-and-other-bugs-in-the-no-m.patch +++ /dev/null @@ -1,89 +0,0 @@ -From fa476d01f1c1990a92ee49d1f1c557b83805d0e9 Mon Sep 17 00:00:00 2001 -From: Freeman Wang -Date: Sat, 19 Dec 2009 13:43:00 -0800 -Subject: [PATCH 09/15] malloc: fix race condition and other bugs in the no-mmu malloc - -Fixes multiple race conditions on mmb list. This was done by -making the mmb_heap_lock into a recursive lock and making the -regular heap_lock extend to cover the mmb heap handling. - -Also move the new_mmb allocation up to before the mmb list is -iterated through to find the insertion point. When the mmb_heap -also runs out and needs to be extended when the regular heap is -just extended, the mmb list could be messed up. - -Signed-off-by: Freeman Wang -Signed-off-by: Austin Foxley ---- - libc/stdlib/malloc/free.c | 6 +++--- - libc/stdlib/malloc/malloc.c | 7 ++++--- - 2 files changed, 7 insertions(+), 6 deletions(-) - -diff --git a/libc/stdlib/malloc/free.c b/libc/stdlib/malloc/free.c -index 90e18f4..741248a 100644 ---- a/libc/stdlib/malloc/free.c -+++ b/libc/stdlib/malloc/free.c -@@ -179,14 +179,14 @@ __free_to_heap (void *mem, struct heap_free_area **heap - /* Start searching again from the end of this block. */ - start = mmb_end; - -+ /* Release the descriptor block we used. */ -+ free_to_heap (mmb, &__malloc_mmb_heap, &__malloc_mmb_heap_lock); -+ - /* We have to unlock the heap before we recurse to free the mmb - descriptor, because we might be unmapping from the mmb - heap. */ - __heap_unlock (heap_lock); - -- /* Release the descriptor block we used. */ -- free_to_heap (mmb, &__malloc_mmb_heap, &__malloc_mmb_heap_lock); -- - /* Do the actual munmap. */ - munmap ((void *)mmb_start, mmb_end - mmb_start); - -diff --git a/libc/stdlib/malloc/malloc.c b/libc/stdlib/malloc/malloc.c -index 71f9e58..84a6acd 100644 ---- a/libc/stdlib/malloc/malloc.c -+++ b/libc/stdlib/malloc/malloc.c -@@ -48,7 +48,7 @@ struct malloc_mmb *__malloc_mmapped_blocks = 0; - HEAP_DECLARE_STATIC_FREE_AREA (initial_mmb_fa, 48); /* enough for 3 mmbs */ - struct heap_free_area *__malloc_mmb_heap = HEAP_INIT_WITH_FA (initial_mmb_fa); - #ifdef HEAP_USE_LOCKING --pthread_mutex_t __malloc_mmb_heap_lock = PTHREAD_MUTEX_INITIALIZER; -+pthread_mutex_t __malloc_mmb_heap_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; - #endif - #endif /* __UCLIBC_UCLINUX_BROKEN_MUNMAP__ */ - -@@ -151,19 +151,19 @@ __malloc_from_heap (size_t size, struct heap_free_area **heap - /* Try again to allocate. */ - mem = __heap_alloc (heap, &size); - -- __heap_unlock (heap_lock); - - #if !defined(MALLOC_USE_SBRK) && defined(__UCLIBC_UCLINUX_BROKEN_MUNMAP__) - /* Insert a record of BLOCK in sorted order into the - __malloc_mmapped_blocks list. */ - -+ new_mmb = malloc_from_heap (sizeof *new_mmb, &__malloc_mmb_heap, &__malloc_mmb_heap_lock); -+ - for (prev_mmb = 0, mmb = __malloc_mmapped_blocks; - mmb; - prev_mmb = mmb, mmb = mmb->next) - if (block < mmb->mem) - break; - -- new_mmb = malloc_from_heap (sizeof *new_mmb, &__malloc_mmb_heap, &__malloc_mmb_heap_lock); - new_mmb->next = mmb; - new_mmb->mem = block; - new_mmb->size = block_size; -@@ -177,6 +177,7 @@ __malloc_from_heap (size_t size, struct heap_free_area **heap - (unsigned)new_mmb, - (unsigned)new_mmb->mem, block_size); - #endif /* !MALLOC_USE_SBRK && __UCLIBC_UCLINUX_BROKEN_MUNMAP__ */ -+ __heap_unlock (heap_lock); - } - } - --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.2-rpc-fix-typo-in-version-mismatch-msg.patch b/toolchain/uClibc/uClibc-0.9.30.2-rpc-fix-typo-in-version-mismatch-msg.patch deleted file mode 100644 index f2e1637af..000000000 --- a/toolchain/uClibc/uClibc-0.9.30.2-rpc-fix-typo-in-version-mismatch-msg.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 83a09cd5c9ed9afd87a7d1d17319c2fd2203ad0f Mon Sep 17 00:00:00 2001 -From: Bernhard Reutner-Fischer -Date: Thu, 21 Jan 2010 10:36:13 +0100 -Subject: [PATCH 04/15] rpc: fix typo in version mismatch msg - -Signed-off-by: Bernhard Reutner-Fischer ---- - libc/inet/rpc/rpc_prot.c | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/libc/inet/rpc/rpc_prot.c b/libc/inet/rpc/rpc_prot.c -index 74658e6..229f988 100644 ---- a/libc/inet/rpc/rpc_prot.c -+++ b/libc/inet/rpc/rpc_prot.c -@@ -229,7 +229,7 @@ rejected (enum reject_stat rjct_stat, - { - switch (rjct_stat) - { -- case RPC_VERSMISMATCH: -+ case RPC_MISMATCH: - error->re_status = RPC_VERSMISMATCH; - return; - case AUTH_ERROR: --- -1.6.6.1 - diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-000p-fix-procfs.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-000p-fix-procfs.patch new file mode 100644 index 000000000..8e62d205f --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-000p-fix-procfs.patch @@ -0,0 +1,24 @@ +--- uClibc-0.9.29-orig/libc/sysdeps/linux/xtensa/sys/procfs.h 2007-11-16 23:21:00.000000000 -0800 ++++ uClibc-0.9.29/libc/sysdeps/linux/xtensa/sys/procfs.h 2007-11-16 23:26:59.000000000 -0800 +@@ -32,19 +32,11 @@ + #include + #include + #include ++#include + + __BEGIN_DECLS + +-/* Type for a general-purpose register. */ +-typedef unsigned long elf_greg_t; +- +-#define ELF_NGREG 128 +-typedef elf_greg_t elf_gregset_t[ELF_NGREG]; +- +-/* Register set for the floating-point registers. */ +-#define ELF_NFPREG 18 +-typedef unsigned long elf_fpreg_t; +-typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; ++/* Note: we get elf_gregset_t and elf_fpregset_t from . */ + + /* Signal info. */ + struct elf_siginfo diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-005-sigcontext.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-005-sigcontext.patch new file mode 100644 index 000000000..7d7d684b1 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-005-sigcontext.patch @@ -0,0 +1,45 @@ +diff -u /dev/null uClibc-0.9.30/libc/sysdeps/linux/xtensa/bits/sigcontext.h +--- /dev/null ++++ uClibc-0.9.30/libc/sysdeps/linux/xtensa/bits/sigcontext.h +@@ -0,0 +1,41 @@ ++/* Copyright (C) 2006, 2007, 2008, 2009 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., 51 Franklin Street - Fifth Floor, ++ Boston, MA 02110-1301, USA. */ ++ ++#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H ++# error "Never use directly; include instead." ++#endif ++ ++#ifndef _BITS_SIGCONTEXT_H ++#define _BITS_SIGCONTEXT_H 1 ++ ++struct sigcontext ++{ ++ unsigned long sc_pc; ++ unsigned long sc_ps; ++ unsigned long sc_lbeg; ++ unsigned long sc_lend; ++ unsigned long sc_lcount; ++ unsigned long sc_sar; ++ unsigned long sc_acclo; ++ unsigned long sc_acchi; ++ void *sc_xtregs; ++ unsigned long sc_a[16]; ++}; ++ ++#endif /* _BITS_SIGCONTEXT_H */ ++ diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch new file mode 100644 index 000000000..f0e4eb272 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-009-testandset.patch @@ -0,0 +1,59 @@ +--- uClibc-0.9.29/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h.orig 2008-09-12 09:51:50.000000000 -0700 ++++ uClibc-0.9.29/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h 2008-10-04 12:14:57.000000000 -0700 +@@ -26,19 +26,51 @@ + #include + + #ifndef PT_EI +-# define PT_EI __extern_always_inline ++# define PT_EI extern inline __attribute__ ((gnu_inline)) + #endif + +-/* Memory barrier. */ + #define MEMORY_BARRIER() __asm__ ("memw" : : : "memory") ++#define HAS_COMPARE_AND_SWAP ++ ++extern long int testandset (int *spinlock); ++extern int __compare_and_swap (long int *p, long int oldval, long int newval); + + /* Spinlock implementation; required. */ + PT_EI long int + testandset (int *spinlock) + { +- int unused = 0; +- return INTERNAL_SYSCALL (xtensa, , 4, SYS_XTENSA_ATOMIC_SET, +- spinlock, 1, unused); ++ unsigned long tmp; ++ __asm__ volatile ( ++" movi %0, 0 \n" ++" wsr %0, SCOMPARE1 \n" ++" movi %0, 1 \n" ++" s32c1i %0, %1, 0 \n" ++ : "=&a" (tmp) ++ : "a" (spinlock) ++ : "memory" ++ ); ++ return tmp; ++} ++ ++PT_EI int ++__compare_and_swap (long int *p, long int oldval, long int newval) ++{ ++ unsigned long tmp; ++ unsigned long value; ++ __asm__ volatile ( ++"1: l32i %0, %2, 0 \n" ++" bne %0, %4, 2f \n" ++" wsr %0, SCOMPARE1 \n" ++" mov %1, %0 \n" ++" mov %0, %3 \n" ++" s32c1i %0, %2, 0 \n" ++" bne %1, %0, 1b \n" ++"2: \n" ++ : "=&a" (tmp), "=&a" (value) ++ : "a" (p), "a" (newval), "a" (oldval) ++ : "memory" ); ++ ++ return tmp == oldval; + } + + /* Get some notion of the current stack. Need not be exactly the top diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-010-sigaction.c.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-010-sigaction.c.patch new file mode 100644 index 000000000..5717c2582 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-010-sigaction.c.patch @@ -0,0 +1,11 @@ +--- a/libc/sysdeps/linux/xtensa/sigaction.c 2008-09-23 21:11:02.000000000 -0700 ++++ b/libc/sysdeps/linux/xtensa/sigaction.c 2008-09-23 21:12:31.000000000 -0700 +@@ -17,6 +17,8 @@ + + #define SA_RESTORER 0x04000000 + ++extern __typeof(sigaction) __libc_sigaction; ++ + extern void __default_sa_restorer (void); + + libc_hidden_proto(memcpy) diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-011-sysdep.h.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-011-sysdep.h.patch new file mode 100644 index 000000000..692b0a722 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-011-sysdep.h.patch @@ -0,0 +1,19 @@ +--- a/libc/sysdeps/linux/xtensa/sysdep.h 2008-09-23 21:17:42.000000000 -0700 ++++ b/libc/sysdeps/linux/xtensa/sysdep.h 2008-09-23 21:17:59.000000000 -0700 +@@ -114,15 +114,7 @@ + + #define ret_ERRVAL retw + +-#if RTLD_PRIVATE_ERRNO +-# define SYSCALL_ERROR_HANDLER \ +-0: movi a4, rtld_errno; \ +- neg a2, a2; \ +- s32i a2, a4, 0; \ +- movi a2, -1; \ +- j .Lpseudo_end; +- +-#elif defined _LIBC_REENTRANT ++#if defined _LIBC_REENTRANT + + # if USE___THREAD + # ifndef NOT_IN_libc diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-012-fnmatch_old.c.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-012-fnmatch_old.c.patch new file mode 100644 index 000000000..66cb1f609 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-012-fnmatch_old.c.patch @@ -0,0 +1,11 @@ +--- a/libc/misc/fnmatch/fnmatch_old.c 2008-09-23 21:23:13.000000000 -0700 ++++ b/libc/misc/fnmatch/fnmatch_old.c 2008-09-23 21:23:33.000000000 -0700 +@@ -15,7 +15,7 @@ + not, write to the Free Software Foundation, Inc., 675 Mass Ave, + Cambridge, MA 02139, USA. */ + +-#if HAVE_CONFIG_H ++#ifdef HAVE_CONFIG_H + # include + #endif + diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-013-atomic.h.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-013-atomic.h.patch new file mode 100644 index 000000000..fd2037111 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-013-atomic.h.patch @@ -0,0 +1,165 @@ +--- /dev/null 2008-09-18 06:50:54.356228028 -0700 ++++ uClibc-0.9.29/libc/sysdeps/linux/xtensa/bits/atomic.h 2008-10-04 11:40:21.000000000 -0700 +@@ -0,0 +1,162 @@ ++/* ++ * Copyright (C) 2008 Tensilica, Inc. ++ * Contributed by Joe Taylor 2008 ++ * ++ * This file is subject to the terms and conditions of the GNU Lesser General ++ * Public License. See the file "COPYING.LIB" in the main directory of this ++ * archive for more details. ++ */ ++ ++#ifndef _XTENSA_BITS_ATOMIC_H ++#define _XTENSA_BITS_ATOMIC_H 1 ++ ++/* Xtensa has only a 32-bit form of a store-conditional instruction, ++ so just stub out the rest. */ ++ ++/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL. ++ Return the old *MEM value. */ ++ ++#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \ ++ ({__typeof__(*(mem)) __tmp, __value; \ ++ __asm__ __volatile__( \ ++ "1: l32i %1, %2, 0 \n" \ ++ " bne %1, %4, 2f \n" \ ++ " wsr %1, SCOMPARE1 \n" \ ++ " mov %0, %1 \n" \ ++ " mov %1, %3 \n" \ ++ " s32c1i %1, %2, 0 \n" \ ++ " bne %0, %1, 1b \n" \ ++ "2: \n" \ ++ : "=&a" (__value), "=&a" (__tmp) \ ++ : "a" (mem), "a" (newval), "a" (oldval) \ ++ : "memory" ); \ ++ __tmp; \ ++ }) ++ ++/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL. ++ Return zero if *MEM was changed or non-zero if no exchange happened. */ ++ ++#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \ ++ ({__typeof__(*(mem)) __tmp, __value; \ ++ __asm__ __volatile__( \ ++ "1: l32i %0, %2, 0 \n" \ ++ " sub %1, %4, %0 \n" \ ++ " bnez %1, 2f \n" \ ++ " wsr %0, SCOMPARE1 \n" \ ++ " mov %1, %3 \n" \ ++ " s32c1i %1, %2, 0 \n" \ ++ " bne %0, %1, 1b \n" \ ++ " movi %1, 0 \n" \ ++ "2: \n" \ ++ : "=&a" (__value), "=&a" (__tmp) \ ++ : "a" (mem), "a" (newval), "a" (oldval) \ ++ : "memory" ); \ ++ __tmp != 0; \ ++ }) ++ ++/* Store NEWVALUE in *MEM and return the old value. */ ++ ++#define __arch_exchange_32_acq(mem, newval) \ ++ ({__typeof__(*(mem)) __tmp, __value; \ ++ __asm__ __volatile__( \ ++ "1: l32i %0, %2, 0 \n" \ ++ " wsr %0, SCOMPARE1 \n" \ ++ " mov %1, %3 \n" \ ++ " s32c1i %1, %2, 0 \n" \ ++ " bne %0, %1, 1b \n" \ ++ : "=&a" (__value), "=&a" (__tmp) \ ++ : "a" (mem), "a" (newval) \ ++ : "memory" ); \ ++ __tmp; \ ++ }) ++ ++/* Add VALUE to *MEM and return the old value of *MEM. */ ++ ++#define __arch_atomic_exchange_and_add_32(mem, value) \ ++ ({__typeof__(*(mem)) __tmp, __value; \ ++ __asm__ __volatile__( \ ++ "1: l32i %0, %2, 0 \n" \ ++ " wsr %0, SCOMPARE1 \n" \ ++ " add %1, %0, %3 \n" \ ++ " s32c1i %1, %2, 0 \n" \ ++ " bne %0, %1, 1b \n" \ ++ : "=&a" (__value), "=&a" (__tmp) \ ++ : "a" (mem), "a" (value) \ ++ : "memory" ); \ ++ __tmp; \ ++ }) ++ ++/* Subtract VALUE from *MEM and return the old value of *MEM. */ ++ ++#define __arch_atomic_exchange_and_sub_32(mem, value) \ ++ ({__typeof__(*(mem)) __tmp, __value; \ ++ __asm__ __volatile__( \ ++ "1: l32i %0, %2, 0 \n" \ ++ " wsr %0, SCOMPARE1 \n" \ ++ " sub %1, %0, %3 \n" \ ++ " s32c1i %1, %2, 0 \n" \ ++ " bne %0, %1, 1b \n" \ ++ : "=&a" (__value), "=&a" (__tmp) \ ++ : "a" (mem), "a" (value) \ ++ : "memory" ); \ ++ __tmp; \ ++ }) ++ ++/* Decrement *MEM if it is > 0, and return the old value. */ ++ ++#define __arch_atomic_decrement_if_positive_32(mem) \ ++ ({__typeof__(*(mem)) __tmp, __value; \ ++ __asm__ __volatile__( \ ++ "1: l32i %0, %2, 0 \n" \ ++ " blti %0, 1, 2f \n" \ ++ " wsr %0, SCOMPARE1 \n" \ ++ " addi %1, %0, -1 \n" \ ++ " s32c1i %1, %2, 0 \n" \ ++ " bne %0, %1, 1b \n" \ ++ "2: \n" \ ++ : "=&a" (__value), "=&a" (__tmp) \ ++ : "a" (mem) \ ++ : "memory" ); \ ++ __tmp; \ ++ }) ++ ++ ++/* These are the preferred public interfaces: */ ++ ++#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \ ++ ({ \ ++ if (sizeof (*mem) != 4) \ ++ abort(); \ ++ __arch_compare_and_exchange_val_32_acq(mem, newval, oldval); \ ++ }) ++ ++#define atomic_exchange_acq(mem, newval) \ ++ ({ \ ++ if (sizeof(*(mem)) != 4) \ ++ abort(); \ ++ __arch_exchange_32_acq(mem, newval); \ ++ }) ++ ++#define atomic_exchange_and_add(mem, newval) \ ++ ({ \ ++ if (sizeof(*(mem)) != 4) \ ++ abort(); \ ++ __arch_atomic_exchange_and_add_32(mem, newval); \ ++ }) ++ ++#define atomic_exchange_and_sub(mem, newval) \ ++ ({ \ ++ if (sizeof(*(mem)) != 4) \ ++ abort(); \ ++ __arch_atomic_exchange_and_sub_32(mem, newval); \ ++ }) ++ ++#define atomic_decrement_if_positive(mem) \ ++ ({ \ ++ if (sizeof(*(mem)) != 4) \ ++ abort(); \ ++ __arch_atomic_decrement_if_positive_32(mem); \ ++ }) ++ ++#endif /* _XTENSA_BITS_ATOMIC_H */ ++ diff --git a/toolchain/uClibc/uClibc-0.9.30.3-xtensa-014-setjump.S.patch b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-014-setjump.S.patch new file mode 100644 index 000000000..720b44b58 --- /dev/null +++ b/toolchain/uClibc/uClibc-0.9.30.3-xtensa-014-setjump.S.patch @@ -0,0 +1,11 @@ +--- uClibc-0.9.30/libc/sysdeps/linux/xtensa/setjmp.S.orig 2009-05-01 16:57:16.195893000 -0700 ++++ uClibc-0.9.30/libc/sysdeps/linux/xtensa/setjmp.S 2009-05-01 16:58:03.885160000 -0700 +@@ -86,7 +86,7 @@ ENTRY (__sigsetjmp) + /* Copy 0-8 words from the register overflow area. */ + extui a3, a0, 30, 2 + blti a3, 2, .Lendsj +- l32i a7, a1, 4 ++ l32i a7, a5, 4 + slli a4, a3, 4 + sub a5, a7, a4 + addi a6, a2, 16 -- cgit v1.2.3