mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2024-11-24 06:10:12 +00:00
5d71fc5d7b
This fixes most references to the paths: llvm.org/svn/ llvm.org/git/ llvm.org/viewvc/ github.com/llvm-mirror/ github.com/llvm-project/ reviews.llvm.org/diffusion/ to instead point to https://github.com/llvm/llvm-project. This is *not* a trivial substitution, because additionally, all the checkout instructions had to be migrated to instruct users on how to use the monorepo layout, setting LLVM_ENABLE_PROJECTS instead of checking out various projects into various subdirectories. I've attempted to not change any scripts here, only documentation. The scripts will have to be addressed separately. Additionally, I've deleted one document which appeared to be outdated and unneeded: lldb/docs/building-with-debug-llvm.txt Differential Revision: https://reviews.llvm.org/D57330 llvm-svn: 352514
162 lines
3.9 KiB
ReStructuredText
162 lines
3.9 KiB
ReStructuredText
.. _BuildingLibunwind:
|
|
|
|
==================
|
|
Building libunwind
|
|
==================
|
|
|
|
.. contents::
|
|
:local:
|
|
|
|
.. _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 libc++ are:
|
|
|
|
#. Checkout LLVM, libunwind, and related projects:
|
|
|
|
* ``cd where-you-want-llvm-to-live``
|
|
* ``git 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 llvm``
|
|
* ``mkdir build``
|
|
* ``cd build``
|
|
* ``cmake -G <generator> -DLLVM_ENABLE_PROJECTS=libunwind [options] <path to llvm sources>``
|
|
|
|
For more information about configuring libunwind see :ref:`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_PREFIX`` to
|
|
select a safe place to install libunwind.
|
|
|
|
* ``make install-unwind`` --- Will install the libraries and the headers
|
|
|
|
|
|
It is sometimes beneficial to build outside of the LLVM tree. An out-of-tree
|
|
build would look like this:
|
|
|
|
.. code-block:: bash
|
|
|
|
$ cd where-you-want-libunwind-to-live
|
|
$ # Check out llvm, and libunwind
|
|
$ ``svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm``
|
|
$ ``svn co http://llvm.org/svn/llvm-project/libunwind/trunk libunwind``
|
|
$ cd where-you-want-to-build
|
|
$ mkdir build && cd build
|
|
$ export CC=clang CXX=clang++
|
|
$ cmake -DLLVM_PATH=path/to/llvm \
|
|
path/to/libunwind
|
|
$ make
|
|
|
|
|
|
.. _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 ``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 libunwind.
|
|
|
|
|
|
.. _libunwind-specific options:
|
|
|
|
libunwind specific options
|
|
--------------------------
|
|
|
|
.. option:: LIBUNWIND_BUILD_32_BITS:BOOL
|
|
|
|
**Default**: Same as LLVM_BUILD_32_BITS
|
|
|
|
Toggle whether libunwind should be built with -m32.
|
|
|
|
.. 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**: ``ON``
|
|
|
|
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_TARGET_TRIPLE:STRING
|
|
|
|
Target triple for cross compiling
|
|
|
|
.. option:: LIBUNWIND_GCC_TOOLCHAIN:PATH
|
|
|
|
GCC toolchain for cross compiling
|
|
|
|
.. option:: LIBUNWIND_SYSROOT
|
|
|
|
Sysroot for cross compiling
|