aboutsummaryrefslogtreecommitdiff
path: root/docs/GettingStarted.rst
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2015-12-30 11:46:15 +0000
committerDimitry Andric <dim@FreeBSD.org>2015-12-30 11:46:15 +0000
commitdd58ef019b700900793a1eb48b52123db01b654e (patch)
treefcfbb4df56a744f4ddc6122c50521dd3f1c5e196 /docs/GettingStarted.rst
parent2fe5752e3a7c345cdb59e869278d36af33c13fa4 (diff)
downloadsrc-dd58ef019b700900793a1eb48b52123db01b654e.tar.gz
src-dd58ef019b700900793a1eb48b52123db01b654e.zip
Vendor import of llvm trunk r256633:
Notes
Notes: svn path=/vendor/llvm/dist/; revision=292915
Diffstat (limited to 'docs/GettingStarted.rst')
-rw-r--r--docs/GettingStarted.rst88
1 files changed, 58 insertions, 30 deletions
diff --git a/docs/GettingStarted.rst b/docs/GettingStarted.rst
index df6bd7bc6ba8..2585ce135ba6 100644
--- a/docs/GettingStarted.rst
+++ b/docs/GettingStarted.rst
@@ -1,5 +1,5 @@
====================================
-Getting Started with the LLVM System
+Getting Started with the LLVM System
====================================
.. contents::
@@ -49,12 +49,25 @@ Here's the short story for getting up and running quickly with LLVM:
* ``cd llvm/tools``
* ``svn co http://llvm.org/svn/llvm-project/cfe/trunk clang``
-#. Checkout Compiler-RT:
+#. Checkout Compiler-RT (required to build the sanitizers):
* ``cd where-you-want-llvm-to-live``
* ``cd llvm/projects``
* ``svn co http://llvm.org/svn/llvm-project/compiler-rt/trunk compiler-rt``
+#. Checkout Libomp (required for OpenMP support):
+
+ * ``cd where-you-want-llvm-to-live``
+ * ``cd llvm/projects``
+ * ``svn co http://llvm.org/svn/llvm-project/openmp/trunk openmp``
+
+#. Checkout libcxx and libcxxabi **[Optional]**:
+
+ * ``cd where-you-want-llvm-to-live``
+ * ``cd llvm/projects``
+ * ``svn co http://llvm.org/svn/llvm-project/libcxx/trunk libcxx``
+ * ``svn co http://llvm.org/svn/llvm-project/libcxxabi/trunk libcxxabi``
+
#. Get the Test Suite Source Code **[Optional]**
* ``cd where-you-want-llvm-to-live``
@@ -62,7 +75,7 @@ Here's the short story for getting up and running quickly with LLVM:
* ``svn co http://llvm.org/svn/llvm-project/test-suite/trunk test-suite``
#. Configure and build LLVM and Clang:
-
+
The usual build uses `CMake <CMake.html>`_. If you would rather use
autotools, see `Building LLVM with autotools <BuildingLLVMWithAutotools.html>`_.
@@ -70,16 +83,16 @@ Here's the short story for getting up and running quickly with LLVM:
* ``mkdir build``
* ``cd build``
* ``cmake -G <generator> [options] <path to llvm sources>``
-
+
Some common generators are:
* ``Unix Makefiles`` --- for generating make-compatible parallel makefiles.
* ``Ninja`` --- for generating `Ninja <http://martine.github.io/ninja/>`
- build files.
+ build files. Most llvm developers use Ninja.
* ``Visual Studio`` --- for generating Visual Studio projects and
solutions.
* ``Xcode`` --- for generating Xcode projects.
-
+
Some Common options:
* ``-DCMAKE_INSTALL_PREFIX=directory`` --- Specify for *directory* the full
@@ -125,20 +138,20 @@ Hardware
LLVM is known to work on the following host platforms:
================== ===================== =============
-OS Arch Compilers
+OS Arch Compilers
================== ===================== =============
-Linux x86\ :sup:`1` GCC, Clang
-Linux amd64 GCC, Clang
-Linux ARM\ :sup:`4` GCC, Clang
-Linux PowerPC GCC, Clang
-Solaris V9 (Ultrasparc) GCC
-FreeBSD x86\ :sup:`1` GCC, Clang
-FreeBSD amd64 GCC, Clang
-MacOS X\ :sup:`2` PowerPC GCC
-MacOS X x86 GCC, Clang
-Cygwin/Win32 x86\ :sup:`1, 3` GCC
-Windows x86\ :sup:`1` Visual Studio
-Windows x64 x86-64 Visual Studio
+Linux x86\ :sup:`1` GCC, Clang
+Linux amd64 GCC, Clang
+Linux ARM\ :sup:`4` GCC, Clang
+Linux PowerPC GCC, Clang
+Solaris V9 (Ultrasparc) GCC
+FreeBSD x86\ :sup:`1` GCC, Clang
+FreeBSD amd64 GCC, Clang
+MacOS X\ :sup:`2` PowerPC GCC
+MacOS X x86 GCC, Clang
+Cygwin/Win32 x86\ :sup:`1, 3` GCC
+Windows x86\ :sup:`1` Visual Studio
+Windows x64 x86-64 Visual Studio
================== ===================== =============
.. note::
@@ -207,14 +220,14 @@ Unix utilities. Specifically:
* **chmod** --- change permissions on a file
* **cat** --- output concatenation utility
* **cp** --- copy files
-* **date** --- print the current date/time
+* **date** --- print the current date/time
* **echo** --- print to standard output
* **egrep** --- extended regular expression search utility
* **find** --- find files/dirs in a file system
* **grep** --- regular expression search utility
* **gzip** --- gzip command for distribution generation
* **gunzip** --- gunzip command for distribution checking
-* **install** --- install directories/files
+* **install** --- install directories/files
* **mkdir** --- create a directory
* **mv** --- move (rename) files
* **ranlib** --- symbol table builder for archive libraries
@@ -521,13 +534,28 @@ If you want to check out clang too, run:
% cd llvm/tools
% git clone http://llvm.org/git/clang.git
-If you want to check out compiler-rt too, run:
+If you want to check out compiler-rt (required to build the sanitizers), run:
.. code-block:: console
% cd llvm/projects
% git clone http://llvm.org/git/compiler-rt.git
+If you want to check out libomp (required for OpenMP support), run:
+
+.. code-block:: console
+
+ % cd llvm/projects
+ % git clone http://llvm.org/git/openmp.git
+
+If you want to check out libcxx and libcxxabi (optional), run:
+
+.. code-block:: console
+
+ % cd llvm/projects
+ % git clone http://llvm.org/git/libcxx.git
+ % git clone http://llvm.org/git/libcxxabi.git
+
If you want to check out the Test Suite Source Code (optional), run:
.. code-block:: console
@@ -619,7 +647,7 @@ To set up clone from which you can submit code using ``git-svn``, run:
% git config svn-remote.svn.fetch :refs/remotes/origin/master
% git svn rebase -l
-Likewise for compiler-rt and test-suite.
+Likewise for compiler-rt, libomp and test-suite.
To update this clone without generating git-svn tags that conflict with the
upstream Git repo, run:
@@ -633,7 +661,7 @@ upstream Git repo, run:
git checkout master &&
git svn rebase -l)
-Likewise for compiler-rt and test-suite.
+Likewise for compiler-rt, libomp and test-suite.
This leaves your working directories on their master branches, so you'll need to
``checkout`` each working branch individually and ``rebase`` it on top of its
@@ -838,7 +866,7 @@ with the latest Xcode:
.. code-block:: console
- % cmake -G "Ninja" -DCMAKE_OSX_ARCHITECTURES=“armv7;armv7s;arm64"
+ % cmake -G "Ninja" -DCMAKE_OSX_ARCHITECTURES="armv7;armv7s;arm64"
-DCMAKE_TOOLCHAIN_FILE=<PATH_TO_LLVM>/cmake/platforms/iOS.cmake
-DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_RUNTIME=Off -DLLVM_INCLUDE_TESTS=Off
-DLLVM_INCLUDE_EXAMPLES=Off -DLLVM_ENABLE_BACKTRACES=Off [options]
@@ -881,7 +909,7 @@ Underneath that directory there is another directory with a name ending in
For example:
.. code-block:: console
-
+
% cd llvm_build_dir
% find lib/Support/ -name APFloat*
lib/Support/CMakeFiles/LLVMSupport.dir/APFloat.cpp.o
@@ -990,7 +1018,7 @@ different `tools`_.
code generation. For example, the ``llvm/lib/Target/X86`` directory holds the
X86 machine description while ``llvm/lib/Target/ARM`` implements the ARM
backend.
-
+
``llvm/lib/CodeGen/``
This directory contains the major parts of the code generator: Instruction
@@ -1075,7 +1103,7 @@ the `Command Guide <CommandGuide/index.html>`_.
The archiver produces an archive containing the given LLVM bitcode files,
optionally with an index for faster lookup.
-
+
``llvm-as``
The assembler transforms the human readable LLVM assembly to LLVM bitcode.
@@ -1088,7 +1116,7 @@ the `Command Guide <CommandGuide/index.html>`_.
``llvm-link``, not surprisingly, links multiple LLVM modules into a single
program.
-
+
``lli``
``lli`` is the LLVM interpreter, which can directly execute LLVM bitcode
@@ -1219,7 +1247,7 @@ Example with clang
.. code-block:: console
% ./hello
-
+
and
.. code-block:: console