xref: /llvm-project/libc/docs/index.rst (revision 692c77f2af133874f18942fe8c32f0f072bfc02b)
1==================
2The LLVM C Library
3==================
4
5.. warning::
6  LLVM-libc is not yet ABI stable; currently only static linking is supported.
7  LLVM-libc developers retain the right to modify the ABI of types used
8  throughout the library. Another libc should be preferred if ABI stability is
9  a requirement.
10
11.. note::
12  LLVM-libc is not fully complete right now. Some programs may fail to build due
13  to missing functions. If you would like to help us finish LLVM-libc, check
14  out "`Contributing to the libc project <contributing.html>`__" in the sidebar
15  or ask on `discord <https://discord.com/channels/636084430946959380/636732994891284500>`__.
16
17Introduction
18============
19
20LLVM-libc aspires to a unique place in the software ecosystem.  The goals are:
21
22- Fully compliant with current C23 and POSIX.1-2024 standards.
23- Easily decomposed and embedded: Supplement or replace system C library
24  functionality easily.  This is useful to get consistent math precision across
25  systems, or updated memory operations for newer microarchitectures.  These
26  pieces will work on Linux, MacOS, Windows, and Fuchsia.
27- The creation of fully static binaries without license implications.
28- Increase whole program optimization opportunities for static binaries through
29  ability to inline math and memory operations.
30- Reduce coding errors by coding in modern C++ through the use of lightweight
31  containers during coding that can be optimized away at runtime.
32- Permit fuzzing and sanitizer instrumentation of user binaries including the
33  libc functions.
34- A complete testsuite that tests both the public interface and internal
35  algorithms.
36- `Fuzzing <https://github.com/llvm/llvm-project/tree/main/libc/fuzzing>`__
37
38
39.. toctree::
40   :hidden:
41   :maxdepth: 1
42   :caption: Status & Support
43
44   headers/index.rst
45   arch_support
46   platform_support
47   compiler_support
48
49.. toctree::
50   :hidden:
51   :maxdepth: 1
52   :caption: Simple Usage
53
54   getting_started
55
56.. toctree::
57   :hidden:
58   :maxdepth: 1
59   :caption: Advanced Usage
60
61   full_host_build
62   full_cross_build
63   overlay_mode
64   gpu/index.rst
65   configure
66
67.. toctree::
68   :hidden:
69   :maxdepth: 1
70   :caption: Development
71
72   build_and_test
73   dev/index.rst
74   porting
75   contributing
76
77.. toctree::
78   :hidden:
79   :maxdepth: 1
80   :caption: Useful Links
81
82   talks
83   Source Code <https://github.com/llvm/llvm-project/tree/main/libc>
84   Bug Reports <https://github.com/llvm/llvm-project/labels/libc>
85   Discourse <https://discourse.llvm.org/c/runtimes/libc>
86   Join the Discord <https://discord.gg/xS7Z362>
87   Discord Channel <https://discord.com/channels/636084430946959380/636732994891284500>
88   Buildbot <https://lab.llvm.org/buildbot/#/builders?tags=libc>
89