[llvm-commits] [llvm-gcc-4-2] r39757 - /llvm-gcc-4-2/trunk/README.LLVM

Devang Patel dpatel at apple.com
Wed Jul 11 15:08:46 PDT 2007


Author: dpatel
Date: Wed Jul 11 17:08:46 2007
New Revision: 39757

URL: http://llvm.org/viewvc/llvm-project?rev=39757&view=rev
Log:
Copy README from llvm-gcc-4.0


Added:
    llvm-gcc-4-2/trunk/README.LLVM

Added: llvm-gcc-4-2/trunk/README.LLVM
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4-2/trunk/README.LLVM?rev=39757&view=auto

==============================================================================
--- llvm-gcc-4-2/trunk/README.LLVM (added)
+++ llvm-gcc-4-2/trunk/README.LLVM Wed Jul 11 17:08:46 2007
@@ -0,0 +1,148 @@
+//===----------------------------------------------------------------------===//
+//                      Building llvm-gcc4 from Source
+//===----------------------------------------------------------------------===//
+
+These instructions describe how to build llvm-gcc-4.2.
+
+Note that this should work on all the supported LLVM targets.  If you run into
+problems, please ask for help or file a bug.
+
+Please follow these instructions carefully.  In particular, the target-specific
+configure instructions should be followed to ensure correct builds.
+
+
+//===----------------------------------------------------------------------===//
+                           First Step: Build LLVM
+//===----------------------------------------------------------------------===//
+
+First, check out LLVM from CVS, then build it in optimized mode (a Release
+build, as opposed to a Debug one)):
+
+  make ENABLE_OPTIMIZED=1
+
+If you use a Debug instead of a Release build of LLVM, make sure you add
+--enable-checking to the configure flags below or llvm-gcc-4.2 will not build!
+
+Below we assume the LLVM OBJDIR is $LLVMOBJDIR.  
+
+
+//===----------------------------------------------------------------------===//
+                           Unpack Front-end Source
+//===----------------------------------------------------------------------===//
+
+$ mkdir llvm-gcc
+$ cd llvm-gcc
+$ tar zxvf llvm-gcc4-x.y.source.tar.gz
+
+
+//===----------------------------------------------------------------------===//
+                     Target-Specific configure Instructions
+//===----------------------------------------------------------------------===//
+
+//===-----------------------
+Linux-specific Instructions:
+
+If llvm-gcc doesn't build right, try building LLVM with OPTIMIZE_OPTION=-O2.
+This may be host compiler version specific.
+
+If you get an error message building llvm-gcc like this:
+  ...gcc/libgcc_s.so.1: version `GCC_4.2.0' not found (required by 
+              /usr/lib/libstdc++.so.6)
+
+you are probably hitting http://llvm.org/PR896.  Please reconfigure with the
+--disable-shared option to work around this.
+
+//===-----------------------
+X86-64/AMD-64/EM64-T for any OS other than Darwin/Mac OS X:
+
+When targeting non-darwin X86-64/AMD-64/EM64-T, configure with
+--disable-shared.  The LLVM X86-64 backend doesn't support PIC codegen on
+non-darwin systems yet.  If you get a build error, try configuring with
+--disable-multilib.
+
+
+//===-----------------------
+Darwin/Mac OS X Instructions:
+
+First step: Upgrade your Xcode installation: you need at least Xcode 2.4.
+
+Next, decide if you want Objective-C support.  If so:
+    EXTRALANGS=,objc,obj-c++
+
+If building for Darwin/PPC:
+    TRIPLE=powerpc-apple-darwin8
+  
+If building for Darwin/X86 (32- and 64-bit support):
+    TARGETOPTIONS=--with-arch=nocona --with-tune=generic
+    TRIPLE=i686-apple-darwin8
+    
+If building for Darwin/X86 (32-bit support only):
+    TARGETOPTIONS=--with-arch=pentium-m --with-tune=prescott --disable-multilib
+    TRIPLE=i686-apple-darwin8
+
+Building for Darwin/Mac OS X is significantly different than building for other
+targets.  Darwin considers libstdc++ to be part of the operating system, not as
+part of the compiler.  As such, you should *remove* the libstdc++-v3 directory
+from the llvm-gcc4 source directory before configuring it:
+
+  rm -rf llvm-gcc4-x.y.source/libstdc++-v3
+
+In addition, you *must* specify the following options to configure:
+
+  --with-gxx-include-dir=/usr/include/c++/4.0.0
+  --build=$TRIPLE --host=$TRIPLE --target=$TRIPLE 
+
+With these options, llvm-gcc will build the same way as Apple's system GCC.
+
+
+//===----------------------------------------------------------------------===//
+                                Build Options
+//===----------------------------------------------------------------------===//
+
+Version Identifier:
+
+  If you want LLVM to include an identifying marker in the --version output,
+  build llvm-gcc with LLVM_VERSION_INFO=XXX.  For example, to build the LLVM
+  1.9 Release front-end, use 'make LLVM_VERSION_INFO=1.9'.  This will cause the
+  front-end to print: "gcc (GCC) 4.0.1 LLVM (Apple Computer, Inc. build 1.9)"
+  as the version number.
+  
+  BUILDOPTIONS=LLVM_VERSION_INFO=whatever
+  
+
+//===----------------------------------------------------------------------===//
+                        Configure, Build, Install, Test
+//===----------------------------------------------------------------------===//
+
+Next, make an object directory and install directory as siblings to the 
+llvm-gcc source directory, and build and install llvm-gcc:
+
+$ mkdir obj
+$ mkdir install
+$ cd obj
+$ ../llvm-gcc4-x.y.source/configure --prefix=`pwd`/../install \
+    --enable-llvm=$LLVMOBJDIR --enable-languages=c,c++$EXTRALANGS $TARGETOPTIONS
+$ make $BUILDOPTIONS
+$ make install
+
+Note that if you prefer to bootstrap llvm-gcc (so that the final llvm-gcc 
+executables have been compiled with llvm-gcc itself), replace "make" with
+"make bootstrap".
+
+Finally, add symlinks for llvm-gcc and llvm-g++ to your path:
+
+$ su
+$ cd /usr/local/bin
+$ ln -s <llvmgccdir>/install/bin/gcc llvm-gcc
+$ ln -s <llvmgccdir>/install/bin/g++ llvm-g++
+$ exit
+
+You should now have something like:
+
+$ llvm-gcc -v
+...
+gcc version 4.0.1 LLVM (Apple Computer, Inc. build 5400)
+
+
+** NOTE: If the -v line above doesn't include "LLVM", you probably mistyped the
+--enable-llvm=xxx line and have a normal gcc, not an llvm-gcc.





More information about the llvm-commits mailing list