toolchain/musl: update to version 1.1.20
This release introduces the ability to replace/interpose the allocator (malloc) subject to certain restrictions, adds an experimental m68k port, and makes notable improvements to stdio (application-provided buffers), getaddrinfo (AI_ADDRCONFIG, support for IPv4-only kernel configurations), the dynamic linker (safety against dlopen of libraries using initial-exec TLS model, reclaiming unused memory on FDPIC archs, better dladdr results), and handling of default thread stack size (pthread_setattr_default_np now works more reliably). Many bugs have been fixed, including potentially dangerous regressions in iconv (only for new conversions to legacy encodings) and visibly incorrect behavior in printf on non-x86 archs (%a format with precision specifier), in getopt_long_only when short options are a prefix for a long option, in complex arc-trig/hyperbolic functions, in strftime and mktime (timezone-specific issues), and numerous less-obvious places. Signed-off-by: Christian Lamparter <chunkeey@gmail.com> [altered commit msg a bit keeping it tight] Tested-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
This commit is contained in:
		
				
					committed by
					
						
						Koen Vandeputte
					
				
			
			
				
	
			
			
			
						parent
						
							0dbdb476f3
						
					
				
				
					commit
					1801e60390
				
			@@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk
 | 
				
			|||||||
include $(INCLUDE_DIR)/target.mk
 | 
					include $(INCLUDE_DIR)/target.mk
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PKG_NAME:=musl
 | 
					PKG_NAME:=musl
 | 
				
			||||||
PKG_VERSION:=1.1.19
 | 
					PKG_VERSION:=1.1.20
 | 
				
			||||||
PKG_RELEASE=1
 | 
					PKG_RELEASE=1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PKG_SOURCE_PROTO:=git
 | 
					PKG_SOURCE_PROTO:=git
 | 
				
			||||||
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 | 
					PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 | 
				
			||||||
PKG_SOURCE_VERSION:=55df09bfccbfe21fc9dd7d8f94550c0ff25ace04
 | 
					PKG_SOURCE_VERSION:=0fa1e638e87cf257e9f96b4019b2076afd674a19
 | 
				
			||||||
PKG_MIRROR_HASH:=eb94e4e7e94221dd8890afd9b29e2562c36cf5585649035349ca1c6c1c354f2b
 | 
					PKG_MIRROR_HASH:=0a49559e845f51aaf006539176a36d6527957affd2838e71fd43275b737e90fe
 | 
				
			||||||
PKG_SOURCE_URL:=git://git.musl-libc.org/musl
 | 
					PKG_SOURCE_URL:=git://git.musl-libc.org/musl
 | 
				
			||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 | 
					PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
 | 
					Subject: [PATCH] Add libssp_nonshared.a so GCC's is not needed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Signed-off-by: Steven Barth <steven@midlink.org>
 | 
					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
 | 
					--- a/Makefile
 | 
				
			||||||
+++ b/Makefile
 | 
					+++ b/Makefile
 | 
				
			||||||
@@ -21,21 +16,29 @@ Signed-off-by: Steven Barth <steven@midlink.org>
 | 
				
			|||||||
 ALL_TOOLS = obj/musl-gcc
 | 
					 ALL_TOOLS = obj/musl-gcc
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 WRAPCC_GCC = gcc
 | 
					 WRAPCC_GCC = gcc
 | 
				
			||||||
