mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
[toolchain] add support for uClibc 0.9.30.3
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20181 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
51
toolchain/uClibc/patches-0.9.30.3/110-compat_macros.patch
Normal file
51
toolchain/uClibc/patches-0.9.30.3/110-compat_macros.patch
Normal file
@@ -0,0 +1,51 @@
|
||||
--- ./include/string.h.orig 2008-06-08 22:38:53.000000000 +0200
|
||||
+++ ./include/string.h 2009-01-02 16:09:03.000000000 +0100
|
||||
@@ -355,18 +355,40 @@
|
||||
/* Find the last occurrence of C in S (same as strrchr). */
|
||||
extern char *rindex (__const char *__s, int __c)
|
||||
__THROW __attribute_pure__ __nonnull ((1));
|
||||
-# else
|
||||
-# ifdef __UCLIBC_SUSV3_LEGACY_MACROS__
|
||||
+# elif defined(__UCLIBC_SUSV3_LEGACY_MACROS__) && !defined(_STRINGS_H)
|
||||
/* bcopy/bzero/bcmp/index/rindex are marked LEGACY in SuSv3.
|
||||
* They are replaced as proposed by SuSv3. Don't sync this part
|
||||
* with glibc and keep it in sync with strings.h. */
|
||||
|
||||
-# define bcopy(src,dest,n) (memmove((dest), (src), (n)), (void) 0)
|
||||
-# define bzero(s,n) (memset((s), '\0', (n)), (void) 0)
|
||||
-# define bcmp(s1,s2,n) memcmp((s1), (s2), (size_t)(n))
|
||||
-# define index(s,c) strchr((s), (c))
|
||||
-# define rindex(s,c) strrchr((s), (c))
|
||||
-# endif
|
||||
+/* Copy N bytes of SRC to DEST (like memmove, but args reversed). */
|
||||
+static __inline__ void bcopy (__const void *__src, void *__dest, size_t __n)
|
||||
+{
|
||||
+ memmove(__dest, __src, __n);
|
||||
+}
|
||||
+
|
||||
+/* Set N bytes of S to 0. */
|
||||
+static __inline__ void bzero (void *__s, size_t __n)
|
||||
+{
|
||||
+ memset(__s, 0, __n);
|
||||
+}
|
||||
+
|
||||
+/* Compare N bytes of S1 and S2 (same as memcmp). */
|
||||
+static __inline__ int bcmp (__const void *__s1, __const void *__s2, size_t __n)
|
||||
+{
|
||||
+ return memcmp(__s1, __s2, __n);
|
||||
+}
|
||||
+
|
||||
+/* Find the first occurrence of C in S (same as strchr). */
|
||||
+static __inline__ char *index (__const char *__s, int __c)
|
||||
+{
|
||||
+ return strchr(__s, __c);
|
||||
+}
|
||||
+
|
||||
+/* Find the last occurrence of C in S (same as strrchr). */
|
||||
+static __inline__ char *rindex (__const char *__s, int __c)
|
||||
+{
|
||||
+ return strrchr(__s, __c);
|
||||
+}
|
||||
# endif
|
||||
|
||||
/* Return the position of the first bit set in I, or 0 if none are set.
|
||||
14
toolchain/uClibc/patches-0.9.30.3/120-adjtimex.patch
Normal file
14
toolchain/uClibc/patches-0.9.30.3/120-adjtimex.patch
Normal file
@@ -0,0 +1,14 @@
|
||||
Index: uClibc-0.9.29/include/sys/timex.h
|
||||
===================================================================
|
||||
--- uClibc-0.9.29.orig/include/sys/timex.h 2007-12-30 17:34:21.983513096 +0100
|
||||
+++ uClibc-0.9.29/include/sys/timex.h 2007-12-30 17:34:32.180094169 +0100
|
||||
@@ -116,7 +116,8 @@
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
-extern int __adjtimex (struct timex *__ntx) __THROW;
|
||||
+#undef __adjtimex
|
||||
+#define __adjtimex adjtimex
|
||||
extern int adjtimex (struct timex *__ntx) __THROW;
|
||||
|
||||
extern int ntp_gettime (struct ntptimeval *__ntv) __THROW;
|
||||
@@ -0,0 +1,10 @@
|
||||
--- a/libc/unistd/daemon.c
|
||||
+++ b/libc/unistd/daemon.c
|
||||
@@ -54,7 +54,6 @@
|
||||
libc_hidden_proto(dup2)
|
||||
libc_hidden_proto(setsid)
|
||||
libc_hidden_proto(chdir)
|
||||
-libc_hidden_proto(fork)
|
||||
|
||||
int daemon( int nochdir, int noclose )
|
||||
{
|
||||
11
toolchain/uClibc/patches-0.9.30.3/140-math_decl.patch
Normal file
11
toolchain/uClibc/patches-0.9.30.3/140-math_decl.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/libc/sysdeps/linux/common/bits/mathcalls.h
|
||||
+++ b/libc/sysdeps/linux/common/bits/mathcalls.h
|
||||
@@ -229,7 +229,7 @@
|
||||
|
||||
|
||||
/* Return nonzero if VALUE is not a number. */
|
||||
-__MATHDECL_PRIV (int,__isnan,, (_Mdouble_ __value), (__const__));
|
||||
+__MATHDECL_PRIV (int,isnan,, (_Mdouble_ __value), (__const__));
|
||||
|
||||
#if defined __USE_MISC || defined __USE_XOPEN
|
||||
/* Return nonzero if VALUE is not a number. */
|
||||
23
toolchain/uClibc/patches-0.9.30.3/170-math_finite.patch
Normal file
23
toolchain/uClibc/patches-0.9.30.3/170-math_finite.patch
Normal file
@@ -0,0 +1,23 @@
|
||||
--- a/include/math.h
|
||||
+++ b/include/math.h
|
||||
@@ -179,7 +179,7 @@
|
||||
|
||||
|
||||
/* ISO C99 defines some generic macros which work on any data type. */
|
||||
-#ifdef __USE_ISOC99
|
||||
+#if defined(__USE_ISOC99) || defined(__USE_BSD)
|
||||
|
||||
/* Get the architecture specific values describing the floating-point
|
||||
evaluation. The following symbols will get defined:
|
||||
@@ -299,6 +299,11 @@
|
||||
|
||||
#endif /* Use ISO C99. */
|
||||
|
||||
+/* BSD compat */
|
||||
+#define finite(x) __finite(x)
|
||||
+#define finitef(x) __finitef(x)
|
||||
+#define finitel(x) __finitel(x)
|
||||
+
|
||||
#ifdef __USE_MISC
|
||||
/* Support for various different standard error handling behaviors. */
|
||||
typedef enum
|
||||
11
toolchain/uClibc/patches-0.9.30.3/410-llvm_workaround.patch
Normal file
11
toolchain/uClibc/patches-0.9.30.3/410-llvm_workaround.patch
Normal file
@@ -0,0 +1,11 @@
|
||||
--- a/libc/stdio/_stdio.c
|
||||
+++ b/libc/stdio/_stdio.c
|
||||
@@ -121,7 +121,7 @@ static FILE _stdio_streams[] = {
|
||||
__FLAG_NBF|__FLAG_WRITEONLY, \
|
||||
2, \
|
||||
NULL, \
|
||||
- NULL, \
|
||||
+ 0, \
|
||||
0 )
|
||||
};
|
||||
|
||||
103
toolchain/uClibc/patches-0.9.30.3/450-powerpc_copysignl.patch
Normal file
103
toolchain/uClibc/patches-0.9.30.3/450-powerpc_copysignl.patch
Normal file
@@ -0,0 +1,103 @@
|
||||
--- a/libc/sysdeps/linux/powerpc/Makefile.arch
|
||||
+++ b/libc/sysdeps/linux/powerpc/Makefile.arch
|
||||
@@ -5,7 +5,7 @@
|
||||
# Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
|
||||
#
|
||||
|
||||
-CSRC := __syscall_error.c pread_write.c ioctl.c
|
||||
+CSRC := __syscall_error.c pread_write.c ioctl.c copysignl.c
|
||||
|
||||
SSRC := \
|
||||
__longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S brk.S \
|
||||
--- /dev/null
|
||||
+++ b/libc/sysdeps/linux/powerpc/copysignl.c
|
||||
@@ -0,0 +1,89 @@
|
||||
+/* s_copysignl.c -- long double version of s_copysign.c.
|
||||
+ * Conversion to long double by Ulrich Drepper,
|
||||
+ * Cygnus Support, drepper@cygnus.com.
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * ====================================================
|
||||
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
|
||||
+ *
|
||||
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
|
||||
+ * Permission to use, copy, modify, and distribute this
|
||||
+ * software is freely granted, provided that this notice
|
||||
+ * is preserved.
|
||||
+ * ====================================================
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * copysignl(long double x, long double y)
|
||||
+ * copysignl(x,y) returns a value with the magnitude of x and
|
||||
+ * with the sign bit of y.
|
||||
+ */
|
||||
+
|
||||
+#include <endian.h>
|
||||
+#include <stdint.h>
|
||||
+
|
||||
+#if __FLOAT_WORD_ORDER == BIG_ENDIAN
|
||||
+
|
||||
+typedef union
|
||||
+{
|
||||
+ long double value;
|
||||
+ struct
|
||||
+ {
|
||||
+ int sign_exponent:16;
|
||||
+ unsigned int empty:16;
|
||||
+ uint32_t msw;
|
||||
+ uint32_t lsw;
|
||||
+ } parts;
|
||||
+} ieee_long_double_shape_type;
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+#if __FLOAT_WORD_ORDER == LITTLE_ENDIAN
|
||||
+
|
||||
+typedef union
|
||||
+{
|
||||
+ long double value;
|
||||
+ struct
|
||||
+ {
|
||||
+ uint32_t lsw;
|
||||
+ uint32_t msw;
|
||||
+ int sign_exponent:16;
|
||||
+ unsigned int empty:16;
|
||||
+ } parts;
|
||||
+} ieee_long_double_shape_type;
|
||||
+
|
||||
+#endif
|
||||
+
|
||||
+/* Get int from the exponent of a long double. */
|
||||
+
|
||||
+#define GET_LDOUBLE_EXP(exp,d) \
|
||||
+do { \
|
||||
+ ieee_long_double_shape_type ge_u; \
|
||||
+ ge_u.value = (d); \
|
||||
+ (exp) = ge_u.parts.sign_exponent; \
|
||||
+} while (0)
|
||||
+
|
||||
+/* Set exponent of a long double from an int. */
|
||||
+
|
||||
+#define SET_LDOUBLE_EXP(d,exp) \
|
||||
+do { \
|
||||
+ ieee_long_double_shape_type se_u; \
|
||||
+ se_u.value = (d); \
|
||||
+ se_u.parts.sign_exponent = (exp); \
|
||||
+ (d) = se_u.value; \
|
||||
+} while (0)
|
||||
+
|
||||
+long double copysignl(long double x, long double y);
|
||||
+libc_hidden_proto(copysignl);
|
||||
+
|
||||
+long double copysignl(long double x, long double y)
|
||||
+{
|
||||
+ uint32_t es1,es2;
|
||||
+ GET_LDOUBLE_EXP(es1,x);
|
||||
+ GET_LDOUBLE_EXP(es2,y);
|
||||
+ SET_LDOUBLE_EXP(x,(es1&0x7fff)|(es2&0x8000));
|
||||
+ return x;
|
||||
+}
|
||||
+
|
||||
+libc_hidden_def(copysignl);
|
||||
4493
toolchain/uClibc/patches-0.9.30.3/600-ubicom32-uClibc.patch
Normal file
4493
toolchain/uClibc/patches-0.9.30.3/600-ubicom32-uClibc.patch
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user