For installation instructions, see the INSTALL file.
-Please refer to the COPYRIGHT file for details on the copyright status
-of code included in musl, and the COPYING file for the license (LGPL)
-under which the library as a whole is distributed.
+Please refer to the COPYRIGHT file for details on the copyright and
+license status of code included in musl (standard MIT license).
Greetings!
-As of the 0.8.0 release, musl is in _beta_ status. While some
-interfaces remain incomplete or yet to be implemented, the ABI is
-intended to be stable at this point, and serious efforts have been
-made, using three separate test frameworks, to verify the correctness
-of the implementation. Many major system-level and user-level programs
-are known to work with musl, either out-of-the-box or with minor
-patches to address portability errors.
+With the 0.9.0 release, musl has reached a milestone in completeness
+and compatibility. All interfaces in ISO C99 and POSIX 2008 base exist
+in musl, along with a number of non-standardized interfaces based on
+GNU and BSD libraries and syscall interfaces for Linux-kernel-specific
+functions. Some interfaces lack obscure or rarely-used functionality
+needed for strict conformance, but the vast majority of interfaces go
+above and beyond the requirements for conformance, often promising
+success where other implementations can fail under resource exhaustion
+or other corner-case conditions.
+
+At this point, hundreds of packages have been successfully built
+against musl, either out-of-the-box or with minor patches to address
+portability errors. Testing has been conducted using three separate
+test frameworks and numerous additional standalone test cases to
+verify the correctness of the implementation.
Included with this package is a gcc wrapper script (musl-gcc) which
-allows you to build musl-linked programs using an existing gcc 4.x
-toolchain on the host. There are also now at least two mini
+allows you to build musl-linked programs using an existing gcc 3.x or
+4.x toolchain on the host. There are also now at several mini
distributions (in the form of build scripts) which provide a
-self-hosting musl-based toolchain and system root: Sabotage Linux and
-Bootstrap Linux. These are much better options than the wrapper script
-if you wish to use dynamic linking or build packages with many library
-dependencies.
+self-hosting musl-based toolchain and system root. These are much
+better options than the wrapper script if you wish to use dynamic
+linking or build packages with many library dependencies. See the musl
+website for details.
The musl project is actively seeking contributors, mostly in the areas
of porting, testing, and application compatibility improvement. For
- scanf and strtod wrongly treating "0.00000000001", etc. as 0
- many bugs in towupper/towlower (never seriously tested before)
- int8_t definition was wrong when gcc -funsigned-char was used
+
+
+
+0.9.0 release notes
+
+license change: MIT
+
+new features:
+- configure script, improved build system
+- full stack protector support
+- PIE support on x86 and x86_64
+- new O(1) space, O(nm) time implementation of fnmatch
+- improved support for sse2 floating point mode on x86
+
+compatibility:
+- added linux unshare syscall
+- exp10 function
+- sqrtl support on arm (previously missing)
+- removed minimal linux/*.h headers that could conflict with real ones
+- support for _LARGEFILE64_SOURCE (mapped to standard fcns with #define)
+- better c89 compatibility in headers
+- stub versions of sched_* functions (previously missing)
+- pthread stacks no longer executable (compat with hardened kernels)
+
+optimization:
+- additional x86_64 math asm
+- better formula for acos use in i386 asm
+
+bug fixes:
+- large (up to a few %) errors in strtod for certain values due to bug
+- mbsnrtowcs and wcsnrtombs were completely broken (bad exit logic)
+- wide printf %.0s could fail due to uninitialized variable
+- missing dlerror strings for dlsym in some cases