X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=WHATSNEW;h=492896168ae8cf42552ca918777b7653b99ad045;hb=fdaaa68d827430caa930e4c966fa8d8a9f8f64c4;hp=bfb45b8c24460dab316cc6ea7fa212f6976281e4;hpb=7bec92e793d4b8a349796848cf43c7329b0f2ed0;p=musl diff --git a/WHATSNEW b/WHATSNEW index bfb45b8c..49289616 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -915,3 +915,230 @@ arch-specific bugs fixed: - various low-impact type size/alignment mismatches in some headers - epoll struct alignment wrong on non-x86[_64] archs - broken pipe2 fallback code on mips with old kernels + + + +0.9.11 release notes + +new features: +- %m allocation modifier for scanf +- week number and ISO week-based-year functionality in strftime +- per-process and per-thread cputime clocks +- ethernet address conversion interfaces +- legacy classful ipv4 network address interfaces +- minimal dlinfo function (nonstandard) + +other improvements: +- dynamic linker path file can now use newlines to separate paths +- math optimizations for archs with extended precision (i386) +- musl-gcc wrapper now exposes gcc's intrinsic headers +- quality of rand and rand_r pseudo-random sequences +- support for large device minor numbers (greater than 8 bits) +- various header conformance and compatibility fixes + +directly user-visible bugs fixed: +- scanf losing characters on unbuffered streams and fmemopen streams +- failure of mbsrtowcs to record stop position when dest is full +- failure of iconv to convert to legacy codepages +- non-working pthread_[sg]etschedparam functions (wrong syscall arguments) + +other potentially-serious bugs fixed: +- resource leaks in sem_open +- various bugs in thread exit synchronization +- invalid access in aio notification after aiocb free/reuse +- synchronization in dynamic linker when new thread dlopens during ctors +- lack of error handling for failure to read dynamic linker path file +- creation by mmap or shmget of objects larger than PTRDIFF_MAX + +minor conformance bugs fixed: +- overflow handling for the clock function +- workaround for incorrect exceptions in fma due to compiler bugs +- workaround wrong kernel type for sem_nsems field in struct semid_ds + +arch-specific bugs fixed: +- x86_64 sigsetjmp clobbered the signal mask rather than saving it +- misaligned stack when calling ctors/dtors (crashing on x86_64) + + + +0.9.12 release notes + +new features: +- zoneinfo time zone support +- PIE support on all supported archs +- named sub-archs for endian and float ABI variants +- improved support for non-root installs of the dynamic linker +- ability to selectively build only performance-critical modules with -O3 +- simple buffer overflow detection in free/realloc +- inet_ntop now presents v4-mapped addresses in ::ffff:a.b.c.d form +- ldd now reports libc and the dynamic linker in its output + +compatibility: +- support for new init/fini array (needed for ctors/dtors on newer gcc) +- C++ ABI fully matches glibc/LSB, at least on x86 +- many added ABI compatibility symbols for using glibc-linked libs +- support for STB_GNU_UNIQUE symbol bindings (found in some C++ libs) +- macros/types for new Linux kernel features in headers + +bugs fixed: +- crashes in scanf on literal mismatches (regression from adding %m) +- dl_iterate_phdr was passing invalid phdr pointers to its callback +- getaddrinfo with null host and AF_UNSPEC was failing to report IPv6 +- integer overflows in date/time conversion code +- misinterpretation of pre-1930s dates as post-2038 on 32-bit archs +- make install failed to install bits headers if make was not run first +- shm_open was wrongly cancellable +- low- or no-impact heap corruption in memalign +- explicitly running the dynamic linker on PIE programs did not work +- missing macros and sysconf for some supported POSIX option groups +- missing close-on-exec flags for several internal fd uses + +arch-specific bugs: +- wrong SIG_ATOMIC_MIN/MAX macros on x86_64 +- erfcl was missing on archs where long double is same as double +- broken dynamic-model TLS in static-linked arm/mips/powerpc programs + + + +0.9.13 release notes + +new features: +- iconv support for EUC-KR and Big5 (including HKSCS) encodings +- field widths (POSIX 2008 feature) in strftime +- recursive rpath and $ORIGIN support in dynamic linker +- cpu affinity interfaces +- support for armhf (hardfloat) floating point environment (fenv) +- support for SSE fenv on i386 (for apps using -mfpmath=sse -msse2) +- strftime %s format (seconds since the epoch, future POSIX requirement) +- configure script now saves its command line as a comment in config.mak +- legacy functions valloc and euidaccess + +performance: +- optimized asm memcpy for arm +- optimized asm memset for i386 and x86_64 +- optimized C versions of memcpy and memset for all archs +- eliminated major spurious syscalls from posix_spawn +- some math asm for armhf (hardfloat) + +workarounds for: +- qemu-user's rt_sigaction syscall does not allow old to alias new +- qemu-user's madvise always succeeds (broke pthread_getattr_np) +- passing PT_INTERP to dlopen attempted to double-load libc +- gcc 4.8.x generating self-referential (infinite recursion) memcpy/memset +- linux's lack of support for fchdir, fchmod, fchown, fstat on O_PATH fds + +bugs fixed: +- failure to honor flags for fchmodat and faccessat (linux syscall api flaws) +- SIGEV_THREAD timer id corruption and race condition issues +- timer thread TLS incorrectly keeping values from previous expiry run +- ecvt/fcvt decimal position off-by-one +- in symbol-versioned libs, symbol resolved to oldest instead of newest +- posix_spawn not correctly reporting errno from exec failure +- "make install" was not atomic (overwrote files rather than replacing) +- integer overflows in strftime +- unset/empty TZ variable was mishandled +- strftime could crash if the struct tm did not have valid tm_zone field +- failure of fenv functions to handle invalid arguments (required by ISO C) +- failure of some math functions (C and i386 asm) to raise underflow flag +- broken dn_expand function (previously not used internally) +- race conditions with signals during fork +- incorrect access check in mktemp (obsolete function) +- unnecessary arbitrary limits on size of program headers in dynamic loader +- text formatting bugs in output of err.h functions + +arch-specific bugs: +- fesetenv(FE_DFL_ENV) crashed on i386 +- breakage of arm crt code when libc is compiled as thumb +- arm/armhf (hardfloat) misidentified by configure +- ambiguity of wait (exit status) macros on mips with signal number 127 +- wrong value of _NSIG and SIGRTMAX on mips + + + +0.9.14 release notes + +bugs fixed: +- failure to properly install dynamic linker with DESTDIR set (symlink wrong) +- rare deadlock in libc-internal locking routines +- dynamic linker used fallback paths wrongly on (possibly transient) errors +- popen broken when stdin or stdout was already closed in parent +- deadlock/memory-corruption in multithreaded set*id and setrlimit functions +- realpath failed when file was not readable +- readpath mistakenly had cancellation points in it +- crashes in scanf with invalid %m conversion specifiers +- misclassificiation of some invalid ld80 float representation in fpclassify +- various overflow and underflow flag issues in math functions +- domain handling errors for acoshf and acoshl +- wrong values for some sysconf properties +- lack of proper memory barriers on arm + +mips-specific bugs: +- broken sysv ipc structures +- multiple stack-related bugs in clone, leading to crashes in parent or child +- overflow writing sigset_t in multithreaded set*id and setrlimit functions + +other improvements: +- size and performance improvements to various math functions +- wait.h as a compatibility alias for sys/wait.h +- various header improvements +- support for runtime-variable page size on archs that need it (mainly mips) + + + +0.9.15 release notes + +new features: +- support for mixing IPv4 and v6 nameserver addresses in resolv.conf +- RFC 3678 multicast structures/macros in netinet/in.h +- putspent and fgetspent functions (shadow password API) +- timef function (obsolete, removed in POSIX 2008) +- fanotify syscalls (Linux-specific feature) +- semtimedop syscall (Linux-specific sysvipc extension) +- quotactl syscall and header (filesystem quotas support) +- drem and finite functions (obsolete BSD functions) +- getloadavg function (non-standard) +- herror function (non-standard and obsolete) +- libc.so now stores and prints its version information +- expose constants for new Linux features including O_TMPFILE +- implement FNM_LEADING_DIR option to fnmatch (GNU extension) +- posix_close function (accepted for inclusion in next POSIX issue) + +bugs fixed: +- buffer overflow in mbsrtowcs +- clobbering of gr_name in getgrnam_r and getgrgid_r +- execle ignoring the environment argument +- setenv crash on malloc failure +- out-of-bounds access in fnmatch with FNM_PATHNAME and certain patterns +- failure of malloc to set errno when failing to extend heap +- incorrect errno value from getcwd with zero size +- spurious failure in faccessat with AT_EACCESS flag with suid/sgid programs +- several fd leaks due to missing close-on-exec flag +- misspellings/typos in macro names in several headers +- incorrect failure return value in inet_pton +- various numeric ip address parsing and validation fixes +- namespace conformance issues in several headers +- minor header issues +- zombie processes left by faccessat with AT_EACCESS +- timezone file parser failing/crashing on 64-bit archs +- hang in localtime with near-overflowing time_t values on 64-bit archs +- timezone path search was only trying first path +- incorrect handling of excessive-length TZ environment strings +- timezone file loading was wrongly enforcing O_NOFOLLOW/rejecting symlinks +- iswspace was wrongly returning true for the null character +- various bugs in wordexp +- putgrent could write corrupt lines after write failures +- dn_expand misinterpreted in-packet offsets greater than 255 +- spurious strftime/wcsftime failure on len+1==bufsize case +- incorrect underflow flag in fma corner cases +- log*(0) wrongly returned +inf in downward-rounding mode +- failure of fchmod, fstat, fchdir, and fchown to produce EBADF + +arch-specific bugs fixed: +- i386: failure of fesetround to set sse rounding mode +- i386: floating point limit constants misinterpreted due to excess precision +- powerpc: broken thread pointer access when compiled with clang +- microblaze: dynamic linker entry point code possibly clobbering argv + +strict conformance issues: +- NULL definition re-aligned with POSIX (requires (void *) cast) +- alignment of math.h is* comparison functions with C11 annex F requirements