musl - obsolete versions

This page contains links to obsolete versions of musl from the alpha/beta series which are mostly of historical interest. Current versions and latest git links can be found on the main download page.

Beta series

musl-0.8.10.tar.gz - April 25, 2012
Character classification functions updated to Unicode 6.1 and greatly improved. Over/underflow detection and bugs fixed in strtod/scanf float support. Minimal stack protector support. Better debugging support for shared libraries. Recent breakage in iconv and sysconf fixed. Improved musl-gcc wrapper script.
musl-0.8.9.tar.gz - April 19, 2012
Bug-fix release for a serious breakage in strtol and related functions that made it into the previous release and prevents them from handling numbers with initial spaces. A couple other small issues have been fixed too.
musl-0.8.8.tar.gz - April 18, 2012
Fix for critical buffer overflow vulnerability in fprintf with unbuffered files. Major math library correctness and performance improvements, including x86 assembly. New floating point parser/converter with correct rounding, new scanf that corrects many corner-case errors, and new wcstod/f/ld (previously missing). Various compatibility improvements and small bug fixes.
musl-0.8.7.tar.gz - March 17, 2012
C++ support with g++/libstdc++ (requires minor fixes for glibc dependencies in libstdc++). New C99 math library (float, long double, complex, etc.) based on FreeBSD and OpenBSD code. Working floating point environment on i386 and x86_64. Many bugfixes and compatibility improvements for builting slightly-nonportable programs against musl.
musl-0.8.6.tar.gz - February 28, 2012
Bug fix release for a serious bug that slipped into the previous release: All static linked programs that performed DNS lookups but did not use pthreads were crashing due to a logic error in the weak linking of pthread cancellation cleanup functions.
musl-0.8.5.tar.gz - February 27, 2012
Numerous additions of small legacy interfaces and previously-omitted standard functions that were determined to be important for building real-world programs. Global constructor/destructor support in main program and shared libraries/dynamic loader. Thread cancellation requests are now able to cancel blocked stdio operations. A bug in GCC 3 that prevented building shared libc has been worked around. GCC wrapper now supports generating shared libraries. Various obscure bugs have also been fixed.
musl-0.8.4.tar.gz - January 23, 2012
Better arm support, including dynamic linking. Many improvements and fixes in pthread cond vars, barriers, and rwlocks. Assorted small compatibility improvements and bug fixes all around.
musl-0.8.3.tar.gz - September 21, 2011
New experimental ARM port (armv4l+ w/EABI). Improved musl-gcc wrapper now works with pre-4.4 gcc versions (including 3.x) and behaves more transparently. The clone syscall is now exported. statfs/statvfs ABI issues have been fixed, along with a number of small header file errors.
musl-0.8.2.tar.gz - September 17, 2011
Support for the ptrace syscall (process tracing/debugging) has been added, and an error in pointer const-correctness (fortunately treated as just a warning by most compilers) has been fixed. Some other small portability fixes/improvements have been made in preparation for new ports.
musl-0.8.1.tar.gz - September 14, 2011
This release is purely bug fixes. It addresses a build failure on 64-bit systems, minor header file prototype errors and inconsistencies, and a small omission related to posix_spawn.
musl-0.8.0.tar.gz - September 13, 2011
First post-alpha release. Major improvements to dynamic linker/loader, iconv, stdio, integer formatting/parsing, threads/synchronization, and hardening for poorly-written suid programs. New implementations of previously-missing functionality including memory streams, time parsing, and POSIX AIO. Many unlock/destroy-type race condition bugs have been fixed in pthread locks; such races are nearly impossible to trigger but persist in other implementations such as glibc/NPTL. A number of other bugs have also been fixed, including bugs in stdio, clock, iconv, siglongjmp, and various header files.

Alpha series

