[LLVMdev] install question

Rubin, Norman Norman.Rubin at amd.com
Fri Aug 15 12:27:06 PDT 2008

Thanks a lot, this was exactly the problem

-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
On Behalf Of Richard Osborne
Sent: Friday, August 15, 2008 1:34 PM
To: LLVM Developers Mailing List
Subject: Re: [LLVMdev] install question

Rubin, Norman wrote:
> I'm trying to install llvm on my windows development box and hit a
> problem
> I'm using cygwin 
> cygwin% gcc --version
> gcc (GCC) 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)
> I downloaded both the top of tree via svn
> I ran ./configure 
>       make
> make[1]: Entering directory `/cygdrive/c/llvm/lib/Support'
> llvm[1]: Compiling APFloat.cpp for Debug build 
> llvm[1]: Compiling APInt.cpp for Debug build 
> APInt.cpp: In member function `void
> llvm::APInt::Profile(llvm::FoldingSetNodeID&) const':
> APInt.cpp:170: error: call of overloaded `AddInteger(const uint32_t&)'
> is ambiguous
> /cygdrive/c/llvm/include/llvm/ADT/FoldingSet.h:216: note: candidates
> are: void llvm::FoldingSetNodeID::AddInteger(int)
> /cygdrive/c/llvm/include/llvm/ADT/FoldingSet.h:217: note:  void
> llvm::FoldingSetNodeID::AddInteger(unsigned int)
> /cygdrive/c/llvm/include/llvm/ADT/FoldingSet.h:218: note:  void
> llvm::FoldingSetNodeID::AddInteger(int64_t)
> /cygdrive/c/llvm/include/llvm/ADT/FoldingSet.h:219: note:  void
> llvm::FoldingSetNodeID::AddInteger(uint64_t)
> make[1]: *** [/cygdrive/c/llvm/lib/Support/Debug/APInt.o] Error 1
> make[1]: Leaving directory `/cygdrive/c/llvm/lib/Support'
> make: *** [all] Error 1
> cygwin%
> I also tried the 2.3 release and got the same error. 
> I must have done something wrong - some care to enlighten me?  
> Hopefully this has not been asked many times already.  If it is well
> known, where should I have looked for the answer?
> Norm
I encountered this issue as well on Cygwin. The problem is Cygwin 
defines int32_t and uint32_t
as longs instead of ints. A quick hack to get LLVM building is to edit 
/usr/include/stdint.h and change
typedef long int32_t to typedef int int32_t, and the same for uint32_t. 
The proper fix would be to
update the source to eliminate the ambiguities which occour when int32_t

is defined like this. I did
intend to do this and send in a patch but haven't got around it yet.


LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu

More information about the llvm-dev mailing list