@@ -125,7 +125,8 @@ NOSSP_SRCS = $(wildcard crt/*.c) \
 | 
					@@ -86,7 +86,7 @@ else
 | 
				
			||||||
 	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
 | 
					 all: $(ALL_LIBS) $(ALL_TOOLS)
 | 
				
			||||||
@@ -168,6 +169,11 @@ lib/libc.a: $(AOBJS)
 | 
					 
 | 
				
			||||||
 | 
					-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)
 | 
					 	$(AR) rc $@ $(AOBJS)
 | 
				
			||||||
 	$(RANLIB) $@
 | 
					 	$(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 $@
 | 
					+	rm -f $@
 | 
				
			||||||
+	$(AR) rc $@ $<
 | 
					+	$(AR) rc $@ $<
 | 
				
			||||||
+	$(RANLIB) $@
 | 
					+	$(RANLIB) $@
 | 
				
			||||||
@@ -44,7 +47,7 @@ Signed-off-by: Steven Barth <steven@midlink.org>
 | 
				
			|||||||
 	rm -f $@
 | 
					 	rm -f $@
 | 
				
			||||||
 	$(AR) rc $@
 | 
					 	$(AR) rc $@
 | 
				
			||||||
--- /dev/null
 | 
					--- /dev/null
 | 
				
			||||||
+++ b/src/libssp_nonshared/__stack_chk_fail_local.c
 | 
					+++ b/libssp_nonshared/__stack_chk_fail_local.c
 | 
				
			||||||
@@ -0,0 +1,2 @@
 | 
					@@ -0,0 +1,2 @@
 | 
				
			||||||
+#include "atomic.h"
 | 
					+#include "atomic.h"
 | 
				
			||||||
+void __attribute__((visibility ("hidden"))) __stack_chk_fail_local(void) { a_crash(); }
 | 
					+void __attribute__((visibility ("hidden"))) __stack_chk_fail_local(void) { a_crash(); }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/Makefile
 | 
					--- a/Makefile
 | 
				
			||||||
+++ b/Makefile
 | 
					+++ b/Makefile
 | 
				
			||||||
@@ -217,7 +217,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
 | 
					@@ -215,7 +215,7 @@ $(DESTDIR)$(includedir)/%: $(srcdir)/inc
 | 
				
			||||||
 	$(INSTALL) -D -m 644 $< $@
 | 
					 	$(INSTALL) -D -m 644 $< $@
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
 | 
					 $(DESTDIR)$(LDSO_PATHNAME): $(DESTDIR)$(libdir)/libc.so
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -102,7 +102,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 #ifdef __cplusplus
 | 
					 #ifdef __cplusplus
 | 
				
			||||||
 #define NULL 0L
 | 
					 #define NULL 0L
 | 
				
			||||||
 #else
 | 
					 #else
 | 
				
			||||||
@@ -102,19 +110,19 @@ int puts(const char *);
 | 
					@@ -103,19 +111,19 @@ int puts(const char *);
 | 
				
			||||||
 int printf(const char *__restrict, ...);
 | 
					 int printf(const char *__restrict, ...);
 | 
				
			||||||
 int fprintf(FILE *__restrict, const char *__restrict, ...);
 | 
					 int fprintf(FILE *__restrict, const char *__restrict, ...);
 | 
				
			||||||
 int sprintf(char *__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 *);
 | 
					 void perror(const char *);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -135,8 +143,8 @@ int pclose(FILE *);
 | 
					@@ -136,8 +144,8 @@ int pclose(FILE *);
 | 
				
			||||||
 int fileno(FILE *);
 | 
					 int fileno(FILE *);
 | 
				
			||||||
 int fseeko(FILE *, off_t, int);
 | 
					 int fseeko(FILE *, off_t, int);
 | 
				
			||||||
 off_t ftello(FILE *);
 | 
					 off_t ftello(FILE *);
 | 
				
			||||||
@@ -138,7 +138,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 void flockfile(FILE *);
 | 
					 void flockfile(FILE *);
 | 
				
			||||||
 int ftrylockfile(FILE *);
 | 
					 int ftrylockfile(FILE *);
 | 
				
			||||||
 void funlockfile(FILE *);
 | 
					 void funlockfile(FILE *);
 | 
				
			||||||
@@ -175,8 +183,8 @@ int fileno_unlocked(FILE *);
 | 
					@@ -176,8 +184,8 @@ int fileno_unlocked(FILE *);
 | 
				
			||||||
 int getw(FILE *);
 | 
					 int getw(FILE *);
 | 
				
			||||||
 int putw(int, FILE *);
 | 
					 int putw(int, FILE *);
 | 
				
			||||||
 char *fgetln(FILE *, size_t *);
 | 
					 char *fgetln(FILE *, size_t *);
 | 
				
			||||||
@@ -149,7 +149,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 #endif
 | 
					 #endif
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 #ifdef _GNU_SOURCE
 | 
					 #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);
 | 
					 FILE *fopencookie(void *, const char *, cookie_io_functions_t);
 | 
				
			||||||
 #endif
 | 
					 #endif
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -56,7 +56,7 @@
 | 
				
			|||||||
 		case SHIFT_JIS:
 | 
					 		case SHIFT_JIS:
 | 
				
			||||||
 			if (c < 128) break;
 | 
					 			if (c < 128) break;
 | 
				
			||||||
 			if (c-0xa1 <= 0xdf-0xa1) {
 | 
					 			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];
 | 
					 			c = ksc[c][d];
 | 
				
			||||||
 			if (!c) goto ilseq;
 | 
					 			if (!c) goto ilseq;
 | 
				
			||||||
 			break;
 | 
					 			break;
 | 
				
			||||||
@@ -64,7 +64,7 @@
 | 
				
			|||||||
 		default:
 | 
					 		default:
 | 
				
			||||||
 			if (!c) break;
 | 
					 			if (!c) break;
 | 
				
			||||||
 			c = legacy_map(map, c);
 | 
					 			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;
 | 
					 			goto subst;
 | 
				
			||||||
@@ -72,7 +72,7 @@
 | 
				
			|||||||
 		case SHIFT_JIS:
 | 
					 		case SHIFT_JIS:
 | 
				
			||||||
 			if (c < 128) goto revout;
 | 
					 			if (c < 128) goto revout;
 | 
				
			||||||
 			if (c == 0xa5) {
 | 
					 			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';
 | 
					 			*(*out)++ = 'B';
 | 
				
			||||||
 			*outb -= 8;
 | 
					 			*outb -= 8;
 | 
				
			||||||
 			break;
 | 
					 			break;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user