Closed
Description
musl 1.2.0 was released. Time to follow the update procedure.
Previous issue: #3463
Take special care to read the detailed time64 release notes. Some of the structs for 32-bit architectures may need to be adjusted to match a new ABI.
Related issues:
- add support for targeting glibc 2.31 #4459 upgrade to glibc 2.31
- upgrade to mingw-w64 7.0.0 #3713 upgrade to mingw-w64 7.0.0
Currently this is done in stage1 C++ code. However I will be looking into self-hosting building libc (#4313) before solving this issue.
1.2.0 release notes
new features:
- time_t is now 64-bit on all archs (not just 64-bit archs)
- character type & case mapping data updated to Unicode 12.1.0
- header-level support for new linux features in 5.3 and 5.4
performance:
- new O(1) wchar_t case mapping implementation
- i386 now uses C math code for exp, faster than old asm
- mips math asm
compatibility & conformance:
- endian.h now aims to conform to future POSIX definition
- support older compilers that don't accept powerpc math asm constraints
- fdpic code in ldso was incompatible with valid optimizations in gcc 9+
- RLIMIT_RTTIME was missing from sys/resource.h
bugs fixed:
- wcwidth wrongly returned 0 for most of planes 4 and up
- missing case mapping between U+03F3 and U+037F
- wrong cacosh results for arguments with negative imaginary part
- wrong catanf/catanl results for various classes of arguments
- wrong return value for ungetc with argument outside [0,UCHAR_MAX]
- posix_openpt with no ptys available produced wrong errno
arch-specific bugs fixed:
- sigcontext/regset definition mistakes & omissions on m68k, powerpc64
- fesetenv(FE_DFL_ENV) crashed on riscv64
- sh2 dynamic linker was broken since 1.1.21 (crash in stage 2b)
- arm dynamic linker chose wrong tls/atomic variants since 1.1.21
- some math library functions returned excess precision on i386
- unconfirmed regression in fchmodat AT_SYMLINK_NOFOLLOW on mips*