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 @@ -
+

Building the LLVM GCC Front-End -

+
  1. Building llvm-gcc from Source
  2. +
  3. Building the Ada front-end
  4. +
  5. Building the Fortran front-end
  6. License Information
@@ -22,36 +24,26 @@ -
- Building llvm-gcc from Source -
+

Building llvm-gcc from Source

-
+
-

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.

    -
  1. Retrieve the appropriate llvm-gcc4.x-y.z.source.tar.gz archive from the - llvm web site.

    +
  2. 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 the Ada front-end

    + -
    +

    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.

  3. 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.

  4. 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).

  5. + LLVM bugzilla).

    +
  6. 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
    -
    +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
    -
    +../llvm-gcc-4.2/configure --prefix=/usr/local --enable-languages=ada,c \ + --enable-checking --enable-llvm=$PWD/../llvm-objects \ + --disable-bootstrap --disable-multilib +
  • Build and install the compiler:

    -
    -
    make
    -make install
    -
    +
    +make
    +make install
    +
  • -
    - Building the Fortran front-end -
    +

    Building the Fortran front-end

    + -
    -

    -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
     
    -
    - +

    License Information

    + -
    +

    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.


    Valid CSS! + src="http://jigsaw.w3.org/css-validator/images/vcss-blue" alt="Valid CSS"> Valid HTML 4.01! + src="http://www.w3.org/Icons/valid-html401-blue" alt="Valid HTML 4.01"> - LLVM Compiler Infrastructure
    + LLVM Compiler Infrastructure
    Last modified: $Date$