X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=WHATSNEW;h=911a16d99e1a921ce7fcf8bd709d5bff78e1af2b;hb=4cd8b4725907651f329e2f96d428c4e3521643f8;hp=2a7e74c7976274d4992c1f56a9f3ea957bdc8747;hpb=60a4783ed4bd0496f7eb31f9b7eb2ad10df46677;p=musl diff --git a/WHATSNEW b/WHATSNEW index 2a7e74c7..911a16d9 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -1368,3 +1368,253 @@ bugs fixed: - incorrect case mappings for U+00DF - namespace pollution via accidentally-non-static function named "dummy" - missing __fpclassifyl and __signbitl definitions for ld64 archs + + + +1.1.6 release notes + +new features: +- getopt '-' flag for processing non-option arguments +- getopt_long argument permutation extension +- getopt_long abbreviated options +- ns_parserr and related DNS-packet-parsing functions +- fnmatch FNM_CASEFOLD extension +- support for translation of getopt error messages +- login_tty function (legacy) + +performance: +- efficient atomics on armv7+ targets +- pthread_once shrink-wrapping of fast path + +compatibility: +- baseline arm binaries now work on new cpus/kernels without kuser_helper +- dynamic linker now honors DT_RUNPATH without DT_RPATH (new binutils) +- arm asm is now compatible with clang's internal assembler +- suppress macro implementations of functions when headers are used in C++ +- increased message length limit for syslog + +bugs fixed: +- open ignored file creation mode argument for O_TMPFILE +- wrong printf formatting for %#.0o with value zero +- missing private state for uchar.h functions (null ps pointer) +- sched_getaffinity left uninitialized data in output bit array +- wrong return values for pthread_getaffinity_np and pthread_setaffinity_np +- buggy handling of multibyte option chars with arguments in getopt +- printf failed to report or stop on write errors +- printf failed to honor '+' modifier when printing NANs +- wcsnrtombs returned the wrong value in one code path +- syslog failed to check for connect error +- multi-threaded set*id() had spurious failures from ugly workaround code +- various minor header conformance bugs (signedness, constant expressions, ...) + +arch-specific bugs fixed: +- on or1k, some syscalls with 64-bit arguments were broken (misaligned) +- usage of sahf instruction on x86_64 crashed on some early cpu models + + + +1.1.7 release notes + +new features: +- alternate passwd/group backend support via nscd protocol +- masked cancellation mode extension (experimental) +- aio cancellation +- aarch64 port (experimental) + +performance: +- significant memset asm optimizations on i386 and x86_64 + +compatibility: +- suppress EINTR in semaphores for old kernels where futex restart is broken +- always set optarg in getopt_long +- support SOCK_RAW socket type in getaddrinfo +- report success instead of EINPROGRESS when close is interrupted + +bugs fixed: +- multithreaded set*id() was not async-signal safe, had various race bugs +- getspnam_r returned results for partial username matches +- wordexp bad character checker mis-counted parentheses +- close on fd with pending aio could lead to file corruption +- old aio implementation had numerous conformance bugs +- malloc init code could deadlock due to race condition +- pthread_exit did not disable cancellation +- pthread_cond_wait could wrongly consume signal on cancellation +- execvp wrongly stopped path search on EACCESS +- fsync, fdatasync, and msync were not honored as cancellation points +- fchmodat was subject to fd leak race (missing O_CLOEXEC) +- fchmodat failed to report EOPNOTSUPP in race path +- passwd/group lookup functions had various minor error-reporting bugs +- isatty had false-positives/device-state-corruption for OSS sound devices +- configure script failed to detect gcc with translated messages +- FLT_ROUNDS macro failed to reflect rounding mode changes in fenv + +arch-specific bugs fixed: +- mips fesetenv did not handle FE_DFL_ENV +- mips POLLWRNORM and POLLWRBAND macros had wrong values +- x32 pthread synchronization object type definitions were wrong +- powerpc minimum signal stack size was insufficient + + + +1.1.8 release notes + +bugs fixed: +- stack-based buffer overflow in inet_pton (CVE-2015-1817) +- regcomp crash/mem-corruption with illegal bytes after backslash +- regcomp wrongly allowed backrefs in ER +- regcomp miscompiled character class brace-repetitions +- regcomp wrongly processed \0 as an unmatchable backref +- new FLT_ROUNDS definition failed to work in C++ code + +arch-specific bugs fixed: +- aarch64 was missing max_align_t definition + + + +1.1.9 release notes + +new features: +- ability to protect libc code itself with stack protector +- sigsetjmp now restores signal mask after restoring context, not before +- thread-local dlerror status/messages +- dlerror messages are no longer truncated +- diagnostics for constraint violations with ctype.h macros + +optimizations: +- reduce cost of PIC on archs where PLT calls need a fixed GOT register +- spin locks no longer constantly invalidate cache lines while spinning +- code size reduction in static-linked TLS init + +bugs fixed: +- failure to process robust mutexes on detached-thread exit +- possible memory corruption due to robust mutex list on detached-thread exit +- crash on memory exhaustion in getgr* internals +- misaligned memory accesses in static binaries with low-alignment TLS blocks +- multiple cases of wrongful path search continuation after transient failure +- small memory leak on failure of dlopen with RPATH $ORIGIN +- several small math bugs related to exception flags with non-finite args +- mmap leak in sem_open failure path for link call +- duplocale clobbered new locale struct with memcpy of old +- futimes crashed with null timeval argument + +arch-specific bugs fixed: +- stack protector spuriously aborted after forking on x32 +- stack protector spuriously aborted with flockfile on powerpc +- theoretically-possible clobbering of syscall return value on mips +- random thread-pointer setup failure on sh (uninitialized return value) +- possible crash in dlsym on sh due to incorrectly-computed branch target +- broken fesetenv(FE_DFL_ENV) on mips +- dynamic linker name for sh ignored fpu/nofpu and endianness +- various minor aarch64 bugs +- dangling pointers in x32 syscall timespec fixup code + + + +1.1.10 release notes + +new features: +- fail-safe (allocation-free) C locale for newlocale to return +- all locale categories track requested locale name +- rcrt1.o start file for static PIE + +optimizations: +- inline atomics for sh4a +- removed heavy atomics from locale-related code paths +- removed global data accesses from CURRENT_LOCALE macro & callers +- dynamic linker stage 1 size reduction + +compatibility: +- better configure detection of unsupported compiler options +- support for more relocation types in libc.so, not currently used +- iconv_open accepts "" and "CHAR" as aliases for native (UTF-8) +- additional LFS64 macros in sys/resource.h + +regressions fixed: +- dynamic linker crash on NONE-type relocations (only mips affected) +- inability to build as thumb2 on arm +- failure to run under qemu-i386 user-level emulation +- inability to access globals from libc on powerpc +- PIE link errors in Scrt1.o under unusual usage on some archs + +other bugs fixed: +- failure of ungetc/ungetwc to work on FILE streams in EOF state +- possible null pointer dereference in gettext +- possible initial stack misalignment on mips with PIE + + + +1.1.11 release notes + +new features: +- byte-based C locale +- vdso clock_gettime on arm +- musl-clang wrapper +- sh2 nommu target support + +performance: +- major speed-up for dynamic linker symbol lookups with GNU hash + +compatibility: +- strverscmp now matches GNU behavior in corner cases +- empty TZ environment variable gives GMT rather than system default +- reconnection on syslog server socket loss (syslogd restart) +- mmap fallback in simple_malloc when brk fails +- support for %m and %s with null pointers in wide printf variants +- call frame information in i386 asm for improved debugger support + +bugs fixed: +- spurious errors from pwd/grp functions when nscd backend is absent +- possible invalid access on calloc with simple_malloc +- null pointer dereferences after calling uselocale((locale_t)0) +- erroneous support for cancellation in stdio caused data loss +- inconsistent handling of atexit called from atexit handler +- missing locking in error paths for ungetwc +- btowc mishandling of out-of-range non-EOF inputs +- negated return value of ns_skiprr, failure in related functions +- incorrect void return type for syncfs, missing error status +- possible failure of tempnam due to missing null termination +- negated tm_gmtoff field in struct tm +- off-by-one error in getsubopt leaving equals sign in value result + +arch-specific bugs fixed: +- soft deadlocks on i386/x86_64 due to missing barrier in internal locks +- regression in arm pre-v7 support for kernels with kuser helper removed +- runaway PC on mips detached thread exit (due to kernel regression) +- mismatched ABI for local-dynamic model TLS on mips and powerpc +- incorrect value of some SO_* constants on mips +- broken 64-bit syscall argument passing on aarch64 + + + +1.1.12 release notes + +new features: +- fdpic abi on sh2 for shareable text segment without mmu +- general fdpic elf support in dynamic linker +- CFI generation for x86_64 asm source files +- protection against silently building a libc.so with missing symbols + +compatibility: +- nl_langinfo(CODESET) now returns "ASCII" in byte-based C locale +- fixed build regression due to buggy .SECONDARY in some GNU make versions +- additional arm eabi functions needed by llvm arm backend +- added format argument attributes to gettext function prototypes +- static PIE no longer requires linking with -E/-rdynamic +- eliminated spurious protected-data warnings linking against libc.so +- avoided spurious fpu asm errors with some armhf toolchains + +bugs fixed: +- fclose of stdin/stdout caused deadlock at exit +- missing memory barrier in pthread_join +- open_[w]memstream produced no buffer when no writes took place +- uninitialized scopeid in address lookups from hosts file and ip literals +- ip literals for mismatching family (v4 vs v6) were queried as hostnames +- possible crash on OOM in regcomp +- incorrect contents in localeconv structure (-1 instead of CHAR_MAX) +- strftime mishandling of out-of-range struct tm members +- wrongful attribute((const)) on pthread_self and errno location function + +arch-specific bugs fixed: +- arm crt1 entry point failed to align stack pointer in some cases +- mips fesetround failed to actually set rounding mode +- i386 asm source CFI generation had multiple bugs