mirror-llvm-project/compiler-rt/docs/BuildingCompilerRT.md
Reid Kleckner 93b1240309
[docs] Finish misc MyST migration (#210209)
Tracking issue: #201242
See the [migration guide] for more information.

[migration guide]:
https://llvm.org/docs/SphinxQuickstartTemplate.html#markdown-migration-guidelines

This is a stacked PR based on #210208, which is the standalone rename
commit for this miscellaneous Markdown migration batch.

This was prepared with rst2myst plus LLM-assisted cleanup. LLDB man
pages are intentionally left as reStructuredText because LLDB man-page
building should not take on Markdown parser dependencies.

Unfortunately, many of these miscellaneous docs do not have working
standalone doc build targets, so I was not able to render HTML for all
of them. I think the scope is small enough that this is reviewable by
hand.
2026-07-17 11:56:59 -07:00

3.3 KiB

(buildingcompilerrt)=

Building Compiler-RT

:::{contents} :local: true :::

(build-instructions)=

The instructions on this page are aimed at vendors who ship Compiler-RT as part of an operating system distribution, a toolchain or similar shipping vehicles. If you are a user merely trying to use Compiler-RT in your program, you most likely want to refer to your vendor's documentation, or to the general documentation for using LLVM, Clang, the various santizers, etc.

CMake Options

Here are some of the CMake variables that are used often, along with a brief explanation and LLVM-specific notes. For full documentation, check the CMake docs or execute cmake --help-variable VARIABLE_NAME.

CMAKE_BUILD_TYPE:STRING

Sets the build type for make based generators. Possible values are Release, Debug, RelWithDebInfo and MinSizeRel. On systems like Visual Studio the user sets the build type with the IDE settings.

CMAKE_INSTALL_PREFIX:PATH

Path where LLVM will be installed if "make install" is invoked or the "INSTALL" target is built.

CMAKE_CXX_COMPILER:STRING

The C++ compiler to use when building and testing Compiler-RT.

(compiler-rt-specific-options)=

Compiler-RT specific options

:::{option} COMPILER_RT_INSTALL_PATH:PATH

Default: ```` (empty relative path)

Prefix for directories where built Compiler-RT artifacts should be installed. Can be an absolute path, like the default empty string, in which case it is relative CMAKE_INSTALL_PREFIX. If setting a relative path, make sure to include the :PATH with your -D, i.e. use -DCOMPILER_RT_INSTALL_PATH:PATH=... not -DCOMPILER_RT_INSTALL_PATH=..., otherwise CMake will convert the path to an absolute path. :::

:::{option} COMPILER_RT_INSTALL_LIBRARY_DIR:PATH

Default: lib

Path where built Compiler-RT libraries should be installed. If a relative path, relative to COMPILER_RT_INSTALL_PATH. :::

:::{option} COMPILER_RT_INSTALL_BINARY_DIR:PATH

Default: bin

Path where built Compiler-RT executables should be installed. If a relative path, relative to COMPILER_RT_INSTALL_PATH. :::

:::{option} COMPILER_RT_INSTALL_INCLUDE_DIR:PATH

Default: include

Path where Compiler-RT headers should be installed. If a relative path, relative to COMPILER_RT_INSTALL_PATH. :::

:::{option} COMPILER_RT_INSTALL_DATA_DIR:PATH

Default: share

Path where Compiler-RT data should be installed. If a relative path, relative to COMPILER_RT_INSTALL_PATH. :::

:::{option} COMPILER_RT_INCLUDE_TESTS:BOOL

Default: LLVM_INCLUDE_TESTS in LLVM builds, OFF in standalone builds.

Generate and build compiler-rt tests. If OFF, COMPILER_RT_ENABLE_TEST_SUITES has no effect. :::

:::{option} COMPILER_RT_ENABLE_TEST_SUITES:STRING

Default: all

Semicolon-separated list of test suites to enable, or all to enable all test suites. Example: -DCOMPILER_RT_ENABLE_TEST_SUITES="asan;ubsan;lsan" :::

(llvm-specific-variables)=

LLVM-specific options

:::{option} LLVM_LIBDIR_SUFFIX:STRING

Extra suffix to append to the directory where libraries are to be installed. On a 64-bit architecture, one could use -DLLVM_LIBDIR_SUFFIX=64 to install libraries to /usr/lib64. :::