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 <jacmet@sunsite.dk>
This commit is contained in:
parent
12ebf5714c
commit
de859f6b2a
8
CHANGES
8
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:
|
||||
|
||||
|
@ -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
|
||||
|
@ -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 <jacmet@sunsite.dk>
|
||||
---
|
||||
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 <sys/types.h> /* 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. */
|
@ -1,177 +0,0 @@
|
||||
From 1b6e90090da7194a8f94277aa132873044f7e8e7 Mon Sep 17 00:00:00 2001
|
||||
From: carmelo <carmelo@69ca8d6d-28ef-0310-b511-8ec308f3f277>
|
||||
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 <will_wagner@carallon.com>
|
||||
|
||||
|
||||
|
||||
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 <sysdep.h>
|
||||
+
|
||||
+/* No multi-thread handling enabled. */
|
||||
+#define SINGLE_THREAD_P (1)
|
||||
+#define RTLD_SINGLE_THREAD_P (1)
|
||||
+#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
|
||||
+#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
|
||||
+#define LIBC_CANCEL_HANDLED() /* Nothing. */
|
||||
diff --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
|
||||
|
@ -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;
|
@ -1,59 +0,0 @@
|
||||
From df180f43dd9fc651ac760e7fe4a4dcf9e6dd42f1 Mon Sep 17 00:00:00 2001
|
||||
From: kraj <kraj@69ca8d6d-28ef-0310-b511-8ec308f3f277>
|
||||
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
|
||||
|
@ -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 <jacmet@sunsite.dk>
|
||||
---
|
||||
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 <sys/types.h> /* 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. */
|
@ -1,177 +0,0 @@
|
||||
From 1b6e90090da7194a8f94277aa132873044f7e8e7 Mon Sep 17 00:00:00 2001
|
||||
From: carmelo <carmelo@69ca8d6d-28ef-0310-b511-8ec308f3f277>
|
||||
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 <will_wagner@carallon.com>
|
||||
|
||||
|
||||
|
||||
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 <sysdep.h>
|
||||
+
|
||||
+/* No multi-thread handling enabled. */
|
||||
+#define SINGLE_THREAD_P (1)
|
||||
+#define RTLD_SINGLE_THREAD_P (1)
|
||||
+#define LIBC_CANCEL_ASYNC() 0 /* Just a dummy value. */
|
||||
+#define LIBC_CANCEL_RESET(val) ((void)(val)) /* Nothing, but evaluate it. */
|
||||
+#define LIBC_CANCEL_HANDLED() /* Nothing. */
|
||||
diff --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
|
||||
|
@ -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 <complex.h>
|
||||
|
||||
+#if defined __NO_LONG_DOUBLE_MATH
|
||||
+# define int_WRAPPER_C99(func) /* not needed */
|
||||
+# else
|
||||
+# define int_WRAPPER_C99(func) \
|
||||
+int func##l(long double x) \
|
||||
+{ \
|
||||
+ return func((double) x); \
|
||||
+} \
|
||||
+libm_hidden_def(func##l)
|
||||
+#endif
|
||||
|
||||
/* Implement the following, as defined by SuSv3 */
|
||||
#if 0
|
||||
@@ -543,46 +553,28 @@ 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 <bits/wordsize.h>
|
||||
/* Signal that we do not really have a `long double'. The disables the
|
||||
declaration of all the `long double' function variants. */
|
||||
# if __WORDSIZE == 32
|
||||
-# undef __UCLIBC_HAS_LONG_DOUBLE_MATH__
|
||||
+# define __NO_LONG_DOUBLE_MATH 1
|
||||
+# elif !defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
|
||||
+# define __NO_LONG_DOUBLE_MATH 1
|
||||
# endif /* __WORDSIZE == 32 */
|
||||
-#endif /* __UCLIBC_HAS_LONG_DOUBLE_MATH__ */
|
||||
+#endif /* __NO_LONG_DOUBLE_MATH */
|
||||
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
|
@ -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 <elf.h>
|
||||
-static __inline__ void
|
||||
+static __always_inline void
|
||||
elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr,
|
||||
Elf32_Word relative_count)
|
||||
{
|
@ -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;
|
@ -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
|
@ -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;
|
@ -1,64 +0,0 @@
|
||||
From a05c4380c5aaa6e107a4c7e1e5a139ec4cc43f0c Mon Sep 17 00:00:00 2001
|
||||
From: Henning Heinold <heinold@inf.fu-berlin.de>
|
||||
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 <heinold@inf.fu-berlin.de>
|
||||
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,87 +0,0 @@
|
||||
From 2911103dd4a03bbd3aad11eddfce524a5c9ba9b3 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
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 <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,30 +0,0 @@
|
||||
From 323453d85ed29ccba7a81d884479188869cd64b7 Mon Sep 17 00:00:00 2001
|
||||
From: Henning Heinold <heinold@inf.fu-berlin.de>
|
||||
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 <heinold@inf.fu-berlin.de>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,42 +0,0 @@
|
||||
From 7b964170536951a260f7d552db99b428d1ea5026 Mon Sep 17 00:00:00 2001
|
||||
From: Austin Foxley <austinf@cetoncorp.com>
|
||||
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 <austinf@cetoncorp.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,74 +0,0 @@
|
||||
From 85bc04d5436ca6c8a30a1ad28862260a04b8b3d5 Mon Sep 17 00:00:00 2001
|
||||
From: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
||||
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 <hans-christian.egtvedt@atmel.com>
|
||||
---
|
||||
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 <sys/syscall.h>
|
||||
+#include <sys/prctl.h>
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
+#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
|
||||
|
@ -1,297 +0,0 @@
|
||||
From 74ca5695cd9913691192e075449b8be5794d50f0 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Frysinger <vapier@gentoo.org>
|
||||
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 <vapier@gentoo.org>
|
||||
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,153 +0,0 @@
|
||||
From d75ad2e129b3f22296cead3db53c784527deab60 Mon Sep 17 00:00:00 2001
|
||||
From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
Date: Fri, 18 Sep 2009 14:07:31 +0000
|
||||
Subject: fix make {,install_}{,host}utils
|
||||
|
||||
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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 <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
-#include <string.h>
|
||||
#include <langinfo.h>
|
||||
#include <unistd.h>
|
||||
#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 <iconv.h>
|
||||
-#include <string.h>
|
||||
-#include <endian.h>
|
||||
-#include <byteswap.h>
|
||||
-
|
||||
-#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 <iconv.h>
|
||||
+#include <string.h>
|
||||
+#include <endian.h>
|
||||
+#include <byteswap.h>
|
||||
+
|
||||
+#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
|
@ -1,113 +0,0 @@
|
||||
From d43f068e84513ed88392df4ca27d49ad01145fd2 Mon Sep 17 00:00:00 2001
|
||||
From: Mike Frysinger <vapier@gentoo.org>
|
||||
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 <timo.teras@iki.fi>
|
||||
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
||||
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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 <sys/stat.h>
|
||||
#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 <bits/kernel_stat.h>
|
||||
|
||||
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
|
||||
|
@ -1,72 +0,0 @@
|
||||
From 13545bce877b33e30155fc412ad44cc118d83f77 Mon Sep 17 00:00:00 2001
|
||||
From: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
|
||||
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 <carmelo.amoroso@st.com> 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 <anemo@mba.ocn.ne.jp>
|
||||
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 <anemo@mba.ocn.ne.jp>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,35 +0,0 @@
|
||||
From 47e88c04e01299f975ff23f33035d0f34a8f6787 Mon Sep 17 00:00:00 2001
|
||||
From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
Date: Fri, 22 Jan 2010 13:32:44 +0100
|
||||
Subject: [PATCH 06/15] {,host}utils depend on headers
|
||||
|
||||
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,63 +0,0 @@
|
||||
From b4d6a6e94d87ff2b4ae687a21048833f19b9dd48 Mon Sep 17 00:00:00 2001
|
||||
From: Carmelo Amoroso <carmelo.amoroso@st.com>
|
||||
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 <jason.woodward@timesys.com>
|
||||
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
||||
---
|
||||
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 <features.h>
|
||||
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
|
||||
|
@ -1,70 +0,0 @@
|
||||
From 956a0087e282e53ba9c085dbbc469391f7234944 Mon Sep 17 00:00:00 2001
|
||||
From: Aurelien Jacobs <aurel@gnuage.org>
|
||||
Date: Thu, 4 Feb 2010 09:31:40 -0800
|
||||
Subject: [PATCH 10/15] libm: enable log2f and exp2f
|
||||
|
||||
Signed-off-by: Aurelien Jacobs <aurel@gnuage.org>
|
||||
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,89 +0,0 @@
|
||||
From fa476d01f1c1990a92ee49d1f1c557b83805d0e9 Mon Sep 17 00:00:00 2001
|
||||
From: Freeman Wang <xwang@ubicom.com>
|
||||
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 <xwang@ubicom.com>
|
||||
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
||||
---
|
||||
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
|
||||
|
@ -1,26 +0,0 @@
|
||||
From 83a09cd5c9ed9afd87a7d1d17319c2fd2203ad0f Mon Sep 17 00:00:00 2001
|
||||
From: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
||||
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 <rep.dot.nop@gmail.com>
|
||||
---
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user