musl: update to version 1.1.9

Patch to 2015-06-04 to fix ldso related regressions on PPC and MIPS.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 45886
This commit is contained in:
Felix Fietkau 2015-06-04 20:08:39 +00:00
parent 17c90e94cf
commit 555df40af9
5 changed files with 2023 additions and 101 deletions

View file

@ -3,6 +3,6 @@ if USE_MUSL
config MUSL_VERSION
string
depends on USE_MUSL
default "1.1.7"
default "1.1.9"
endif

View file

@ -11,7 +11,7 @@ PKG_NAME:=musl
PKG_VERSION:=$(call qstrip,$(CONFIG_MUSL_VERSION))
PKG_RELEASE=1
PKG_MD5SUM:=6fe9fc4d99a7d321432b3e179c138d73
PKG_MD5SUM:=14e8c5ac74f887d53256b3dcaf9b4aaa
PKG_SOURCE_URL:=http://www.musl-libc.org/releases
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz

View file

@ -1,93 +0,0 @@
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;

File diff suppressed because it is too large Load diff

View file

@ -1,6 +1,6 @@
--- a/src/locale/iconv.c
+++ b/src/locale/iconv.c
@@ -44,6 +44,7 @@ static const unsigned char charmaps[] =
@@ -38,6 +38,7 @@ static const unsigned char charmaps[] =
"ucs4\0ucs4be\0utf32\0utf32be\0\0\300"
"ucs4le\0utf32le\0\0\303"
"ascii\0usascii\0iso646\0iso646us\0\0\307"
@ -8,7 +8,7 @@
"eucjp\0\0\320"
"shiftjis\0sjis\0\0\321"
"gb18030\0\0\330"
@@ -51,6 +52,7 @@ static const unsigned char charmaps[] =
@@ -45,6 +46,7 @@ static const unsigned char charmaps[] =
"gb2312\0\0\332"
"big5\0bigfive\0cp950\0big5hkscs\0\0\340"
"euckr\0ksc5601\0ksx1001\0cp949\0\0\350"
@ -16,7 +16,7 @@
#include "codepages.h"
;
@@ -58,6 +60,7 @@ static const unsigned short legacy_chars
@@ -52,6 +54,7 @@ static const unsigned short legacy_chars
#include "legacychars.h"
};
@ -24,7 +24,7 @@
static const unsigned short jis0208[84][94] = {
#include "jis0208.h"
};
@@ -77,6 +80,7 @@ static const unsigned short hkscs[] = {
@@ -71,6 +74,7 @@ static const unsigned short hkscs[] = {
static const unsigned short ksc[93][94] = {
#include "ksc.h"
};
@ -32,7 +32,7 @@
static int fuzzycmp(const unsigned char *a, const unsigned char *b)
{
@@ -217,6 +221,7 @@ size_t iconv(iconv_t cd0, char **restric
@@ -212,6 +216,7 @@ size_t iconv(iconv_t cd0, char **restric
c = ((c-0xd7c0)<<10) + (d-0xdc00);
}
break;
@ -40,7 +40,7 @@
case SHIFT_JIS:
if (c-0xa1 <= 0xdf-0xa1) {
c += 0xff61-0xa1;
@@ -363,6 +368,7 @@ size_t iconv(iconv_t cd0, char **restric
@@ -358,6 +363,7 @@ size_t iconv(iconv_t cd0, char **restric
c = ksc[c][d];
if (!c) goto ilseq;
break;