[LLVMdev] Compiling LLVM on MinGW

Lennart Augustsson lennart at augustsson.net
Sun Mar 8 13:16:31 PDT 2009


I know, it's a pain to develop for multiple platforms.

Anyway, r66388 works better.  It compiles for quite a while, and then
dies linking Hello:

make[3]: Entering directory
`/Desktop/Workspace/llvm/llvm-top/lib/Transforms/Hello'
llvm[3]: Compiling Hello.cpp for Debug build  (PIC)
llvm[3]: Linking Debug Loadable Module LLVMHello.dll
c:/DOCUME~1/1312888/Desktop/Workspace/llvm/llvm-top/lib/Transforms/Hello/Debug/Hello.o:
In function `ZN38_GLOBAL__N_Hello.cpp_F9DFF42A_546C77106Hello2D1Ev':
c:/DOCUME~1/1312888/Desktop/Workspace/llvm/llvm-top/lib/Transforms/Hello/Hello.cpp:(.text$_ZN4llvm8PassInfoC2EPKcS2_iPFPNS_4PassEvEbb[llvm::PassInfo::PassInfo(char
const*, char const*, int, llvm::Pass* (*)(), bool, bool)]+0x82):
undefined reference to `llvm::PassInfo::registerPass()'
c:/DOCUME~1/1312888/Desktop/Workspace/llvm/llvm-top/lib/Transforms/Hello/Hello.cpp:(.text$_ZN4llvm12FunctionPassC2EPKv[llvm::FunctionPass::FunctionPass(void
const*)]+0x1d): undefined reference to `vtable for llvm::FunctionPass'
c:/DOCUME~1/1312888/Desktop/Workspace/llvm/llvm-top/lib/Transforms/Hello/Hello.cpp:(.text$_ZN4llvm4PassC2EPKv[llvm::Pass::Pass(void
const*)]+0xb): undefined reference to `vtable for llvm::Pass'
c:/DOCUME~1/1312888/Desktop/Workspace/llvm/llvm-top/lib/Transforms/Hello/Hello.cpp:(.rdata$_ZTVN38_GLOBAL__N_Hello.cpp_F9DFF42A_546C77106Hello2E[vtable
for (anonymous namespace)::Hello2]+0x10): undefined reference to
`llvm::Pass::getPassName() const'

followed by many more undefined references.  Note that even when
compiling LLVM 2.5 I had warnings when linking Hello, because of
undefined references.

  -- Lennart

On Sun, Mar 8, 2009 at 7:14 PM, Chris Lattner <clattner at apple.com> wrote:
>
> On Mar 8, 2009, at 4:21 AM, Lennart Augustsson wrote:
>
>> Like this:
>>
>> llvm[1]: Compiling Signals.cpp for Debug build
>> In file included from Signals.cpp:33:
>> Win32/Signals.inc:262: error: `sys' has not been declared
>> Win32/Signals.inc: In function `void AddSignalHandler(void (*)
>> (void*), void*)':
>> Win32/Signals.inc:266: error: `KillSigs' was not declared in this
>> scope
>> Win32/Signals.inc:266: error: `KillSigsEnd' was not declared in this
>> scope
>> Win32/Signals.inc:266: error: `RegisterHandler' was not declared in
>> this scope
>> Win32/Signals.inc:266: warning: unused variable 'KillSigs'
>> Win32/Signals.inc:266: warning: unused variable 'KillSigsEnd'
>> Win32/Signals.inc:266: warning: unused variable 'RegisterHandler'
>> make[1]: *** [/Desktop/Workspace/llvm/llvm-top/lib/System/Debug/
>> Signals.o]
>> Error 1
>> make[1]: Leaving directory `/Desktop/Workspace/llvm/llvm-top/lib/
>> System'
>>
>> The void sys::AddSignalHandler() is outside the llvm namespace, which
>> seems wrong.
>> Moving it inside removes the first errors, but still leave KillSigs,
>> KillSigsEnd, and RegisterHandler undefined.
>
> Please try r66386.
>
>> If I didn't know better I'd think someone had committed code without
>> compiling first. :)
>
> I don't have a windows box to test on, I requested windows people to
> verify that it works when I committed the change, and there are no
> windows nightly testers or build bots.  This is the first I have heard
> of the breakage.
>
> -Chris
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>




More information about the llvm-dev mailing list