Scott Ricketts
2009-May-04 17:39 UTC
[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? Details: *** 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 error: 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>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>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. >> >> Thanks, >> Scott >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090504/f04486a6/attachment.html>
Christian Sayer
2009-May-05 07:56 UTC
[LLVMdev] Using non-system compiler to build llvm and llvm-gcc front end
Scott, 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? Details: *** 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 error: 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. Thanks, Scott ________________________________ 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>
Duncan Sands
2009-May-05 08:02 UTC
[LLVMdev] Using non-system compiler to build llvm and llvm-gcc front end
Hi,> $ ../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/how about: export PATH=/pkg/bin/:$PATH ../llvm-2.5/configure --prefix=/pkg/bin/llvm/ instead? Ciao, Duncan.
Scott Ricketts
2009-May-05 18:15 UTC
[LLVMdev] Using non-system compiler to build llvm and llvm-gcc front end
Thanks for the suggestions. It looks like Duncan's suggestion got me a step closer, but I still can't build llvm-gcc... On Tue, May 5, 2009 at 12:56 AM, Christian Sayer <Christian.Sayer at dibcom.fr> wrote:> 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++Tried that, same error. 2009/5/5 Duncan Sands <baldrick at free.fr>:> how about: > > export PATH=/pkg/bin/:$PATH > ../llvm-2.5/configure --prefix=/pkg/bin/llvm/ > > instead?I did that, and then "make tools-only" -- which resulted in a successful build of llvm-2.5. Then I went to build llvm-gcc: ../llvm-gcc4.2-2.5.source/configure --prefix=/pkg/build/llvm/llvm-gcc/install --program-prefix=llvm- --enable-llvm=/pkg/build/llvm/llvm-obj/ --enable-languages=c,c++ make LLVM_VERSION_INFO=2.5 and I get this error (which, according to http://www.mail-archive.com/llvmbugs at cs.uiuc.edu/msg02575.html might mean I am using a bad version of gcc)... /pkg/build/llvm/llvm-gcc/obj/./gcc/xgcc -B/pkg/build/llvm/llvm-gcc/obj/./gcc/ -B/pkg/build/llvm/llvm-gcc/install/x86_64-unknown-linux-gnu/bin/ -B/pkg/build/llvm/llvm-gcc/install/x86_64-unknown-linux-gnu/lib/ -isystem /pkg/build/llvm/llvm-gcc/install/x86_64-unknown-linux-gnu/include -isystem /pkg/build/llvm/llvm-gcc/install/x86_64-unknown-linux-gnu/sys-include -O2 -O2 -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -isystem ./include -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED -I. -I. -I../../llvm-gcc4.2-2.5.source/gcc -I../../llvm-gcc4.2-2.5.source/gcc/. -I../../llvm-gcc4.2-2.5.source/gcc/../include -I../../llvm-gcc4.2-2.5.source/gcc/../libcpp/include -I../../llvm-gcc4.2-2.5.source/gcc/../libdecnumber -I../libdecnumber -I/pkg/build/llvm/llvm-obj//include -I/pkg/build/llvm/llvm-2.5/include -DL_gcov -c ../../llvm-gcc4.2-2.5.source/gcc/libgcov.c -o libgcc/./_gcov.o cc1: /pkg/build/llvm/llvm-2.5/include/llvm/Transforms/Utils/InlineCost.h:44: llvm::InlineCost::InlineCost(int, int): Assertion `Cost == C && "Cost exceeds InlineCost precision"' failed. ../../llvm-gcc4.2-2.5.source/gcc/libgcov.c:644: internal compiler error: Aborted So I tried this config for llvm-gcc: $ ../llvm-gcc4.2-2.5.source/configure --prefix=/pkg/build/llvm/llvm-gcc/install --program-prefix=llvm- --enable-llvm=/pkg/build/llvm/llvm-obj/ --enable-languages=c,c++ CC=/pkg/bin/gcc-4.2.4/bin/gcc CXX=/pkg/bin/gcc-4.2.4/bin/g++ but got: configure: warning: CC=/pkg/bin/gcc-4.2.4/bin/gcc: invalid host type configure: warning: CXX=/pkg/bin/gcc-4.2.4/bin/g++: invalid host type configure: error: can only configure for one host and one target at a time How do I tell llvm-gcc config to use the right version of gcc? /pkg/bin/ is in my path thanks to the suggestion from Duncan. $ echo $PATH /pkg/bin/:/usr/lib64/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/user_homes/sricketts/bin
Reasonably Related Threads
- [LLVMdev] Using non-system compiler to build llvm and llvm-gcc front end
- [LLVMdev] Using non-system compiler to build llvm and llvm-gcc front end
- [LLVMdev] Using non-system compiler to build llvm and llvm-gcc front end
- [LLVMdev] [LLVMDev] trouble building gcc-frontend from source
- [LLVMdev] [LLVMDev] trouble building gcc-frontend from source