[docs] Switch to the incredibly simpler "simple table" form. It now
[oota-llvm.git] / docs / GettingStarted.rst
index dafc0c45b6cdd5973a5c1663fd385487dd382f27..61026143527d440cbae6851373f73eb7dd8ee8c5 100644 (file)
@@ -113,75 +113,32 @@ software you will need.
 Hardware
 --------
 
-LLVM is known to work on the following platforms:
-
-+-----------------+----------------------+-------------------------+
-|OS               |  Arch                | Compilers               |
-+=================+======================+=========================+
-|AuroraUX         | x86\ :sup:`1`        | GCC                     |
-+-----------------+----------------------+-------------------------+
-|Linux            | x86\ :sup:`1`        | GCC                     |
-+-----------------+----------------------+-------------------------+
-|Linux            | amd64                | GCC                     |
-+-----------------+----------------------+-------------------------+
-|Linux            | ARM\ :sup:`13`       | GCC                     |
-+-----------------+----------------------+-------------------------+
-|Solaris          | V9 (Ultrasparc)      | GCC                     |
-+-----------------+----------------------+-------------------------+
-|FreeBSD          | x86\ :sup:`1`        | GCC                     |
-+-----------------+----------------------+-------------------------+
-|FreeBSD          | amd64                | GCC                     |
-+-----------------+----------------------+-------------------------+
-|MacOS X\ :sup:`2`| PowerPC              | GCC                     |
-+-----------------+----------------------+-------------------------+
-|MacOS X\ :sup:`9`| x86                  | GCC                     |
-+-----------------+----------------------+-------------------------+
-|Cygwin/Win32     | x86\ :sup:`1, 8, 11` | GCC 3.4.X, binutils 2.20|
-+-----------------+----------------------+-------------------------+
-
-LLVM has partial support for the following platforms:
-
-+-------------------+----------------------+-------------------------------------------+
-|OS                 |  Arch                | Compilers                                 |
-+===================+======================+===========================================+
-| Windows           | x86\ :sup:`1`        | Visual Studio 2000 or higher\ :sup:`4,5`  |
-+-------------------+----------------------+-------------------------------------------+
-| AIX\ :sup:`3,4`   | PowerPC              | GCC                                       |
-+-------------------+----------------------+-------------------------------------------+
-| Linux\ :sup:`3,5` | PowerPC              | GCC                                       |
-+-------------------+----------------------+-------------------------------------------+
-| Linux\ :sup:`7`   | Alpha                | GCC                                       |
-+-------------------+----------------------+-------------------------------------------+
-| Linux\ :sup:`7`   | Itanium (IA-64)      | GCC                                       |
-+-------------------+----------------------+-------------------------------------------+
-| HP-UX\ :sup:`7`   | Itanium (IA-64)      | HP aCC                                    |
-+-------------------+----------------------+-------------------------------------------+
-| Windows x64       | x86-64               | mingw-w64's GCC-4.5.x\ :sup:`12`          |
-+-------------------+----------------------+-------------------------------------------+
+LLVM is known to work on the following host platforms:
+
+================== ===================== =============
+OS                 Arch                  Compilers               
+================== ===================== =============
+AuroraUX           x86\ :sup:`1`         GCC                     
+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::
 
   #. Code generation supported for Pentium processors and up
   #. Code generation supported for 32-bit ABI only
-  #. No native code generation
-  #. Build is not complete: one or more tools do not link or function
-  #. The GCC-based C/C++ frontend does not build
-  #. The port is done using the MSYS shell.
-  #. Native code generation exists but is not complete.
-  #. Binutils 2.20 or later is required to build the assembler generated by LLVM properly.
-  #. Xcode 2.5 and gcc 4.0.1 (Apple Build 5370) will trip internal LLVM assert
-     messages when compiled for Release at optimization levels greater than 0
-     (i.e., ``-O1`` and higher).  Add ``OPTIMIZE_OPTION="-O0"`` to the build
-     command line if compiling for LLVM Release or bootstrapping the LLVM
-     toolchain.
-  #. For MSYS/MinGW on Windows, be sure to install the MSYS version of the perl
-     package, and be sure it appears in your path before any Windows-based
-     versions such as Strawberry Perl and ActivePerl, as these have
-     Windows-specifics that will cause the build to fail.
   #. To use LLVM modules on Win32-based system, you may configure LLVM
      with ``--enable-shared``.
