[LLVMdev] MINGW Compiler error.

Mark Kromis greybird at mac.com
Wed Oct 15 01:38:19 PDT 2008


On Oct 14, 2008, at 11:21 PM, Kenneth Boyd wrote:

> Mark Kromis wrote:
>> Resend
>>
>>
>> On Oct 14, 2008, at 5:40 AM, Mark Kromis wrote:
>>
>>
>>> Greetings,
>>>
>>> I have a compiler error that I have not been able to get through. I
>>> usually depend upon pre-built binaries but there was none available
>>> for the pre-release. I also try scanning the web site and mail list
>>> but was unable to find an answer. I was getting this or similar
>>> error with 2.3. I am just trying to build with the core library. I
>>> tried this in a xp and vista VM with the same results, I have
>>> Leopard, and was hoping to use this for similar build environment. I
>>> use eclipse/CDT for development on windows.
>>>
>>> Built with "C:/MinGW/bin/sh.exe"-2.04$ ./configure --prefix=/usr --
>>> enable-optimized --disa
>>> ble-shared --disable-multilib --disable-asserts
>>>
> Ok...I would have expected that to suppress the following error:

I must have been typed that, I misspelled assertions. --disable- 
assertions does get around that error, but I get a different one. I  
was hoping that fixing one error would fix the other. Since there were  
no other comments on the mail list about that particular issue, I was  
hoping it was something easy to fix on the compiler, since it compiles  
fine on Leopard.

When assertions are disabled I get this error:
llvm[1]: Compiling IntrinsicInst.cpp for Release-Asserts build
In file included from IntrinsicInst.cpp:32:
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h: In
  instantiation of  
'__gnu_cxx::_SGIAssignableConcept<llvm::MachineMove>':
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/stl_vector.h: 
179:   insta
ntiated from 'std::vector<llvm::MachineMove,  
std::allocator<llvm::MachineMove> >
'
c:/Users/Greybird/Desktop/llvm/llvm-2.4/include/llvm/CodeGen/ 
MachineModuleInfo.h
:1007:   instantiated from here
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:216
: error: '__gnu_cxx::_SGIAssignableConcept<_Tp>::__a' has incomplete  
type
c:/Users/Greybird/Desktop/llvm/llvm-2.4/include/llvm/CodeGen/ 
MachineModuleInfo.h
:53: error: forward declaration of 'struct llvm::MachineMove'
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h: In
  member function 'void  
__gnu_cxx::_SGIAssignableConcept<_Tp>::__constraints() [w
ith _Tp = llvm::MachineMove]':
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/stl_vector.h: 
179:   insta
ntiated from 'std::vector<llvm::MachineMove,  
std::allocator<llvm::MachineMove> >
'
c:/Users/Greybird/Desktop/llvm/llvm-2.4/include/llvm/CodeGen/ 
MachineModuleInfo.h
:1007:   instantiated from here
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:208
: error: using invalid field  
'__gnu_cxx::_SGIAssignableConcept<_Tp>::__a'
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:208
: error: '__b' has incomplete type
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:209
: error: using invalid field  
'__gnu_cxx::_SGIAssignableConcept<_Tp>::__a'
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:209
: error: using invalid field  
'__gnu_cxx::_SGIAssignableConcept<_Tp>::__a'
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/stl_vector.h: 
179:   insta
ntiated from 'std::vector<llvm::MachineMove,  
std::allocator<llvm::MachineMove> >
'
c:/Users/Greybird/Desktop/llvm/llvm-2.4/include/llvm/CodeGen/ 
MachineModuleInfo.h
:1007:   instantiated from here
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:210
: error: using invalid field  
'__gnu_cxx::_SGIAssignableConcept<_Tp>::__a'
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h: In
  member function 'void  
