X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FGCCFEBuildInstrs.html;h=6eb409b79c278324024a5ca4891199bce0367e52;hb=9c3d57c45e0ea788d9c6351345b91d2b8dea0a82;hp=0c675340cbfaa2dd126e2f39ae39385b2cf221ac;hpb=17bcde9f9b18e1076a9f20d1dcd3b4a8e9985352;p=oota-llvm.git diff --git a/docs/GCCFEBuildInstrs.html b/docs/GCCFEBuildInstrs.html index 0c675340cbf..6eb409b79c2 100644 --- a/docs/GCCFEBuildInstrs.html +++ b/docs/GCCFEBuildInstrs.html @@ -8,12 +8,14 @@
-This section describes how to acquire and build llvm-gcc 4.0 and 4.2, which are -based on the GCC 4.0.1/4.2.1 front-ends respectively. Both front-ends support C, -C++, Objective-C and Objective-C++. The 4.2 front-end also supports Ada and -Fortran to some extent. Note that the instructions for building these front-ends -are completely different (and much easier!) than those for building llvm-gcc3 in -the past.
+This section describes how to acquire and build llvm-gcc 4.2, which is based +on the GCC 4.2.1 front-end. Supported languages are Ada, C, C++, Fortran, +Objective-C and Objective-C++. Note that the instructions for building these +front-ends are completely different (and much easier!) than those for building +llvm-gcc3 in the past.
Retrieve the appropriate llvm-gcc4.x-y.z.source.tar.gz archive from the - llvm web site.
+Retrieve the appropriate llvm-gcc-4.2-version.source.tar.gz + archive from the LLVM web + site.
It is also possible to download the sources of the llvm-gcc front end - from a read-only mirror using subversion. To check out the 4.0 code + from a read-only mirror using subversion. To check out the 4.2 code for first time use:
--svn co http://llvm.org/svn/llvm-project/llvm-gcc-4.0/trunk dst-directory --
To check out the 4.2 code use:
-svn co http://llvm.org/svn/llvm-project/llvm-gcc-4.2/trunk dst-directory @@ -75,11 +67,10 @@ svn co http://llvm.org/svn/llvm-project/llvm-gcc-4.2/trunk dst-directory
Building with support for Ada amounts to following the directions in the top-level README.LLVM file, adding ",ada" to EXTRALANGS, for example: EXTRALANGS=,ada
@@ -92,23 +83,29 @@ top-level README.LLVM file, adding ",ada" to EXTRALANGS, for example: systems without some work.The build requires having a compiler that supports Ada, C and C++. The Ada front-end is written in Ada so an Ada compiler is needed to - build it. Appropriate Ada compilers are gcc-4.2 (or earlier) or the - 2006 GNAT GPL Edition - (or earlier). As a general rule, the Ada compiler used for the - build must not be more recent than the Ada compiler it is building. - This is why the build fails with gcc-4.3 and the 2007 GNAT GPL Edition. + build it. Compilers known to work with the + LLVM 2.7 release + are gcc-4.2 and the + 2005, 2006 and 2007 versions of the + GNAT GPL Edition. + GNAT GPL 2008, gcc-4.3 and later will not work. The LLVM parts of llvm-gcc are written in C++ so a C++ compiler is needed to build them. The rest of gcc is written in C. Some linux distributions provide a version of gcc that supports all three languages (the Ada part often comes as an add-on package to the rest of gcc). Otherwise it is possible to combine two versions of gcc, one that supports Ada and C (such as the - 2006 GNAT GPL Edition) + 2007 GNAT GPL Edition) and another which supports C++, see below.
Because the Ada front-end is experimental, it is wise to build the - compiler with checking enabled. This causes it to run slower, but + compiler with checking enabled. This causes it to run much slower, but helps catch mistakes in the compiler (please report any problems using - LLVM bugzilla).
The Ada front-end fails to + bootstrap, due to lack of LLVM support for + setjmp/longjmp style exception handling (used + internally by the compiler), so you must specify + --disable-bootstrap.
Supposing appropriate compilers are available, llvm-gcc with Ada support can @@ -118,142 +115,142 @@ top-level README.LLVM file, adding ",ada" to EXTRALANGS, for example:
Download the LLVM source and unpack it:
-wget http://llvm.org/releases/2.2/llvm-2.2.tar.gz -tar xzf llvm-2.2.tar.gz -mv llvm-2.2 llvm-
+wget http://llvm.org/releases/2.7/llvm-2.7.tgz +tar xzf llvm-2.7.tgz +mv llvm-2.7 llvm +
or check out the latest version from subversion:
-svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-
svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm+
Download the llvm-gcc-4.2 source and unpack it:
-wget http://llvm.org/releases/2.2/llvm-gcc4.2-2.2.source.tar.gz -tar xzf llvm-gcc4.2-2.2.source.tar.gz -mv llvm-gcc4.2-2.2.source llvm-gcc-4.2-
+wget http://llvm.org/releases/2.7/llvm-gcc-4.2-2.7.source.tgz +tar xzf llvm-gcc-4.2-2.7.source.tgz +mv llvm-gcc-4.2-2.7.source llvm-gcc-4.2 +
or check out the latest version from subversion:
-svn co http://llvm.org/svn/llvm-project/llvm-gcc-4.2/trunk llvm-gcc-4.2-
+svn co http://llvm.org/svn/llvm-project/llvm-gcc-4.2/trunk llvm-gcc-4.2 +
Make a build directory llvm-objects for llvm and make it the current directory:
-mkdir llvm-objects -cd llvm-objects-
+mkdir llvm-objects +cd llvm-objects +
Configure LLVM (here it is configured to install into /usr/local):
-../llvm/configure --prefix=/usr/local-
+../llvm/configure --prefix=/usr/local --enable-optimized --enable-assertions +
If you have a multi-compiler setup and the C++ compiler is not the default, then you can configure like this:
-CXX=PATH_TO_C++_COMPILER ../llvm/configure --prefix=/usr/local-
+CXX=PATH_TO_C++_COMPILER ../llvm/configure --prefix=/usr/local --enable-optimized --enable-assertions ++ +
To compile without checking (not recommended), replace + --enable-assertions with --disable-assertions.
+Build LLVM with checking enabled (use ENABLE_OPTIMIZED=1 to - build without checking):
+Build LLVM:
-make ENABLE_OPTIMIZED=0-
+make +
Install LLVM (optional):
-make install-
+make install +
Make a build directory llvm-gcc-4.2-objects for llvm-gcc and make it the current directory:
-+cd .. mkdir llvm-gcc-4.2-objects -cd llvm-gcc-4.2-objects-
Configure llvm-gcc (here it is configured to install into /usr/local). The --enable-checking flag turns on sanity checks inside the compiler. - If you omit it then LLVM must be built with make ENABLE_OPTIMIZED=1. - Additional languages can be appended to the --enable-languages switch, + To turn off these checks (not recommended), replace --enable-checking + with --disable-checking. + Additional languages can be appended to the --enable-languages switch, for example --enable-languages=ada,c,c++.
-../llvm-gcc-4.2/configure --prefix=/usr/local --enable-languages=ada,c --enable-checking --enable-llvm=$PWD/../llvm-objects --disable-shared --disable-bootstrap --disable-multilib-
+../llvm-gcc-4.2/configure --prefix=/usr/local --enable-languages=ada,c \ + --enable-checking --enable-llvm=$PWD/../llvm-objects \ + --disable-bootstrap --disable-multilib +
If you have a multi-compiler setup, then you can configure like this:
-+export CC=PATH_TO_C_AND_ADA_COMPILER export CXX=PATH_TO_C++_COMPILER -../llvm-gcc-4.2/configure --prefix=/usr/local --enable-languages=ada,c --enable-checking --enable-llvm=$PWD/../llvm-objects --disable-shared --disable-bootstrap --disable-multilib-
Build and install the compiler:
-make -make install-
+make +make install +
-To build with support for Fortran, follow the directions in the top-level +
To build with support for Fortran, follow the directions in the top-level README.LLVM file, adding ",fortran" to EXTRALANGS, for example:
-+EXTRALANGS=,fortran-
The LLVM GCC frontend is licensed to you under the GNU General Public License and the GNU Lesser General Public License. Please see the files COPYING and @@ -270,11 +267,11 @@ More information is available in the FAQ.