Musl

Implementation of C standard library for Linux operating system

For the American lottery organization MUSL, see Multi-State Lottery Association.

musl

Developer(s)| Rich Felker (dalias) and others
Initial release| February 11, 2011; 14 years ago (2011-02-11)[1]
Stable release|

1.2.5[2] / February 29, 2024; 17 months ago (2024-02-29)

Repository|

* git.musl-libc.org/cgit/musl

Operating system| Linux 2.6 or later
Platform| x86, x86_64, ARM, loongarch64, MIPS, Microblaze, PowerPC, powerpc64, x32, RISC-V, OpenRISC, s390x, SuperH
Type|

* C standard library
* Linux for embedded systems
* Linux for mobile devices

License| MIT License
Website| musl.libc.org

musl is a C standard library intended for operating systems based on the Linux kernel, released under the MIT License.[3] It was developed by Rich Felker to write a clean, efficient, and standards-conformant libc implementation.[4]

## Overview

[edit]

musl was designed from scratch to allow efficient static linking and to have realtime-quality robustness by avoiding race conditions, internal failures on resource exhaustion, and various other bad worst-case behaviors present in existing implementations.[4] The dynamic runtime is a single file with stable ABI allowing race-free updates and the static linking support allows an application to be deployed as a single portable binary without significant size overhead.

It claims compatibility with the POSIX 2008 specification and the C11 standard. It also implements most of the widely used non-standard Linux, BSD, and glibc functions.[5] There is partial ABI compatibility with the part of glibc required by Linux Standard Base.[6]

Version 1.2.0 has support for (no longer current) Unicode 12.1.0 (while still having full UTF-8 support,[7] more conformant/strict than glibc), and version 1.2.1 "features the new 'mallocng' malloc implementation, replacing musl's original dlmalloc-like allocator that suffered from fundamental design problems."[2]

## Use

[edit]

Linux distributions which use musl as their standard C library (some use only musl) include but are not limited to:

* Alpine Linux[8]
* Dragora 3[9]
* Gentoo Linux (glibc by default, musl can be chosen at install time)[10]
* OpenWrt[11]
* postmarketOS[12]
* Sabotage[13]
* Morpheus Linux[14]
* Chimera Linux[15]
* Void Linux[16]

The seL4 microkernel[17] ships with musl.

For binaries that have been linked against glibc, gcompat and[18] glibmus-hq[19] can be used to execute them on musl-based distros.

## See also

[edit]

* Free and open-source software portal

* Bionic libc
* dietlibc
* EGLIBC
* klibc
* Newlib
* uClibc

## References

[edit]

1. ^ "musl - obsolete versions". musl-libc.org. 2017-10-31. Retrieved 2018-01-14.>
2. ^ a b "musl libc Release History". musl.libc.org. Archived from the original on 2021-10-16. Retrieved 2020-08-13.
3. ^ Rich Felker; et al. (2016-04-29). "COPYRIGHT". Archived from the original on 2021-10-16. Retrieved 2016-09-26.
4. ^ a b "Introduction to musl". 2016-04-21. Archived from the original on 2021-10-16. Retrieved 2016-09-26.
5. ^ "Compatibility". wiki.musl-libc.org. 2014-05-27. Archived from the original on 2021-10-16. Retrieved 2016-09-26.
6. ^ "Comparison of C/POSIX standard library implementations for Linux". www.etalabs.net. Archived from the original on 2021-10-16.
7. ^ "musl libc - Functional differences from glibc". wiki.musl-libc.org. Archived from the original on 2021-10-16. Retrieved 2020-08-13.
8. ^ "About". Alpine Linux. Retrieved 18 June 2022.
9. ^ Larabel, Michael (30 September 2018). "Dragora 3.0 Alpha 2 Released As One Of The Libre GNU/Linux Platforms". Phoronix. Phoronix Media. Retrieved 18 June 2022.
10. ^ Gentoo Authors (20 July 2021). "Additional stage downloads for amd64, ppc, x86, arm available". Gentoo Linux. Retrieved 18 June 2022.
11. ^ Fietkau, Felix (16 Jun 2015). "OpenWrt switches to musl by default". Archived from the original on 28 July 2015.
12. ^ "About postmarketOS - postmarketOS Wiki". wiki.postmarketos.org. Retrieved 2024-08-07.
13. ^ README.md on GitHub
14. ^ "morpheus". Archived from the original on 2021-10-16. Retrieved 2018-06-15.
15. ^ "Chimera Linux - About". Chimera Linux. Retrieved 2023-05-10.
16. ^ "Enter the void". Void Linux. Retrieved 18 June 2022.
17. ^ seL4/musllibc, seL4 microkernel and related repositories, 2020-08-30, archived from the original on 2021-10-16, retrieved 2020-09-05
18. ^ "Adélie Linux / gcompat". GitLab. Archived from the original on 2021-10-16. Retrieved 2019-10-21.
19. ^ "Manoel-linux-gitlab / GlibMus-HQ · GitLab".

## External links

[edit]

* Official website
* Comparison of C/POSIX standard library implementations for Linux
* Matrix of C/POSIX standard libraries by architecture
* Project:Musl on Gentoo wiki

* v
* t
* e

C programming language

* ANSI C
* C99
* C11
* C17
* C23
* Embedded C
* MISRA C

Features|

* Functions
* Header files
* Operators
* String
* Syntax
* Preprocessor
* Data types

Standard library|

* Char
* File I/O
* Math
* Dynamic memory
* String
* Time
* Variadic
* POSIX

Implementations|

* Bionic
* libhybris
* dietlibc
* glibc
* EGLIBC
* klibc
* Windows CRT
* musl
* Newlib
* uClibc

Compilers|

* ACK
* Borland Turbo C
* Clang
* GCC
* ICC
* LCC
* Norcroft C
* PCC
* SDCC
* TCC
* Visual C++ (MSVC)
* Watcom C/C++

IDEs|

* Anjuta
* CLion
* Code::Blocks
* CodeLite
* Eclipse
* Geany
* GNOME Builder
* KDevelop
* NetBeans
* Visual Studio

Comparison with
other languages|

* Compatibility of C and C++
* Comparison with Pascal

Descendant
languages|

* Alef
* C++
* C#
* D
* Objective-C
* Go
* Vala
* Zig

Designer|

* Dennis Ritchie

* Category

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template