-
This document is intended to explain the process of building the
-LLVM C/C++ front-end from its source code. You have to do this, for example, if
-you are porting LLVM to a new architecture or operating system, if you are
-working from Top-Of-Tree CVS/SVN, or if there is no precompiled snapshot
-available.
-
NOTE: This is currently a somewhat fragile, error-prone
-process, and you should only try to do it if:
+
This document is intended to explain the process of building the LLVM C/C++
+front-end from its source code. You have to do this, for example, if you are
+porting LLVM to a new architecture or operating system, if you are working from
+Top-Of-Tree CVS/SVN, or if there is no precompiled snapshot available.
+
+
NOTE: This is currently a somewhat fragile, error-prone process, and
+you should only try to do it if:
- - you really, really, really can't use the binaries we distribute
+ - you really, really, really can't use the
+ binaries we distribute
- you are an elite GCC hacker.
- you want to use the latest bits from CVS.
We welcome patches to help make this process simpler.
+
@@ -61,38 +63,48 @@
+
If you are building LLVM and the GCC front-end under Cygwin, please note that
the LLVM and GCC makefiles do not correctly handle spaces in paths. To deal
-with this issue, make sure that your LLVM and GCC source and build trees are
-located in a top-level directory (like /cygdrive/c/llvm and
+with this issue, make sure that your LLVM and GCC source and build trees are
+located in a top-level directory (like /cygdrive/c/llvm and
/cygdrive/c/llvm-cfrontend), not in a directory that contains a space
-(which includes your "home directory", because it lives under the "Documents
-and Settings" directory). We welcome patches to fix this issue.
-
+(which includes your "home directory", because it lives under the "Documents and
+Settings" directory). We welcome patches to fix this issue.
+
It has been found that the GCC 3.3.3 compiler provided with recent Cygwin
versions is incapable of compiling the LLVM GCC front-end correctly. If your
-Cygwin
-installation includes GCC 3.3.3, we strongly recommend that you download
-GCC 3.4.3, build it separately, and use it for compiling the LLVM GCC front-end.
- This has been
-shown to work correctly.
+Cygwin installation includes GCC 3.3.3, we
strongly recommend that you
+download GCC 3.4.3, build it separately, and use it for compiling the LLVM GCC
+front-end. This has been shown to work correctly.
+
Some versions of Cygwin utilize an experimental version of GNU binutils that
will cause the GNU ld linker to fail an assertion when linking
components of the libstdc++. It is recommended that you replace the entire
binutils package with version 2.15 such that "ld --version" responds
with
+
+
GNU ld version 2.15
-not with:
+
+
+
not with:
+
+
GNU ld version 2.15.91 20040725
+
+
+
If you are building LLVM and the GCC front-end under AIX, do NOT use GNU
Binutils. They are not stable under AIX and may produce incorrect and/or
-invalid code. Instead, use the system assembler and linker.
-
+invalid code. Instead, use the system assembler and linker.
+
@@ -104,33 +116,37 @@
This section describes how to aquire and build llvm-gcc4, which is based on
-the GCC 4.0.1 front-end. This front-end supports C, C++, Objective-C, and
+the GCC 4.0.1 front-end. This front-end supports C, C++, Objective-C, and
Objective-C++. Note that the instructions for building this front-end are
-completely different than those for building llvm-gcc3.
-
+completely different than those for building llvm-gcc3.
--
-
Retrieve the appropriate llvm-gcc4-x.y.source.tar.gz archive from the llvm
-web site.
-It is also possible to download the sources of the llvm-gcc4 front end from
-a read-only mirror using subversion. To check out the code the first time use:
-
+ Retrieve the appropriate llvm-gcc4-x.y.source.tar.gz archive from the
+ llvm web site.
-svn co svn://anonsvn.opensource.apple.com/svn/llvm/trunk
-dst-directory
+ It is also possible to download the sources of the llvm-gcc4 front end
+ from a read-only mirror using subversion. To check out the code the
+ first time use:
-After that, the code can be be updated in the destination directory using;
-
+
+
+svn co svn://anonsvn.opensource.apple.com/svn/llvm/trunk