X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FGettingStarted.html;h=099b7d745040f77ae3465255b2be1cdb707a3bac;hb=f6143ef556ed01311d2043d38421302479f7866c;hp=f3c805c7f0ec9db1dff1c1b06d5453dfd8daca99;hpb=d4694f9cf573ad68bc31dfe3d1fdca20d42fce28;p=oota-llvm.git diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html index f3c805c7f0e..099b7d74504 100644 --- a/docs/GettingStarted.html +++ b/docs/GettingStarted.html @@ -31,6 +31,7 @@
First, LLVM comes in two pieces. The first piece is the LLVM suite. This contains all of the tools, libraries, and header files needed to use the low level virtual machine. It contains an assembler, disassembler, bytecode -analyzer, and bytecode optimizer. It also contains a test suite that can be +analyzer and bytecode optimizer. It also contains a test suite that can be used to test the LLVM tools and the GCC front end.
The second piece is the GCC front end. This component provides a version of GCC that compiles C and C++ code into LLVM bytecode. Currently, the GCC front -end is a modified version of GCC 3.4 (we track the GCC 3.4 development). Once +end uses the GCC parser to convert code to LLVM. Once compiled into LLVM bytecode, a program can be manipulated with the LLVM tools from the LLVM suite.
@@ -111,73 +115,53 @@ and performance.Specify for directory the full pathname of where you - want the LLVM tools and libraries to be installed.
Optionally, specify for directory the full pathname of the + C/C++ front end installation to use with this LLVM configuration. If + not specified, the PATH will be searched.
Enable the SPEC2000 benchmarks for testing. The SPEC2000 benchmarks should be available in @@ -189,7 +173,8 @@ and performance.
LLVM is known to work on the following platforms:
-OS | Arch | @@ -233,7 +218,7 @@ software you will need.||
---|---|---|---|
Linux | -x861 | +x861 | GCC |
FreeBSD | -x861 | +x861 | GCC |
MacOS X2 | +MacOS X2 | PowerPC | GCC |
MacOS X2 | +x86 | +GCC | + +|
Cygwin/Win32 | -x861 | +x861,8 | +GCC 3.4.X, binutils 2.15 | +
MinGW/Win32 | +x861,6,8 | +GCC 3.4.X, binutils 2.15 | +|
Linux | +amd643 | GCC |
LLVM has partial support for the following platforms:
-OS | Arch | @@ -268,33 +269,65 @@ software you will need.|||
---|---|---|---|---|
Windows | -x861 | -Visual Studio .NET4,5, MinGW | +x861 | +Visual Studio .NET4,5 |
AIX3,4 | +AIX3,4 | PowerPC | GCC | |
Linux3,5 | +Linux3,5 | PowerPC | GCC | |
Linux7 | +Alpha | +GCC | +||
Linux7 | +Itanium (IA-64) | +GCC | +||
HP-UX7 | +Itanium (IA-64) | +HP aCC | +
-Notes:
-1 Code generation supported for Pentium processors and up
-2 Code generation supported for 32-bit ABI only
-3 No native code generation
-4 Build is not complete: one or more tools don't link
-5 The GCC-based C/C++ frontend does not build
-
Notes:
+ +Note that you will need about 1-3 GB of space for a full LLVM build in Debug -mode, depending on the system (because of all the debug info), and the libraries -appear in more than one of the tools that get linked, so there is some -duplication. If you do not need many of the tools and you are space-conscious, +mode, depending on the system (it is so large because of all the debugging +information and the fact that the libraries are statically linked into multiple +tools). If you do not need many of the tools and you are space-conscious, you can disable them individually in llvm/tools/Makefile. The Release build requires considerably less space.
@@ -318,7 +351,7 @@ href="CFEBuildInstrs.html">try to compile it on your platform. is the usual name for the software package that LLVM depends on. The Version column provides "known to work" versions of the package. The Notes column describes how LLVM uses the package and provides other details. -Package | Version | Notes | |
---|---|---|---|
GCC | 3.4.2 | -C/C++ compiler (Note 3) | +C/C++ compiler1 | +
TeXinfo | +4.5 | +For building the CFE | |
Bison | -1.35 | +1.28, 1.35, 1.75, 1.875d, 2.0, or 2.1 (not 1.85 or 1.875) |
YACC compiler |
CVS | +≥1.11 | +CVS access to LLVM2 | +|
DejaGnu | 1.4.2 | -Automated test suite (Note 2) | +Automated test suite3 |
tcl | 8.3, 8.4 | -Automated test suite (Note 2) | +Automated test suite3 |
expect | 5.38.0 | -Automated test suite (Note 2) | +Automated test suite3 | +
perl | +≥5.6.0 | +Nightly tester, utilities | |
GNU M4 | 1.4 | -Macro processor for configuration (Note 1) | +Macro processor for configuration4 |
GNU Autoconf | 2.59 | -Configuration script builder (Note 1) | +Configuration script builder4 |
GNU Automake | 1.9.2 | -aclocal macro generator (Note 1) | -|
perl | -≥5.6.0 | -Nightly tester, utilities | +aclocal macro generator4 |
libtool | 1.5.10 | -Shared library manager (Note 1) | -|
CVS | -≥1.11 | -CVS access to LLVM (Note 4) | +Shared library manager4 |
Notes:
+Notes:
+Additionally, your compilation host is expected to have the usual plethora of Unix utilities. Specifically:
LLVM is very demanding of the host C++ compiler, and as such tends to expose
bugs in the compiler. In particular, several versions of GCC crash when trying
-to compile LLVM. We routinely use GCC 3.3.3 and GCC 3.4.0 and have had success
-with them. Other versions of GCC will probably work as well. GCC versions listed
+to compile LLVM. We routinely use GCC 3.3.3, 3.4.0, and Apple 4.0.1
+successfully with them (however, see below). Other versions of GCC will
+probably work as well. GCC versions listed
here are known to not work. If you are using one of these versions, please try
to upgrade your GCC to something more recent. If you run into a problem with a
version of GCC not listed here, please let
@@ -476,6 +517,33 @@ problems in the STL that effectively prevent it from compiling LLVM.
GCC 3.3.2: This version of GCC suffered from a serious bug which causes it to crash in
the "convert_from_eh_region_ranges_1" GCC function. Cygwin GCC 3.3.3: The version of GCC 3.3.3 commonly shipped with
+ Cygwin does not work. Please upgrade
+ to a newer version if possible. SuSE GCC 3.3.3: The version of GCC 3.3.3 shipped with SuSE 9.1 (and
+ possibly others) does not compile LLVM correctly (it appears that exception
+ handling is broken in some cases). Please download the FSF 3.3.3 or upgrade
+ to a newer version of GCC. GCC 3.4.x on X86-64/amd64: GCC
+ miscompiles portions of LLVM. IA-64 GCC 4.0.0: The IA-64 version of GCC 4.0.0 is known to
+ miscompile LLVM. Apple Xcode 2.3: GCC crashes when compiling LLVM at -O3 (which is the
+ default with ENABLE_OPTIMIZED=1. To work around this, build with
+ "ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2". GCC 4.1.1: GCC fails to build LLVM with template concept check errors
+ compiling some files. At the time of this writing, GCC mainline (4.2)
+ did not share the problem. GCC 4.1.1 on X86-64/amd64: GCC
+ miscompiles portions of LLVM when compiling llvm itself into 64-bit
+ code. LLVM will appear to mostly work but will be buggy, e.g. failing
+ portions of its testsuite. GNU ld 2.16.X. Some 2.16.X versions of the ld linker will produce very
+long warning messages complaining that some ".gnu.linkonce.t.*" symbol was
+defined in a discarded section. You can safely ignore these messages as they are
+erroneous and the linkage is correct. These messages disappear using ld
+2.17.
+
+
For the pre-built GCC front end binaries, the LLVMGCCDIR is - cfrontend/platform/llvm-gcc. + llvm-gcc/platform/llvm-gcc. @@ -543,22 +611,17 @@ All these paths are absolute:
-In order to compile and use LLVM, you will need to set some environment -variables. There are also some shell aliases which you may find useful. -You can set these on the command line, or better yet, set them in your -.cshrc or .profile. +In order to compile and use LLVM, you may need to set some environment +variables.
The files are as follows: +
The files are as follows, with x.y marking the version number:
It is also possible to download the sources of the llvm-gcc4 front end from a +read-only subversion mirror at +svn://anonsvn.opensource.apple.com/svn/llvm/trunk.
+ @@ -618,9 +677,9 @@ follows:If you want to get a specific release (as opposed to the most recent revision), you can specify a label. The following releases have the following -label:
+labels:cd llvm/projects - cvs -z3 -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm co llvm-test + cvs -z3 -d :pserver:anon@llvm.org:/var/cvs/llvm co llvm-test
By placing it in the llvm/projects, it will be automatically configured by the LLVM configure script as well as automatically updated when you run cvs update.
-If you would like to get the GCC front end source code, you can also get it -from the CVS repository:
- -- cvs -z3 -d :pserver:anon@llvm-cvs.cs.uiuc.edu:/var/cvs/llvm co llvm-gcc -- -
Please note that you must follow these -instructions to successfully build the LLVM GCC front-end.
+If you would like to get the GCC front end source code, you can also get it +and build it yourself. Please follow these +instructions to successfully get and build the LLVM GCC front-end.
- -If the main CVS server is overloaded or inaccessible, you can try one of -these user-hosted mirrors:
- - -Before configuring and compiling the LLVM suite, you need to extract the LLVM -GCC front end from the binary distribution. It is used for building the -bytecode libraries later used by the GCC front end for linking programs, and its -location must be specified when the LLVM suite is configured.
+Before configuring and compiling the LLVM suite, you can optionally extract the +LLVM GCC front end from the binary distribution. It is used for running the +llvm-test testsuite and for compiling C/C++ programs. Note that you can optionally +build llvm-gcc yourself after building the +main LLVM repository.
To install the GCC front end, do the following:
Next, you will need to fix your system header files:
- -cd cfrontend/platform
- ./fixheaders
Once the binary is uncompressed, you should add a symlink for llvm-gcc and +llvm-g++ to some directory in your path. When you configure LLVM, it will +automatically detect llvm-gcc's presence (if it is in your path) enabling its +use in llvm-test. Note that you can always build or install llvm-gcc at any +pointer after building the main LLVM repository: just reconfigure llvm and +llvm-test will pick it up. +
The binary versions of the GCC front end may not suit all of your needs. For example, the binary distribution may include an old version of a system header @@ -710,7 +756,7 @@ linked with libraries not available on your system.
In cases like these, you may want to try building the GCC front end from source. This is -not for the faint of heart, so be forewarned.
+much easier now than it was in the past.The following environment variables are used by the configure script to configure the build system:
-Variable | Purpose |
---|---|
CC | @@ -751,20 +797,40 @@ script to configure the build system: