summaryrefslogtreecommitdiffstats
path: root/main/musl/0004-e94d0692-to-83c98aac.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/musl/0004-e94d0692-to-83c98aac.patch')
-rw-r--r--main/musl/0004-e94d0692-to-83c98aac.patch59
1 files changed, 59 insertions, 0 deletions
diff --git a/main/musl/0004-e94d0692-to-83c98aac.patch b/main/musl/0004-e94d0692-to-83c98aac.patch
new file mode 100644
index 000000000..88cf625fc
--- /dev/null
+++ b/main/musl/0004-e94d0692-to-83c98aac.patch
@@ -0,0 +1,59 @@
+diff --git a/src/internal/syscall.h b/src/internal/syscall.h
+index 88fc89c..dcfae00 100644
+--- a/src/internal/syscall.h
++++ b/src/internal/syscall.h
+@@ -10,7 +10,7 @@ typedef long syscall_arg_t;
+ #endif
+
+ #if defined(__PIC__) && (100*__GNUC__+__GNUC_MINOR__ >= 303)
+-__attribute__((visibility("protected")))
++__attribute__((visibility("hidden")))
+ #endif
+ long __syscall_ret(unsigned long), __syscall(syscall_arg_t, ...),
+ __syscall_cp(syscall_arg_t, syscall_arg_t, syscall_arg_t, syscall_arg_t,
+diff --git a/src/math/modfl.c b/src/math/modfl.c
+index f736bba..4b03a4b 100644
+--- a/src/math/modfl.c
++++ b/src/math/modfl.c
+@@ -3,7 +3,12 @@
+ #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+ long double modfl(long double x, long double *iptr)
+ {
+- return modf(x, (double *)iptr);
++ double d;
++ long double r;
++
++ r = modf(x, &d);
++ *iptr = d;
++ return r;
+ }
+ #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
+ #if LDBL_MANT_DIG == 64
+diff --git a/src/math/sincosl.c b/src/math/sincosl.c
+index 2c60080..d3ac1c4 100644
+--- a/src/math/sincosl.c
++++ b/src/math/sincosl.c
+@@ -4,7 +4,10 @@
+ #if LDBL_MANT_DIG == 53 && LDBL_MAX_EXP == 1024
+ void sincosl(long double x, long double *sin, long double *cos)
+ {
+- sincos(x, (double *)sin, (double *)cos);
++ double sind, cosd;
++ sincos(x, &sind, &cosd);
++ *sin = sind;
++ *cos = cosd;
+ }
+ #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
+ void sincosl(long double x, long double *sin, long double *cos)
+diff --git a/src/string/memmem.c b/src/string/memmem.c
+index 5211d75..a5a249f 100644
+--- a/src/string/memmem.c
++++ b/src/string/memmem.c
+@@ -139,6 +139,7 @@ void *memmem(const void *h0, size_t k, const void *n0, size_t l)
+ /* Use faster algorithms for short needles */
+ h = memchr(h0, *n, k);
+ if (!h || l==1) return (void *)h;
++ k -= h - (const unsigned char *)h0;
+ if (l==2) return twobyte_memmem(h, k, n);
+ if (l==3) return threebyte_memmem(h, k, n);
+ if (l==4) return fourbyte_memmem(h, k, n);