<div dir="rtl"><div dir="ltr">Correct or no I don't know, but this change will affect all x86-64 targets including Linux and Windows as getMaxStubSize() is called from the ELF linker as well as the Mach-O linker.</div>
<div dir="ltr"><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div dir="ltr">2013/10/15 Christian Schafmeister <span dir="ltr"><<a href="mailto:chris.schaf@verizon.net" target="_blank">chris.schaf@verizon.net</a>></span></div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
With the help of <a href="mailto:iain@codesourcery.com">iain@codesourcery.com</a> and <a href="mailto:andrew.kaylor@intel.com">andrew.kaylor@intel.com</a> we<br>
tracked the problem down to a bad relocation that was clobbering the<br>
first bytes of the eh_frame. I think this problem/solution may be OS X<br>
specific.<br>
<br>
On akaylor's suggestion I made the change below and my reproducable test<br>
case now compiles fine with MCJIT.<br>
<br>
As well, my Common Lisp code base now compiles using MCJIT - that's about 1,000<br>
functions at one MCJIT module per function.<br>
<br>
<br>
<br>
In llvm/lib/ExecutionEngine/RuntimeDyld<br>
<br>
Index: RuntimeDyldImpl.h<br>
===================================================================<br>
--- RuntimeDyldImpl.h (revision 192535)<br>
+++ RuntimeDyldImpl.h (working copy)<br>
@@ -195,7 +195,7 @@<br>
else if (Arch == Triple::ppc64 || Arch == Triple::ppc64le)<br>
return 44;<br>
else if (Arch == Triple::x86_64)<br>
- return 6; // 2-byte jmp instruction + 32-bit relative address<br>
+ return 8; /* was 6 but akaylor said change to 8 - meister Oct 2013 */ // 2-byte jmp instruction + 32-bit relative address<br>
else if (Arch == Triple::systemz)<br>
return 16;<br>
else<br>
<div class="HOEnZb"><div class="h5"><br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a> <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br></div>