<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Jun 6, 2018 at 11:41 AM Brian Gesiak <<a href="mailto:modocache@gmail.com">modocache@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks for the response, Rui!<div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 5, 2018 at 5:26 PM, Rui Ueyama <span dir="ltr"><<a href="mailto:ruiu@google.com" target="_blank">ruiu@google.com</a>></span> wrote:<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">Besides the features you pointed out, I think Xcode introduced a new way of listing dynamic linking symbols, and I believe lld doesn't support that.</div></blockquote><div><br></div><div>.tbd files, is that right? A colleague of mine pointed me to Apple's libtapi open source project [1], maybe I can learn more about these files from that library. In fact, there's been discussion about bringing libtapi to LLVM on the mailing list in the past, although I don't know if anything came of it. [2]</div><div><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">I think the real issue is the lack of maintenance and ownership of the mach-O lld tree. There's no activities for the tree for years, though we've been making efforts to keep it compile and pass all the existing tests.</div></blockquote><div><br></div><div>Excellent, thanks for letting me know. This doesn't bother me, I'm happy to try contributing to it as best I can! I would also appreciate, as your time permits, whatever guidance you can provide. For example, benefitting from several years of hindsight, would you recommend keeping the ATOM-based lld approach? [3] Prior emails discussed moving Mach-O lld away from ATOM. [4] Has the success of ELF and COFF influenced your thinking on this in the years since, or is ATOM probably still the best fit for Mach-O?</div></div></div></div></div></blockquote><div><br></div><div>That's a good question. There was a big discussion as to the design of the new (now current ELF/COFF/wasm) and the ATOM-based lld a few years ago when I started working on the new one. At the time no one including me was really sure what design is desirable, and I was exploring the design space to something good. Today, we have three working, high-performance linkers for ELF, COFF and wasm based on the new design, which I think proves the design; it is easy to add new features, easy to understand, and it delivers what users want the most (i.e. speed). Given that, if I were you, I'd try to see if the new lld's design fits mach-O. You may need to tweak the design a little bit, but I'd imagine that the difference is not as significant as between ELF and wasm (which has a different concept of memory address space mainly for security). I'd also like to get input from Apple engineers as well.</div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div class="gmail_extra"><div class="gmail_quote"><div>On Wed, Jun 6, 2018 at 8:10 PM, Jean-Daniel via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<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 style="word-wrap:break-word;line-break:after-white-space"><div>The list of feature exclusive to the Apple platform and Mac-O in the linker is astonishingly long. I started listing the missing features in lld at some points, but stop midway.</div></div></blockquote><div><br></div><div>Jean-Daniel, do you still happen to have this list somewhere? I'd love to read it, even if you did stop midway! Besides .tbd files, for example there's the matter of supporting "fat binaries," which contain code for multiple instruction sets.</div></div><div><br></div><div>Also, thanks to everyone on the thread who expressed interest! I'm still exploring and don't want to commit to anything just yet, but suffice it to say I'm interested in lld Mach-O as well.</div><div><br></div><div>- Brian Gesiak</div><div><br></div><div>[1] <a href="https://opensource.apple.com/source/tapi/tapi-1.30/" target="_blank">https://opensource.apple.com/source/tapi/tapi-1.30/</a></div><div>[2] <a href="https://lists.llvm.org/pipermail/llvm-dev/2017-September/117264.html" target="_blank">https://lists.llvm.org/pipermail/llvm-dev/2017-September/117264.html</a></div><div>[3] <a href="https://lld.llvm.org/AtomLLD.html" target="_blank">https://lld.llvm.org/AtomLLD.html</a></div><div>[4] <a href="http://lists.llvm.org/pipermail/llvm-dev/2015-May/085115.html" target="_blank">http://lists.llvm.org/pipermail/llvm-dev/2015-May/085115.html</a></div><div><br></div><div><br></div><div><br></div><div><br></div></div></div></div></div>
</blockquote></div></div>