Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer


A quick-and-simple guide to installing musl:

STEP 1: Configuration

Edit config.mak to override installation prefix, compiler options,
target architecture, etc. as needed. Currently supported archs are
i386 and x86_64. Otherwise, the defaults should be okay for trying out
musl with static linking only.

DO NOT set the prefix to /, /usr, or even /usr/local unless you really
know what you're doing! You'll probably break your system such that
you'll no longer be able to compile and link programs against glibc!
This kind of setup should only be used if you're building a system
where musl is the default/primary/only libc.

The default prefix is /usr/local/musl for a reason, but some people
may prefer /opt/musl or $HOME/musl.

STEP 2: Compiling

Run "make". (GNU make is required.)

STEP 3: Installation

With appropriate privileges, run "make install".

STEP 4: Using the gcc wrapper.

musl comes with a script "musl-gcc" (installed in /usr/local/bin by
default) that can be used to compile and link C programs against musl.
It requires a version of gcc with the -wrapper option (gcc 4.x should
work). For example:

cat > hello.c <<EOF
#include <stdio.h>
int main()
	printf("hello, world!\n");
	return 0;
musl-gcc hello.c

For compiling programs that use autoconf, you'll need to configure
them with a command like this:

CC=musl-gcc ./configure

Be aware that (at present) libraries linked against glibc are unlikely
to be usable, and the musl-gcc wrapper inhibits search of the system
library paths in any case. You'll need to compile any prerequisite
libraries (like ncurses, glib, etc.) yourself.