I have been using Musl for various purposes for quite some time. I think my favourite things are:<p>* The team are very helpful, and fix things fast and correctly. You can see some of the detail in this post on race conditions in glibc <a href="http://ewontfix.com/16/" rel="nofollow">http://ewontfix.com/16/</a><p>* It is very standards compliant, so it is a good portability test for your code. It is a bit like using a BSD libc, except it does have Linux specific syscalls etc.<p>* Static linking works, which it doesnt properly in glibc. If you want to be like those trendy Go people and provide simple statically linked single file binaries, for running in containers etc then you can. And they will be small: the glibc shared library is 1.8MB (not including rt, pthread etc), while a Musl statically linked copy of Lua for example is only 160k. Static linking is very useful for all sorts of things, my most recent use was cross compiling bianries to run under qemu-user for testing.<p>* It is BSD licensed so you can use it in completely different projects however you want, eg OSv uses it <a href="http://osv.io/" rel="nofollow">http://osv.io/</a><p>* The code is small and readable. If you want to know how things work you can just take a look, quickly find the code and understand it. Just finding the code in glibc takes ages. I keep a reference copy just for this purpose.<p>You can use the "cross compiler" musl-gcc that ships with it to build if your code is happy being cross compiled (should be, most things just work). If you have a lot of dependencies it might be easier to use a distro, I use Sabotage in a chroot usually <a href="https://github.com/sabotage-linux/sabotage" rel="nofollow">https://github.com/sabotage-linux/sabotage</a>