[llvm-dev] clang interpreter failed to materialize symbols
Stefan Gränitz via llvm-dev
llvm-dev at lists.llvm.org
Sat Jan 18 08:41:47 PST 2020
> the convenience of entering and running their code on their iOS device.
Off-topic FYI: Not sure if this may have changed in the meantime, but in
the past iOS didn't allow 3rd-party Apps to run JIT-compiled code.
https://stackoverflow.com/questions/5054732
On 17/01/2020 05:24, Igor Gomon wrote:
> Hi Lang,
>
> I have tried the same program but using stdio.h and printf(). It works
> fine on Windows.
> But my use-case requires C++ support. I currently have a C++ text
> editor app in the App Store and I am working on adding on-device
> compilation and running capabilities (ideally). The reason for C++
> support is because I believe there is a large community of people who
> are studying C++ in school and they would appreciate the convenience
> of entering and running their code on their iOS device.
>
> --
> Best Regards,
> Igor
>
> ------------------------------------------------------------------------
> *From:* Lang Hames <lhames at gmail.com>
> *Sent:* Thursday, January 16, 2020 10:01 PM
> *To:* Igor Gomon <giv_ua at hotmail.com>
> *Cc:* Stefan Gränitz <stefan.graenitz at gmail.com>; David Blaikie
> <dblaikie at gmail.com>; llvm-dev at lists.llvm.org <llvm-dev at lists.llvm.org>
> *Subject:* Re: [llvm-dev] clang interpreter failed to materialize symbols
>
> Hi Igor,
>
> Regarding that stack trace: C++ code and interactions with the C++
> standard library are not as well supported as C/libC, especially on
> Windows.
>
> What happens if you write your hello-world program in C using printf?
>
> Does your use-case require C++?
>
> — Lang.
>
> Sent from my iPad
>
>> On Jan 15, 2020, at 9:51 PM, Igor Gomon <giv_ua at hotmail.com> wrote:
>>
>>
>> Hi Stefan,
>>
>> I just tried the -jit-kind=orc-lazy with lli executable and it solves
>> the problem on Ubuntu 18.04 (still does not work on Windows 10). But
>> this solution is good enough for me now. Thanks again for your help!
>>
>> --
>> Best Regards,
>> Igor
>> ------------------------------------------------------------------------
>> *From:* Igor Gomon <giv_ua at hotmail.com>
>> *Sent:* Tuesday, January 14, 2020 7:38 PM
>> *To:* Stefan Gränitz <stefan.graenitz at gmail.com>
>> *Cc:* David Blaikie <dblaikie at gmail.com>; Lang Hames
>> <lhames at gmail.com>; llvm-dev at lists.llvm.org <llvm-dev at lists.llvm.org>
>> *Subject:* RE: [llvm-dev] clang interpreter failed to materialize
>> symbols
>>
>>
>> Hi Stefan,
>>
>>
>>
>> I just tried it. Here is what I got:
>>
>> PS
>> C:\Users\giv_u\source\repos\ConsoleApplication1\ConsoleApplication1>
>> lli -jit-kind=orc-lazy .\ConsoleApplication1.bc
>>
>> Assertion failed: isa<X>(Val) && "cast<Ty>() argument of incompatible
>> type!", file C:\dev\llvm-project\llvm\include\llvm/Support/Casting.h,
>> line 264
>>
>>
>>
>> --
>>
>> Thanks,
>>
>> Igor
>>
>>
>>
>> Sent from Mail <https://go.microsoft.com/fwlink/?LinkId=550986> for
>> Windows 10
>>
>>
>>
>> *From: *Stefan Gränitz <mailto:stefan.graenitz at gmail.com>
>> *Sent: *Tuesday, January 14, 2020 11:46 AM
>> *To: *Igor Gomon <mailto:giv_ua at hotmail.com>
>> *Cc: *David Blaikie <mailto:dblaikie at gmail.com>; Lang Hames
>> <mailto:lhames at gmail.com>; llvm-dev at lists.llvm.org
>> <mailto:llvm-dev at lists.llvm.org>
>> *Subject: *Re: [llvm-dev] clang interpreter failed to materialize symbols
>>
>>
>>
>> Hi Igor, not sure if that will work, but have you tried lli
>> -jit-kind=orc-lazy ? The default is still MCJIT:
>> https://github.com/llvm/llvm-project/blob/master/llvm/tools/lli/lli.cpp#L88
>>
>> On 13/01/2020 19:07, David Blaikie via llvm-dev wrote:
>>
>> (+Lang for JIT/interpreter questions)
>>
>>
>>
>> On Sun, Jan 5, 2020 at 5:00 PM Igor Gomon via llvm-dev
>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>
>> Hello,
>>
>>
>>
>> I am new to LLVM and what I am trying to do is to get a very
>> simple “hello-world” C++ program to compile to LLVM IR and
>> then to run it using lli tool.
>>
>> So here is the program code (hello.cpp):
>>
>> #include <iostream>
>>
>> int main (int argc, char *argv[])
>>
>> {
>>
>> std::cout << "Hello World!\n";
>>
>> return 0;
>>
>> }
>>
>> Below are the steps I do to achieve that goal:
>>
>> 1. clang++.exe hello.cpp -S -emit-llvm -o hello.ll (produces
>> hello.ll about 307KB in size)
>> 2. llvm-link.exe hello.ll -o hello.bc (produces the bit-code
>> file about 79KB in size).
>> 3. lli.exe hello.bc (terminates with a segmentation fault).
>> The dump is below.
>>
>>
>>
>> I understand that some symbols are not loaded (C++ standard
>> library symbols). I am not sure how I can specify the
>> location of those symbols to lli tool (I tried –extra-object
>> option but no effect).
>>
>> Could someone please let me know what am I missing or doing
>> wrong?
>>
>> Any help is greatly appreciated!!!
>>
>>
>>
>> --
>>
>> Thanks,
>>
>> Igor
>>
>>
>>
>> Stack dump:
>>
>> 0. Program arguments:
>> C:\dev\llvm-project\build\Debug\bin\lli.exe .\hello.bc
>>
>> 0x0000000000000000 (0x0000000000000010 0xCCCCCCCCCCCCCCCC
>> 0x000000575B18D640 0x00007FF68DEF6186) <unknown module>
>>
>> 0x000001AF8A3004F6 (0xCCCCCCCCCCCCCCCC 0x000000575B18D640
>> 0x00007FF68DEF6186 0x000001AF8A4B0000) <unknown module>
>>
>> 0x0000000000000010 (0x000000575B18D640 0x00007FF68DEF6186
>> 0x000001AF8A4B0000 0xFFFFFFFFFFFFFFFE) <unknown module>
>>
>> 0xCCCCCCCCCCCCCCCC (0x00007FF68DEF6186 0x000001AF8A4B0000
>> 0xFFFFFFFFFFFFFFFE 0x000000575B18D6A0) <unknown module>
>>
>> 0x000000575B18D640 (0x000001AF8A4B0000 0xFFFFFFFFFFFFFFFE
>> 0x000000575B18D6A0 0x000001AF8A300032) <unknown module>
>>
>> 0x00007FF68DEF6186 (0x000001AF8A85B410 0x000000575B18D678
>> 0xCCCCCCCCCCCCCCCC 0x000001AF8A4B0000),
>> std::_Construct_in_place<std::_Container_proxy,std::_Container_base12
>> *>() + 0x56 bytes(s), C:\Program Files (x86)\Microsoft Visual
>> Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\xmemory,
>> line 205
>>
>> 0x00007FF68DEF45E8 (0x0000000000000000 0x000000005B18D6B1
>> 0xFFFFFFFFFFFFFFFE 0x000000575B18DB80),
>> std::_Container_base12::_Alloc_proxy<std::allocator<std::_Container_proxy>
>> >() + 0x58 bytes(s), C:\Program Files (x86)\Microsoft Visual
>> Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\xmemory,
>> line 1100
>>
>> 0x00007FF68DF36634 (0xCCCCCCCCCCCCCCCC 0xCCCCCCCCCCCCCCCC
>> 0xCCCCCCCCCCCCCCCC 0x0000000000000001),
>> std::vector<llvm::GenericValue,std::allocator<llvm::GenericValue>
>> >::vector<llvm::GenericValue,std::allocator<llvm::GenericValue>
>> >() + 0x54 bytes(s), C:\Program Files (x86)\Microsoft Visual
>> Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vector,
>> line 446
>>
>> 0x00007FF68E06B048 (0x000001AF8A6A3058 0x0000000000000001
>> 0xCCCCCCCCCCCCCCCC 0xCCCCCCCCCCCCCCCC),
>> llvm::APInt::getZExtValue() + 0x28 bytes(s),
>> C:\dev\llvm-project\llvm\include\llvm\ADT\APInt.h, line 1589
>> + 0xA byte(s)
>>
>> 0x00007FF68ED9E0F0 (0x000001AF8A563310 0x000000575B18DB88
>> 0x000001AF8A583F18 0x000000575B18DBC0),
>> llvm::MCJIT::runFunction() + 0x480 bytes(s),
>> C:\dev\llvm-project\llvm\lib\ExecutionEngine\MCJIT\MCJIT.cpp,
>> line 550 + 0x16 byte(s)
>>
>> 0x00007FF68EC09680 (0x000001AF8A563310 0x000001AF8A583F18
>> 0x00007FF6920964A0 0x000001AF8A532460),
>> llvm::ExecutionEngine::runFunctionAsMain() + 0x410 bytes(s),
>> C:\dev\llvm-project\llvm\lib\ExecutionEngine\ExecutionEngine.cpp,
>> line 470 + 0x65 byte(s)
>>
>> 0x00007FF68DEE4200 (0x0000000000000002 0x000001AF8A5515B0
>> 0x000001AF8A532460 0x00007FF6909C0A7D), main() + 0x1D10
>> bytes(s), C:\dev\llvm-project\llvm\tools\lli\lli.cpp, line
>> 614 + 0x4D byte(s)
>>
>> 0x00007FF6909C1A29 (0x00007FF690C2C000 0x00007FF690C2FE30
>> 0x0000000000000000 0x0000000000000000), invoke_main() + 0x39
>> bytes(s),
>> d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl,
>> line 79
>>
>> 0x00007FF6909C190E (0x0000000000000000 0x0000000000000000
>> 0x0000000000000000 0x0000000000000000),
>> __scrt_common_main_seh() + 0x12E bytes(s),
>> d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl,
>> line 288 + 0x5 byte(s)
>>
>> 0x00007FF6909C17CE (0x0000000000000000 0x0000000000000000
>> 0x0000000000000000 0x0000000000000000), __scrt_common_main()
>> + 0xE bytes(s),
>> d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl,
>> line 331
>>
>> 0x00007FF6909C1AB9 (0x0000000000000000 0x0000000000000000
>> 0x0000000000000000 0x0000000000000000), mainCRTStartup() +
>> 0x9 bytes(s),
>> d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp,
>> line 17
>>
>> 0x00007FFC76417BD4 (0x0000000000000000 0x0000000000000000
>> 0x0000000000000000 0x0000000000000000), BaseThreadInitThunk()
>> + 0x14 bytes(s)
>>
>> 0x00007FFC7746CED1 (0x0000000000000000 0x0000000000000000
>> 0x0000000000000000 0x0000000000000000), RtlUserThreadStart()
>> + 0x21 bytes(s)
>>
>>
>>
>> Sent from Mail
>> <https://go.microsoft.com/fwlink/?LinkId=550986> for Windows 10
>>
>>
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>>
>>
>> _______________________________________________
>>
>> LLVM Developers mailing list
>>
>> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
>>
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>>
>> --
>> https://flowcrypt.com/pub/stefan.graenitz@gmail.com
>>
>>
>>
--
https://flowcrypt.com/pub/stefan.graenitz@gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20200118/4aa773bc/attachment.html>
More information about the llvm-dev
mailing list