llvm/llvm-project
Dependencies
A short reference for the third-party software the project depends on, both at build time and at runtime, and what the policies around adding new dependencies look like.
Vendored third-party libraries
These live under third-party/:
| Library | Path | Purpose |
|---|---|---|
| Google Test / Google Mock | third-party/unittest/ |
Unit-test framework used by every subproject's unittests/ |
| Google Benchmark | third-party/benchmark/ |
Microbenchmark framework |
| Boost Math | third-party/boost-math/ |
Reference high-precision math used in libc and libc++ tests |
| SipHash | third-party/siphash/ |
Fast keyed-hash; pulled in for the rare uses |
Update scripts ship alongside each:
The Integer Set Library (ISL) used by Polly is not under third-party/; it lives under polly/lib/External/ with its own update flow.
Build-time tools
| Tool | Required? | Notes |
|---|---|---|
| CMake | Yes | ≥ 3.20 |
| Python | Yes | ≥ 3.8 |
| Ninja | Recommended | The default for any non-toy build |
| ccache / sccache | Optional | -DLLVM_CCACHE_BUILD=ON |
| C++17 host compiler | Yes | GCC ≥ 7.4, Clang ≥ 5, MSVC ≥ recent |
lit |
Bundled | Built/installed from llvm/utils/lit/ as needed |
FileCheck |
Bundled | Built from llvm/utils/FileCheck/ |
For documentation builds, Sphinx plus a couple of extensions is needed; the relevant requirements are pinned in each subproject's docs/ directory.
Runtime dependencies
The runtime story varies by subproject:
| Subproject | Runtime dependency |
|---|---|
clang |
The C++ runtime (libc++ or libstdc++) of the host build at runtime; compiler-rt builtins for codegen |
lld |
Just the host C++ runtime |
lldb |
Python (for the script bridge), platform debug-server libraries, ptrace/equivalent on the host |
flang |
flang-rt, MLIR static libs, LLVM static libs |
compiler-rt sanitizers |
Host kernel features (ptrace, /proc, mmap protections), often glibc-specific entry points |
libcxx |
libc++abi, libunwind |
libc++abi |
libunwind |
libunwind |
None beyond the OS |
openmp |
A pthreads implementation, the host C library |
offload |
Vendor SDKs at runtime — CUDA driver / ROCm runtime / HSA, etc. |
bolt |
None at apply time; needs perf to collect input profile |
Adding a new dependency
The project policy is conservative: new third-party dependencies require a public discussion thread on Discourse and clear justification (no smaller in-tree alternative; license compatible with Apache 2.0 with LLVM Exceptions; a maintainer willing to keep it updated). Most contributions rewrite or vendor a small piece rather than introduce a system dependency.
For dependencies that already live in third-party/, updates are made through the corresponding update_*.sh script and reviewed alongside the actual import.
Reference
Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.