[LLVMdev] Help with building LLVM 2.6 GCC
Trevor Harmon
Trevor.W.Harmon at nasa.gov
Thu Apr 1 11:12:02 PDT 2010
On Apr 1, 2010, at 4:45 AM, naohk wrote:
> Correct me if I'm wrong. To build llvm, you'd need llvm-gcc front-end.
The Getting Started Guide is a bit misleading on this point because
the "Install the llvm-gcc-4.2 front end" step comes before the "Build
the LLVM Suite" step, implying that LLVM GCC is a dependency, but it's
not.
FWIW, here's how I build LLVM:
- mkdir llvm
- cd llvm
- Unpack LLVM source (or checkout via Subversion) to "llvm-src"
- cd llvm-src
- ./configure --prefix=$PWD/../install
--disable-optimized for debug builds; --enable-optimized for
release builds
- make
- make install
This works for me on OS X 10.5 and Ubuntu 9.10.
I've never been able to get the binary distribution of LLVM GCC to
work on OS X -- I always get "dyld: Library not loaded: /opt/local/lib/
libiconv.2.dylib" -- so I've gotten in the habit of building LLVM GCC
from source (on Linux too). These are the steps that work for me every
time:
- mkdir llvm-gcc
- cd llvm-gcc
- Unpack LLVM GCC source (or checkout via Subversion) to "llvm-gcc-src"
- mkdir obj
- mkdir install
- cd obj
- export TRIPLE=i686-apple-darwin9
(Use i386-pc-linux-gnu for Linux)
- export BUILDOPTIONS=LLVM_VERSION_INFO=2.7
(Replace "2.7" with the current version number)
- export TARGETOPTIONS='--with-arch=nocona --with-tune=generic'
- ../llvm-gcc-src/configure --prefix=$PWD/../install
--program-prefix=llvm- --build=$TRIPLE --host=$TRIPLE
--target=$TRIPLE
--enable-llvm=(full path of the LLVM source directory)
--enable-languages=c,c++ $TARGETOPTIONS
(If you built a Debug instead of a Release of LLVM, add
--enable-checking.)
(On OS X, add "--with-gxx-include-dir=/usr/include/c++/4.0.0")
- make $BUILDOPTIONS
- make install
- If on OS X:
ln -sf /usr/lib/libstdc++.6.dylib `pwd`/../install/lib
ln -sf /usr/lib/libstdc++.6.dylib `pwd`/../install/lib/libstdc+
+.dylib
This works for me on OS X 10.5 and Ubuntu 9.10, although I had to
install some dependencies on Ubuntu (bison, flex).
Trevor
More information about the llvm-dev
mailing list