As of LLVM 3.2, is it possible to use iostream with the MCJIT or interpreter execution engines? I'm getting some errors...
Each of these commands correctly prints "hello":
echo -e '#include <stdio.h>\nint main(){ printf("hello"); }' | clang -cc1 -emit-llvm-bc -x c++ | lli -use-mcjit
echo -e '#include <iostream>\nint main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli
Each of these commands results in "LLVM ERROR: Could not resolve external global address: __dso_handle":
echo -e '#include <iostream>\nint main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli -force-interpreter=true
echo -e '#include <iostream>\nint main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli -use-mcjit
This command correctly prints "hello":
echo -e '#include <iostream>\nextern "C" {void *__dso_handle = NULL;} int main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli
This command results in "LLVM ERROR: Tried to execute an unknown external function: _ZNSt8ios_base4InitC1Ev"
echo -e '#include <iostream>\nextern "C" {void *__dso_handle = NULL;} int main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli -force-interpreter=true
This command results in "Assertion failed: (FPtr && "Pointer to fn's code was null after getPointerToFunction"), function runFunction, file MCJIT.cpp, line 180."
echo -e '#include <iostream>\nextern "C" {void *__dso_handle = NULL;} int main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli -use-mcjit
---
Jaymie Strecker
jstr...@kosada.com
_______________________________________________
LLVM Developers mailing list
LLV...@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev