X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=WHATSNEW;h=fd2a593671a121917b47adde449b07f51f13a127;hb=4ccd07527e9e8a6c7a1ba86acee462f0affb877a;hp=be688cbb8ba150cf9c1d6734ded4b0a39ac2562d;hpb=faf69b9a73d09fafcbe4fd3007b8d8724293d8e1;p=musl diff --git a/WHATSNEW b/WHATSNEW index be688cbb..fd2a5936 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -1730,3 +1730,180 @@ arch-specific bugs fixed: - broken posix_fadvise on arm and powerpc (32-bit) - thread structure/dtv corruption on powerpc at thread startup - various wrong mips and powerpc ioctl and termios constant values + + + +1.1.16 release notes + +new features: +- s390x (64-bit S/390) port +- pthread_setname_np extension function +- limited pthread_setattr_default_np function to set stack size defaults +- header-level support for linux 4.7, 4.8, and 4.9 features +- confstr _CS_V6_ENV and _CS_V7_ENV items + +compatibility: +- public prototypes for abi-compat *_unlocked symbols, etc. +- fflush_unlocked(NULL) now works +- resolv.h __RES version macro now matches supported APIs +- workaround for gdb bugs backtracing across signals on x86_64 +- anchors ^ and $ are now accepted in BRE subexpressions +- building for thumb2-only arm isa levels is now possible + +bugs fixed: +- integer overflows in regexec buffer allocation (CVE-2016-8859) +- failure of regexec to report matches at offsets past INT_MAX +- static-pie executables with initialized thread-local storage crashed +- printf failed to catch EOVERFLOW in some cases, wrongly produced it in others +- printf produced wrong output, result for float with precision near INT_MAX +- printf produced wrong results with alt-form octal, zero flag, & field width +- printf float rounding was wrong for some midpoint cases +- swprintf printed junk after internal (256-byte) buffer filled up +- strtod family rounded incorrectly in several corner cases +- getmntent failed to handle long records +- getopt_long_only wrongly treated "--" as an option +- asctime output wrongly varied by locale +- strftime %y specifier produced wrong output for negative tm_year +- time zone names quoted with <> were misparsed +- corner case integer overflow in tm_year for some date conversions +- failure to load shared libs whose names were prefixes of standard lib names +- wrong error codes for several failure cases in various functions +- various asymptomatic undefined behavior +- various minor namespace issues in headers + +arch-specific bugs fixed: +- tcsetattr regression on mips (completely non-working) +- wrong pread/pwrite syscall calling convention on sh +- wrong preadv2/pwritev2 syscall numbers on x32 +- mrand48/jrand48 produced wrong-signedness results on 64-bit archs + + +1.1.17 release notes + +new features: +- RTLD_LAZY deferred symbol binding, functionally equivalent to lazy binding +- safeguard against dlopen of multiple libc versions/instances +- new posix_spawn flag POSIX_SPAWN_SETSID +- posix_spawnattr_setflags now reports unknown flags as error +- ldso option --argv0 to set argv[0] +- added _NL_LOCALE_NAME extension to nl_langinfo + +compatibility: +- dlopen local-to-global promotion no longer changes existing symbols +- gettext now searches locale name variants for translation files +- increased locale name length limit from 15 to 23 bytes +- setlocale(LC_ALL, 0) returns single name if all categories are same +- realloc no longer fails when mremap doesn't work +- getservby* no longer treat numeric port strings as service records +- mmap now works around incorrect EPERM error codes from kernel +- impact of REG_* namespace pollution in x86[_64] signal.h is reduced +- arm atomic asm now assembles correctly with new binutils +- PAGE_SIZE on arm is no longer constant (quiet upstream ABI relaxation) +- lsearch/lfind now pass args to compare callback in canonical order +- STB_WEAK and STB_GNU_UNIQUE symbols now behave same as STB_GLOBAL +- better clang CFLAGS checks in configure +- global vis.h hack, which made lld refuse to link to libc.so, is disabled + +performance: +- single-instruction optimized math functions for aarch64, s390x, powerpc64 +- fast path for ASCII in towupper/towlower +- new mostly-integer-math fma function + +semantic bugs fixed: +- POSIX-format TZ dst time transitions were wrong for southern hemisphere +- regex REG_NEWLINE semantics were wrong with negated brackets +- various bugs in strptime %j, %p, %C formats +- iconv mapped some characters to legacy 8bit encodings incorrectly +- glob failed to match "/" +- UTF-8 decoder accepted invalid f4 9x xx xx code sequences +- scanf %% conversion failed to consume whitespace +- glob with GLOB_PERIOD wrongly descended into . and .. +- nftw gave incorrect base name offset when pathname ends in "/" +- functional regression in resolv.conf attempts option +- scalbn could produce wrong result due to double rounding in subnormal range +- strftime %y format wrong with negative years +- mbsnrtowcs and wcsnrtombs mishandled input limits +- minor issues with error codes for various functions + +safety/consistency bugs fixed: +- stack-based buffer overflow in dns response processing +- invalid free in regexec on certain error paths +- invalid free in globfree after failed glob +- one-byte buffer overflow in legacy getpass function +- failed dlopen corrupted thread-local storage module list +- race in pthread_create with priority attributes could leave signals masked +- multithreaded set*id() functions could induce spurious EINTRs +- dl_iterate_phdr reported wrong base address in static PIE +- fd leak and wrong cancellation state after dns socket failure +- memory leaks and other issues in environment-modification functions +- read-after-free race in pthread_detach +- memmem performed single-byte over-read in short-needle code paths +- read via uninitialized pointer in gettext core +- bindtextdomain broke bindings for all other domains +- various silent undefined behavior +- getopt clobbered optopt on success + +arch-specific bugs fixed: +- x32 dynamic TLS accesses crashed +- s390x was missing dlsym entry point (needed for RTLD_NEXT) +- powerpc64 ldso startup could crash depending on link order +- powerpc64 setjmp/longjmp didn't properly save/restore TOC pointer +- thumb2 setjmp/longjmp silently broke at ld-time with text not aligned +- 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