@@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/target.mk
PKG_NAME:=musl
-PKG_VERSION:=1.1.19
+PKG_VERSION:=1.1.20-pre
PKG_RELEASE=1
PKG_SOURCE_PROTO:=git
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=55df09bfccbfe21fc9dd7d8f94550c0ff25ace04
-PKG_MIRROR_HASH:=eb94e4e7e94221dd8890afd9b29e2562c36cf5585649035349ca1c6c1c354f2b
+PKG_SOURCE_VERSION:=f2c6dbe2442027ed8fe0fa869918e41f495534d8
+PKG_MIRROR_HASH:=2ec8320cea2c560c9e9a01f7e3b8681f0113b380838194bcdf90562a38c847e4
PKG_SOURCE_URL:=git://git.musl-libc.org/musl
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
deleted file mode 100644
@@ -1,59 +0,0 @@
-From 4e0877a604bad684be020f68e96a05156131fd44 Mon Sep 17 00:00:00 2001
-From: Matthias Schiffer <mschiffer@universe-factory.net>
-Date: Sun, 24 Jun 2018 17:05:31 +0200
-Subject: [PATCH] sys/socket.h: fix SO_PEERSEC value on MIPS
-
-Differing from all other archs supported by musl, MIPS defines SO_PEERSEC
-to 30 instead of 31.
-
-Reported-by: Andrey Jr. Mlenikov <temnota.am@gmail.com>
----
- arch/mips/bits/socket.h | 2 ++
- arch/mips64/bits/socket.h | 2 ++
- arch/mipsn32/bits/socket.h | 2 ++
- include/sys/socket.h | 3 +++
- 4 files changed, 9 insertions(+)
-
---- a/arch/mips/bits/socket.h
-+++ b/arch/mips/bits/socket.h
-@@ -48,5 +48,7 @@ struct cmsghdr {
- #define SO_SNDBUFFORCE 31
- #define SO_RCVBUFFORCE 33
-
-+#define SO_PEERSEC 30
-+
- #define SOCK_NONBLOCK 0200
- #define SOCK_CLOEXEC 02000000
---- a/arch/mips64/bits/socket.h
-+++ b/arch/mips64/bits/socket.h
-@@ -64,5 +64,7 @@ struct cmsghdr {
- #define SO_SNDBUFFORCE 31
- #define SO_RCVBUFFORCE 33
-
-+#define SO_PEERSEC 30
-+
- #define SOCK_NONBLOCK 0200
- #define SOCK_CLOEXEC 02000000
---- a/arch/mipsn32/bits/socket.h
-+++ b/arch/mipsn32/bits/socket.h
-@@ -48,5 +48,7 @@ struct cmsghdr {
- #define SO_SNDBUFFORCE 31
- #define SO_RCVBUFFORCE 33
-
-+#define SO_PEERSEC 30
-+
- #define SOCK_NONBLOCK 0200
- #define SOCK_CLOEXEC 02000000
---- a/include/sys/socket.h
-+++ b/include/sys/socket.h
-@@ -201,7 +201,10 @@ struct linger {
- #define SO_TIMESTAMP 29
- #define SCM_TIMESTAMP SO_TIMESTAMP
-
-+#ifndef SO_PEERSEC
- #define SO_PEERSEC 31
-+#endif
-+
- #define SO_PASSSEC 34
- #define SO_TIMESTAMPNS 35
- #define SCM_TIMESTAMPNS SO_TIMESTAMPNS
@@ -4,11 +4,6 @@ Date: Mon, 22 Jun 2015 11:01:56 +0200
Subject: [PATCH] Add libssp_nonshared.a so GCC's is not needed
Signed-off-by: Steven Barth <steven@midlink.org>
----
- Makefile | 10 ++++++++--
- libssp_nonshared/__stack_chk_fail_local.c | 2 ++
- 2 files changed, 10 insertions(+), 2 deletions(-)
- create mode 100644 libssp_nonshared/__stack_chk_fail_local.c
--- a/Makefile
+++ b/Makefile
@@ -21,21 +16,29 @@ Signed-off-by: Steven Barth <steven@midlink.org>
ALL_TOOLS = obj/musl-gcc
WRAPCC_GCC = gcc
-@@ -125,7 +125,8 @@ NOSSP_SRCS = $(wildcard crt/*.c) \
- src/thread/__set_thread_area.c src/thread/$(ARCH)/__set_thread_area.c \
- src/string/memset.c src/string/$(ARCH)/memset.c \
- src/string/memcpy.c src/string/$(ARCH)/memcpy.c \
-- ldso/dlstart.c ldso/dynlink.c
-+ ldso/dlstart.c ldso/dynlink.c \
-+ src/libssp_nonshared/__stack_chk_fail_local.c
- $(NOSSP_SRCS:%.c=obj/%.o) $(NOSSP_SRCS:%.c=obj/%.lo): CFLAGS_ALL += $(CFLAGS_NOSSP)
-
- $(CRT_OBJS): CFLAGS_ALL += -DCRT
-@@ -168,6 +169,11 @@ lib/libc.a: $(AOBJS)
+@@ -86,7 +86,7 @@ else
+
+ all: $(ALL_LIBS) $(ALL_TOOLS)
+
+-OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include)
++OBJ_DIRS = $(sort $(patsubst %/,%,$(dir $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(GENH) $(GENH_INT))) obj/include obj/libssp_nonshared)
+
+ $(ALL_LIBS) $(ALL_TOOLS) $(ALL_OBJS) $(ALL_OBJS:%.o=%.lo) $(GENH) $(GENH_INT): | $(OBJ_DIRS)
+
+@@ -113,6 +113,8 @@ obj/crt/rcrt1.o: $(srcdir)/ldso/dlstart.
+
+ obj/crt/Scrt1.o obj/crt/rcrt1.o: CFLAGS_ALL += -fPIC
+
++obj/libssp_nonshared/__stack_chk_fail_local.o: CFLAGS_ALL += $(CFLAGS_NOSSP)
++
+ OPTIMIZE_SRCS = $(wildcard $(OPTIMIZE_GLOBS:%=$(srcdir)/src/%))
+ $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.o) $(OPTIMIZE_SRCS:$(srcdir)/%.c=obj/%.lo): CFLAGS += -O3
+
+@@ -165,6 +166,11 @@ lib/libc.a: $(AOBJS)
$(AR) rc $@ $(AOBJS)
$(RANLIB) $@
-+lib/libssp_nonshared.a: obj/src/libssp_nonshared/__stack_chk_fail_local.o
++lib/libssp_nonshared.a: obj/libssp_nonshared/__stack_chk_fail_local.o
+ rm -f $@
+ $(AR) rc $@ $<
+ $(RANLIB) $@
@@ -44,7 +47,7 @@ Signed-off-by: Steven Barth <steven@midlink.org>
rm -f $@
$(AR) rc $@
--- /dev/null
-+++ b/src/libssp_nonshared/__stack_chk_fail_local.c
++++ b/libssp_nonshared/__stack_chk_fail_local.c
@@ -0,0 +1,2 @@
+#include "atomic.h"
+void __attribute__((visibility ("hidden"))) __stack_chk_fail_local(void) { a_crash(); }
@@ -1,6 +1,6 @@
--- a/Makefile
+++ b/Makefile
-@@ -217,7 +217,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
+@@ -215,7 +215,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
$(INSTALL) -D -m 644 $< $@
$(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
@@ -102,7 +102,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
#ifdef __cplusplus
#define NULL 0L
#else
-@@ -102,19 +110,19 @@ int puts(const char *);
+@@ -103,19 +111,19 @@ int puts(const char *);
int printf(const char *__restrict, ...);
int fprintf(FILE *__restrict, const char *__restrict, ...);
int sprintf(char *__restrict, const char *__restrict, ...);
@@ -127,7 +127,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
void perror(const char *);
-@@ -135,8 +143,8 @@ int pclose(FILE *);
+@@ -136,8 +144,8 @@ int pclose(FILE *);
int fileno(FILE *);
int fseeko(FILE *, off_t, int);
off_t ftello(FILE *);
@@ -138,7 +138,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
void flockfile(FILE *);
int ftrylockfile(FILE *);
void funlockfile(FILE *);
-@@ -175,8 +183,8 @@ int fileno_unlocked(FILE *);
+@@ -176,8 +184,8 @@ int fileno_unlocked(FILE *);
int getw(FILE *);
int putw(int, FILE *);
char *fgetln(FILE *, size_t *);
@@ -149,7 +149,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
#endif
#ifdef _GNU_SOURCE
-@@ -198,6 +206,9 @@ typedef struct _IO_cookie_io_functions_t
+@@ -199,6 +207,9 @@ typedef struct _IO_cookie_io_functions_t
FILE *fopencookie(void *, const char *, cookie_io_functions_t);
#endif
@@ -56,7 +56,7 @@
case SHIFT_JIS:
if (c < 128) break;
if (c-0xa1 <= 0xdf-0xa1) {
-@@ -510,6 +517,7 @@ size_t iconv(iconv_t cd, char **restrict
+@@ -518,6 +525,7 @@ size_t iconv(iconv_t cd, char **restrict
c = ksc[c][d];
if (!c) goto ilseq;
break;
@@ -64,7 +64,7 @@
default:
if (!c) break;
c = legacy_map(map, c);
-@@ -550,6 +558,7 @@ size_t iconv(iconv_t cd, char **restrict
+@@ -559,6 +567,7 @@ size_t iconv(iconv_t cd, char **restrict
}
}
goto subst;
@@ -72,7 +72,7 @@
case SHIFT_JIS:
if (c < 128) goto revout;
if (c == 0xa5) {
-@@ -623,6 +632,7 @@ size_t iconv(iconv_t cd, char **restrict
+@@ -632,6 +641,7 @@ size_t iconv(iconv_t cd, char **restrict
*(*out)++ = 'B';
*outb -= 8;
break;
Rich Felker requested some field testing of his 1.1.20 release: <http://www.openwall.com/lists/musl/2018/04/18/3> "The biggest areas that need testing are: - stdio locking after commits c21f750727515602a9e84f2a190ee8a0a2aeb2a1 and c1014a812c90bab3c9c989863e4ebb129e987de6. - reclaim_gaps since commit ce7ae11acfd9db8eb92cc6823c132e1825918d92. this could be tested by abusing __malloc_donate as if it were a public api. - malloc interposition -- seeing if replacement allocators actually work. (not so important since it wouldn't be a regression if it's broken, but would be nice to know it works before announcing)" <http://www.openwall.com/lists/musl/2018/07/28/4> "In particular, coverage for changes since 1.1.19 would include: - getrandom/getentropy basic functionality check - setvbuf non-stub inplementation: basic functionality, check for writes outside the buffer, etc. - malloc interposition: check that partial replacement doesn't result in unsafe behavior. - pthread_create: confirm that scheduling and other attributes still work as expected after refactoring work. - getddrinfo AI_ADDRCONFIG (can't really be tested without network namespaces though) Particular bugfixes that call for functionality or regression tests: b123f23 fix getopt wrongly treating colons in optstring as valid option chars 0cf5058 fix nl_langinfo_l(CODESET, loc) reporting wrong locale's value 282b1cd fix fmaf wrong result ae2a01d fix wrong result in casin and many related complex functions 10e4bd3 fix incorrect results for catan with some inputs 4bf0717 fix return value of nice function 3f6dc30 fix out of bounds write for zero length buffer in gethostname 9be4ed5 getopt_long_only: don't prefix-match long-options that match short ones 55a661f fix iconv buffer overflow converting to legacy JIS-based encodings 99f4237 fix iconv conversion to UTF-32 with implicit (big) endianness 165a1e3 fix iconv mapping of big5-hkscs characters that map to two unicode chars 029c622 fix output size handling for multi-unicode-char big5-hkscs characters 5c8e692 inet_ntop: do not compress single zeros in IPv6 8b8fb7f correctly handle non-matching symbols in dladdr 9cad27a fix writes outside buffer by ungetc after setvbuf b3fa0f2 fix regression in alignment of dirent structs produced by readdir" Signed-off-by: Christian Lamparter <chunkeey@gmail.com> --- toolchain/musl/common.mk | 6 +- ...ocket.h-fix-SO_PEERSEC-value-on-MIPS.patch | 59 ------------------- .../patches/200-add_libssp_nonshared.patch | 39 ++++++------ toolchain/musl/patches/300-relative.patch | 2 +- ...ribute-to-some-function-declarations.patch | 8 +-- .../musl/patches/900-iconv_size_hack.patch | 6 +- 6 files changed, 32 insertions(+), 88 deletions(-) delete mode 100644 toolchain/musl/patches/010-sys-socket.h-fix-SO_PEERSEC-value-on-MIPS.patch