Skip to content

Commit 575e157

Browse files
committed
Update to musl 1.2.0.
See the WHATSNEW file for details. The biggest change in musl is the switch to 64-bit time_t for 32-bit targets, however WASI libc was already using 64-bit time_t. The main change affecting WASI is an update to Unicode 12.1.0.
1 parent 79a9b40 commit 575e157

File tree

362 files changed

+3309
-1764
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

362 files changed

+3309
-1764
lines changed

expected/wasm32-wasi/predefined-macros.txt

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
#define CDISCARD CTRL('o')
8787
#define CDSUSP CTRL('y')
8888
#define CEOF CTRL('d')
89-
#define CEOL _POSIX_VDISABLE
89+
#define CEOL '\0'
9090
#define CEOT CEOF
9191
#define CERASE 0177
9292
#define CFLUSH CDISCARD
@@ -124,11 +124,11 @@
124124
#define CRNCYSTR 0x4000F
125125
#define CRPRNT CREPRINT
126126
#define CSTART CTRL('q')
127-
#define CSTATUS _POSIX_VDISABLE
127+
#define CSTATUS '\0'
128128
#define CSTOP CTRL('s')
129129
#define CSUSP CTRL('z')
130130
#define CTIME 0
131-
#define CTRL(x) (x&037)
131+
#define CTRL(x) ((x)&037)
132132
#define CWERASE CTRL('w')
133133
#define C_ANY ns_c_any
134134
#define C_CHAOS ns_c_chaos
@@ -996,7 +996,7 @@
996996
#define LFLOW_RESTART_ANY 2
997997
#define LFLOW_RESTART_XON 3
998998
#define LITTLE_ENDIAN __LITTLE_ENDIAN
999-
#define LLONG_MAX (0x7fffffffffffffffLL)
999+
#define LLONG_MAX 0x7fffffffffffffffLL
10001000
#define LLONG_MIN (-LLONG_MAX-1)
10011001
#define LM_FORWARDMASK 2
10021002
#define LM_MODE 1
@@ -1007,8 +1007,8 @@
10071007
#define LOCK_SH 1
10081008
#define LOCK_UN 8
10091009
#define LONGBITS (sizeof(long) * 8)
1010-
#define LONG_BIT (32)
1011-
#define LONG_MAX (0x7fffffffL)
1010+
#define LONG_BIT 32
1011+
#define LONG_MAX __LONG_MAX
10121012
#define LONG_MIN (-LONG_MAX-1)
10131013
#define L_INCR 1
10141014
#define L_SET 0
@@ -1825,6 +1825,7 @@
18251825
#define TCP_THIN_LINEAR_TIMEOUTS 16
18261826
#define TCP_TIMESTAMP 24
18271827
#define TCP_TIME_WAIT 6
1828+
#define TCP_TX_DELAY 37
18281829
#define TCP_ULP 31
18291830
#define TCP_USER_TIMEOUT 18
18301831
#define TCP_WINDOW_CLAMP 10
@@ -2428,7 +2429,7 @@
24282429
#define __BIGGEST_ALIGNMENT__ 16
24292430
#define __BIG_ENDIAN 4321
24302431
#define __BIND 19950621
2431-
#define __BYTE_ORDER __LITTLE_ENDIAN
2432+
#define __BYTE_ORDER __BYTE_ORDER__
24322433
#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
24332434
#define __CHAR16_TYPE__ unsigned short
24342435
#define __CHAR32_TYPE__ unsigned int
@@ -2647,6 +2648,7 @@
26472648
#define __LITTLE_ENDIAN 1234
26482649
#define __LITTLE_ENDIAN__ 1
26492650
#define __LONG_LONG_MAX__ 9223372036854775807LL
2651+
#define __LONG_MAX __LONG_MAX__
26502652
#define __LONG_MAX__ 2147483647L
26512653
#define __NAMESER 19991006
26522654
#define __NEED_FILE
@@ -2735,6 +2737,7 @@
27352737
#define __PTRDIFF_MAX__ 2147483647L
27362738
#define __PTRDIFF_TYPE__ long int
27372739
#define __PTRDIFF_WIDTH__ 32
2740+
#define __REDIR(x,y) __typeof__(x) x __asm__(#y)
27382741
#define __RETCAST(x)
27392742
#define __RETCAST_2(x,y)
27402743
#define __RETCAST_3(x,y,z)
@@ -2782,6 +2785,7 @@
27822785
#define __UAPI_DEF_IN_IPPROTO 0
27832786
#define __UAPI_DEF_IN_PKTINFO 0
27842787
#define __UAPI_DEF_IP6_MTUINFO 0
2788+
#define __UAPI_DEF_IPHDR 0
27852789
#define __UAPI_DEF_IPPROTO_V6 0
27862790
#define __UAPI_DEF_IPV6_MREQ 0
27872791
#define __UAPI_DEF_IPV6_OPTIONS 0
@@ -2880,6 +2884,7 @@
28802884
#define __UINT_LEAST8_MAX__ 255
28812885
#define __UINT_LEAST8_TYPE__ unsigned char
28822886
#define __USER_LABEL_PREFIX__
2887+
#define __USE_TIME_BITS64 1
28832888
#define __WASI_ADVICE_DONTNEED (UINT8_C(4))
28842889
#define __WASI_ADVICE_NOREUSE (UINT8_C(5))
28852890
#define __WASI_ADVICE_NORMAL (UINT8_C(0))
@@ -3168,6 +3173,7 @@
31683173
#define acosh(x) __tg_real_complex(acosh, (x))
31693174
#define alignas _Alignas
31703175
#define alignof _Alignof
3176+
#define alloca __builtin_alloca
31713177
#define alphasort64 alphasort
31723178
#define and &&
31733179
#define and_eq &=

