On Jan 4, 2007, at 8:06 PM, Jeff Cohen wrote:> It doesn't build. llvm-main.cpp doesn't get compiled for some reason: > > g++40 -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict- > prototypes -Wmissing-prototypes -pedantic -Wno-long-long -Wno- > variadic-macros -Wold-style-definition -fno-common -DHAVE_CONFIG_H > -DENABLE_LLVM -D__STDC_LIMIT_MACROS -I. -I. -I../../gcc -I../../ > gcc/. -I../../gcc/../include -I./../intl -I../../gcc/../libcpp/ > include -I/usr/home/jeffc/llvm/include -I/home/jeffc/llvm/obj/ > include \ > ../../gcc/config/ -o llvm-main.o > g++40: ../../gcc/config/: linker input file unused because linking > not done > > Note that llvm-main.cpp does not appear in the command line.I think, I know what is going on here. Do you see any 'make' warning in the your build log related to overriding .cpp rule ? If you see such warning then it is happening because your target you do not yet have target specific C++ file. This means $out_cxx_object_file string for build rule at #2475 (in gcc/ Makefile.in) is just ".cpp.o" and it conflicts with default .cpp.o build rule in same makefile at line #889. Two alternatives are : 1) FInd a way to avoid executing $(out_cxx_object_file) rule for your target in such situation. OR 2) Set out_cxx_file for your target in config.gcc. You may be able to use llvm-i386.cpp or llvm-rs6000.cpp directly if your target is either x86 or powerpc. - Devang
No, I do not see any such warning. This explanation appears unlikely as it had no problem building every other cpp file. There is a third alternative: have someone fix whatever broke in the last week or two. And, no, I cannot use llvm-i386.cpp or llvm-rs6000.cpp as I am running x86_64. Nor am I going to debug the gcc build system. Devang Patel wrote:> > On Jan 4, 2007, at 8:06 PM, Jeff Cohen wrote: > >> It doesn't build. llvm-main.cpp doesn't get compiled for some reason: >> >> g++40 -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings >> -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long >> -Wno-variadic-macros -Wold-style-definition -fno-common >> -DHAVE_CONFIG_H -DENABLE_LLVM -D__STDC_LIMIT_MACROS -I. -I. >> -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl >> -I../../gcc/../libcpp/include -I/usr/home/jeffc/llvm/include >> -I/home/jeffc/llvm/obj/include \ >> ../../gcc/config/ -o llvm-main.o >> g++40: ../../gcc/config/: linker input file unused because linking >> not done >> >> Note that llvm-main.cpp does not appear in the command line. > > I think, I know what is going on here. Do you see any 'make' warning > in the your build log related to overriding .cpp rule ? > > If you see such warning then it is happening because your target you > do not yet have target specific C++ file. This means > $out_cxx_object_file string for build rule at #2475 (in > gcc/Makefile.in) is just ".cpp.o" and it conflicts with default .cpp.o > build rule in same makefile at line #889. > > Two alternatives are : > > 1) FInd a way to avoid executing $(out_cxx_object_file) rule for your > target in such situation. > > OR > > 2) Set out_cxx_file for your target in config.gcc. You may be able to > use llvm-i386.cpp or llvm-rs6000.cpp directly if your target is > either x86 or powerpc. > > - > Devang > > >
Jeff, The config.cpp hack worked for me as a temporary solution. Devang is working on the permanent solution. Try applying this patch to your gcc/config.gcc file, it might just re-enable your build. Reid. On Fri, 2007-01-05 at 11:20 -0800, Jeff Cohen wrote:> No, I do not see any such warning. This explanation appears unlikely as > it had no problem building every other cpp file. > > There is a third alternative: have someone fix whatever broke in the > last week or two. > > And, no, I cannot use llvm-i386.cpp or llvm-rs6000.cpp as I am running > x86_64. Nor am I going to debug the gcc build system. > > Devang Patel wrote: > > > > On Jan 4, 2007, at 8:06 PM, Jeff Cohen wrote: > > > >> It doesn't build. llvm-main.cpp doesn't get compiled for some reason: > >> > >> g++40 -c -g -O2 -DIN_GCC -W -Wall -Wwrite-strings > >> -Wstrict-prototypes -Wmissing-prototypes -pedantic -Wno-long-long > >> -Wno-variadic-macros -Wold-style-definition -fno-common > >> -DHAVE_CONFIG_H -DENABLE_LLVM -D__STDC_LIMIT_MACROS -I. -I. > >> -I../../gcc -I../../gcc/. -I../../gcc/../include -I./../intl > >> -I../../gcc/../libcpp/include -I/usr/home/jeffc/llvm/include > >> -I/home/jeffc/llvm/obj/include \ > >> ../../gcc/config/ -o llvm-main.o > >> g++40: ../../gcc/config/: linker input file unused because linking > >> not done > >> > >> Note that llvm-main.cpp does not appear in the command line. > > > > I think, I know what is going on here. Do you see any 'make' warning > > in the your build log related to overriding .cpp rule ? > > > > If you see such warning then it is happening because your target you > > do not yet have target specific C++ file. This means > > $out_cxx_object_file string for build rule at #2475 (in > > gcc/Makefile.in) is just ".cpp.o" and it conflicts with default .cpp.o > > build rule in same makefile at line #889. > > > > Two alternatives are : > > > > 1) FInd a way to avoid executing $(out_cxx_object_file) rule for your > > target in such situation. > > > > OR > > > > 2) Set out_cxx_file for your target in config.gcc. You may be able to > > use llvm-i386.cpp or llvm-rs6000.cpp directly if your target is > > either x86 or powerpc. > > > > - > > Devang > > > > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-------------- next part -------------- A non-text attachment was scrubbed... Name: x86hack.patch Type: text/x-patch Size: 1116 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070105/e9839518/attachment.bin>