LLVM-gcc for Ada

Thanks for the suggestion, Andre. I downloaded GNAT GPL 2007, and followed the directions on your web page. Now I get a lot of C++ errors. In fact, the output I captured to a log file is over six megabytes just from the start of the problem command to the termination of the make. I'm obviously not going to include it all here, but the command and the first few errors are copied below.

Any idea what might be wrong now?

Best regards,
Eric

/usr/bin/gcc -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissin\
g-prototypes -Wold-style-definition -Wmissing-format-attribute -fno-common -DHAVE_CO\
NFIG_H -o cc1-dummy c-lang.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o c-de\
cl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \
c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o c-objc-common.o c-dump.o\
c-pch.o c-parser.o c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o dummy-checks\
um.o \
          llvm-main.o tree-browser.o libbackend.a ../libcpp/libcpp.a /home/eric/llvm/l\
lvm-objects/Release/lib/libLLVMBitReader.a /home/eric/llvm/llvm-objects/Release/lib/li\
bLLVMipo.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMBitWriter.a /home/eric/llvm\
/llvm-objects/Release/lib/LLVMX86AsmPrinter.o /home/eric/llvm/llvm-objects/Release/lib\
/LLVMX86CodeGen.o /home/eric/llvm/llvm-objects/Release/lib/libLLVMSelectionDAG.a /home\
/eric/llvm/llvm-objects/Release/lib/libLLVMAsmPrinter.a /home/eric/llvm/llvm-objects/R\
elease/lib/libLLVMCodeGen.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMScalarOpts\
.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMTransformUtils.a /home/eric/llvm/ll\
vm-objects/Release/lib/libLLVMipa.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMAn\
alysis.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMTarget.a /home/eric/llvm/llvm\
-objects/Release/lib/libLLVMCore.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMSup\
port.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMSystem.a ../libcpp/libcpp.a .\
./libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/home/eric/llvm/llvm-objects/\
Release/lib -lpthread -ldl -lm -lelf
llvm-main.o: In function `__static_initialization_and_destruction_0':
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream:77: undefi\
ned reference to `std::ios_base::Init::Init()'
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream:77: undefi\
ned reference to `std::ios_base::Init::~Init()'
llvm-main.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
libbackend.a(llvm-backend.o): In function `llvm_asm_file_start':
/home/eric/llvm/llvm-gcc-4.2-objects/gcc/../../llvm-gcc-4.2/gcc/llvm-backend.cpp:566: \
undefined reference to `operator new(unsigned int)'
libbackend.a(llvm-backend.o): In function `basic_ios':
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_ios.h:45\
6: undefined reference to `std::ios_base::ios_base()'
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_ios.h:45\
6: undefined reference to `vtable for std::basic_ios<char, std::char_traits<char> >'
libbackend.a(llvm-backend.o): In function `basic_ostream':
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ostream:87: undefin\
ed reference to `std::basic_ios<char, std::char_traits<char> >::init(std::basic_stream\
buf<char, std::char_traits<char> >*)'

Eric Smith wrote:

Thanks for the suggestion, Andre. I downloaded GNAT GPL 2007, and followed the directions on your web page. Now I get a lot of C++ errors. In fact, the output I captured to a log file is over six megabytes just from the start of the problem command to the termination of the make. I'm obviously not going to include it all here, but the command and the first few errors are copied below.

Any idea what might be wrong now?

Best regards,
Eric

/usr/bin/gcc -g -O2 -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissin\
g-prototypes -Wold-style-definition -Wmissing-format-attribute -fno-common -DHAVE_CO\
NFIG_H -o cc1-dummy c-lang.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o c-de\
cl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o \
c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o c-objc-common.o c-dump.o\
c-pch.o c-parser.o c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o dummy-checks\
um.o \
          llvm-main.o tree-browser.o libbackend.a ../libcpp/libcpp.a /home/eric/llvm/l\
