From 551d3e6303a6845f018941b370c112202b11e682 Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Thu, 14 Feb 2008 17:53:22 +0000 Subject: Rename CFEBuildInstrs.html to GCCFEBuildInstrs.html. Update all references to it and place a redirection page at the old address. llvm-svn: 47124 --- llvm/docs/GCCFEBuildInstrs.html | 281 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 llvm/docs/GCCFEBuildInstrs.html (limited to 'llvm/docs/GCCFEBuildInstrs.html') diff --git a/llvm/docs/GCCFEBuildInstrs.html b/llvm/docs/GCCFEBuildInstrs.html new file mode 100644 index 00000000000..289bda304ea --- /dev/null +++ b/llvm/docs/GCCFEBuildInstrs.html @@ -0,0 +1,281 @@ + + + + + + Building the LLVM GCC Front-End + + + +
+ Building the LLVM GCC Front-End +
+ +
    +
  1. Building llvm-gcc from Source
  2. +
  3. License Information
  4. +
+ +
+

Written by the LLVM Team

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

+ +
    +
  1. Retrieve the appropriate llvm-gcc4.x-y.z.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 + 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
    +
    +
    + +

    After that, the code can be be updated in the destination directory + using:

    + +
    +
    svn update
    +
    + +

    The mirror is brought up to date every evening.

  2. + +
  3. Follow the directions in the top-level README.LLVM file for + up-to-date instructions on how to build llvm-gcc. See below for building + with support for Ada or Fortran. +
+ +
+ + +
+ 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

+ +

There are some complications however:

+ +
    +
  1. The only platform for which the Ada front-end is known to build is + 32 bit intel x86 running linux. It is unlikely to build for other + systems without some work.

  2. +
  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. What is more, the Ada compiler must not be more recent + than what it is trying to compile, otherwise the build will fail. + This rules out gcc-4.3 (but not gcc-4.2) and also the + 2007 GNAT GPL Edition. + 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) + and another which supports C++, see below.

  4. +
  5. Because the Ada front-end is experimental, it is wise to build the + compiler with checking enabled. This causes it to run slower, but + helps catch mistakes in the compiler (please report any problems using + LLVM bugzilla).

  6. +
+ +

Supposing appropriate compilers are available, llvm-gcc with Ada support can + be built on an x86-32 linux box using the following recipe:

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

    or check out the + latest version from subversion:

    + +
    +
    svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm
    +
    +
  2. + +
  3. 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
    +
    + +

    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
    +
    +
  4. + +
  5. Make a build directory llvm-objects for llvm and make it the + current directory:

    + +
    +
    mkdir llvm-objects
    +cd llvm-objects
    +
    +
  6. + +
  7. Configure LLVM (here it is configured to install into /usr/local):

    + +
    +
    ../llvm/configure --prefix=/usr/local
    +
    + +

    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
    +
    +
  8. + +
  9. Build LLVM with checking enabled (use ENABLE_OPTIMIZED=1 to + build without checking):

    + +
    +
    make ENABLE_OPTIMIZED=0
    +
    +
  10. + +
  11. Install LLVM (optional):

    + +
    +
    make install
    +
    +
  12. + +
  13. 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
    +
    +
  14. + +
  15. 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, + 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
    +
    + +

    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
    +
    +
  16. + +
  17. Build and install the compiler:

    + +
    +
    make
    +make install
    +
    +
  18. +
+ +
+ + +
+ Building the Fortran front-end +
+ +
+

+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 +COPYING.LIB for more details. +

+ +

+More information is available in the FAQ. +

+
+ + + +
+
+ Valid CSS! + Valid HTML 4.01! + + LLVM Compiler Infrastructure
+ Last modified: $Date$ +
+ + + -- cgit v1.2.3