I'm trying to build LLVM 2.6 GCC from the source files, but I am
having problems during the make step.
Here is the information:
1. My machine is:
Linux firefly 2.6.9-89.0.9.ELsmp #1 SMP Wed Aug 19 08:06:10 EDT 2009
x86_64 x86_64 x86_64 GNU/Linux
my gcc version is 4.2.1
2. I've unpacked llvm-gcc-4.2-2.6.source.tar.gz under the llvm-gcc
directory. I've also created two subdirectories
called "install" and "obj" under the same llvm-gcc.
3. Then I did the following, based on README.LLVM :
apparently --enable-llvm flag was recognized from the command line but
the error message says it was not defined (if I am interpreting it
correctly...)
2. I've unpacked llvm-gcc-4.2-2.6.source.tar.gz under the llvm-gcc
directory. I've also created two subdirectories
called "install" and "obj" under the same llvm-gcc.
3. Then I did the following, based on README.LLVM :
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).
I followed Trevor instruction and successfully built llvm. I left out
--prefix=$PWD/../install option when configure; hence, /usr/local is now
polluted with llvm goodness
I kept getting error when building llvm-gcc, because I specify the wrong
path to --enable-llvm option, which should be --enable-llvm=(full path of
the LLVM source/object directory) I should have read FAQ more carefully!