toolchain/musl: update to the latest version, adds aarch64 support
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 28 Mar 2015 13:38:45 +0000 (13:38 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Sat, 28 Mar 2015 13:38:45 +0000 (13:38 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@45091 3c298f89-4303-0410-b956-a3cf2f4a3e73

toolchain/Config.in
toolchain/musl/Config.version
toolchain/musl/common.mk
toolchain/musl/patches/001-git-2015-03-28.patch [new file with mode: 0644]

index 4362170..7b365e4 100644 (file)
@@ -228,7 +228,7 @@ choice
        config LIBC_USE_MUSL
                select USE_MUSL
                bool "Use musl"
-               depends on !(mips64 || mips64el || aarch64 || aarch64_be)
+               depends on !(mips64 || mips64el)
 
 endchoice
 
index 88737e6..57b5bd0 100644 (file)
@@ -3,6 +3,6 @@ if USE_MUSL
 config MUSL_VERSION
        string
        depends on USE_MUSL
-       default "1.1.6"
+       default "1.1.7"
 
 endif
index 2064a5e..c67be2a 100644 (file)
@@ -11,7 +11,7 @@ PKG_NAME:=musl
 PKG_VERSION:=$(call qstrip,$(CONFIG_MUSL_VERSION))
 PKG_RELEASE=1
 
-PKG_MD5SUM:=591e2d25a12ca1748e30ee0cf23f8b8a
+PKG_MD5SUM:=6fe9fc4d99a7d321432b3e179c138d73
 
 PKG_SOURCE_URL:=http://www.musl-libc.org/releases
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
diff --git a/toolchain/musl/patches/001-git-2015-03-28.patch b/toolchain/musl/patches/001-git-2015-03-28.patch
new file mode 100644 (file)
index 0000000..85f0441
--- /dev/null
@@ -0,0 +1,93 @@
+diff --git a/arch/aarch64/bits/alltypes.h.in b/arch/aarch64/bits/alltypes.h.in
+index 99f1654..d56abda 100644
+--- a/arch/aarch64/bits/alltypes.h.in
++++ b/arch/aarch64/bits/alltypes.h.in
+@@ -16,6 +16,8 @@ TYPEDEF unsigned int nlink_t;
+ TYPEDEF float float_t;
+ TYPEDEF double double_t;
++TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
++
+ TYPEDEF long time_t;
+ TYPEDEF long suseconds_t;
+diff --git a/include/float.h b/include/float.h
+index c6429d3..713aadb 100644
+--- a/include/float.h
++++ b/include/float.h
+@@ -1,6 +1,10 @@
+ #ifndef _FLOAT_H
+ #define _FLOAT_H
++#ifdef __cplusplus
++extern "C" {
++#endif
++
+ int __flt_rounds(void);
+ #define FLT_ROUNDS (__flt_rounds())
+@@ -41,4 +45,8 @@ int __flt_rounds(void);
+ #include <bits/float.h>
++#ifdef __cplusplus
++}
++#endif
++
+ #endif
+diff --git a/src/network/inet_pton.c b/src/network/inet_pton.c
+index 4496b47..d36c368 100644
+--- a/src/network/inet_pton.c
++++ b/src/network/inet_pton.c
+@@ -39,14 +39,15 @@ int inet_pton(int af, const char *restrict s, void *restrict a0)
+       for (i=0; ; i++) {
+               if (s[0]==':' && brk<0) {
+                       brk=i;
+-                      ip[i]=0;
++                      ip[i&7]=0;
+                       if (!*++s) break;
++                      if (i==7) return 0;
+                       continue;
+               }
+               for (v=j=0; j<4 && (d=hexval(s[j]))>=0; j++)
+                       v=16*v+d;
+               if (j==0) return 0;
+-              ip[i] = v;
++              ip[i&7] = v;
+               if (!s[j] && (brk>=0 || i==7)) break;
+               if (i==7) return 0;
+               if (s[j]!=':') {
+diff --git a/src/regex/regcomp.c b/src/regex/regcomp.c
+index 4cdaa1e..978dd87 100644
+--- a/src/regex/regcomp.c
++++ b/src/regex/regcomp.c
+@@ -839,7 +839,7 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s)
+                       s--;
+                       break;
+               default:
+-                      if (isdigit(*s)) {
++                      if (!ere && (unsigned)*s-'1' < 9) {
+                               /* back reference */
+                               int val = *s - '0';
+                               node = tre_ast_new_literal(ctx->mem, BACKREF, val, ctx->position);
+@@ -847,7 +847,7 @@ static reg_errcode_t parse_atom(tre_parse_ctx_t *ctx, const char *s)
+                       } else {
+                               /* extension: accept unknown escaped char
+                                  as a literal */
+-                              node = tre_ast_new_literal(ctx->mem, *s, *s, ctx->position);
++                              goto parse_literal;
+                       }
+                       ctx->position++;
+               }
+@@ -1700,6 +1700,11 @@ tre_copy_ast(tre_mem_t mem, tre_stack_t *stack, tre_ast_node_t *ast,
+               *result = tre_ast_new_literal(mem, min, max, pos);
+               if (*result == NULL)
+                 status = REG_ESPACE;
++              else {
++                tre_literal_t *p = (*result)->obj;
++                p->class = lit->class;
++                p->neg_classes = lit->neg_classes;
++              }
+               if (pos > *max_pos)
+                 *max_pos = pos;