llvm-capstone/libc/docs/index.rst
Siva Chandra Reddy be721a38c6 [libc][docs] Move the link to "Compiler Support" under "Status".
Also, fixed a minor typo in compiler_support.rst.

Reviewed By: jeffbailey, gchatelet

Differential Revision: https://reviews.llvm.org/D146112
2023-03-15 20:41:10 -07:00

89 lines
2.6 KiB
ReStructuredText

==================
The LLVM C Library
==================
.. warning::
The libc is not complete. If you need a fully functioning C library right
now, you should continue to use your standard system libraries.
Introduction
============
The libc aspires to a unique place in the software ecosystem. The goals are:
- Fully compliant with current C standards (C17 and upcoming C2x) and POSIX.
- Easily decomposed and embedded: Supplement or replace system C library
functionality easily. This is useful to get consistent math precision across
systems, or updated memory operations for newer microarchitectures. These
pieces will work on Linux, MacOS, Windows, and Fuchsia.
- The creation of fully static binaries without license implications.
- Increase whole program optimization opportunities for static binaries through
ability to inline math and memory operations.
- Reduce coding errors by coding in modern C++ through the use of lightweight
containers during coding that can be optimized away at runtime.
- Permit fuzzing and sanitizer instrumentation of user binaries including the
libc functions.
- A complete testsuite that tests both the public interface and internal
algorithms.
- `Fuzzing`__
.. __: https://github.com/llvm/llvm-project/tree/main/libc/fuzzing
Platform Support
================
Most development is currently targeting x86_64 and aarch64 on Linux. Several
functions in the libc have been tested on Windows. The Fuchsia platform is
slowly replacing functions from its bundled libc with functions from this
project.
ABI Compatibility
=================
The libc is written to be ABI independent. Interfaces are generated using
LLVM's tablegen, so supporting arbitrary ABIs is possible. In it's initial
stages there is no ABI stability in any form.
.. toctree::
:hidden:
:maxdepth: 2
:caption: Using
usage_modes
overlay_mode
fullbuild_mode
gpu_mode
.. toctree::
:hidden:
:maxdepth: 1
:caption: Status
compiler_support
date_and_time
math/index.rst
strings
stdio
.. toctree::
:hidden:
:maxdepth: 1
:caption: Development
build_and_test
dev/index.rst
porting
contributing
.. toctree::
:hidden:
:maxdepth: 1
:caption: External Links
Source Code <https://github.com/llvm/llvm-project/tree/main/libc>
Bug Reports <https://github.com/llvm/llvm-project/labels/libc>
Discourse <https://discourse.llvm.org/c/runtimes/libc>
Join the Discord <https://discord.gg/xS7Z362>
Discord Channel <https://discord.com/channels/636084430946959380/636732994891284500>
Buildbot <https://lab.llvm.org/buildbot/#/builders?tags=libc>