[LLVMdev] llvm build error with gcc-4.3.2 on OpenSolaris

Vinson Lee vlee at vmware.com
Thu Aug 12 12:24:47 PDT 2010


I am unable to build llvm-2.7 or llvm-2.8 svn with the gcc-4.3.2 that comes with OpenSolaris.

$ uname -a
SunOS opensolaris 5.11 snv_111b i86pc i386 i86pc Solaris


$ gcc-4.3.2 --version
gcc-4.3.2 (GCC) 4.3.2
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


llvm-2.7

$ make
...
llvm[1]: Compiling BasicBlock.cpp for Release build
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h: In member function ‘bool __gnu_cxx::_EqualOpConcept<_First, _Second>::__constraints_() [with _First = llvm::BasicBlock, _Second = llvm::BasicBlock*]’:
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:296:   instantiated from ‘void __gnu_cxx::_EqualOpConcept<_First, _Second>::__constraints() [with _First = llvm::BasicBlock, _Second = llvm::BasicBlock*]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62:   instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/stl_algo.h:3810:   instantiated from ‘_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = llvm::PredIterator<llvm::BasicBlock, llvm::value_use_iterator<llvm::User> >, _Tp = llvm::BasicBlock*]’
BasicBlock.cpp:181:   instantiated from here
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:296: error: no match for ‘operator==’ in ‘((__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>*)this)->__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>::__a == ((__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>*)this)->__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>::__b’
llvm-2.7/include/llvm/ADT/APInt.h:1448: note: candidates are: bool llvm::operator==(uint64_t, const llvm::APInt&)
llvm-2.7/include/llvm/ADT/StringRef.h:400: note:                 bool llvm::operator==(llvm::StringRef, llvm::StringRef)
make[1]: *** [llvm-2.7/lib/VMCore/Release/BasicBlock.o] Error 1
make[1]: Leaving directory `llvm-2.7/lib/VMCore'


llvm-2.8 svn

$ make
...
llvm[1]: Compiling BasicBlock.cpp for Debug+Asserts build
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h: In member function ‘bool __gnu_cxx::_EqualOpConcept<_First, _Second>::__constraints_() [with _First = llvm::BasicBlock, _Second = llvm::BasicBlock*]’:
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:296:   instantiated from ‘void __gnu_cxx::_EqualOpConcept<_First, _Second>::__constraints() [with _First = llvm::BasicBlock, _Second = llvm::BasicBlock*]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:62:   instantiated from ‘void __gnu_cxx::__function_requires() [with _Concept = __gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>]’
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/stl_algo.h:3810:   instantiated from ‘_IIter std::find(_IIter, _IIter, const _Tp&) [with _IIter = llvm::PredIterator<llvm::BasicBlock, llvm::value_use_iterator<llvm::User> >, _Tp = llvm::BasicBlock*]’
BasicBlock.cpp:192:   instantiated from here
/usr/lib/gcc/i386-pc-solaris2.11/4.3.2/../../../../include/c++/4.3.2/bits/boost_concept_check.h:296: error: no match for ‘operator==’ in ‘((__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>*)this)->__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>::__a == ((__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>*)this)->__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>::__b’
llvm/include/llvm/ADT/APInt.h:1512: note: candidates are: bool llvm::operator==(uint64_t, const llvm::APInt&)
llvm-2.8-svn/llvm/include/llvm/ADT/StringRef.h:404: note:                 bool llvm::operator==(llvm::StringRef, llvm::StringRef)
make[1]: *** [llvm/lib/VMCore/Debug+Asserts/BasicBlock.o] Error 1
make[1]: Leaving directory `llvm-2.8-svn/llvm/lib/VMCore'




More information about the llvm-dev mailing list