[LLVMdev] Using non-system compiler to build llvm and llvm-gcc front end

Christian Sayer Christian.Sayer at dibcom.fr
Tue May 5 00:56:29 PDT 2009

did you try a simple

 $ ../llvm-2.5/configure --prefix=/pkg/bin/llvm/ CC=/pkg/bin/gcc-4.2.4/bin/gcc CXX=/pkg/bin/gcc-4.2.4/bin/g++

This is how I use to configure for non-system gcc 4.3.2 and it works well. The right headers are included automatically
from the correct directory, and besides that I think that none of the std libraries is linked statically I guess it would
pick the right ones as well. Just make sure to load the right shared libs on runtime.

Regards, Christian
  Christian SAYER

From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Scott Ricketts
Sent: Monday, May 04, 2009 7:40 PM
To: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] Using non-system compiler to build llvm and llvm-gcc front end

I am still having problems getting everything installed. I realized that the successful build of llvm-2.5 had in fact been configured to use the system gcc (4.1.2). However, I was unable to sucessfully build llvm-gcc with gcc 4.1.2.

I went back and attempted to build llvm-2.5 with gcc-4.2.4 (installed in a separate directory from system gcc). However, I got the same build error as before.

Then I went back again to attempt to build llvm-2.5 with the system gcc, and was unable to reproduce a successful build. So something is wrong with my recollection of history.

I think I am just configuring incorrectly. I would like to use the installation of gcc-4.2.4, which is located in /pkg/bin/gcc-4.2.4. Perhaps someone has done something similar and can provide me a working example?


*** llvm-2.5 configured to use gcc-4.2.4:

$ ../llvm-2.5/configure --prefix=/pkg/bin/llvm/ CC=/pkg/bin/gcc-4.2.4/bin/gcc CXX=/pkg/bin/gcc-4.2.4/bin/g++ CXXCPP=/pkg/bin/gcc-4.2.4/bin/cpp LDFLAGS=-L/pkg/bin/gcc-4.2.4/lib64/ CXXFLAGS=-I/pkg/bin/gcc-4.2.4/include/c++/4.2.4/ CPPFLAGS=-I/pkg/bin/gcc-4.2.4/include/

llvm-2.5 build:

$ make tools-only


make[1]: Entering directory `/pkg/build/llvm/llvm-obj/lib/VMCore'
llvm[1]: Building Intrinsics.gen.tmp from Intrinsics.td
/pkg/build/llvm/llvm-obj/Release/bin/tblgen: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /pkg/build/llvm/llvm-obj/Release/bin/tblgen)
make[1]: *** [/pkg/build/llvm/llvm-obj/lib/VMCore/Release/Intrinsics.gen.tmp] Error 1
make[1]: Leaving directory `/pkg/build/llvm/llvm-obj/lib/VMCore'
make: *** [all] Error 1

*** llvm-2.5 configured to use default gcc (4.1.2):

$ ../llvm-2.5/configure --prefix=/pkg/bin/llvm/

llvm-2.5 build:

$ make tools-only

error (something like):

X86ISelDAGToDAG.cpp internal compiler error: Segmentation fault

On Fri, May 1, 2009 at 6:20 PM, Scott Ricketts <sricketts at maxentric.com<mailto:sricketts at maxentric.com>> wrote:
Ah, nevermind... just needed to make clean to clear out some of the junk I compiled with gcc-4.1.2. The build completed without error.

On Fri, May 1, 2009 at 2:14 PM, Scott Ricketts <sricketts at maxentric.com<mailto:sricketts at maxentric.com>> wrote:
I am attempting to install llvm on CentOS 5.3, which uses gcc-4.1.2 as its system compiler. Since this compiler has reported to behave poorly with llvm, I built gcc-4.2.4 in an insulated directory for use with my llvm installation.

However, I am not sure I am configuring properly. The gcc-4.2.4 installation is in /pkg/bin/gcc-4.2.4. Here is my config line:

../llvm-2.5/configure --prefix=/pkg/bin/llvm/ CC=/pkg/bin/gcc-4.2.4/bin/gcc CXX=/pkg/bin/gcc-4.2.4/bin/g++ CXXCPP=/pkg/bin/gcc-4.2.4/bin/cpp LDFLAGS=-L /pkg/bin/gcc-4.2.4/lib64/  CXXFLAGS=-I/pkg/bin/gcc-4.2.4/include/c++/4.2.4/ CPPFLAGS=-I/pkg/bin/gcc-4.2.4/include/

I am trying to specify all the appropriate environment variables for using the non-default gcc. However, it is likely that I have made an error or are ommitting some important variable(s).

Then I do "gmake tools-only" (because I have yet to build the llvm-gcc front end). Here is the error:

gmake[1]: Entering directory `/pkg/build/llvm/llvm-obj/lib/VMCore'
llvm[1]: Building Intrinsics.gen.tmp from Intrinsics.td
/pkg/build/llvm/llvm-obj/Release/bin/tblgen: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.9' not found (required by /pkg/build/llvm/llvm-obj/Release/bin/tblgen)
gmake[1]: *** [/pkg/build/llvm/llvm-obj/lib/VMCore/Release/Intrinsics.gen.tmp] Error 1
gmake[1]: Leaving directory `/pkg/build/llvm/llvm-obj/lib/VMCore'
gmake: *** [all] Error 1

So it is looking in /usr/lib64/ for libstdc++.so.6, when in fact I want it to look in /pkg//bin/gcc-4.2.4/lib64/ (which I thought I had specified with the configuration).

Any help would be appreciated.


CONFIDENTIAL NOTICE: The contents of this message, including any attachments, are confidential and are intended solely for the use of the person or entity to whom the message was addressed. If you are not the intended recipient of this message, please be advised that any dissemination, distribution, or use of the contents of this message is strictly prohibited. If you received this message in error, please notify the sender. Please also permanently delete all copies of the original message and any attached documentation. Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090505/8335cbf3/attachment.html>

More information about the llvm-dev mailing list