__gnu_cxx::_SGIAssignableConcept<_Tp>::__const_constraint
s(const _Tp&) [with _Tp = llvm::MachineMove]':
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:210
:   instantiated from 'void  
__gnu_cxx::_SGIAssignableConcept<_Tp>::__constraints
() [with _Tp = llvm::MachineMove]'
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/stl_vector.h: 
179:   insta
ntiated from 'std::vector<llvm::MachineMove,  
std::allocator<llvm::MachineMove> >
'
c:/Users/Greybird/Desktop/llvm/llvm-2.4/include/llvm/CodeGen/ 
MachineModuleInfo.h
:1007:   instantiated from here
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:213
: error: '__c' has incomplete type
c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/ 
boost_concept_check.h:214
: error: using invalid field  
'__gnu_cxx::_SGIAssignableConcept<_Tp>::__a'
make[1]: *** [/c/Users/Greybird/Desktop/llvm/llvm-2.4/lib/VMCore/ 
Release-Asserts
/IntrinsicInst.o] Error 1
make[1]: Leaving directory `/c/Users/Greybird/Desktop/llvm/llvm-2.4/ 
lib/VMCore'
make: *** [all] Error 1

>
>>> output:
>>> llvm[1]: Compiling BasicBlock.cpp for Release build
>>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/
>>> boost_concept_check.h: In
>>> member function 'bool __gnu_cxx::_EqualOpConcept<_First,
>>> _Second>::__constraint
>>> s_() [with _First = llvm::BasicBlock, _Second = llvm::BasicBlock*]':
>>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/
>>> boost_concept_check.h:296
>>> :   instantiated from 'void __gnu_cxx::_EqualOpConcept<_First,
>>> _Second>::__const
>>> raints() [with _First = llvm::BasicBlock, _Second =
>>> llvm::BasicBlock*]'
>>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/
>>> boost_concept_check.h:62:
>>>  instantiated from 'void __gnu_cxx::__function_requires() [with
>>> _Concept = __g
>>> nu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::BasicBlock*>]'
>>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/stl_algo.h:
>>> 3810:   instan
>>> tiated from '_IIter std::find(_IIter, _IIter, const _Tp&) [with
>>> _IIter = llvm::P
>>> redIterator<llvm::BasicBlock, llvm::value_use_iterator<llvm::User>
>>>
>>>> , _Tp = llvm
>>>>
>>> ::BasicBlock*]'
>>> BasicBlock.cpp:180:   instantiated from here
>>> c:\mingw\bin\../lib/gcc/mingw32/4.3.0/include/c++/bits/
>>> boost_concept_check.h:296
>>> : error: no match for 'operator==' in
>>> '((__gnu_cxx::_EqualOpConcept<llvm::BasicB
>>> lock, llvm::BasicBlock*>*)this)-
>>>
>>>> __gnu_cxx::_EqualOpConcept<llvm::BasicBlock, ll
>>>>
>>> vm::BasicBlock*>::__a ==
>>> ((__gnu_cxx::_EqualOpConcept<llvm::BasicBlock, llvm::Ba
>>> sicBlock*>*)this)->__gnu_cxx::_EqualOpConcept<llvm::BasicBlock,
>>> llvm::BasicBlock
>>> *>::__b'
>>> c:/Users/Greybird/Desktop/llvm/llvm-2.4/include/llvm/ADT/APInt.h:
>>>
> BasicBlock is failing the EqualityComparable concept check.  This  
> should
> be breaking --enable-asserts and --enable-expensive-checks, not
> --enable-optimized (concept checks should be disabled in release mode,
> which is controlled by NDEBUG).

I just tried with plain  "./configure  --enable-optimized" and was  
getting the same. But if I did " ./configure  --enable-optimized -- 
disable-assertions" I get the other error.

>
>>> 1379: note: can
>>> didates are: bool llvm::operator==(uint64_t, const llvm::APInt&)
>>> make[1]: *** [/c/Users/Greybird/Desktop/llvm/llvm-2.4/lib/VMCore/
>>> Release/BasicBl
>>> ock.o] Error 1
>>> make[1]: Leaving directory `/c/Users/Greybird/Desktop/llvm/llvm-2.4/
>>> lib/VMCore'
>>> make: *** [all] Error 1
>>>
> GCC 4.3.0 is not finding the equality operator suitable for comparing
> these; the implied STL invocation would be buggy.

So would that be a buggy STL, I'm assuming on the compiler? If so is  
there a MingW package I need to update or recompile? I downloaded  
4.3.0 from the sourceforge page for mingw.

>
>
> I don't think I'll be able to take a close look at this tonight (I  
> have
> MingW32 3.4.5 and MingW32 4.2.1 ready, not MingW32 4.3.0).
>
> Kenneth
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev

Thanks again in advance.

Regards
Mark Kromis
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20081015/c01aee52/attachment.html>


More information about the llvm-dev mailing list