+To configure autoconf-based program to compile and link against musl,
+you may wish to use:
+
+CC="musl-gcc -D_GNU_SOURCE" ./configure ...
+
+Correctly-written build systems should not need -D_GNU_SOURCE as part
+of $CC, but many programs do not use feature-test macros correctly and
+simply assume the compiler will automatically give them the kitchen
+sink, so the above command is an easy workaround.
+
+You will probably also want to use --prefix when building libraries to
+ensure that they are installed under the musl prefix and not in the
+main host system library directories.
+
+Finally, it's worth noting that musl's include and lib directories in
+the build tree are setup to be usable without installation, if
+necessary. Just modify the musl-gcc wrapper's libc_prefix variable to
+point to the source/build tree.
+
+
+
+== Option 2: Installing musl as the primary C library ==
+
+In this setup, you will need an existing compiler/toolchain. It
+shouldnt matter whether it was configured for glibc, uClibc, musl, or
+something else entirely, but sometimes gcc can be uncooperative,
+especially if the system distributor has built gcc with strange
+options. It probably makes the most sense to perform the following
+steps inside a chroot setup or on a virtualized machine with the
+filesystem containing just a minimal toolchain.
+
+WARNING: DO NOT DO THIS ON AN EXISTING SYSTEM UNLESS YOU REALLY WANT
+TO CONVERT IT TO BE A MUSL-BASED SYSTEM!!
+
+1. If you are just upgrading an existing version of musl, you can skip
+ step 1 entirely. Otherwise, move the existing include and lib
+ directories on your system out of the way. Unless all the binaries
+ you will need are static-linked, you should edit /etc/ld.so.conf
+ (or equivalent) and put the new locations of your old libraries in
+ the search path before you move them, or your system will break
+ badly and you will not be able to continue.
+
+2. Edit musl's config.mak and set the installation prefix to the
+ prefix your compiler toolchain is configured to search, probably
+ /usr. Set ARCH to match your CPU architecture, and change any other
+ options as you see fit.
+
+3. Run "make" to compile musl.
+
+4. Run "make install" with appropriate privileges.
+
+5. If you are using gcc and wish to use dynamic linking, find the gcc
+ directory containing libgcc.a (it should be something like
+ /usr/lib/gcc/i486-linux-gnu/4.3.5, with the arch and version
+ possibly different) and look for a specs file there. If none
+ exists, use "gcc -dumpspecs > specs" to generate a specs file. Find
+ the dynamic linker (/lib/ld-linux.so.2 or similar) and change it to
+ "/lib/ld-musl-$ARCH.so.1" (with $ARCH replaced by your CPU arch).
+
+At this point, musl should be the default libc. Compile a small test
+program with gcc and verify (using readelf -a or objdump -x) that the
+dynamic linker (program interpreter) is /lib/ld-musl-$ARCH.so.1. If
+you're using static linking only, you might instead check the symbols
+and look for anything suspicious that would indicate your old glibc or
+uClibc was used.