[llvm-dev] Orc JIT + STL = broken on Windows?

Geoff Levner via llvm-dev llvm-dev at lists.llvm.org
Tue Apr 6 03:19:40 PDT 2021


Thanks for that, Stefan. I built the main branch of LLVM (I have been using
the 11.1 release branch) and tried again with --jit-kind=orc. That does
indeed fix the crash. But lli fails with unresolved symbols:

    Symbols not found: [ __emutls_v._Init_thread_epoch,
__emutls_get_address, _Init_thread_header, _Init_thread_footer,
??3 at YAXPEAX_K@Z, ??_7type_info@@6B@, ?_Facet_Register at std
@@YAXPEAV_Facet_base at 1@@Z ]

Geoff


On Sat, Apr 3, 2021 at 1:53 PM Stefan Gränitz <stefan.graenitz at gmail.com>
wrote:

> Hi Geoff
>
> LLVM ERROR: Associative COMDAT symbol 'GVName' is not a key for its COMDAT.
>
> This is in CodeGen TargetLoweringObjectFileCOFF so this isn't necessarily
> JIT specific. Maybe a backtrace would be helpful?
>
> lli --jit-end=orc-lazy hello.bc
>
> Greedy Orc mode recently landed in lli:
> https://reviews.llvm.org/rGe1579894d2051db8
> You might want to retry with that in order to rule out the
> lazy-JIT-infrastructure as a cause for the error.
>
> should I just give up now on porting our Orc-based application to Windows?
>
> I am not aware of anyone actively working on improved Orc Windows support
> right now.
>
> On 02/04/2021 12:40, Geoff Levner via llvm-dev wrote:
>
> Sorry, there is a typo in my previous message: read "jit-kind" where I
> typed "jit-end".
>
> On Fri, Apr 2, 2021 at 12:37 PM Geoff Levner <glevner at gmail.com> wrote:
>
>> Given this C++ code (hello.cpp):
>>
>>     #include <iostream>
>>     int main()
>>     {
>>         std::cout << "Hi, mom." << std::endl;
>>         return 0;
>>     }
>>
>> On Linux (CentOS 7), no problem:
>>
>>     > clang++ -c -emit-llvm hello.cpp
>>     > lli --jit-end=orc-lazy hello.bc
>>     Hi, mom.
>>     >
>>
>> But on Windows (7):
>>
>>     > clang++ -c -emit-llvm hello.cpp
>>     > lli --jit-end=orc-lazy hello.bc
>>     LLVM ERROR: Associative COMDAT symbol
>> '??_7_Iostream_error_category2 at std@@6B@' is not a key for its COMDAT.
>> PLEASE submit a bug report to https://bugs.llvm.org/ and include the
>> crash backtrace.
>>
>> I know Orc JIT lacks COMDAT support, but I thought that just caused
>> duplicate symbols sometimes. Am I doing something stupid here? Or should I
>> just give up now on porting our Orc-based application to Windows? (The
>> application JIT-compiles C++ modules which rely heavily on STL.)
>>
>> Geoff
>>
>>
> _______________________________________________
> LLVM Developers mailing listllvm-dev at lists.llvm.orghttps://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
> -- https://flowcrypt.com/pub/stefan.graenitz@gmail.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210406/4032b7b5/attachment.html>


More information about the llvm-dev mailing list