
musl libc - a new standard library to power a new generation of
Linux-based devices. musl is lightweight, fast, simple, free, and
strives to be correct in the sense of standards-conformance and
safety.

musl is an alternative to glibc, eglibc, uClibc, dietlibc, and klibc.
For reasons why one might prefer musl, please see the FAQ and libc
comparison chart on the project website,

    http://www.etalabs.net/musl/

For installation instructions, see the INSTALL file.

Please refer to the COPYRIGHT file for details on the copyright and
license status of code included in musl (standard MIT license).



Greetings!

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 - ranging from low-level system utilities and
network daemons to major gui applications. 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 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. 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
bug reports, support requests, or to get involved in development,
please visit #musl on Freenode IRC or subscribe to the musl mailing
list by sending a blank email to musl-subscribe AT lists DOT openwall
DOT com.

Thank you for using musl.

Cheers,

Rich Felker / dalias