libc-top-half/musl/.mailmap

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Ada Worcester <oss@ada.pikhq.com> <josiahw@gmail.com>

libc-top-half/musl/COPYRIGHT

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
musl as a whole is licensed under the following standard MIT license:
22

33
----------------------------------------------------------------------
4-
Copyright © 2005-2019 Rich Felker, et al.
4+
Copyright © 2005-2020 Rich Felker, et al.
55

66
Permission is hereby granted, free of charge, to any person obtaining
77
a copy of this software and associated documentation files (the
@@ -26,6 +26,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
2626
Authors/contributors include:
2727

2828
A. Wilcox
29+
Ada Worcester
2930
Alex Dowad
3031
Alex Suykov
3132
Alexander Monakov
@@ -65,7 +66,6 @@ Jeremy Huntwork
6566
Jo-Philipp Wich
6667
Joakim Sindholt
6768
John Spencer
68-
Josiah Worcester
6969
Julien Ramseier
7070
Justin Cormack
7171
Kaarle Ritvanen

libc-top-half/musl/Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ includedir = $(prefix)/include
1717
libdir = $(prefix)/lib
1818
syslibdir = /lib
1919

20-
SRC_DIRS = $(addprefix $(srcdir)/,src/* crt ldso)
20+
SRC_DIRS = $(addprefix $(srcdir)/,src/* crt ldso $(COMPAT_SRC_DIRS))
2121
BASE_GLOBS = $(addsuffix /*.c,$(SRC_DIRS))
2222
ARCH_GLOBS = $(addsuffix /$(ARCH)/*.[csS],$(SRC_DIRS))
2323
BASE_SRCS = $(sort $(wildcard $(BASE_GLOBS)))
@@ -27,7 +27,7 @@ ARCH_OBJS = $(patsubst $(srcdir)/%,%.o,$(basename $(ARCH_SRCS)))
2727
REPLACED_OBJS = $(sort $(subst /$(ARCH)/,/,$(ARCH_OBJS)))
2828
ALL_OBJS = $(addprefix obj/, $(filter-out $(REPLACED_OBJS), $(sort $(BASE_OBJS) $(ARCH_OBJS))))
2929

30-
LIBC_OBJS = $(filter obj/src/%,$(ALL_OBJS))
30+
LIBC_OBJS = $(filter obj/src/%,$(ALL_OBJS)) $(filter obj/compat/%,$(ALL_OBJS))
3131
LDSO_OBJS = $(filter obj/ldso/%,$(ALL_OBJS:%.o=%.lo))
3232
CRT_OBJS = $(filter obj/crt/%,$(ALL_OBJS))
3333

@@ -75,6 +75,7 @@ WRAPCC_CLANG = clang
7575
LDSO_PATHNAME = $(syslibdir)/ld-musl-$(ARCH)$(SUBARCH).so.1
7676

7777
-include config.mak
78+
-include $(srcdir)/arch/$(ARCH)/arch.mak
7879

7980
ifeq ($(ARCH),)
8081

libc-top-half/musl/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.1.24
1+
1.2.0

libc-top-half/musl/WHATSNEW

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2164,3 +2164,39 @@ arch-specific bugs fixed:
21642164
- riscv64 atomics had broken asm constraints (missing earlyclobber flag)
21652165
- arm clone() was broken when compiled as thumb if start function returned
21662166
- mipsr6 setjmp/longjmp did not preserve fpu register state correctly
2167+
2168+
2169+
2170+
1.2.0 release notes
2171+
2172+
new features:
2173+
- time_t is now 64-bit on all archs (not just 64-bit archs)
2174+
- character type & case mapping data updated to Unicode 12.1.0
2175+
- header-level support for new linux features in 5.3 and 5.4
2176+
2177+
performance:
2178+
- new O(1) wchar_t case mapping implementation
2179+
- i386 now uses C math code for exp, faster than old asm
2180+
- mips math asm
2181+
2182+
compatibility & conformance:
2183+
- endian.h now aims to conform to future POSIX definition
2184+
- support older compilers that don't accept powerpc math asm constraints
2185+
- fdpic code in ldso was incompatible with valid optimizations in gcc 9+
2186+
- RLIMIT_RTTIME was missing from sys/resource.h
2187+
2188+
bugs fixed:
2189+
- wcwidth wrongly returned 0 for most of planes 4 and up
2190+
- missing case mapping between U+03F3 and U+037F
2191+
- wrong cacosh results for arguments with negative imaginary part
2192+
- wrong catanf/catanl results for various classes of arguments
2193+
- wrong return value for ungetc with argument outside [0,UCHAR_MAX]
2194+
- posix_openpt with no ptys available produced wrong errno
2195+
2196+
arch-specific bugs fixed:
2197+
- sigcontext/regset definition mistakes & omissions on m68k, powerpc64
2198+
- fesetenv(FE_DFL_ENV) crashed on riscv64
2199+
- sh2 dynamic linker was broken since 1.1.21 (crash in stage 2b)
2200+
- arm dynamic linker chose wrong tls/atomic variants since 1.1.21
2201+
- some math library functions returned excess precision on i386
2202+
- unconfirmed regression in fchmodat AT_SYMLINK_NOFOLLOW on mips*

libc-top-half/musl/arch/aarch64/bits/alltypes.h.in

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22
#define _Int64 long
33
#define _Reg long
44

5-
TYPEDEF __builtin_va_list va_list;
6-
TYPEDEF __builtin_va_list __isoc_va_list;
5+
#if __AARCH64EB__
6+
#define __BYTE_ORDER 4321
7+
#else
8+
#define __BYTE_ORDER 1234
9+
#endif
10+
11+
#define __LONG_MAX 0x7fffffffffffffffL
712

813
#ifndef __cplusplus
914
TYPEDEF unsigned wchar_t;
@@ -17,14 +22,3 @@ TYPEDEF float float_t;
1722
TYPEDEF double double_t;
1823

1924
TYPEDEF struct { long long __ll; long double __ld; } max_align_t;
20-
21-
TYPEDEF long time_t;
22-
TYPEDEF long suseconds_t;
23-
24-
TYPEDEF struct { union { int __i[14]; volatile int __vi[14]; unsigned long __s[7]; } __u; } pthread_attr_t;
25-
TYPEDEF struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } pthread_mutex_t;
26-
TYPEDEF struct { union { int __i[10]; volatile int __vi[10]; volatile void *volatile __p[5]; } __u; } mtx_t;
27-
TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } pthread_cond_t;
28-
TYPEDEF struct { union { int __i[12]; volatile int __vi[12]; void *__p[6]; } __u; } cnd_t;
29-
TYPEDEF struct { union { int __i[14]; volatile int __vi[14]; void *__p[7]; } __u; } pthread_rwlock_t;
30-
TYPEDEF struct { union { int __i[8]; volatile int __vi[8]; void *__p[4]; } __u; } pthread_barrier_t;

libc-top-half/musl/arch/aarch64/bits/endian.h

Lines changed: 0 additions & 5 deletions
This file was deleted.

libc-top-half/musl/arch/aarch64/bits/limits.h

Lines changed: 0 additions & 7 deletions
This file was deleted.

libc-top-half/musl/arch/aarch64/bits/socket.h

Lines changed: 0 additions & 33 deletions
This file was deleted.

0 commit comments

Comments
 (0)