brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · c231587 Raw
134 lines · plain
1.. _BuildingLibunwind:2 3==================4Building libunwind5==================6 7.. contents::8  :local:9 10.. _build instructions:11 12Getting Started13===============14 15On Mac OS, the easiest way to get this library is to link with -lSystem.16However if you want to build tip-of-trunk from here (getting the bleeding17edge), read on.18 19The basic steps needed to build libunwind are:20 21#. Checkout LLVM, libunwind, and related projects:22 23   * ``cd where-you-want-llvm-to-live``24   * ``git clone https://github.com/llvm/llvm-project.git``25 26#. Configure and build libunwind:27 28   CMake is the only supported configuration system.29 30   Clang is the preferred compiler when building and using libunwind.31 32   * ``cd where you want to build llvm``33   * ``mkdir build``34   * ``cd build``35   * ``cmake -G <generator> -DLLVM_ENABLE_RUNTIMES=libunwind [options] <llvm-monorepo>/runtimes``36 37   For more information about configuring libunwind see :ref:`CMake Options`.38 39   * ``make unwind`` --- will build libunwind.40   * ``make check-unwind`` --- will run the test suite.41 42   Shared and static libraries for libunwind should now be present in llvm/build/lib.43 44#. **Optional**: Install libunwind45 46   If your system already provides an unwinder, it is important to be careful47   not to replace it. Remember Use the CMake option ``CMAKE_INSTALL_PREFIX`` to48   select a safe place to install libunwind.49 50   * ``make install-unwind`` --- Will install the libraries and the headers51 52 53.. _CMake Options:54 55CMake Options56=============57 58Here are some of the CMake variables that are used often, along with a59brief explanation and LLVM-specific notes. For full documentation, check the60CMake docs or execute ``cmake --help-variable VARIABLE_NAME``.61 62**CMAKE_BUILD_TYPE**:STRING63  Sets the build type for ``make`` based generators. Possible values are64  Release, Debug, RelWithDebInfo and MinSizeRel. On systems like Visual Studio65  the user sets the build type with the IDE settings.66 67**CMAKE_INSTALL_PREFIX**:PATH68  Path where LLVM will be installed if "make install" is invoked or the69  "INSTALL" target is built.70 71**CMAKE_CXX_COMPILER**:STRING72  The C++ compiler to use when building and testing libunwind.73 74 75.. _libunwind-specific options:76 77libunwind specific options78--------------------------79 80.. option:: LIBUNWIND_ENABLE_ASSERTIONS:BOOL81 82  **Default**: ``ON``83 84  Toggle assertions independent of the build mode.85 86.. option:: LIBUNWIND_ENABLE_PEDANTIC:BOOL87 88  **Default**: ``ON``89 90  Compile with -Wpedantic.91 92.. option:: LIBUNWIND_ENABLE_WERROR:BOOL93 94  **Default**: ``OFF``95 96  Compile with -Werror97 98.. option:: LIBUNWIND_ENABLE_SHARED:BOOL99 100  **Default**: ``ON``101 102  Build libunwind as a shared library.103 104.. option:: LIBUNWIND_ENABLE_STATIC:BOOL105 106  **Default**: ``ON``107 108  Build libunwind as a static archive.109 110.. option:: LIBUNWIND_ENABLE_CROSS_UNWINDING:BOOL111 112  **Default**: ``OFF``113 114  Enable cross-platform unwinding support.115 116.. option:: LIBUNWIND_ENABLE_ARM_WMMX:BOOL117 118  **Default**: ``OFF``119 120  Enable unwinding support for ARM WMMX registers.121 122.. option:: LIBUNWIND_ENABLE_THREADS:BOOL123 124  **Default**: ``ON``125 126  Build libunwind with threading support.127 128.. option:: LIBUNWIND_INSTALL_LIBRARY_DIR:PATH129 130  **Default**: ``lib${LIBUNWIND_LIBDIR_SUFFIX}``131 132  Path where built libunwind libraries should be installed. If a relative path,133  relative to ``CMAKE_INSTALL_PREFIX``.134