It appears that Kaleidoscope example in LLVM has been broken, at least in MSVC++ x64 for a quite while, maybe several months. It doesn\'t work in MCJIT and in their new Orc
For me the easiest way to workaround this was to patch the findMangledSymbol
function, calling CompileLayer.findSymbolIn
with bExportedSymbolsOnly
set to false
. It doesn't fix the problem but avoids the symptom.
Lang Hames from the llvm mailing list was able to answer this question. It appears that method COFFObjectFile::getSymbolFlags doesn't enable SF_Export flag at all, thus making all created symbols invisible for the Kaleidoscope's findSymbol method in the Windows platform. It is possible to get access to non-exported symbols though, so some kind of workaround is possible.