LLVM-libc Source Tree Layout
At the top-level, LLVM-libc source tree is organized in to the following directories:
+ libc - cmake - docs - fuzzing - include - lib - loader - src - test - utils - www
Each of these directories is explained in detail below.
The cmake
directory
The cmake
directory contains the implementations of LLVM-libc's CMake build
rules.
The docs
directory
The docs
directory contains design docs and also informative documents like
this document on source layout.
The fuzzing
directory
This directory contains fuzzing tests for the various components of llvm-libc. The
directory structure within this directory mirrors the directory structure of the
top-level libc
directory itself. For more details, see :doc:`fuzzing`.
The include
directory
The include
directory contains:
- Self contained public header files - These are header files which are already in the form that get installed when LLVM-libc is installed on a user's computer.
-
*.h.def
and*.h.in
files - These files are used to construct the generated public header files. - A
CMakeLists.txt
file - This file lists the targets for the self contained and generated public header files.
The lib
directory
This directory contains a CMakeLists.txt
file listing the targets for the
public libraries libc.a
, libm.a
etc.
The loader
directory
This directory contains the implementations of the application loaders like
crt1.o
etc.
The src
directory
This directory contains the implementations of the llvm-libc entrypoints. It is further organized as follows:
- There is a top-level CMakeLists.txt file.
- For every public header file provided by llvm-libc, there exists a
corresponding directory in the
src
directory. The name of the directory is same as the base name of the header file. For example, the directory corresponding to the publicmath.h
header file is namedmath
. The implementation standard document explains more about the header directories.
The test
directory
This directory contains tests for the various components of llvm-libc. The
directory structure within this directory mirrors the directory structure of the
toplevel libc
directory itself. A test for, say the mmap
function, lives
in the directory test/src/sys/mman/
as implementation of mmap
lives in
src/sys/mman
.
The utils directory
This directory contains utilities used by other parts of the llvm-libc system. See the README files, in the sub-directories within this directory, to learn about the various utilities.
The www
directory
The www
directory contains the HTML content of libc.llvm.org