X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=WHATSNEW;h=3b3bfa31f3b127cd22fae3b206b54c974ce3e1ca;hp=696cc7742cf89d7f9913ce7048c4dc6c1368c001;hb=4a08c85111835c00a4c007aa3a198d9474932a97;hpb=8d07a0350ef2cfa209db05980ffa0b916744f3d4 diff --git a/WHATSNEW b/WHATSNEW index 696cc774..3b3bfa31 100644 --- a/WHATSNEW +++ b/WHATSNEW @@ -1,5 +1,7 @@ 0.5.0 - initial release + + 0.5.9 - signal ABI bugfix, various cleanup and fixes: sigset_t was wrongly defined as 1024 bytes instead of 1024 bits, @@ -23,6 +25,8 @@ respectively. many internal improvements have been made to the syscall-related code in preparation for porting to x86_64 and other archs. + + 0.6.0 - x86_64 port, various important bugs fixed new x86_64 (amd64) architecture port, contributed by Nicholas J. Kain, @@ -39,7 +43,9 @@ internal compiler error) in some versions of gcc. fixed a major bug in the printf %n specifier that prevented it from working and caused memory corruption. -UPCOMING RELEASE - major posix conformance improvements + + +0.7.0 - major improvements to posix conformance and completeness implemented posix shared memory and semaphore interfaces. @@ -52,12 +58,303 @@ denial of service due to intentional name collisions. added syscall wrappers for the linux inotify interface. -malloc(0) now returns a non-null pointer +malloc(0) now returns a non-null pointer. -fixed printf %n specifier (again). +fixed printf %n specifier (again), pthread_once (it was always +hanging), and non-default-type mutex behavior. added ucontext/sigcontext support in headers to facilitate building libgcc with dwarf2 unwind support, and possibly other low-level tools. +improved musl-gcc compiler wrapper. + implemented many small missing functions here and there, minor header fixes, etc. + + + +0.7.1 - improvements to completeness, bug fixes + +implemented flockfile, wprintf, and robust mutex functions. + +fixed stack corruption bug in times(), minor header bugs, and some +error return value bugs in thread interfaces. + + + +0.7.5 - new features, major optimization, and robustness + +implemented POSIX timers. + +optimized and simplified many thread-related functions. + +eliminated resource leak races in thread cancellation. (almost all +existing implementations, including glibc, have these leaks.) + +overhauled stdio implementation to take advantage of readv/writev for +reduced syscall load, and improved stdio's handling of error status. + +added syscall header and interface for applications to use and +greatly simplified internal system for making syscalls. + +strangthened tmpnam/tempnam/tmpfile filename generation and made the +straight C functions not depend on POSIX symbols. + +fixed pthread cancellation ABI on i386 to match the LSB/glibc ABI + +better double-free handling in malloc + +various minor bug fixes + + + +0.7.6 - major bug fixes + +fixed rare but serious under-allocation bug in malloc. + +fixed signedness bug in strchr that prevented finding high bytes. + +fixed serious parsing bugs in strtold. + +fixed statvfs syscall (it was always failing with EINVAL). + +fixed race condition in set*id() functions with threads (possible +deadlock). further audit still needed though. + +fseek no longer sets the stream error flag on failed seeks (this was +wrong and broke some programs, notably GNU m4). + +nl_langinfo is no longer a dummy function. (the functionality was +previously implemented but accidentally left unused). + +various small fixes have been made to the implementations and +prototypes for nonstandard and obsolete functions + + + +0.7.7 - more bug fixes and program-compatibility improvements + +fixed floating point formatting and rounding bugs in printf. + +fixed broken %N$ positional argument specifiers in printf. + +fixed misaligned read/overread bug in strchr which could lead to +crashes scanning tiny strings at the end of a page when the next page +is not readable, or on archs (not yet supported) that forbid +misaligned reads. + +fixed breakage of statvfs on x86_64 + +fixed crash in getmntent_r + +fixed bug in POSIX timers created with NULL sigevent argument + +improved semaphore performance, and sem_wait is now interruptable by +signals, as required by POSIX. + +added many compatibility and system-level interfaces, increasing the +proportion of busybox that works with musl. + + + +0.7.8 - more bug fixes and compatibility improvements + +fixed problems with ipv6 dns and address printing code that made ipv6 +support practically unusable, and some other getaddrinfo bugs. + +fixed broken sendmsg/recvmsg functions on x86_64 (caused by incorrect +msghdr structure). + +fixed broken sigsetjmp asm on x86_64. + +worked around a problem with input buffering on terminals reblocking +after getting a blank line, due to a bug in the linux readv syscall. + +various improvements to the "rsyscall" system used to implement +threaded setuid, setgid, etc. + +exiting/cancelling the a timer handler thread no longer kills the +timer. + +fixed incorrect trailing zeros on some %g conversions in printf. + +fixed buggy byte-swapping functions and moved them to inlines in +byteswap.h. + +many small improvements to header/application compatibility, support +for nonstandard macros, etc. + + + +0.7.9 release notes + +new pthread cancellation implementation: +- safe against resource-leak/side-effect-leak race conditions +- safe against interruption by signal handlers +- reduced bloat in all cancellable functions +- reduced bloat for blocking cancellation + +new interfaces implemented: +- realpath (limited functionality) +- wordexp (limited functionality) +- flock (nonstandard) +- forkpty (nonstandard) +- posix_fadvise +- posix_fallocate + +general bug fixes: +- syslog function failure to communicate with syslogd +- bug in siginfo_t definition if wait.h was included before signal.h +- incorrect struct definitions for most of sysv ipc +- pthread_exit/cancel on timer handler wrongly destroying the timer +- linux dup2 ebusy workaround +- obscure issues in non-threaded programs using some pthread functions +- getopt_long allowed mismatch in last char of option name +- incorrect parsing of obscure ip address forms +- initgroups not working reliably (uninitialized var) +- shadow pass treating empty expiry field as pass-expired-in-1970 +- bogus longjmp if pthread_exit was called from cancellation handlers + +x86_64-specific bug fixes: +- fcntl file locking +- thread stack alignment +- broken select timeouts due to incorrect timeval definition + + + +0.7.10 release notes + +new features: +- ipv6 numeric string parsing +- eventfd syscall wrappers + +optimizations: +- new qsort implementation using the smoothsort algorithm +- much smaller/faster sigset_t handling functions +- lowered spin count before futex wait in synchronization functions + +general bug fixes: +- incorrect floating point round-to-even behavior in printf +- major bugs in pthread barrier implementation +- off-by-one error in scanf %n results +- scanf failure to report EOF when scanning for literal text +- minor missing/incorrect prototype issues +- dependency on undefined call order in fclose + +compiler issue workarounds: +- incorrect inlining of variadic functions on recent gcc versions +- pcc preprocessor bug with recursive macro expansion + + + +0.7.11 release notes + +new features: +- integrated dynamic linker +- dynamic loading (dlopen/dlsym) (for dynamic-linked programs only) +- XSI search.h API +- POSIX message queues +- POSIX spawn interfaces +- BSD pseudo-random number generator API (random/srandom/initstate/etc.) +- floating point environment (limited usefulness due to gcc bugs) + +general bug fixes: +- possible crashes with wordexp due to uninitialized variable +- race condition in pthread_kill (also present and unfixed in glibc/nptl) +- pthread exit destructors called too late +- dangerous unbounded vla in glob +- brk/sbrk legacy functions mismatching legacy semantics +- wcsncpy dest buffer overflow +- strncat and wcsncat possible overflows due to double-termination + + + +0.7.12 release notes + +new features: +- support for textrels in shared objects +- rpath support in dynamic linker +- stdio_ext.h functions (for better gnu software compatibility) + +bug fixes: +- some compilers miscompiling dlopen due to misuse of longjmp +- safe handling of invalid long-double bit patterns (affects printf) +- workaround for bugs in linux mprotect syscall +- thread-safety for random() functions +- various minor issues + + + +0.8.0 release notes + +new features: +- chinese and japanese legacy charset support in iconv +- zero-syscall clock_gettime support (dynamic-linked x86_64 only) +- futex-based locking for stdio (previously used spinlocks) +- LD_PRELOAD and RTLD_NEXT support in dynamic linker +- strptime (mostly working but incomplete) +- posix aio (mostly working but not entirely conformant) +- memory streams (fmemopen, open_memstream, ...) +- stub/dummy implementations for various useless legacy functions +- if_nameindex + +security hardening: +- setuid, etc. should not longer be able to "partially fail" with threads +- ensure suid programs start with fd 0,1,2 open +- improved openpty/forkpty failure checks + +threads/synchronization bug fixes: +- dangerous spurious wakeup in pthread_join lead to early return +- race condition enabling async cancellation (delayed/lost cancellation) +- destruction/unmapping race conditions in semaphores, mutexes, rwlocks +- recursive rwlock_rdlock deadlock when a writer is waiting +- race condition in sigqueue with fork +- timer expiration thread exit wasn't running dtors +- timer threads weren't blocking signals +- close was wrongly cancellable after succeeding on some devices +- robust mutex list was not reset on fork + +general bug fixes: +- incorrect logic in fread (spurious blocking; crash on write-only files) +- many corner cases and overflow cases for strtol-family functions +- various printf integer formatting issues with flags/width/precision +- incorrect iconv return value on failure +- broken FD_* macros on 64-bit targets +- clock function returning wrong value (real time not cpu time) +- siglongjmp signal mask clobbering (off-by-one pointer error) +- dynamic linker weak symbol resolution issues +- fdopendir failure to set errno +- various minor header fixes + + + +0.8.1 release notes + +bug fixes: +- mismatching prototypes caused build failure on 64-bit +- other minor prototype errors in the headers have been fixed +- various other small omissions fixed + + + +0.8.2 release notes + +new features: +- ptrace syscall support + +bug fixes: +- const error (only a warning with many compilers) in lio_listio +- minor portability fixes aimed at supporting new arch targets + + + +0.8.3 release notes + +new features: +- arm port (experimental) +- better musl-gcc wrapper script for building against musl +- added clone system call + +bug fixes: +- numerous header file typos, copy/paste errors, omissions +- statfs and statvfs ABI are now LSB-conformant (and actually work)