-  #. To compile SPU backend, you need to add ``LDFLAGS=-Wl,--stack,16777216`` to
-     configure.
   #. MCJIT not working well pre-v7, old JIT engine not supported any more.
 
 Note that you will need about 1-3 GB of space for a full LLVM build in Debug
@@ -217,9 +174,7 @@ uses the package and provides other details.
 +--------------------------------------------------------------+-----------------+---------------------------------------------+
 | `SVN <http://subversion.tigris.org/project_packages.html>`_  | >=1.3           | Subversion access to LLVM\ :sup:`2`         |
 +--------------------------------------------------------------+-----------------+---------------------------------------------+
-| `python <http://www.python.org/>`_                           | >=2.4           | Automated test suite\ :sup:`3`              |
-+--------------------------------------------------------------+-----------------+---------------------------------------------+
-| `perl <http://www.perl.com/download.csp>`_                   | >=5.6.0         | Utilities                                   |
+| `python <http://www.python.org/>`_                           | >=2.5           | Automated test suite\ :sup:`3`              |
 +--------------------------------------------------------------+-----------------+---------------------------------------------+
 | `GNU M4 <http://savannah.gnu.org/projects/m4>`_              | 1.4             | Macro processor for configuration\ :sup:`4` |
 +--------------------------------------------------------------+-----------------+---------------------------------------------+
@@ -393,6 +348,11 @@ recommend using the system GCC to compile LLVM and Clang in this case.
 **Clang 3.0 on Mageia 2**.  There's a packaging issue: Clang can not find at
 least some (``cxxabi.h``) libstdc++ headers.
 
+**Clang in C++11 mode and libstdc++ 4.7.2**.  This version of libstdc++
+contained `a bug <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53841>`__ which
+causes Clang to refuse to compile condition_variable header file.  At the time
+of writing, this breaks LLD build.
+
 .. _Getting Started with LLVM:
 
 Getting Started with LLVM
@@ -459,15 +419,6 @@ The files are as follows, with *x.y* marking the version number:
 
   Source release for the LLVM test-suite.
 
-``llvm-gcc-4.2-x.y.source.tar.gz``
-
-  Source release of the llvm-gcc-4.2 front end.  See README.LLVM in the root
-  directory for build instructions.
-
-``llvm-gcc-4.2-x.y-platform.tar.gz``
-
-  Binary release of the llvm-gcc-4.2 front end for a specific platform.
-
 .. _checkout:
 
 Checkout LLVM from Subversion
@@ -490,6 +441,8 @@ you can checkout it from the '``tags``' directory (instead of '``trunk``'). The
 following releases are located in the following subdirectories of the '``tags``'
 directory:
 
+* Release 3.3: **RELEASE_33/final**
+* Release 3.2: **RELEASE_32/final**
 * Release 3.1: **RELEASE_31/final**
 * Release 3.0: **RELEASE_30/final**
 * Release 2.9: **RELEASE_29/final**
@@ -758,7 +711,7 @@ The following options can be used to set or enable LLVM specific options:
   target names that you want available in llc. The target names use all lower
   case. The current set of targets is:
 
-    ``arm, cpp, hexagon, mblaze, mips, mipsel, msp430, powerpc, ptx, sparc, spu,
+    ``arm, cpp, hexagon, mips, mipsel, msp430, powerpc, ptx, sparc, spu,
     systemz, x86, x86_64, xcore``.
 
 ``--enable-doxygen``
@@ -939,6 +892,10 @@ GCC compiler supports.
 The result of such a build is executables that are not runnable on on the build
 host (--build option) but can be executed on the compile host (--host option).
 
+Check :doc:`HowToCrossCompileLLVM` and `Clang docs on how to cross-compile in general
+<http://clang.llvm.org/docs/CrossCompilation.html>`_ for more information
+about cross-compiling.
+
 The Location of LLVM Object Files
 ---------------------------------
 
@@ -1074,7 +1031,7 @@ different `tools`_.
   This directory holds the source code for the LLVM assembly language parser
   library.
 
-``llvm/lib/BitCode/``
+``llvm/lib/Bitcode/``
 
   This directory holds code for reading and write LLVM bitcode.
 
@@ -1312,7 +1269,7 @@ Example with clang
      Clang works just like GCC by default.  The standard -S and -c arguments
      work as usual (producing a native .s or .o file, respectively).
 
-#. Next, compile the C file into a LLVM bitcode file:
+#. Next, compile the C file into an LLVM bitcode file:
 
    .. code-block:: console