X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;ds=sidebyside;f=docs%2FGettingStarted.html;h=c27101e27b7ca25562dc30c58f8c99e349eac1df;hb=9e6d1d1f5034347d237941f1bf08fba5c1583cd3;hp=e2b07a68237afb2daf82403ef684b118789ddc0f;hpb=763856526f6d98f8cce313590fb2555628e36f04;p=oota-llvm.git diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html index e2b07a68237..c27101e27b7 100644 --- a/docs/GettingStarted.html +++ b/docs/GettingStarted.html @@ -17,37 +17,37 @@
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 @@ -215,11 +217,21 @@ software you will need.
LLVM has partial support for the following platforms:
@@ -269,7 +277,7 @@ software you will need.Note that you will need about 1-3 GB of space for a full LLVM build in Debug 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.
+tools). If you do not need many of the tools and you are space-conscious, you +can pass ONLY_TOOLS="tools you need" to make. The Release build +requires considerably less space.The LLVM suite may compile on other platforms, but it is not guaranteed to do so. If compilation is successful, the LLVM utilities should be @@ -338,7 +355,7 @@ on your platform.
The GCC front end is not very portable at the moment. If you want to get it to work on another platform, you can download a copy of the source and try to compile it on your platform.
+href="GCCFEBuildInstrs.html">try to compile it on your platform. @@ -371,18 +388,6 @@ href="CFEBuildInstrs.html">try to compile it on your platform.GCC 3.2.2: This version of GCC fails to compile LLVM.
+GCC 3.2.2 and 3.2.3: These versions of GCC fails to compile LLVM with +a bogus template error. This was fixed in later GCCs.
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 + 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 @@ -533,6 +538,10 @@ the "convert_from_eh_region_ranges_1" GCC function.
builds with "make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O2 ..."GCC 3.4.x on X86-64/amd64: GCC miscompiles portions of LLVM.
+GCC 3.4.4 (CodeSourcery ARM 2005q3-2): this compiler miscompiles LLVM + when building with optimizations enabled. It appears to work with + "make ENABLE_OPTIMIZED=1 OPTIMIZE_OPTION=-O1" or build a debug + build.
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 @@ -547,6 +556,18 @@ the "convert_from_eh_region_ranges_1" GCC function.
portions of its testsuite.GCC 4.1.2 on OpenSUSE: Seg faults during libstdc++ build and on x86_64 platforms compiling md5.c gets a mangled constant.
+GCC 4.1.2 (20061115 (prerelease) (Debian 4.1.1-21)) on Debian: Appears +to miscompile parts of LLVM 2.4. One symptom is ValueSymbolTable complaining +about symbols remaining in the table on destruction.
+GCC 4.1.2 20071124 (Red Hat 4.1.2-42): Suffers from the same symptoms +as the previous one. It appears to work with ENABLE_OPTIMIZED=0 (the default).
+Cygwin GCC 4.3.2 20080827 (beta) 2: + Users reported various problems related + with link errors when using this GCC version.
+Debian GCC 4.3.2 on X86: Crashes building some files in LLVM 2.6.
+GCC 4.3.3 (Debian 4.3.3-10) on ARM: Miscompiles parts of LLVM 2.6 +when optimizations are turned on. The symptom is an infinite loop in +FoldingSetImpl::RemoveNode while running the code generator.
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 @@ -558,6 +579,12 @@ href="http://sourceware.org/bugzilla/show_bug.cgi?id=3111">a bug which causes huge link times (minutes instead of seconds) when building LLVM. We recommend upgrading to a newer version (2.17.50.0.4 or later).
+GNU Binutils 2.19.1 Gold: This version of Gold contained +a bug +which causes intermittent failures when building LLVM with position independent +code. The symptom is an error about cyclic dependencies. We recommend +upgrading to a newer version of Gold.
+ @@ -658,24 +685,20 @@ compressed with the gzip program.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.
- @@ -686,7 +709,7 @@ svn://anonsvn.opensource.apple.com/svn/llvm/trunk.If you have access to our Subversion repository, you can get a fresh copy of -the entire source code. All you need to do is check it out from Subvresion as +the entire source code. All you need to do is check it out from Subversion as follows:
If you want to get a specific release (as opposed to the most recent revision), you can checkout it from the 'tags' directory (instead of 'trunk'). The following releases are located in the following - subdirectories of the 'tags' directory:
+subdirectories of the 'tags' directory:If you would like to get the GCC front end source code, you can also get it -and build it yourself. Please follow these +and build it yourself. Please follow these instructions to successfully get and build the LLVM GCC front-end.
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 +
Before configuring and compiling the LLVM suite (or if you want to use just the LLVM +GCC front end) you can optionally extract the 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:
+To install the GCC front end, do the following (on Windows, use an archival tool +like 7-zip that understands gzipped tars):
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 +
Once the binary is uncompressed, if you're using a *nix-based system, add a symlink for +llvm-gcc and llvm-g++ to some directory in your path. If you're using a +Windows-based system, add the bin subdirectory of your front end installation directory +to your PATH environment variable. For example, if you uncompressed the binary to +c:\llvm-gcc, add c:\llvm-gcc\bin to your PATH.
+ +If you now want to build LLVM from source, 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 +point 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 -file, not "fix" a header file that needs to be fixed for GCC, or it may be -linked with libraries not available on your system.
+As a convenience for Windows users, the front end binaries for MinGW/x86 include +versions of the required w32api and mingw-runtime binaries. The last remaining step for +Windows users is to simply uncompress the binary binutils package from +MinGW into your front end installation directory. While the +front end installation steps are not quite the same as a typical manual MinGW installation, +they should be similar enough to those who have previously installed MinGW on Windows systems.
-In cases like these, you may want to try building the GCC front end from source. This is -much easier now than it was in the past.
+To install binutils on Windows:
+ +The binary versions of the LLVM GCC front end may not suit all of your needs. For +example, the binary distribution may include an old version of a system header +file, not "fix" a header file that needs to be fixed for GCC, or it may be linked with +libraries not available on your system. In cases like these, you may want to try +building the GCC front end from source. Thankfully, +this is much easier now than it was in the past.
+ +We also do not currently support updating of the GCC front end by manually overlaying +newer versions of the w32api and mingw-runtime binary packages that may become available +from MinGW. At this time, it's best to think of the MinGW LLVM GCC front end binary as +a self-contained convenience package that requires Windows users to simply download and +uncompress the GNU Binutils binary package from the MinGW project.
+ +Regardless of your platform, if you discover that installing the LLVM GCC front end +binaries is not as easy as previously described, or you would like to suggest improvements, +please let us know how you would like to see things improved by dropping us a note on our +mailing list.
It is possible to cross-compile LLVM. That is, you can create LLVM - executables and libraries for a platform different than the one one which you - are compiling. To do this, a few additional steps are - required. 1 To cross-compile LLVM, use - these instructions:
-The result of such a build will produce executables that are not executable - on your build host (--build option) but can be executed on your compile host +
It is possible to cross-compile LLVM itself. That is, you can create LLVM + executables and libraries to be hosted on a platform different from the + platform where they are build (a Canadian Cross build). To configure a + cross-compile, supply the configure script with --build and + --host options that are different. The values of these options must + be legal target triples that your GCC compiler supports.
+ +The result of such a build is executables that are not runnable on + on the build host (--build option) but can be executed on the compile host (--host option).
-Notes:
-$ mount -t binfmt_misc none /proc/sys/fs/binfmt_misc -$ echo ':llvm:M::llvm::/path/to/lli:' > /proc/sys/fs/binfmt_misc/register +$ echo ':llvm:M::BC::/path/to/lli:' > /proc/sys/fs/binfmt_misc/register $ chmod u+x hello.bc (if needed) $ ./hello.bc@@ -1162,7 +1203,6 @@ Cummings for pointing this out!
This directory contains projects that are not strictly part of LLVM but are shipped with LLVM. This is also the directory where you should create your own LLVM-based projects. See llvm/projects/sample for an example of how - to set up your own project. See llvm/projects/Stacker for a fully - functional example of a compiler front end.
+ to set up your own project.This section gives an example of using LLVM. llvm-gcc3 is now obsolete, -so we only include instructiosn for llvm-gcc4. +so we only include instructions for llvm-gcc4.
Note: The gcc4 frontend's invocation is considerably different @@ -1608,7 +1644,7 @@ Asked Questions page.
This document is just an introduction to how to use LLVM to do +
This document is just an introduction on how to use LLVM to do some simple things... there are many more interesting and complicated things that you can do that aren't documented here (but we'll gladly accept a patch if you want to write something up!). For more information about LLVM, check @@ -1628,9 +1664,9 @@ out: