Skip to content

musl

Overview

musl is a C standard library. Every C program depends on it for memory allocation, file access, string handling, and other basic operations. Most Linux distributions use glibc; musl is a lighter alternative built around correctness, simplicity, and small size.

Neko-Void uses musl where it is viable. It keeps the system lean and stays out of the way.

Why musl

Aspectmuslglibc
SizeSmallLarge
DesignSimple, predictableFeature-rich, complex
Memory useLowerHigher
CompatibilityMost softwareAlmost everything
Static linkingClean, supportedProblematic

The trade-off is compatibility. Some closed-source software and a few legacy programs expect glibc and need workarounds. The rest of the free software ecosystem runs on musl without issue.

How to tell which library a system uses

bash
$ ldd /bin/ls | grep -E 'musl|glibc|libc\.so'

A musl system shows a path like /lib/ld-musl-x86_64.so.1. A glibc system shows libc.so.6 and /lib64/ld-linux-x86-64.so.2.

Running glibc software on a musl system

When a program requires glibc, there are three common paths:

  • Flatpak. The cleanest option. Flatpak bundles its own runtime, so glibc applications run without touching the base system. Neko-Void ships Flatpak support for this reason.
  • glibc chroot or container. For heavier cases, a Void glibc chroot or a Distrobox container gives a full glibc environment.
  • Static binaries. A static build carries no library dependency and runs anywhere.

Do not mix glibc libraries into a musl base system. It is fragile and unsupported.

Released under the BSD-3-Clause License.