unikraft / lib-musl

musl: A C standard library
Other
9 stars 29 forks source link
library musl unikraft

Musl

Musl is a standard C library (libc) providing POSIX support on top of the Linux system call API. These are support files for Musl support in Unikraft.

Musl is the default and recommended libc for Unikraft. newlib is another libc available for Unikraft. Musl provides thread support natively, while newlib requires pthread-embedded; Musl doesn't require (and must not be built with) pthread-embedded.

Note that lwip is required for networking support.

Using Musl with Unikraft

Musl is to be used as the standard C library in Unikraft applications, such as app-nginx. The application build system must be aware of the location of the local clone of the Musl repository. When Musl is selected the internal Unikraft nolibc library will be unselected.

Remarks

The default configuration doesn't include complex number support, i.e. the LIBMUSL_COMPLEX option is disabled (see Config.uk); see commit 45c4aa58. This is because, in case of using Clang to build Musl, the symbol _muldc3 (used for complex numbers) is undefined; in case of using Clang and requiring complex number support, compiler-rt is to be included to the build.