I have built a shared version of LLVM which I am now able to test in my Qt-based application. It all works fine on Windows, Linux and Mac OS X, except that whenever I exit my Qt-based application on Windows (everything is fine on Linux and Mac OS X), I get a message that reads that “this application has requested the Runtime to terminate it in an unusual way”.
‘My’ current LLVM code (see https://github.com/opencor/opencor/blob/master/src/plugins/simulation/CoreSimulation/src/coresimulationplugin.cpp) is a shameless copy/paste of the HowToUseJIT example (in the examples folder). However, if I comment out line #67 of my code (i.e. llvm::InitializeNativeTarget();), then I don’t get the aforementioned error and my LLVM code still works fine.
Now, I may be wrong, but I was under the impression that a call to InitializeNativeTarget was recommended, if not compulsory, so… why commenting it out not only makes my LLVM code still work, but also prevent my application from generating the above error…?!