musl-0.7.12.tar.gz - July 3, 2011
New improvements to the dynamic linker (TEXTREL and RPATH support) increase compatibility with applications, particularly those which don't follow best practices for building and installing libraries. A bug in dlopen which affected only certain compiler versions (misuse of local variables with longjmp) has been fixed. Support has been added for the stdio_ext.h family of interfaces, to reduce the effort needed to compile buggy gnulib programs that try to poke at stdio FILE internals, the random() function has been made thread-safe, mprotect now works around a bug in the Linux syscall, and uninitialized long double values are now handled safely in printf.
musl-0.7.11.tar.gz - June 28, 2011
Shared libraries and dynamic loading (dlopen/dlsym) are now supported through an integrated dynamic linker with near-zero overhead. Other new features include POSIX message queues, posix_spawn, the search.h interfaces, the random() PRNG, and floating point environment manipulation. Moderately severe bugs in several string and wide string interfaces and glob(), as well as various minor bugs, have been fixed.
musl-0.7.10.tar.gz - May 17, 2011
Support for numeric IPv6 address parsing has been added. Compiling musl with PCC should now succeed and result in a working library. The heap sort implementation of qsort has been replaced by smooth sort, yielding nearly-linear run time on arrays which are already mostly-sorted. Various bugs including printf floating point rounding and scanf EOF handling have been fixed, as well as minor prototype issues in the public headers and an issue where variadic functions were incorrectly inlined on i386 with recent gcc versions.
musl-0.7.9.tar.gz - April 23, 2011
This release features the second wave of major changes to pthread cancellation, believed to resolve all possible issues with resource leaks, premature cancellation, and late/missed cancellation opportunities, all while simplifying and reducing the code size and eliminating the cost in applications which do not use cancellation. Several major x86_64-specific bugs related to select(), fcntl locking, and alignment-related crashes, and many minor bugs affecting all platforms, have also been fixed.
musl-0.7.8.tar.gz - April 13, 2011
Multiple bugs in IPv6 support, x86_64 socket and setjmp handling, byte swapping functions, and floating point printf formatting have been fixed, and a workaround has been included for a bug in Linux readv() with tty devices which caused stdio to block after reading a blank line from the terminal. Significant additions have been made to some header files for better compatibility with legacy applications.
musl-0.7.7.tar.gz - April 6, 2011
More bugs have been fixed, including printf floating point formatting and rounding, printf positional argument specifiers, a misaligned read bug in strchr which could lead to crashes, general failure of getmntent_r, broken statvfs on x86_64, and various minor issues. More nonstandard and system-level interfaces have also been added, increasing application compatibility.
musl-0.7.6.tar.gz - April 4, 2011
Major bugs have been fixed, including a rare but serious bug in malloc for large allocations of particular sizes, failure of strchr when searching for high bytes, parsing errors in strtold, and numerous smaller issues.
musl-0.7.5.tar.gz - April 2, 2011
Support for POSIX timers (signal- and thread-based delivery) has been added. The stdio buffering implementation now uses readv/writev scatter-gather IO to operate on caller-provided and internal FILE buffers together in a single syscall, improving performance. Thread cancellation has been greatly improved to guarantee no resource leaks when a cancellation request is received at a resource-allocating syscall (such as open()), giving musl a major robustness advantage over other libraries, including glibc. The syscall() interface is now available to applications, and various other small improvements have been made and bugs fixed.
musl-0.7.1.tar.gz - March 18, 2011
The previously-missing wide character printf-family functions, and manual stdio locking functions (flockfile) have been implemented. Robust mutexes are also now supported. Various bugs have been fixed, including unconditional, potentially-dangerous stack corruption by the times() function and several minor bugs.
musl-0.7.0.tar.gz - March 11, 2011
This release fills in a number of previously-missing interfaces, including POSIX shared memory, semaphores, and all remaining basic pthread and POSIX clock functions. In addition, many corrections have been made in the semantics of signals, threads, and various other interfaces. Significant bugs in the printf %n specifier and pthread_once function have been fixed. As of 0.7.0, musl is believed to pass all tests in the Open POSIX Test Suite except those that rely on not-yet-implemented features or that invoke undefined behavior.
musl-0.6.0.tar.gz - February 17, 2011
This is the first release of musl to support building native x86_64 applications, and it features a source/build framework for additional ports. Some public header errors introduced in the previous release have been fixed, as well as a major bug in the %n specifier for printf and several minor bugs.
musl-0.5.9.tar.gz - February 14, 2011
This release fixes a major bug in the intended long-term ABI for sigset_t/sigaction. Anyone using musl to build libraries should upgrade immediately (and rebuild any libraries which might use signals) to avoid running into ABI breakage issues at a later time. The public header files have also undergone review and correction for conformance to ISO C and POSIX requirements for what they are allowed to make visible. Various other minor bugs have been fixed, and internal improvements have been made to facilitate upcoming ports to x86_64 and possibly ARM.
musl-0.5.0.tar.gz - February 11, 2011
Initial public release.