Stefan Gränitz via llvm-dev
2021-Apr-03 11:53 UTC
[llvm-dev] Orc JIT + STL = broken on Windows?
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.bcGreedy 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 > <mailto: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/ > <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 list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev-- https://flowcrypt.com/pub/stefan.graenitz at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20210403/05d34370/attachment.html>
Geoff Levner via llvm-dev
2021-Apr-06 10:19 UTC
[llvm-dev] Orc JIT + STL = broken on Windows?
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 at gmail.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20210406/4032b7b5/attachment.html>