<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; "><div>Hi,</div><div><br></div><div>I've fixed a bug in llvm-c api - <span class="Apple-style-span" style="font-family: Menlo; font-size: 11px; ">LLVMCreateJITCompilerForModule</span> specifically. It ignored the triple from the module, which caused the JIT to always use the default triple. That crashed when running on x86_64 in x86 mode.</div><div>For more details: <a href="http://llvm.org/bugs/show_bug.cgi?id=13833">http://llvm.org/bugs/show_bug.cgi?id=13833</a>.</div><div>svn diff follows.</div><div><br></div><div>Eran.</div><div><br></div><div><div><span style="font-family: Consolas; ">Index: lib/ExecutionEngine/ExecutionEngineBindings.cpp</span></div><div><span style="font-family: Consolas; ">===================================================================</span></div><div><span style="font-family: Consolas; ">--- lib/ExecutionEngine/ExecutionEngineBindings.cpp</span><span class="Apple-tab-span" style="white-space: pre; font-family: Consolas; ">        </span><span style="font-family: Consolas; ">(revision 164482)</span></div><div><span style="font-family: Consolas; ">+++ lib/ExecutionEngine/ExecutionEngineBindings.cpp</span><span class="Apple-tab-span" style="white-space: pre; font-family: Consolas; "> </span><span style="font-family: Consolas; ">(working copy)</span></div><div><span style="font-family: Consolas; ">@@ -13,6 +13,7 @@</span></div><div><span style="font-family: Consolas; "> </span></div><div><span style="font-family: Consolas; "> #define DEBUG_TYPE "jit"</span></div><div><span style="font-family: Consolas; "> #include "llvm-c/ExecutionEngine.h"</span></div><div><span style="font-family: Consolas; ">+#include "llvm/ADT/Triple.h"</span></div><div><span style="font-family: Consolas; "> #include "llvm/ExecutionEngine/GenericValue.h"</span></div><div><span style="font-family: Consolas; "> #include "llvm/ExecutionEngine/ExecutionEngine.h"</span></div><div><span style="font-family: Consolas; "> #include "llvm/Support/ErrorHandling.h"</span></div><div><span style="font-family: Consolas; ">@@ -123,7 +124,8 @@</span></div><div><span style="font-family: Consolas; ">   EngineBuilder builder(unwrap(M));</span></div><div><span style="font-family: Consolas; ">   builder.setEngineKind(EngineKind::JIT)</span></div><div><span style="font-family: Consolas; ">          .setErrorStr(&Error)</span></div><div><span style="font-family: Consolas; ">-         .setOptLevel((CodeGenOpt::Level)OptLevel);</span></div><div><span style="font-family: Consolas; ">+         .setOptLevel((CodeGenOpt::Level)OptLevel)</span></div><div><span style="font-family: Consolas; ">+         .setMArch(Triple(unwrap(M)->getTargetTriple()).getArchName());</span></div><div><span style="font-family: Consolas; ">   if (ExecutionEngine *JIT = builder.create()) {</span></div><div><span style="font-family: Consolas; ">     *OutJIT = wrap(JIT);</span></div><div><span style="font-family: Consolas; ">     return 0;</span></div></div><div><br></div></body></html>