lvm-objects/Release/lib/libLLVMBitReader.a /home/eric/llvm/llvm-objects/Release/lib/li\
bLLVMipo.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMBitWriter.a /home/eric/llvm\
/llvm-objects/Release/lib/LLVMX86AsmPrinter.o /home/eric/llvm/llvm-objects/Release/lib\
/LLVMX86CodeGen.o /home/eric/llvm/llvm-objects/Release/lib/libLLVMSelectionDAG.a /home\
/eric/llvm/llvm-objects/Release/lib/libLLVMAsmPrinter.a /home/eric/llvm/llvm-objects/R\
elease/lib/libLLVMCodeGen.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMScalarOpts\
.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMTransformUtils.a /home/eric/llvm/ll\
vm-objects/Release/lib/libLLVMipa.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMAn\
alysis.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMTarget.a /home/eric/llvm/llvm\
-objects/Release/lib/libLLVMCore.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMSup\
port.a /home/eric/llvm/llvm-objects/Release/lib/libLLVMSystem.a ../libcpp/libcpp.a .\
./libiberty/libiberty.a ../libdecnumber/libdecnumber.a -L/home/eric/llvm/llvm-objects/\
Release/lib -lpthread -ldl -lm -lelf
llvm-main.o: In function `__static_initialization_and_destruction_0':
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream:77: undefi\
ned reference to `std::ios_base::Init::Init()'
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream:77: undefi\
ned reference to `std::ios_base::Init::~Init()'
llvm-main.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
libbackend.a(llvm-backend.o): In function `llvm_asm_file_start':
/home/eric/llvm/llvm-gcc-4.2-objects/gcc/../../llvm-gcc-4.2/gcc/llvm-backend.cpp:566: \
undefined reference to `operator new(unsigned int)'
libbackend.a(llvm-backend.o): In function `basic_ios':
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_ios.h:45\
6: undefined reference to `std::ios_base::ios_base()'
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/bits/basic_ios.h:45\
6: undefined reference to `vtable for std::basic_ios<char, std::char_traits<char> >'
libbackend.a(llvm-backend.o): In function `basic_ostream':
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/ostream:87: undefin\
ed reference to `std::basic_ios<char, std::char_traits<char> >::init(std::basic_stream\
buf<char, std::char_traits<char> >*)'

_______________________________________________
LLVM Developers mailing list
LLVMdev@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

In which step did this happen? make?

Hi Eric,

llvm-main.o: In function `__static_initialization_and_destruction_0':
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream:77: undefi\
ned reference to `std::ios_base::Init::Init()'
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream:77: undefi\
ned reference to `std::ios_base::Init::~Init()'
llvm-main.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'

there's something very wrong with your C++ compiler. Rather than
exporting CC and CXX like in Andre's instructions, I suggest you
just export the PATH like in Andre's instructions before configuring/
make. Also, are you aware of this page:
   http://llvm.org/docs/GCCFEBuildInstrs.html
?

Ciao,

Duncan.

Duncan Sands wrote:

Hi Eric,

llvm-main.o: In function `__static_initialization_and_destruction_0':
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream:77: undefi\
ned reference to `std::ios_base::Init::Init()'
/usr/lib/gcc/i386-redhat-linux/4.3.2/../../../../include/c++/4.3.2/iostream:77: undefi\
ned reference to `std::ios_base::Init::~Init()'
llvm-main.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
    
there's something very wrong with your C++ compiler. Rather than
exporting CC and CXX like in Andre's instructions, I suggest you
just export the PATH like in Andre's instructions before configuring/
make. Also, are you aware of this page:
   http://llvm.org/docs/GCCFEBuildInstrs.html
?

Ciao,

Duncan.
_______________________________________________
LLVM Developers mailing list
LLVMdev@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

Duncan,

in my case, and probably his also, the instruction "CXX=" is necessary, because g++ is broken and only g++-4.3 is working. So even if I put the correct path it would never choose g++-4.3 over g++. The only choice is to use "CXX=" to select g++-4.3 directly.