123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- 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,
- breaking the intended ABI compatibility with the LSB/glibc sigaction
- structure. users should upgrade immediately and rebuild any libraries
- or object files that might be using the incorrect definitions.
- improved security against DoS with tcb shadow passwords by checking
- that the file opened was really an ordinary file.
- fixed a bug in the implementation of atomic ops that could have
- allowed the compiler to incorrectly reorder them (in practice, gcc
- with the default settings on i386 was not reordering them).
- greatly improved conformance to the C and POSIX standards regarding
- what the standard header files make visible. _POSIX_C_SOURCE is now
- needed to get POSIX functions in standard C headers, and _XOPEN_SOURCE
- or _GNU_SOURCE are required to get XSI interfaces or GNU extensions,
- 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,
- along with PORTING guide. source tree layout and build system have
- been improved to accommodate further ports.
- various bugs that were introduced while making the headers respect C
- and POSIX namespace standards have been fixed. conformance to the
- standards has been improved.
- fixed an inefficiency in qsort that triggered a bug (occasionaly
- 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.
- 0.7.0 - major improvements to posix conformance and completeness
- implemented posix shared memory and semaphore interfaces.
- implemented all remaining required pthread and clock interfaces.
- major fixes to signal semantics.
- greatly improved temporary file name generation for safety against
- denial of service due to intentional name collisions.
- added syscall wrappers for the linux inotify interface.
- malloc(0) now returns a non-null pointer.
- 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 (pending release) - 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.
|