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
+--------------------------------------------------------------+-----------------+---------------------------------------------+
| `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` |
+--------------------------------------------------------------+-----------------+---------------------------------------------+
**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
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
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**
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``
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
---------------------------------
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.
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