<div dir="ltr"><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><font face="arial, sans-serif">Hi,<br>Glad to hear about the good news!<br>By the way, can you give some doc or RFC for JITLink and relevants,<br> I can't find the design doc for ORC JitLink in <a href="http://llvm.org/" target="_blank">llvm.org</a>(it's TBD)<br><a href="https://llvm.org/docs/ORCv2.html?highlight=jitlink" target="_blank">https://llvm.org/docs/ORCv2.html?highlight=jitlink</a></font></blockquote></div><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote><span style="font-family:arial,sans-serif;color:rgb(0,0,0);white-space:pre-wrap"><div><span style="font-family:arial,sans-serif;color:rgb(0,0,0);white-space:pre-wrap"><br></span></div>A JITLink design document is still TBD for now.</span><div><font color="#000000" face="arial, sans-serif"><span style="white-space:pre-wrap"><br></span></font></div><div><font color="#000000" face="arial, sans-serif"><span style="white-space:pre-wrap">What aspects are you most interested in? I may be able to answer some questions here, and I can keep your questions in mind when I do get time to write the document.<br></span></font><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote><span style="color:rgb(0,0,0);font-family:arial,sans-serif;white-space:pre-wrap"><br></span><div><span style="color:rgb(0,0,0);font-family:arial,sans-serif;white-space:pre-wrap">Regards,</span><div><span style="font-family:arial,sans-serif;color:rgb(0,0,0);white-space:pre-wrap">Lang.</span><blockquote style="margin:0 0 0 40px;border:none;padding:0px"></blockquote><div><pre style="white-space:pre-wrap;color:rgb(0,0,0)"><font face="arial, sans-serif"><br></font></pre></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jan 25, 2021 at 6:29 PM Lang Hames <<a href="mailto:lhames@gmail.com" target="_blank">lhames@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi All,<div><br></div><div>I've set the ORC runtime aside for a week to try to land some improvements to JITLink's ELF/x86-64 support before the upcoming LLVM 12 branch on Tuesday. JITLink for ELF/x86-64 can now:</div><div><br></div><div>- Skip debug sections</div><div>- Handle weak and hidden symbols</div><div>- Issue out-of-bounds errors on several relocation kinds</div><div>- Support exception handling</div><div><br></div><div>My hope is that by the time LLVM 12 is released, JITLink ELF/x86-64 will be able to handle most or all PIC / small-code-model code. If you want to test this out you should now be able to run:</div><div><br></div><div><font face="monospace">% llvm-jitlink <objects...></font></div><div><br></div><div>on Linux for objects compiled with -fPIC. (Note: static initializers and thread locals are not supported -- these will have to wait for ELF support in the ORC runtime).</div><div><span style="color:rgb(0,0,0)"><br></span></div><div><div style="color:rgb(0,0,0)">Many thanks again to Jared Wyles and Stefan Granitz for all their work on this -- I'm very excited to see this up and running!</div></div><div style="color:rgb(0,0,0)"><br></div><div>Looking forward: RuntimeDyld will remain the default JIT linker for LLJIT in LLVM 12, but we may switch to JITLink by default in LLVM 13 if enough progress is made (RuntimeDyld will remain available as an option either way).</div><div><br></div><div>Current tasks on the LLVM 13 todo list are:<br></div><div>- Broaden the set of supported relocations on ELF/x86-64 (supporting more code and relocation models)</div><div>- Refactor to make the development of new ELF targets easier</div><div>- Refactor to make sharing of format agnostic code easier (e.g. relocations specified on a per architecture basis, rather than for (arch, format) pairs, shared format-agnostic JITLink passes)</div><div>- Add ELF initializer support by building an ELFPlatform (LinuxPlatform? I'm not sure those two are as synonymous as Darwin/MachO) and adding ELF support to the runtime. </div><div><br></div><div>I'll try to get this all in to the road map soon, but volunteers are welcome to put their hand up any time. ;)</div><div><br></div><div>As always: Questions, comments and bug reports are very welcome.</div><div><br></div><div>-- Lang.<br></div><div><br></div><div><br></div></div></div></div>
</blockquote></div>