* ``make [-j]`` --- The ``-j`` specifies the number of jobs (commands) to run
simultaneously. This builds both LLVM and Clang for Debug+Asserts mode.
- The ``--enabled-optimized`` configure option is used to specify a Release
+ The ``--enable-optimized`` configure option is used to specify a Release
build.
* ``make check-all`` --- This run the regression tests to ensure everything
+--------------------------------------------------------------+-----------------+---------------------------------------------+
| `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**
``checkout`` each working branch individually and ``rebase`` it on top of its
parent branch.
-For those who wish to be able to update an llvm repo in a simpler fashion,
-consider placing the following Git script in your path under the name
-``git-svnup``:
+For those who wish to be able to update an llvm repo/revert patches easily using
+git-svn, please look in the directory for the scripts ``git-svnup`` and
+``git-svnrevert``.
-.. code-block:: bash
+To perform the aforementioned update steps go into your source directory and
+just type ``git-svnup`` or ``git svnup`` and everything will just work.
- #!/bin/bash
+If one wishes to revert a commit with git-svn, but do not want the git hash to
+escape into the commit message, one can use the script ``git-svnrevert`` or
+``git svnrevert`` which will take in the git hash for the commit you want to
+revert, look up the appropriate svn revision, and output a message where all
+references to the git hash have been replaced with the svn revision.
- STATUS=$(git status -s | grep -v "??")
-
- if [ ! -z "$STATUS" ]; then
- STASH="yes"
- git stash >/dev/null
- fi
-
- git fetch
- OLD_BRANCH=$(git rev-parse --abbrev-ref HEAD)
- git checkout master 2> /dev/null
- git svn rebase -l
- git checkout $OLD_BRANCH 2> /dev/null
-
- if [ ! -z $STASH ]; then
- git stash pop >/dev/null
- fi
-
-Then to perform the aforementioned update steps go into your source directory
-and just type ``git-svnup`` or ``git svnup`` and everything will just work.
-
-To commit back changes via git-svn, use ``dcommit``:
+To commit back changes via git-svn, use ``git svn dcommit``:
.. code-block:: console
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,
- x86, x86_64, xcore``.
+ ``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