1=============================================== 2llvm-libc: An ISO C-conformant Standard Library 3=============================================== 4 5**llvm-libc library is not complete. If you need a fully functioning libc right 6now, you should continue to use your standard system libc.** 7 8.. contents:: Table of Contents 9 :depth: 4 10 :local: 11 12Introduction 13============ 14 15The libc aspires to a unique place in the software ecosystem. The goals are: 16 17- Fully compliant with current C standards (C17 and upcoming C2x) and POSIX. 18- Easily decomposed and embedded: Supplement or replace system C library 19 functionality easily. This is useful to get consistent math precision across 20 systems, or updated memory operations for newer microarchitectures. These 21 pieces will work on Linux, MacOS, Windows, and Fuchsia. 22- The creation of fully static binaries without license implications. 23- Increase whole program optimization opportunities for static binaries through 24 ability to inline math and memory operations. 25- Reduce coding errors by coding in modern C++ through the use of lightweight 26 containers during coding that can be optimized away at runtime. 27- Permit fuzzing and sanitizer instrumentation of user binaries including the 28 libc functions. 29- A complete testsuite that tests both the public interface and internal 30 algorithms. 31- `Fuzzing`__ 32 33.. __: https://github.com/llvm/llvm-project/tree/main/libc/fuzzing 34 35Platform Support 36================ 37 38Most development is currently targeting x86_64 and aarch64 on Linux. Several 39functions in llvm-libc have been tested on Windows. The Fuchsia platform is 40slowly replacing functions from its bundled libc with functions from llvm-libc. 41 42ABI Compatibility 43================= 44 45llvm-libc is written to be ABI independent. Interfaces are generated using 46LLVM's tablegen, so supporting arbitrary ABIs is possible. In it's initial 47stages llvm-libc is not offering ABI stability in any form. 48 49Other Interesting Documentation 50=============================== 51 52.. toctree:: 53 54 build_system 55 clang_tidy_checks 56 entrypoints 57 fuzzing 58 ground_truth_specification 59 header_generation 60 implementation_standard 61 api_test 62 layering 63 mechanics_of_public_api 64 redirectors 65 source_layout 66 strings 67 runtimes_build 68 stdio 69 math 70