[LLVMdev] LLVM: Cannot instantiate JIT execution engine

349 views
Skip to first unread message

Semion Prihodko

unread,
Sep 2, 2011, 10:15:17 AM9/2/11
to llv...@cs.uiuc.edu
Hi, guys.

Have a strange problem with LLVM in my project (https://github.com/ababo/AntOS). Cannot instantiate JIT execution engine (NULL returns; message: Interpreter has not been linked in.). As you can see from the code I call InitializeNativeTarget. Also I tried to directly include the "llvm/ExecutionEngine/JIT.h" header, but with no success. I link with `llvm-config --ldflags --libs core jit native`, so there's no problem here. Can you suggest me anything? Thanks.

arrowdodger

unread,
Sep 2, 2011, 10:24:53 AM9/2/11
to Semion Prihodko, llv...@cs.uiuc.edu
On Fri, Sep 2, 2011 at 6:15 PM, Semion Prihodko <semion...@gmail.com> wrote:
Hi, guys.

Have a strange problem with LLVM in my project (https://github.com/ababo/AntOS). Cannot instantiate JIT execution engine (NULL returns; message: Interpreter has not been linked in.). As you can see from the code I call InitializeNativeTarget. Also I tried to directly include the "llvm/ExecutionEngine/JIT.h" header, but with no success. I link with `llvm-config --ldflags --libs core jit native`, so there's no problem here. Can you suggest me anything? Thanks.

_______________________________________________
LLVM Developers mailing list
LLV...@cs.uiuc.edu         http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev


Try to call ForceJITLinking::ForceJITLinking(); in your application.

Semion Prihodko

unread,
Sep 3, 2011, 10:33:34 AM9/3/11
to llv...@cs.uiuc.edu
Isn't there someone to help me with this issue? I'm very upset about this stupid problem which wasted the whole day. BTW, I can create JIT from main.cpp, but not in the required source file (runtime.cpp), so this is not about linking. Very weird.

2011/9/2 Semion Prihodko <semion...@gmail.com>
I cannot call the constructor explicitly, because ForceJITLinking is a name of structure and of it's instance at the same time. But it called implicitly when the instance above is being instantiated. 
As  I mentioned before I already tried to include this header with no success. I work in Linux, so it's really strange.


2011/9/2 arrowdodger <6yea...@gmail.com>

Jeff Fifield

unread,
Sep 3, 2011, 12:44:05 PM9/3/11
to Semion Prihodko, llv...@cs.uiuc.edu
I see two problems in your code

1) you need to #include "llvm/ExecutionEngine/JIT.h"
2) you must pass an empty string to EngineBuilder::setErrorStr. See
JIT::createJIT for the reason.

Jeff

Jeff Fifield

unread,
Sep 3, 2011, 12:49:18 PM9/3/11
to llv...@cs.uiuc.edu
reason 2 might be specific to llvm-2.9 or earlier. looks like the code
is different now.
Reply all
Reply to author
Forward
0 new messages