X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=WHATSNEW;h=679b95b0f137b7d035b6d2ec330681cc77a698bf;hb=403555690775f7c8806372644f543518e6664e3b;hp=bab432d67f4f0b3e3743e04b83127a0e7e306b72;hpb=2cd663fb2d576d590a08c1e40386c07b378d5ad6;p=musl diff --git a/WHATSNEW b/WHATSNEW index bab432d6..679b95b0 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -1852,3 +1852,187 @@ arch-specific bugs fixed: - fchown was broken on archs without SYS_fchown syscall - fstatat was broken on mips64 - various incorrect constants in powerpc64 and mips headers + + +1.1.18 release notes + +regression fixes: +- glob failed to match literal . and .. path components +- build for armv4t ISA level was broken + +other bug fixes: +- stack overflow in posix_spawnp with large PATH variable in environment + + +1.1.19 release notes + +new features: +- iconv framework for processing stateful encodings +- iconv support for iso-2022-jp +- iconv support for converting to legacy JIS-based Japanese encodings +- iconv support for UTF-16/32 with BOM-determined endianness +- iconv ibm1047 (ebcdic latin1-equivalent) support +- iconv cp866 (dos cyrillic) support +- character data tables & case mappings updated to Unicode 10.0 +- fopencookie stdio extension +- strftime padding character extensions +- header-level support for new linux features through 4.13 + +compatibility: +- UTC timezone is now called UTC instead of GMT +- _DIRENT_HAVE_D_* macros in dirent.h +- dladdr dli_fbase definition now matches other implementations +- pthread_getattr_np now reports guard size +- strftime '+' modifier better matches apparent intent of POSIX +- getopt_long handles long option names containing '=' +- better compatibility with linux uapi headers +- workaround linux bug where getcwd can return non-absolute pathname +- configure logic for finding compiler_rt with clang +- execvp path search now continues after ENOTDIR components + +bugs fixed: +- fgetwc failed when character crossed buffer boundary +- memory corruption after failing to dlopen a second libc +- sysconf reported infinite rlimits incorrectly +- getopt_long --opt=arg did not work with partial matches +- printf was wrong for alt-form octal with value 0, no explicit precision +- endian errors in arpa/nameser.h and netinet/icmp6.h (missing endian.h) +- atfork handler could clobber fork's errno +- iconv could wrongly output surrogate pairs in ucs2 +- fmemopen buffer underallocation with extreme size argument +- getaddrinfo AI_NUMERICSERV wrong error code +- data race in at_quick_exit +- ldd failed to honor rpath $ORIGIN for program in . without "./" prefix + +arch-specfic bugs fixed: +- x32 unistd.h wrongly reported LP64 instead of ILP32 +- aarch64 signal.h had wrong type for ucontext_t uc_link member + + +1.1.20 release notes + +new features: +- m68k port +- replacement of malloc is now allowed/supported +- setvbuf now accepts caller-provided buffers for stdio streams +- getrandom syscall wrapper, getentropy function +- mlock2 syscall wrapper +- memfd_create syscall wrapper +- explicit_bzero function +- header-level support for new linux features through 4.17 +- wcsftime now supports padding specifier extensions +- dynamic linker's reclaim_gaps now works on fdpic archs +- getaddrinfo now honors AI_ADDRCONFIG +- pthread_attr_init now honors pthread_setattr_default_np defaults + +hardening: +- prevent bypass of guarantee that suids start with fd 0/1/2 open +- dlopen now rejects libraries with initial-exec refs to dynamic TLS + +compatibility: +- elf.h: new flags, aux vector entry types, etc. +- minor namespace issues in several headers +- intNN_t types used in bitfields now safe against -funsigned-bitfields +- complex arc trig/hyperbolic functions were badly broken +- nice function returned wrong value +- stdio locks no longer depend on read-after-free not faulting +- avoid excessive stack usage in getcwd +- inet_ntop no longer compresses single zeros in IPv6 (RFC 5952) +- resolver routability probe for sorting results works on no-IPv6 systems +- added missing ST_RELATIME definition to statvfs.h +- uchar.h now works with old C++ profiles +- added missing and arch-specific commands to ptrace.h +- musl-gcc wrapper now works with default-pie host toolchains + +bugs fixed: +- getopt wrongly treating colons in optstring as valid option chars +- nl_langinfo_l(CODESET, loc) reported wrong locale's value +- out-of-tree build produced broken crt files with stack protector enabled +- fmaf produced wrong result for some corner cases +- out of bounds write for zero length buffer passed to gethostname +- getopt_long_only wrongly prefix-matched long-options over short ones +- pthread_kill wrongly returned ESRCH for exited by valid pthread_t's +- iconv buffer overflow converting to legacy JIS-based encodings +- iconv conversion to "UTF-32" (no explicit endianness) failed (regression) +- iconv mishandled big5-hkscs characters that map to two unicode chars +- dynamic linker didn't map/clear bss for libraries with single LOAD segment +- resolver wrongly duplicated trailing dot from query into canonical name +- some futex waits omitted timeout arg to syscall, thereby spun on EFAULT +- dladdr mishandled addresses not matching symbols +- alignment of dirent structures from readdir was broken (regression) +- strftime %z output wrong sign for offsets <1 hour west of UTC +- limits.h, pathconf erroneously defined SYMLINK_MAX +- FP_ILOGB0 and FP_ILOGBNAN definitions were not valid for use in #if +- getopt failed to update optarg and optind correctly on missing argument +- EMULTIHOP error lacked strerror text +- mktime malfunctioned with tm_isdst>0 but no-DST POSIX-format time zone +- async thread self-cancellation produced a deadlock condition +- pthread_barrierattr_setpshared failed to produce EINVAL for bad argument +- fileno failed to produce EBADF for non-fd-associated FILEs +- fmemopen's w+ mode failed to truncate buffer at open +- open_[w]memstream did not bind stream orientation at open time +- system wrongly returned 0x7f00 instead of -1 on error +- wide printf functions ignored field width for %c formats +- fprintf failed to set stream orientation for unbuffered stream or no output +- psignal, psiginfo, and perror wrongly set stream orientation for stderr +- psignal, psiginfo potentially clobbered errno on success + +arch-specfic bugs fixed: +- on arm/aarch64/sh, local-exec TLS layout mismatched ABI with large align +- on arm/microblaze/sh, struct ipc_perm mismatched (buggy) kernel ABI +- SO_PEERSEC definition was wrong on mips +- on mips, return from start function passed to clone crashed (runaway exec) +- printf %a precision specifier malfunctioned except on ld80 archs +- async thread cancellation crashed on powerpc64 and sh-fdpic + + +1.1.21 release notes + +new features: +- setting default thread stack size via PT_GNU_STACK program header +- arm vfork implementation +- arm tlsdesc/gnu2 tls dialect support +- name_to_handle_at and name_to_handle_at syscall wrappers +- header-level support for new linux features through 4.18 + +optimizations: +- glob rewrite with much better performance and stack usage properties +- single-threaded and already-locked fast paths for getc/putc variants +- single-instruction fma implementations for arm, s390x, powerpc, & x86_64 +- single-instruction fabs and sqrt implementations for powerpc +- size and performance from making all internal-only functions/data hidden +- made &errno and pthread_self results cachable again (attribute((const))) +- significant speedup in strtod with short inputs +- new tsearch AVL tree implementation, smaller and faster +- special-cased nop calls to wmemmove +- fixed erroneously suboptimal skip conditions in strstr and memmem + +hardening: +- default thread stack guard size increased from 4k to 8k + +compatibility: +- default thread stack size increased from 80k to 128k +- building for arm as thumb2 with clang internal assembler now works +- aio threads could overflow stack on kernels that break MINSIGSTKSZ ABI +- aio threads no longer call malloc (problematic with malloc replacement) +- pthread_sigmask/sigprocmask now ignore an invalid how when not changing mask + +bugs fixed: +- soft deadlock regression in stdio FILE locks with >2 threads contending +- deadlock and buffered data loss race in fclose +- race condition leading to possible crash in dcngettext plural forms +- glob failed to see past searchable-but-unreadable path components +- getdelim wrongly realloc'd buffer that was already exactly right size +- getdelim failed to set stream orientation on early error +- ttyname[_r] reported wrong error when given bad fd +- pthread_key_delete left old tsd values exposed if slot was reused +- freeaddrinfo failed to support freeing sublists +- access to optopt was broken by copy relocations +- memccpy returned wrong result if first byte past buffer end matched +- wordexp read past end of input string ending in backslash +- sem_wait and sem_timedwait were wrongly not interruptible by signals +- getspnam[_r] wrongly treated not-found as an error + +arch-specfic bugs fixed: +- soft deadlocks (missing futex wake) on powerpc locking +- dlsym returned wrong address for thread-local symbols on ppc/mips/m68k