The LLVM C Library#
LLVM-libc is a from-scratch implementation of the C standard library, built as part of the LLVM project. It is designed to be modular (any piece can be used independently), multiplatform (Linux, GPU, baremetal embedded, UEFI, macOS, Windows), and written in modern C++ for correctness, performance, and safety.
What Works Today#
LLVM-libc is actively used in production for a targeted set of use cases, though coverage is still growing and many programs that depend on the full C standard library (regex, locale, wide-character I/O, etc.) will not yet compile against it:
Static-linked Linux servers and containers — used in production at Google (servers and Pixel Buds) on x86-64 and AArch64.
GPU compute (AMDGPU, NVPTX) — libc functions available in GPU kernels via LLVM’s offloading runtime. GPU docs
Baremetal embedded (ARM, RISC-V, AArch64) — minimal footprint builds for microcontrollers and custom hardware.
UEFI applications — experimental support for firmware development. UEFI docs
LLVM ecosystem internals — libc++ and the offloading runtime consume LLVM-libc directly via Hand-in-Hand.
Toolchain integrations — pieces of LLVM-libc are used in Android Bionic, Fuchsia, Emscripten, and the ARM embedded toolchain.
Coverage is still growing. See the implementation status pages for per-header detail, and the platform support page for OS/architecture coverage.
Getting Started#
If you are new to LLVM-libc, Getting Started is the right first stop. It covers cloning, building, testing, and verifying your installation in one place.
Want to use LLVM-libc alongside your system libc instead of replacing it? See Overlay Mode.
Get Involved#
LLVM-libc is an active project and welcomes contributors of all experience levels. See Contributing to the libc Project to learn how to help.