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.
3.2 KiB
(buildinglibunwind)=
Building libunwind
:::{contents} :local: true :::
(build-instructions)=
Getting Started
On Mac OS, the easiest way to get this library is to link with -lSystem. However if you want to build tip-of-trunk from here (getting the bleeding edge), read on.
The basic steps needed to build libunwind are:
-
Checkout LLVM, libunwind, and related projects:
cd where-you-want-llvm-to-livegit clone https://github.com/llvm/llvm-project.git
-
Configure and build libunwind:
CMake is the only supported configuration system.
Clang is the preferred compiler when building and using libunwind.
cd where you want to build llvmmkdir buildcd buildcmake -G <generator> -DLLVM_ENABLE_RUNTIMES=libunwind [options] <llvm-monorepo>/runtimes
For more information about configuring libunwind see CMake Options.
make unwind--- will build libunwind.make check-unwind--- will run the test suite.
Shared and static libraries for libunwind should now be present in llvm/build/lib.
-
Optional: Install libunwind
If your system already provides an unwinder, it is important to be careful not to replace it. Remember Use the CMake option
CMAKE_INSTALL_PREFIXto select a safe place to install libunwind.make install-unwind--- Will install the libraries and the headers
(cmake-options)=
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
makebased 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 libunwind.
(libunwind-specific-options)=
libunwind specific options
:::{option} LIBUNWIND_ENABLE_ASSERTIONS:BOOL
Default: ON
Toggle assertions independent of the build mode. :::
:::{option} LIBUNWIND_ENABLE_PEDANTIC:BOOL
Default: ON
Compile with -Wpedantic. :::
:::{option} LIBUNWIND_ENABLE_WERROR:BOOL
Default: OFF
Compile with -Werror :::
:::{option} LIBUNWIND_ENABLE_SHARED:BOOL
Default: ON
Build libunwind as a shared library. :::
:::{option} LIBUNWIND_ENABLE_STATIC:BOOL
Default: ON
Build libunwind as a static archive. :::
:::{option} LIBUNWIND_ENABLE_CROSS_UNWINDING:BOOL
Default: OFF
Enable cross-platform unwinding support. :::
:::{option} LIBUNWIND_ENABLE_ARM_WMMX:BOOL
Default: OFF
Enable unwinding support for ARM WMMX registers. :::
:::{option} LIBUNWIND_ENABLE_THREADS:BOOL
Default: ON
Build libunwind with threading support. :::
:::{option} LIBUNWIND_INSTALL_LIBRARY_DIR:PATH
Default: lib${LIBUNWIND_LIBDIR_SUFFIX}
Path where built libunwind libraries should be installed. If a relative path,
relative to CMAKE_INSTALL_PREFIX.
:::