diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2015-12-30 11:46:15 +0000 |
commit | dd58ef019b700900793a1eb48b52123db01b654e (patch) | |
tree | fcfbb4df56a744f4ddc6122c50521dd3f1c5e196 /docs/GettingStarted.rst | |
parent | 2fe5752e3a7c345cdb59e869278d36af33c13fa4 (diff) | |
download | src-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.rst | 88 |
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 |