toolchain/musl: bump to version 1.1.24
authorKoen Vandeputte <koen.vandeputte@ncentric.com>
Mon, 14 Oct 2019 12:51:23 +0000 (14:51 +0200)
committerRISCi_ATOM <bob@bobcall.me>
Tue, 15 Oct 2019 16:51:55 +0000 (12:51 -0400)
commit3a49684bfc6e63c2d46334e994d46f209a02ac85
tree39f1ace732a6761320c55a6f14cfc987e12d9c45
parent9d5a3f9485f677efcf6903d9400dbb0360ab154d
toolchain/musl: bump to version 1.1.24

1.1.24 release notes

new features:
- GLOB_TILDE extension to glob
- non-stub catgets localization API, using netbsd binary catalog format
- posix_spawn file actions for [f]chdir (extension, pending future standard)
- secure_getenv function (extension)
- copy_file_range syscall wrapper (Linux extension)
- header-level support for new linux features in 5.2

performance:
- new fast path for lrint (generic C version) on 32-bit archs

major internal changes:
- functions involving time are overhauled to be time64-ready in 32-bit archs
- x32 uses the new time64 code paths to replace nasty hacks in syscall glue

compatibility & conformance:
- support for powerpc[64] unaligned relocation types
- powerpc[64] and sh sys/user.h no longer clash with kernel asm/ptrace.h
- select no longer modifies timeout on failure (or at all)
- mips64 stat results are no longer limited to 32-bit time range
- optreset (BSD extension) now has a public declaration
- support for clang inconsistencies in wchar_t type vs some 32-bit archs
- mips r6 syscall asm no longer has invalid lo/hi register clobbers
- vestigial asm declarations of __tls_get_new are removed (broke some tooling)
- riscv64 mcontext_t mismatch glibc's member naming is corrected

bugs fixed:
- glob failed to match broken symlinks consistently
- invalid use of interposed calloc to allocate initial TLS
- various dlsym symbol resolution logic errors
- semctl with SEM_STAT_ANY didn't work
- pthread_create with explicit scheduling was subject to priority inversion
- pthread_create failure path had data race for thread count
- timer_create with SIGEV_THREAD notification had data race getting timer id
- wide printf family failed to support l modifier for float formats

arch-specific bugs fixed:
- x87 floating point stack imbalance in math asm (i386-only CVE-2019-14697)
- x32 clock_adjtime, getrusage, wait3, wait4 produced junk (struct mismatches)
- lseek broken on x32 and mipsn32 with large file offsets
- riscv64 atomics weren't compiler barriers
- riscv64 atomics had broken asm constraints (missing earlyclobber flag)
- arm clone() was broken when compiled as thumb if start function returned
- mipsr6 setjmp/longjmp did not preserve fpu register state correctly

Refreshed all patches.
Removed upstreamed.

Signed-off-by: Koen Vandeputte <koen.vandeputte@ncentric.com>
toolchain/musl/common.mk
toolchain/musl/patches/020-mips-dlsym_donot_return_address_from_undef_sym.patch [deleted file]
toolchain/musl/patches/030-fix-x87-stack-imbalance-in-corner-cases-of-i386-math.patch [deleted file]
toolchain/musl/patches/031-fix-build-regression-in-i386-asm-for-atan2-atan2f.patch [deleted file]
toolchain/musl/patches/100-add_glob_onlydir.patch