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>