aboutsummaryrefslogtreecommitdiffstats
path: root/main/musl
diff options
context:
space:
mode:
authorTimo Teräs <timo.teras@iki.fi>2014-12-04 10:43:32 +0200
committerTimo Teräs <timo.teras@iki.fi>2014-12-04 10:44:14 +0200
commit8f2469e413757e12582b651b24f49b0fb0072a34 (patch)
treefa5a536a6d34dbce3b62881ec6041d5c48a5ef7a /main/musl
parent7086cc9b981d724f4b530ba21a844b602d947d7c (diff)
downloadaports-8f2469e413757e12582b651b24f49b0fb0072a34.tar.bz2
aports-8f2469e413757e12582b651b24f49b0fb0072a34.tar.xz
main/musl: cherry-pick fixes and compatibility improvements from upstream
Diffstat (limited to 'main/musl')
-rw-r--r--main/musl/0001-manually-shrink-wrap-fast-path-in-pthread_once.patch53
-rw-r--r--main/musl/0002-fix-failure-of-open-to-read-variadic-mode-argument-f.patch26
-rw-r--r--main/musl/0003-fix-invalid-access-by-openat-to-possibly-missing-var.patch38
-rw-r--r--main/musl/0004-fix-uninitialized-mode-variable-in-openat-function.patch27
-rw-r--r--main/musl/0005-math-fix-x86_64-and-x32-asm-not-to-use-sahf-instruct.patch159
-rw-r--r--main/musl/0006-math-use-fnstsw-consistently-instead-of-fstsw-in-x87.patch168
-rw-r--r--main/musl/0007-fix-behavior-of-printf-with-alt-form-octal-zero-prec.patch35
-rw-r--r--main/musl/0008-implement-a-private-state-for-the-uchar.h-functions.patch72
-rw-r--r--main/musl/0009-getopt-fix-optional-argument-processing.patch38
-rw-r--r--main/musl/0010-adapt-dynamic-linker-for-new-binutils-versions-that-.patch31
-rw-r--r--main/musl/0011-add-support-for-non-option-arguments-extension-to-ge.patch71
-rw-r--r--main/musl/0012-fix-uninitialized-output-from-sched_getaffinity.patch39
-rw-r--r--main/musl/0013-fix-return-value-of-pthread_getaffinity_np-and-pthre.patch51
-rw-r--r--main/musl/0014-add-arm-private-syscall-numbers.patch29
-rw-r--r--main/musl/APKBUILD58
15 files changed, 894 insertions, 1 deletions
diff --git a/main/musl/0001-manually-shrink-wrap-fast-path-in-pthread_once.patch b/main/musl/0001-manually-shrink-wrap-fast-path-in-pthread_once.patch
new file mode 100644
index 0000000000..b0e38d8441
--- /dev/null
+++ b/main/musl/0001-manually-shrink-wrap-fast-path-in-pthread_once.patch
@@ -0,0 +1,53 @@
+From dc95322e18615392eea69de355edd735a15a8f36 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Mon, 20 Oct 2014 00:22:51 -0400
+Subject: [PATCH] manually "shrink wrap" fast path in pthread_once
+
+this change is a workaround for the inability of current compilers to
+perform "shrink wrapping" optimizations. in casual testing, it roughly
+doubled the performance of pthread_once when called on an
+already-finished once control object.
+---
+ src/thread/pthread_once.c | 20 ++++++++++++--------
+ 1 file changed, 12 insertions(+), 8 deletions(-)
+
+diff --git a/src/thread/pthread_once.c b/src/thread/pthread_once.c
+index 7c47385..df655ef 100644
+--- a/src/thread/pthread_once.c
++++ b/src/thread/pthread_once.c
+@@ -8,15 +8,8 @@ static void undo(void *control)
+ __wake(control, -1, 1);
+ }
+
+-int __pthread_once(pthread_once_t *control, void (*init)(void))
++int __pthread_once_full(pthread_once_t *control, void (*init)(void))
+ {
+- /* Return immediately if init finished before, but ensure that
+- * effects of the init routine are visible to the caller. */
+- if (*control == 2) {
+- a_barrier();
+- return 0;
+- }
+-
+ /* Try to enter initializing state. Four possibilities:
+ * 0 - we're the first or the other cancelled; run init
+ * 1 - another thread is running init; wait
+@@ -43,4 +36,15 @@ int __pthread_once(pthread_once_t *control, void (*init)(void))
+ }
+ }
+
++int __pthread_once(pthread_once_t *control, void (*init)(void))
++{
++ /* Return immediately if init finished before, but ensure that
++ * effects of the init routine are visible to the caller. */
++ if (*control == 2) {
++ a_barrier();
++ return 0;
++ }
++ return __pthread_once_full(control, init);
++}
++
+ weak_alias(__pthread_once, pthread_once);
+--
+2.2.0
+
diff --git a/main/musl/0002-fix-failure-of-open-to-read-variadic-mode-argument-f.patch b/main/musl/0002-fix-failure-of-open-to-read-variadic-mode-argument-f.patch
new file mode 100644
index 0000000000..887b38b32d
--- /dev/null
+++ b/main/musl/0002-fix-failure-of-open-to-read-variadic-mode-argument-f.patch
@@ -0,0 +1,26 @@
+From 9d836ea7a69a6441fcdca815328d274e4ed6b707 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Thu, 30 Oct 2014 20:03:56 -0400
+Subject: [PATCH] fix failure of open to read variadic mode argument for
+ O_TMPFILE
+
+---
+ src/fcntl/open.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/fcntl/open.c b/src/fcntl/open.c
+index 5e5be1d..3928a6e 100644
+--- a/src/fcntl/open.c
++++ b/src/fcntl/open.c
+@@ -7,7 +7,7 @@ int open(const char *filename, int flags, ...)
+ {
+ mode_t mode = 0;
+
+- if (flags & O_CREAT) {
++ if ((flags & O_CREAT) || (flags & O_TMPFILE) == O_TMPFILE) {
+ va_list ap;
+ va_start(ap, flags);
+ mode = va_arg(ap, mode_t);
+--
+2.2.0
+
diff --git a/main/musl/0003-fix-invalid-access-by-openat-to-possibly-missing-var.patch b/main/musl/0003-fix-invalid-access-by-openat-to-possibly-missing-var.patch
new file mode 100644
index 0000000000..c6f0340a37
--- /dev/null
+++ b/main/musl/0003-fix-invalid-access-by-openat-to-possibly-missing-var.patch
@@ -0,0 +1,38 @@
+From 2da3ab1382ca8e39eb1e4428103764a81fba73d3 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Thu, 30 Oct 2014 20:08:40 -0400
+Subject: [PATCH] fix invalid access by openat to possibly-missing variadic
+ mode argument
+
+the mode argument is only required to be present when the O_CREAT or
+O_TMPFILE flag is used.
+---
+ src/fcntl/openat.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/fcntl/openat.c b/src/fcntl/openat.c
+index 634c4bf..4faeb29 100644
+--- a/src/fcntl/openat.c
++++ b/src/fcntl/openat.c
+@@ -6,10 +6,14 @@
+ int openat(int fd, const char *filename, int flags, ...)
+ {
+ mode_t mode;
+- va_list ap;
+- va_start(ap, flags);
+- mode = va_arg(ap, mode_t);
+- va_end(ap);
++
++ if ((flags & O_CREAT) || (flags & O_TMPFILE) == O_TMPFILE) {
++ va_list ap;
++ va_start(ap, flags);
++ mode = va_arg(ap, mode_t);
++ va_end(ap);
++ }
++
+ return syscall_cp(SYS_openat, fd, filename, flags|O_LARGEFILE, mode);
+ }
+
+--
+2.2.0
+
diff --git a/main/musl/0004-fix-uninitialized-mode-variable-in-openat-function.patch b/main/musl/0004-fix-uninitialized-mode-variable-in-openat-function.patch
new file mode 100644
index 0000000000..9385bc7c56
--- /dev/null
+++ b/main/musl/0004-fix-uninitialized-mode-variable-in-openat-function.patch
@@ -0,0 +1,27 @@
+From e146e6035fecea080fb17450db3c8bb44d36e07d Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Fri, 31 Oct 2014 15:35:24 -0400
+Subject: [PATCH] fix uninitialized mode variable in openat function
+
+this was introduced in commit 2da3ab1382ca8e39eb1e4428103764a81fba73d3
+as an oversight while making the variadic argument access conditional.
+---
+ src/fcntl/openat.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/fcntl/openat.c b/src/fcntl/openat.c
+index 4faeb29..e741336 100644
+--- a/src/fcntl/openat.c
++++ b/src/fcntl/openat.c
+@@ -5,7 +5,7 @@
+
+ int openat(int fd, const char *filename, int flags, ...)
+ {
+- mode_t mode;
++ mode_t mode = 0;
+
+ if ((flags & O_CREAT) || (flags & O_TMPFILE) == O_TMPFILE) {
+ va_list ap;
+--
+2.2.0
+
diff --git a/main/musl/0005-math-fix-x86_64-and-x32-asm-not-to-use-sahf-instruct.patch b/main/musl/0005-math-fix-x86_64-and-x32-asm-not-to-use-sahf-instruct.patch
new file mode 100644
index 0000000000..807536be46
--- /dev/null
+++ b/main/musl/0005-math-fix-x86_64-and-x32-asm-not-to-use-sahf-instruct.patch
@@ -0,0 +1,159 @@
+From a732e80d33b4fd6f510f7cec4f5573ef5d89bc4e Mon Sep 17 00:00:00 2001
+From: Szabolcs Nagy <nsz@port70.net>
+Date: Wed, 5 Nov 2014 21:40:29 +0100
+Subject: [PATCH] math: fix x86_64 and x32 asm not to use sahf instruction
+
+Some early x86_64 cpus (released before 2006) did not support sahf/lahf
+instructions so they should be avoided (intel manual says they are only
+supported if CPUID.80000001H:ECX.LAHF-SAHF[bit 0] = 1).
+
+The workaround simplifies exp2l and expm1l because fucomip can be
+used instead of the fucomp;fnstsw;sahf sequence copied from i386.
+
+In fmodl and remainderl sahf is replaced by a simple bit test.
+---
+ src/math/x32/exp2l.s | 13 +++----------
+ src/math/x32/fmodl.s | 4 ++--
+ src/math/x32/remainderl.s | 4 ++--
+ src/math/x86_64/exp2l.s | 13 +++----------
+ src/math/x86_64/fmodl.s | 4 ++--
+ src/math/x86_64/remainderl.s | 4 ++--
+ 6 files changed, 14 insertions(+), 28 deletions(-)
+
+diff --git a/src/math/x32/exp2l.s b/src/math/x32/exp2l.s
+index d9f4d6e..dfb2bc7 100644
+--- a/src/math/x32/exp2l.s
++++ b/src/math/x32/exp2l.s
+@@ -6,9 +6,7 @@ expm1l:
+ fmulp
+ movl $0xc2820000,-4(%esp)
+ flds -4(%esp)
+- fucomp %st(1)
+- fnstsw %ax
+- sahf
++ fucomip %st(1)
+ fld1
+ jb 1f
+ # x*log2e <= -65, return -1 without underflow
+@@ -17,11 +15,8 @@ expm1l:
+ ret
+ 1: fld %st(1)
+ fabs
+- fucom %st(1)
+- fnstsw %ax
++ fucomip %st(1)
+ fstp %st(0)
+- fstp %st(0)
+- sahf
+ ja 1f
+ f2xm1
+ ret
+@@ -53,9 +48,7 @@ exp2l:
+ fld %st(1)
+ fsub %st(1)
+ faddp
+- fucomp %st(1)
+- fnstsw
+- sahf
++ fucomip %st(1)
+ je 2f # x - 0x1p63 + 0x1p63 == x
+ movl $1,(%esp)
+ flds (%esp) # 0x1p-149
+diff --git a/src/math/x32/fmodl.s b/src/math/x32/fmodl.s
+index 9e4378a..b951320 100644
+--- a/src/math/x32/fmodl.s
++++ b/src/math/x32/fmodl.s
+@@ -5,7 +5,7 @@ fmodl:
+ fldt 8(%esp)
+ 1: fprem
+ fstsw %ax
+- sahf
+- jp 1b
++ testb $4,%ah
++ jnz 1b
+ fstp %st(1)
+ ret
+diff --git a/src/math/x32/remainderl.s b/src/math/x32/remainderl.s
+index c97f68a..79bf4fe 100644
+--- a/src/math/x32/remainderl.s
++++ b/src/math/x32/remainderl.s
+@@ -5,7 +5,7 @@ remainderl:
+ fldt 8(%esp)
+ 1: fprem1
+ fstsw %ax
+- sahf
+- jp 1b
++ testb $4,%ah
++ jnz 1b
+ fstp %st(1)
+ ret
+diff --git a/src/math/x86_64/exp2l.s b/src/math/x86_64/exp2l.s
+index 0d6cd56..0e9bdf9 100644
+--- a/src/math/x86_64/exp2l.s
++++ b/src/math/x86_64/exp2l.s
+@@ -6,9 +6,7 @@ expm1l:
+ fmulp
+ movl $0xc2820000,-4(%rsp)
+ flds -4(%rsp)
+- fucomp %st(1)
+- fnstsw %ax
+- sahf
++ fucomip %st(1)
+ fld1
+ jb 1f
+ # x*log2e <= -65, return -1 without underflow
+@@ -17,11 +15,8 @@ expm1l:
+ ret
+ 1: fld %st(1)
+ fabs
+- fucom %st(1)
+- fnstsw %ax
++ fucomip %st(1)
+ fstp %st(0)
+- fstp %st(0)
+- sahf
+ ja 1f
+ f2xm1
+ ret
+@@ -53,9 +48,7 @@ exp2l:
+ fld %st(1)
+ fsub %st(1)
+ faddp
+- fucomp %st(1)
+- fnstsw
+- sahf
++ fucomip %st(1)
+ je 2f # x - 0x1p63 + 0x1p63 == x
+ movl $1,(%rsp)
+ flds (%rsp) # 0x1p-149
+diff --git a/src/math/x86_64/fmodl.s b/src/math/x86_64/fmodl.s
+index ca81e60..cd8d2b7 100644
+--- a/src/math/x86_64/fmodl.s
++++ b/src/math/x86_64/fmodl.s
+@@ -5,7 +5,7 @@ fmodl:
+ fldt 8(%rsp)
+ 1: fprem
+ fstsw %ax
+- sahf
+- jp 1b
++ testb $4,%ah
++ jnz 1b
+ fstp %st(1)
+ ret
+diff --git a/src/math/x86_64/remainderl.s b/src/math/x86_64/remainderl.s
+index 75c1237..2c337cf 100644
+--- a/src/math/x86_64/remainderl.s
++++ b/src/math/x86_64/remainderl.s
+@@ -5,7 +5,7 @@ remainderl:
+ fldt 8(%rsp)
+ 1: fprem1
+ fstsw %ax
+- sahf
+- jp 1b
++ testb $4,%ah
++ jnz 1b
+ fstp %st(1)
+ ret
+--
+2.2.0
+
diff --git a/main/musl/0006-math-use-fnstsw-consistently-instead-of-fstsw-in-x87.patch b/main/musl/0006-math-use-fnstsw-consistently-instead-of-fstsw-in-x87.patch
new file mode 100644
index 0000000000..2bd9dcd556
--- /dev/null
+++ b/main/musl/0006-math-use-fnstsw-consistently-instead-of-fstsw-in-x87.patch
@@ -0,0 +1,168 @@
+From ec4318943a26d4bd4050481d11709853184f2794 Mon Sep 17 00:00:00 2001
+From: Szabolcs Nagy <nsz@port70.net>
+Date: Wed, 5 Nov 2014 22:13:58 +0100
+Subject: [PATCH] math: use fnstsw consistently instead of fstsw in x87 asm
+
+fnstsw does not wait for pending unmasked x87 floating-point exceptions
+and it is the same as fstsw when all exceptions are masked which is the
+only environment libc supports.
+---
+ src/math/i386/fmod.s | 2 +-
+ src/math/i386/fmodf.s | 2 +-
+ src/math/i386/fmodl.s | 2 +-
+ src/math/i386/remainder.s | 2 +-
+ src/math/i386/remainderf.s | 2 +-
+ src/math/i386/remainderl.s | 2 +-
+ src/math/i386/sqrt.s | 2 +-
+ src/math/x32/fmodl.s | 2 +-
+ src/math/x32/remainderl.s | 2 +-
+ src/math/x86_64/fmodl.s | 2 +-
+ src/math/x86_64/remainderl.s | 2 +-
+ 11 files changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/math/i386/fmod.s b/src/math/i386/fmod.s
+index 069fbfe..2113b3c 100644
+--- a/src/math/i386/fmod.s
++++ b/src/math/i386/fmod.s
+@@ -4,7 +4,7 @@ fmod:
+ fldl 12(%esp)
+ fldl 4(%esp)
+ 1: fprem
+- fstsw %ax
++ fnstsw %ax
+ sahf
+ jp 1b
+ fstp %st(1)
+diff --git a/src/math/i386/fmodf.s b/src/math/i386/fmodf.s
+index d99c80f..e04e2a5 100644
+--- a/src/math/i386/fmodf.s
++++ b/src/math/i386/fmodf.s
+@@ -4,7 +4,7 @@ fmodf:
+ flds 8(%esp)
+ flds 4(%esp)
+ 1: fprem
+- fstsw %ax
++ fnstsw %ax
+ sahf
+ jp 1b
+ fstp %st(1)
+diff --git a/src/math/i386/fmodl.s b/src/math/i386/fmodl.s
+index 7e07e7b..0cb3fe9 100644
+--- a/src/math/i386/fmodl.s
++++ b/src/math/i386/fmodl.s
+@@ -4,7 +4,7 @@ fmodl:
+ fldt 16(%esp)
+ fldt 4(%esp)
+ 1: fprem
+- fstsw %ax
++ fnstsw %ax
+ sahf
+ jp 1b
+ fstp %st(1)
+diff --git a/src/math/i386/remainder.s b/src/math/i386/remainder.s
+index 7f4be05..ab1da95 100644
+--- a/src/math/i386/remainder.s
++++ b/src/math/i386/remainder.s
+@@ -7,7 +7,7 @@ drem:
+ fldl 12(%esp)
+ fldl 4(%esp)
+ 1: fprem1
+- fstsw %ax
++ fnstsw %ax
+ sahf
+ jp 1b
+ fstp %st(1)
+diff --git a/src/math/i386/remainderf.s b/src/math/i386/remainderf.s
+index ac6e367..6a7378a 100644
+--- a/src/math/i386/remainderf.s
++++ b/src/math/i386/remainderf.s
+@@ -7,7 +7,7 @@ dremf:
+ flds 8(%esp)
+ flds 4(%esp)
+ 1: fprem1
+- fstsw %ax
++ fnstsw %ax
+ sahf
+ jp 1b
+ fstp %st(1)
+diff --git a/src/math/i386/remainderl.s b/src/math/i386/remainderl.s
+index 0097872..b41518e 100644
+--- a/src/math/i386/remainderl.s
++++ b/src/math/i386/remainderl.s
+@@ -4,7 +4,7 @@ remainderl:
+ fldt 16(%esp)
+ fldt 4(%esp)
+ 1: fprem1
+- fstsw %ax
++ fnstsw %ax
+ sahf
+ jp 1b
+ fstp %st(1)
+diff --git a/src/math/i386/sqrt.s b/src/math/i386/sqrt.s
+index 8289d09..57837e2 100644
+--- a/src/math/i386/sqrt.s
++++ b/src/math/i386/sqrt.s
+@@ -2,7 +2,7 @@
+ .type sqrt,@function
+ sqrt: fldl 4(%esp)
+ fsqrt
+- fstsw %ax
++ fnstsw %ax
+ sub $12,%esp
+ fld %st(0)
+ fstpt (%esp)
+diff --git a/src/math/x32/fmodl.s b/src/math/x32/fmodl.s
+index b951320..c3f790c 100644
+--- a/src/math/x32/fmodl.s
++++ b/src/math/x32/fmodl.s
+@@ -4,7 +4,7 @@ fmodl:
+ fldt 24(%esp)
+ fldt 8(%esp)
+ 1: fprem
+- fstsw %ax
++ fnstsw %ax
+ testb $4,%ah
+ jnz 1b
+ fstp %st(1)
+diff --git a/src/math/x32/remainderl.s b/src/math/x32/remainderl.s
+index 79bf4fe..376ba0e 100644
+--- a/src/math/x32/remainderl.s
++++ b/src/math/x32/remainderl.s
+@@ -4,7 +4,7 @@ remainderl:
+ fldt 24(%esp)
+ fldt 8(%esp)
+ 1: fprem1
+- fstsw %ax
++ fnstsw %ax
+ testb $4,%ah
+ jnz 1b
+ fstp %st(1)
+diff --git a/src/math/x86_64/fmodl.s b/src/math/x86_64/fmodl.s
+index cd8d2b7..ea07b40 100644
+--- a/src/math/x86_64/fmodl.s
++++ b/src/math/x86_64/fmodl.s
+@@ -4,7 +4,7 @@ fmodl:
+ fldt 24(%rsp)
+ fldt 8(%rsp)
+ 1: fprem
+- fstsw %ax
++ fnstsw %ax
+ testb $4,%ah
+ jnz 1b
+ fstp %st(1)
+diff --git a/src/math/x86_64/remainderl.s b/src/math/x86_64/remainderl.s
+index 2c337cf..cb3857b 100644
+--- a/src/math/x86_64/remainderl.s
++++ b/src/math/x86_64/remainderl.s
+@@ -4,7 +4,7 @@ remainderl:
+ fldt 24(%rsp)
+ fldt 8(%rsp)
+ 1: fprem1
+- fstsw %ax
++ fnstsw %ax
+ testb $4,%ah
+ jnz 1b
+ fstp %st(1)
+--
+2.2.0
+
diff --git a/main/musl/0007-fix-behavior-of-printf-with-alt-form-octal-zero-prec.patch b/main/musl/0007-fix-behavior-of-printf-with-alt-form-octal-zero-prec.patch
new file mode 100644
index 0000000000..c58122cfa5
--- /dev/null
+++ b/main/musl/0007-fix-behavior-of-printf-with-alt-form-octal-zero-prec.patch
@@ -0,0 +1,35 @@
+From b91cdbe2bc8b626aa04dc6e3e84345accf34e4b1 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Sat, 15 Nov 2014 12:16:19 -0500
+Subject: [PATCH] fix behavior of printf with alt-form octal, zero precision,
+ zero value
+
+in this case there are two conflicting rules in play: that an explicit
+precision of zero with the value zero produces no output, and that the
+'#' modifier for octal increases the precision sufficiently to yield a
+leading zero. ISO C (7.19.6.1 paragraph 6 in C99+TC3) includes a
+parenthetical remark to clarify that the precision-increasing behavior
+takes precedence, but the corresponding text in POSIX off of which I
+based the implementation is missing this remark.
+
+this issue was covered in WG14 DR#151.
+---
+ src/stdio/vfprintf.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/stdio/vfprintf.c b/src/stdio/vfprintf.c
+index ea25772..39c1e86 100644
+--- a/src/stdio/vfprintf.c
++++ b/src/stdio/vfprintf.c
+@@ -570,7 +570,7 @@ static int printf_core(FILE *f, const char *fmt, va_list *ap, union arg *nl_arg,
+ if (0) {
+ case 'o':
+ a = fmt_o(arg.i, z);
+- if ((fl&ALT_FORM) && arg.i) prefix+=5, pl=1;
++ if ((fl&ALT_FORM) && p<z-a+1) p=z-a+1;
+ } if (0) {
+ case 'd': case 'i':
+ pl=1;
+--
+2.2.0
+
diff --git a/main/musl/0008-implement-a-private-state-for-the-uchar.h-functions.patch b/main/musl/0008-implement-a-private-state-for-the-uchar.h-functions.patch
new file mode 100644
index 0000000000..5dfdae2044
--- /dev/null
+++ b/main/musl/0008-implement-a-private-state-for-the-uchar.h-functions.patch
@@ -0,0 +1,72 @@
+From 941644e98c3d05761b4639a8ae5afacd8586d1b9 Mon Sep 17 00:00:00 2001
+From: Jens Gustedt <Jens.Gustedt@inria.fr>
+Date: Sun, 9 Nov 2014 11:18:08 +0100
+Subject: [PATCH] implement a private state for the uchar.h functions
+
+The C standard is imperative on that:
+
+ 7.28.1 ... If ps is a null pointer, each function uses its own internal
+ mbstate_t object instead, which is initialized at program startup to
+ the initial conversion state;
+
+and these functions are also not supposed to implicitly use the state of
+the wchar.h functions:
+
+ 7.29.6.3 ... The implementation behaves as if no library function calls
+ these functions with a null pointer for ps.
+
+Previously this resulted in two bugs.
+
+ - The functions c16rtomb and mbrtoc16 would crash when called with ps
+ set to null.
+
+ - The function mbrtoc32 used the private state of mbrtowc, which it
+ is not allowed to do.
+---
+ src/multibyte/c16rtomb.c | 2 ++
+ src/multibyte/mbrtoc16.c | 2 ++
+ src/multibyte/mbrtoc32.c | 2 ++
+ 3 files changed, 6 insertions(+)
+
+diff --git a/src/multibyte/c16rtomb.c b/src/multibyte/c16rtomb.c
+index 2e8ec97..39ca375 100644
+--- a/src/multibyte/c16rtomb.c
++++ b/src/multibyte/c16rtomb.c
+@@ -4,6 +4,8 @@
+
+ size_t c16rtomb(char *restrict s, char16_t c16, mbstate_t *restrict ps)
+ {
++ static unsigned internal_state;
++ if (!ps) ps = (void *)&internal_state;
+ unsigned *x = (unsigned *)ps;
+ wchar_t wc;
+
+diff --git a/src/multibyte/mbrtoc16.c b/src/multibyte/mbrtoc16.c
+index 74b7d77..765ff90 100644
+--- a/src/multibyte/mbrtoc16.c
++++ b/src/multibyte/mbrtoc16.c
+@@ -3,6 +3,8 @@
+
+ size_t mbrtoc16(char16_t *restrict pc16, const char *restrict s, size_t n, mbstate_t *restrict ps)
+ {
++ static unsigned internal_state;
++ if (!ps) ps = (void *)&internal_state;
+ unsigned *pending = (unsigned *)ps;
+
+ if (!s) return mbrtoc16(0, "", 1, ps);
+diff --git a/src/multibyte/mbrtoc32.c b/src/multibyte/mbrtoc32.c
+index c6d2082..9b6b236 100644
+--- a/src/multibyte/mbrtoc32.c
++++ b/src/multibyte/mbrtoc32.c
+@@ -3,6 +3,8 @@
+
+ size_t mbrtoc32(char32_t *restrict pc32, const char *restrict s, size_t n, mbstate_t *restrict ps)
+ {
++ static unsigned internal_state;
++ if (!ps) ps = (void *)&internal_state;
+ if (!s) return mbrtoc32(0, "", 1, ps);
+ wchar_t wc;
+ size_t ret = mbrtowc(&wc, s, n, ps);
+--
+2.2.0
+
diff --git a/main/musl/0009-getopt-fix-optional-argument-processing.patch b/main/musl/0009-getopt-fix-optional-argument-processing.patch
new file mode 100644
index 0000000000..e486d0c5d0
--- /dev/null
+++ b/main/musl/0009-getopt-fix-optional-argument-processing.patch
@@ -0,0 +1,38 @@
+From acccc93e084641861ca553317edb7da7791833b5 Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@openwrt.org>
+Date: Tue, 21 Oct 2014 22:24:50 +0200
+Subject: [PATCH] getopt: fix optional argument processing
+
+Processing an option character with optional argument fails if the
+option is last on the command line. This happens because the
+if (optind >= argc) check runs first before testing for optional
+argument.
+---
+ src/misc/getopt.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/misc/getopt.c b/src/misc/getopt.c
+index 8a2e4d5..f94c4f7 100644
+--- a/src/misc/getopt.c
++++ b/src/misc/getopt.c
+@@ -55,7 +55,8 @@ int getopt(int argc, char * const argv[], const char *optstring)
+ return '?';
+ }
+ if (optstring[i+1] == ':') {
+- if (optind >= argc) {
++ if (optstring[i+2] == ':') optarg = 0;
++ else if (optind >= argc) {
+ if (optstring[0] == ':') return ':';
+ if (opterr) {
+ write(2, argv[0], strlen(argv[0]));
+@@ -65,7 +66,6 @@ int getopt(int argc, char * const argv[], const char *optstring)
+ }
+ return '?';
+ }
+- if (optstring[i+2] == ':') optarg = 0;
+ if (optstring[i+2] != ':' || optpos) {
+ optarg = argv[optind++] + optpos;
+ optpos = 0;
+--
+2.2.0
+
diff --git a/main/musl/0010-adapt-dynamic-linker-for-new-binutils-versions-that-.patch b/main/musl/0010-adapt-dynamic-linker-for-new-binutils-versions-that-.patch
new file mode 100644
index 0000000000..07a7083bf0
--- /dev/null
+++ b/main/musl/0010-adapt-dynamic-linker-for-new-binutils-versions-that-.patch
@@ -0,0 +1,31 @@
+From d8dc2b7c0289b12eeef4feff65e3c918111b0f55 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Sun, 23 Nov 2014 16:17:57 -0500
+Subject: [PATCH] adapt dynamic linker for new binutils versions that omit
+ DT_RPATH
+
+the new DT_RUNPATH semantics for search order are always used, and
+since binutils had always set both DT_RPATH and DT_RUNPATH when the
+latter was used, processing only DT_RPATH worked fine. however, recent
+binutils has stopped generating DT_RPATH when DT_RUNPATH is used,
+which broke support for this feature completely.
+---
+ src/ldso/dynlink.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/ldso/dynlink.c b/src/ldso/dynlink.c
+index 1de430c..00af886 100644
+--- a/src/ldso/dynlink.c
++++ b/src/ldso/dynlink.c
+@@ -645,6 +645,8 @@ static void decode_dyn(struct dso *p)
+ p->hashtab = (void *)(p->base + dyn[DT_HASH]);
+ if (dyn[0]&(1<<DT_RPATH))
+ p->rpath_orig = (void *)(p->strings + dyn[DT_RPATH]);
++ if (dyn[0]&(1<<DT_RUNPATH))
++ p->rpath_orig = (void *)(p->strings + dyn[DT_RUNPATH]);
+ if (search_vec(p->dynv, dyn, DT_GNU_HASH))
+ p->ghashtab = (void *)(p->base + *dyn);
+ if (search_vec(p->dynv, dyn, DT_VERSYM))
+--
+2.2.0
+
diff --git a/main/musl/0011-add-support-for-non-option-arguments-extension-to-ge.patch b/main/musl/0011-add-support-for-non-option-arguments-extension-to-ge.patch
new file mode 100644
index 0000000000..7bf8e75e85
--- /dev/null
+++ b/main/musl/0011-add-support-for-non-option-arguments-extension-to-ge.patch
@@ -0,0 +1,71 @@
+From b72cd07f176b876aa51864d93aa8101477b1d732 Mon Sep 17 00:00:00 2001
+From: Gianluca Anzolin <gianluca@sottospazio.it>
+Date: Tue, 25 Nov 2014 08:56:03 +0100
+Subject: [PATCH] add support for non-option arguments extension to getopt
+
+this is a GNU extension, activated by including '-' as the first
+character of the options string, whereby non-option arguments are
+processed as if they were arguments to an option character '\1' rather
+than ending option processing.
+---
+ src/misc/getopt.c | 17 ++++++++++++++++-
+ src/misc/getopt_long.c | 7 ++++---
+ 2 files changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/src/misc/getopt.c b/src/misc/getopt.c
+index f94c4f7..a698c8d 100644
+--- a/src/misc/getopt.c
++++ b/src/misc/getopt.c
+@@ -24,8 +24,20 @@ int getopt(int argc, char * const argv[], const char *optstring)
+ optind = 1;
+ }
+
+- if (optind >= argc || !argv[optind] || argv[optind][0] != '-' || !argv[optind][1])
++ if (optind >= argc || !argv[optind])
+ return -1;
++
++ if (argv[optind][0] != '-') {
++ if (optstring[0] == '-') {
++ optarg = argv[optind++];
++ return 1;
++ }
++ return -1;
++ }
++
++ if (!argv[optind][1])
++ return -1;
++
+ if (argv[optind][1] == '-' && !argv[optind][2])
+ return optind++, -1;
+
+@@ -43,6 +55,9 @@ int getopt(int argc, char * const argv[], const char *optstring)
+ optpos = 0;
+ }
+
++ if (optstring[0] == '-')
++ optstring++;
++
+ for (i=0; (l = mbtowc(&d, optstring+i, MB_LEN_MAX)) && d!=c; i+=l>0?l:1);
+
+ if (d != c) {
+diff --git a/src/misc/getopt_long.c b/src/misc/getopt_long.c
+index 4ef5a5c..3d318ce 100644
+--- a/src/misc/getopt_long.c
++++ b/src/misc/getopt_long.c
+@@ -12,9 +12,10 @@ static int __getopt_long(int argc, char *const *argv, const char *optstring, con
+ __optpos = 0;
+ optind = 1;
+ }
+- if (optind >= argc || !argv[optind] || argv[optind][0] != '-') return -1;
+- if ((longonly && argv[optind][1]) ||
+- (argv[optind][1] == '-' && argv[optind][2]))
++ if (optind >= argc || !argv[optind]) return -1;
++ if (argv[optind][0] == '-' &&
++ ((longonly && argv[optind][1]) ||
++ (argv[optind][1] == '-' && argv[optind][2])))
+ {
+ int i;
+ for (i=0; longopts[i].name; i++) {
+--
+2.2.0
+
diff --git a/main/musl/0012-fix-uninitialized-output-from-sched_getaffinity.patch b/main/musl/0012-fix-uninitialized-output-from-sched_getaffinity.patch
new file mode 100644
index 0000000000..8e99597be3
--- /dev/null
+++ b/main/musl/0012-fix-uninitialized-output-from-sched_getaffinity.patch
@@ -0,0 +1,39 @@
+From a56e339419c1a90f8a85f86621f3c73945e07b23 Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Tue, 2 Dec 2014 21:54:36 -0500
+Subject: [PATCH] fix uninitialized output from sched_getaffinity
+
+the sched_getaffinity syscall only fills a cpu set up to the set size
+used/supported by the kernel. the rest is left untouched and userspace
+is responsible for zero-filling it based on the return value of the
+syscall.
+---
+ src/sched/affinity.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/sched/affinity.c b/src/sched/affinity.c
+index 3b40211..737e41b 100644
+--- a/src/sched/affinity.c
++++ b/src/sched/affinity.c
+@@ -1,5 +1,6 @@
+ #define _GNU_SOURCE
+ #include <sched.h>
++#include <string.h>
+ #include "pthread_impl.h"
+ #include "syscall.h"
+
+@@ -16,7 +17,10 @@ int pthread_setaffinity_np(pthread_t td, size_t size, const cpu_set_t *set)
+ int sched_getaffinity(pid_t tid, size_t size, cpu_set_t *set)
+ {
+ long ret = __syscall(SYS_sched_getaffinity, tid, size, set);
+- if (ret > 0) ret = 0;
++ if (ret > 0) {
++ if (ret < size) memset((char *)set+ret, 0, size-ret);
++ ret = 0;
++ }
+ return __syscall_ret(ret);
+ }
+
+--
+2.2.0
+
diff --git a/main/musl/0013-fix-return-value-of-pthread_getaffinity_np-and-pthre.patch b/main/musl/0013-fix-return-value-of-pthread_getaffinity_np-and-pthre.patch
new file mode 100644
index 0000000000..a38ab2f496
--- /dev/null
+++ b/main/musl/0013-fix-return-value-of-pthread_getaffinity_np-and-pthre.patch
@@ -0,0 +1,51 @@
+From 66140b0c926ed097f2cb7474863523e4af351f5b Mon Sep 17 00:00:00 2001
+From: Rich Felker <dalias@aerifal.cx>
+Date: Tue, 2 Dec 2014 22:17:52 -0500
+Subject: [PATCH] fix return value of pthread_getaffinity_np and
+ pthread_setaffinity_np
+
+these functions are expected to return an error code rather than
+setting errno and returning -1.
+---
+ src/sched/affinity.c | 19 +++++++++++--------
+ 1 file changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/src/sched/affinity.c b/src/sched/affinity.c
+index 737e41b..948ece4 100644
+--- a/src/sched/affinity.c
++++ b/src/sched/affinity.c
+@@ -11,20 +11,23 @@ int sched_setaffinity(pid_t tid, size_t size, const cpu_set_t *set)
+
+ int pthread_setaffinity_np(pthread_t td, size_t size, const cpu_set_t *set)
+ {
+- return syscall(SYS_sched_setaffinity, td->tid, size, set);
++ return -__syscall(SYS_sched_setaffinity, td->tid, size, set);
+ }
+
+-int sched_getaffinity(pid_t tid, size_t size, cpu_set_t *set)
++static int do_getaffinity(pid_t tid, size_t size, cpu_set_t *set)
+ {
+ long ret = __syscall(SYS_sched_getaffinity, tid, size, set);
+- if (ret > 0) {
+- if (ret < size) memset((char *)set+ret, 0, size-ret);
+- ret = 0;
+- }
+- return __syscall_ret(ret);
++ if (ret < 0) return ret;
++ if (ret < size) memset((char *)set+ret, 0, size-ret);
++ return 0;
++}
++
++int sched_getaffinity(pid_t tid, size_t size, cpu_set_t *set)
++{
++ return __syscall_ret(do_getaffinity(tid, size, set));
+ }
+
+ int pthread_getaffinity_np(pthread_t td, size_t size, cpu_set_t *set)
+ {
+- return sched_getaffinity(td->tid, size, set);
++ return -do_getaffinity(td->tid, size, set);
+ }
+--
+2.2.0
+
diff --git a/main/musl/0014-add-arm-private-syscall-numbers.patch b/main/musl/0014-add-arm-private-syscall-numbers.patch
new file mode 100644
index 0000000000..408b65d792
--- /dev/null
+++ b/main/musl/0014-add-arm-private-syscall-numbers.patch
@@ -0,0 +1,29 @@
+From be1f67ab6fde1989af7b2e2946804e9009931a8a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Wed, 3 Dec 2014 16:09:37 +0200
+Subject: [PATCH] add arm private syscall numbers
+
+it is part of kernel uapi, and some programs (e.g. nodejs) do use them
+---
+ arch/arm/bits/syscall.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/arch/arm/bits/syscall.h b/arch/arm/bits/syscall.h
+index d1b1c99..df23b83 100644
+--- a/arch/arm/bits/syscall.h
++++ b/arch/arm/bits/syscall.h
+@@ -340,6 +340,11 @@
+ #define __NR_getrandom 384
+ #define __NR_memfd_create 385
+
++#define __ARM_NR_breakpoint 0x0f0001
++#define __ARM_NR_cacheflush 0x0f0002
++#define __ARM_NR_usr26 0x0f0003
++#define __ARM_NR_usr32 0x0f0004
++#define __ARM_NR_set_tls 0x0f0005
+
+ /* Repeated with SYS_ prefix */
+
+--
+2.2.0
+
diff --git a/main/musl/APKBUILD b/main/musl/APKBUILD
index d8f8c9fda8..0c77871f9e 100644
--- a/main/musl/APKBUILD
+++ b/main/musl/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=musl
pkgver=1.1.5
-pkgrel=0
+pkgrel=1
pkgdesc="the musl c library (libc) implementation"
url="http://www.musl-libc.org/"
arch="all"
@@ -13,6 +13,20 @@ makedepends="$depends_dev"
install="$pkgname.post-upgrade"
subpackages="$pkgname-dev $pkgname-utils $pkgname-dbg"
source="http://www.musl-libc.org/releases/musl-$pkgver.tar.gz
+ 0001-manually-shrink-wrap-fast-path-in-pthread_once.patch
+ 0002-fix-failure-of-open-to-read-variadic-mode-argument-f.patch
+ 0003-fix-invalid-access-by-openat-to-possibly-missing-var.patch
+ 0004-fix-uninitialized-mode-variable-in-openat-function.patch
+ 0005-math-fix-x86_64-and-x32-asm-not-to-use-sahf-instruct.patch
+ 0006-math-use-fnstsw-consistently-instead-of-fstsw-in-x87.patch
+ 0007-fix-behavior-of-printf-with-alt-form-octal-zero-prec.patch
+ 0008-implement-a-private-state-for-the-uchar.h-functions.patch
+ 0009-getopt-fix-optional-argument-processing.patch
+ 0010-adapt-dynamic-linker-for-new-binutils-versions-that-.patch
+ 0011-add-support-for-non-option-arguments-extension-to-ge.patch
+ 0012-fix-uninitialized-output-from-sched_getaffinity.patch
+ 0013-fix-return-value-of-pthread_getaffinity_np-and-pthre.patch
+ 0014-add-arm-private-syscall-numbers.patch
1001-add-basic-dns-record-parsing-functions.patch
1003-remove-ulimit-fiddling-from-setxid.patch
@@ -118,6 +132,20 @@ utils() {
}
md5sums="94f8aa9dab80229fed68991bb9984cc5 musl-1.1.5.tar.gz
+facc7c96b21a72bc3ef3917f4add88ca 0001-manually-shrink-wrap-fast-path-in-pthread_once.patch
+4ef3fa8b6fdc78515b83b7680b55a55f 0002-fix-failure-of-open-to-read-variadic-mode-argument-f.patch
+70f9b257bcc76d6d9fa1e4d55327c220 0003-fix-invalid-access-by-openat-to-possibly-missing-var.patch
+7d1b8c611caafaf3b6c77359c7bf521e 0004-fix-uninitialized-mode-variable-in-openat-function.patch
+bdd96730e9f4ce664502bc31336f4941 0005-math-fix-x86_64-and-x32-asm-not-to-use-sahf-instruct.patch
+feba13393b07c4ce0a87cba7e3de49e1 0006-math-use-fnstsw-consistently-instead-of-fstsw-in-x87.patch
+859ca10150b56fb1ec046c75554c8aed 0007-fix-behavior-of-printf-with-alt-form-octal-zero-prec.patch
+d7cc03dbd77755b25c7108aada242980 0008-implement-a-private-state-for-the-uchar.h-functions.patch
+5ff1064dd67d75814b08270d1448042e 0009-getopt-fix-optional-argument-processing.patch
+518c3b3a9819bf7ce1743a3fe58b970e 0010-adapt-dynamic-linker-for-new-binutils-versions-that-.patch
+3896f988be70fad4ff9a774580b23e6c 0011-add-support-for-non-option-arguments-extension-to-ge.patch
+d9b4d921348fa86e57c44bf4c95714bd 0012-fix-uninitialized-output-from-sched_getaffinity.patch
+4ac6a08107b65927400f59f8f5e07f15 0013-fix-return-value-of-pthread_getaffinity_np-and-pthre.patch
+5d8dde8258654d404d0b7a06c5046829 0014-add-arm-private-syscall-numbers.patch
2371eb1ce057fcb709a0e6a81f0d356c 1001-add-basic-dns-record-parsing-functions.patch
71b2a4dcc39c436a6b89173943424043 1003-remove-ulimit-fiddling-from-setxid.patch
830d01f7821b978df770b06db3790921 ldconfig
@@ -127,6 +155,20 @@ md5sums="94f8aa9dab80229fed68991bb9984cc5 musl-1.1.5.tar.gz
2b941c4251cac44988a4abfc50e21267 getent.c
45f92f8d59cf84d765de698a9578dbf4 iconv.c"
sha256sums="352362b1724cc9740f4c3ce0fe02aae45e4de9809ea4ac961f31aedc11b87393 musl-1.1.5.tar.gz
+dec352852801f8a5c7e6957014f761efce21e4b6c3223cf8ee6f7cac24c12c01 0001-manually-shrink-wrap-fast-path-in-pthread_once.patch
+83168c779dbc575ab240aa360c320bdca8de41cbbd0ad8b9a26fbd74466ca58d 0002-fix-failure-of-open-to-read-variadic-mode-argument-f.patch
+c04a1272b934d968a1fbec30269d02171ae5d6b7d4f3cd5d49cbd905c975341c 0003-fix-invalid-access-by-openat-to-possibly-missing-var.patch
+7d16772140a3f0811c0cf6822eb713e7a77b8974b609f9c7634ae42c3ca25a95 0004-fix-uninitialized-mode-variable-in-openat-function.patch
+6052e3b1e0f489edcba648a78122ec21f0e2e2085917b1d2544e5802b2c83e0d 0005-math-fix-x86_64-and-x32-asm-not-to-use-sahf-instruct.patch
+44905edc8b8c66b94c3428f029cd6aa5147074a02ca7f795bc8f92866ba328cf 0006-math-use-fnstsw-consistently-instead-of-fstsw-in-x87.patch
+46306557a669ac4e78a44664b49374a4a30eb041bba5f988bc666f29a2bba3d6 0007-fix-behavior-of-printf-with-alt-form-octal-zero-prec.patch
+a3ac50a13d60ed7115fa423030029513d0f5889b63b7047356234e05095d306c 0008-implement-a-private-state-for-the-uchar.h-functions.patch
+9300e0b2c7095fb070a43097c79aad34f019015dfcfae32ef946411537471d2f 0009-getopt-fix-optional-argument-processing.patch
+bb48d16025f1a8323673141a0d6e5b5e54ddfbf7056cf8e2e38343e55a85a67e 0010-adapt-dynamic-linker-for-new-binutils-versions-that-.patch
+44801a22c3cabc457043073a707412396c97fef0d0f49984818ee8df69f1b3d3 0011-add-support-for-non-option-arguments-extension-to-ge.patch
+e3622c3b84c0f984b864ecdf5d26f602723d81afee0c9c5dd5a2f0f1b6325965 0012-fix-uninitialized-output-from-sched_getaffinity.patch
+a6fa226f2bc0b2f56ef38df09bfe066b70e00d915b99657c2ced29c1262dfce4 0013-fix-return-value-of-pthread_getaffinity_np-and-pthre.patch
+fa2306adeda1a2ee733fcbc64fc8e0bb377b3c0dd6870ea15322722f08d135e1 0014-add-arm-private-syscall-numbers.patch
75053a31f6b84a64846d92c0ec631c76d7f747a9c0dc92a6dc1aa1bddfe2ea76 1001-add-basic-dns-record-parsing-functions.patch
fb542c2bd5081ff2f601c519edb3dac8f54ca5c888f44bc6cfb84e6565472025 1003-remove-ulimit-fiddling-from-setxid.patch
b4a2c06db38742e8c42c3c9838b285a7d8cdac6c091ff3df5ff9a15f1e41b9c7 ldconfig
@@ -136,6 +178,20 @@ d87d0cbb3690ae2c5d8cc218349fd8278b93855dd625deaf7ae50e320aad247c getconf.c
68373a55e89ce85c562d941ccf588337d6cc6c9c17689d695f65cd7607134bbe getent.c
f79a2930a2e5bb0624321589edf8b889d1e9b603e01e6b7ae214616605b3fdd7 iconv.c"
sha512sums="4436887367137cbfc6d34e0f403b8dd36db2a55a5160681fef4de7cc0cb1be38487ea708e6aa6dc1328b61c62868b6cc19f099649c9d12e1ba812dfa8844b772 musl-1.1.5.tar.gz
+665cdf9e616493629759ee8184863c124bd042c343f9408e93c5e87d9ed63ded1dce875cd659270d6bcb4453833ec578c81636c80aac15b6bb98f73295087e62 0001-manually-shrink-wrap-fast-path-in-pthread_once.patch
+e650cf51c88204fad1dc29f8df8ec2faa5f746fa7b818e8b695ed8bb5c3788e7144e342e793731e0ebeaa7bc836b6b0d0f8006e33b802b96450f6cdc9bbdb0cc 0002-fix-failure-of-open-to-read-variadic-mode-argument-f.patch
+96d884faff0b54e1cca9673faa26041c600148e86069ca029fa08fcba25423adc81ada03a3039000f6dfaa3f57f97197b2b54d231b08a051a61ce992e4aaa796 0003-fix-invalid-access-by-openat-to-possibly-missing-var.patch
+15ba4fa68e8d7b890672789b03f7772bb150b1143883b2e77ade3b7d19ecf9ce2220b34a9ab00bd58e255880ee4cd79278986683ca5af32f84df3c3d09a79c58 0004-fix-uninitialized-mode-variable-in-openat-function.patch
+ab26de82db2cb9d36bc8f21e5d1a9e89b8e55f189ec67e87d036911ed4bed6e22a78c06ca676136d9c3903f3702f517785566b3aec67d3cb8f861676dc795283 0005-math-fix-x86_64-and-x32-asm-not-to-use-sahf-instruct.patch
+79a082aa9a8588a1778f6d447cd938db7c8c0564fbded6dfd795a96d2c8cc1080b9553cf3a68d951a349c7eae40fd854cdf241a2633afbd456f61d077a9c0f43 0006-math-use-fnstsw-consistently-instead-of-fstsw-in-x87.patch
+564c590cc88eaf85a9c2d65c179589acfd6590639d51227375e46ebe0aa95421ac21c9042aae729a07e6ff8373a81e5c2f1e1776a76372d6a051b23f2e44df69 0007-fix-behavior-of-printf-with-alt-form-octal-zero-prec.patch
+c4fa58663099b5a322557e7f59bdfbe13082baaa07fd387e62a0a72ed89b41b10d766d9e5c7fac8c1d56dc85c1528c7155bfa9e72bd29fe989ff88d56e8b6184 0008-implement-a-private-state-for-the-uchar.h-functions.patch
+c8e8d9234993756822036e6854a5a9b80319a3c568f0ffb61efc7d5e963d008e0eb4b581535a257280759bedbba131d4cd9772dea6e8b1fa8edb41a4c08cd985 0009-getopt-fix-optional-argument-processing.patch
+542173281f5c424922157833aa142bec567d99e402299f59a63685cef31434a5f19fbe55d6858250fc4d930a755855c0cc6946074869cf58777c551ceff4b9a9 0010-adapt-dynamic-linker-for-new-binutils-versions-that-.patch
+c15f3a2cbc7e83efbad86930d64e3dd131a4ecc0c0956a395d344ef7e6d2e60d70b2181aefe7c2dddb866cb854d5d77d211ded6344784ddc789409dc1572c5d9 0011-add-support-for-non-option-arguments-extension-to-ge.patch
+fcd04e66c812d108712d2ad937f117500d73311a0d1390bd6834d2093d844751bb0644f8b4ea820a3430b7b73e318a84e58f26419d5e664fb56b4507f5cf8e9c 0012-fix-uninitialized-output-from-sched_getaffinity.patch
+85c3082a4fde1ec2739eb78b820792430cba9aeb082c53718698681b929675ee73546968cc3a41b38711afa2d140296bee7d9e7f43e9d5279cc7fd508835b1fc 0013-fix-return-value-of-pthread_getaffinity_np-and-pthre.patch
+3374b983f6a5e4f8f0dc3e67c0cfb0d6fac153c6d5f7e604381e898b318f183faf8fc3995b960cd5a5fd7df0127b16cc6a98e3b0a534b1f156412af492f90ba1 0014-add-arm-private-syscall-numbers.patch
5b8ffa0a50419581adbf6ce2dae5797774022551c6331fa5aa2ff13635eb72b74eedd8a92cb478d45d73e1956af2f588669681ac414f3a255abd4d8ba8579448 1001-add-basic-dns-record-parsing-functions.patch
dae010b45419fcab64410568466f659cdc874e63113025e2cbc2fbab047b470fec23851ecbef08886505924482a069caf37c16b483b6922535fbd31832f1c4a3 1003-remove-ulimit-fiddling-from-setxid.patch
8d3a2d5315fc56fee7da9abb8b89bb38c6046c33d154c10d168fb35bfde6b0cf9f13042a3bceee34daf091bc409d699223735dcf19f382eeee1f6be34154f26f ldconfig