<div dir="ltr">A member of my team <a class="GWVZpf gW" id="IloFPc-1" href="mailto:amontanez@google.com" tabindex="-1">+Armando Montanez</a> is going to drop a proposal for the ELF part of this soon (like sometime next week) and will be working on the implementation. I'll be one of the reviewers for anything that comes out of that so we can be sure it will get reviewed as well. The goal is to have a single tool/library that would include Juergen's original code and the new ELF code.</div><br><div class="gmail_quote"><div dir="ltr">On Thu, Sep 20, 2018 at 10:45 AM Nico Weber <<a href="mailto:thakis@chromium.org">thakis@chromium.org</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">Was there any progress in the upstreaming effort? I'd be interested in having lld be able to link against tbd files, and I think it'd be cool if libtool -static could write tbd files (similar to thin archives on linux) since that should make archiving much faster.<div><br></div><div>Juergen, maybe uploading your initial patch to phabricator instead of attaching might get more traction?</div></div><br><div class="gmail_quote"></div><div class="gmail_quote"><div dir="ltr">On Wed, Apr 25, 2018 at 8:53 AM Juergen Ributzka via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:<br></div></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">The code on <a href="http://opensource.apple.com" target="_blank">opensource.apple.com</a> is the minimal code needed for libtapi to read TBD files with ld64. The code I pushed to GitHub on the other side includes the full TAPI tool source code. If you check the code you will see that I already use the LLVM license for everything, because the goal has always been to contribute this back to the community.<div><br></div><div>I attached an initial patch for libtapi and nm support to my original email. I also have some updated patches for that too, but somehow got derailed into "lets rewrite libobject" discussions.</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Apr 10, 2018 at 4:15 PM, John Ericson via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
  
    
  
  <div text="#000000" bgcolor="#FFFFFF">
    <p>That sounds great to me, thanks Jake. I'm not Jurgen either, of
      course, but I'm happy to assist you if he is unavailable. I'm not
      also not qualified to audit the license, but do note Apple
      formally also released some code at
      <a class="m_-1645089694357321589m_1397583737544519261m_-2619777185803176232moz-txt-link-freetext" href="https://opensource.apple.com/tarballs/tapi/" target="_blank">https://opensource.apple.com/tarballs/tapi/</a>. If there's anything
      else I can do to help, let me know.<br>
    </p>
    <p>Cheers,</p>
    <p>John<br>
    </p><div><div class="m_-1645089694357321589m_1397583737544519261h5">
    <br>
    <div class="m_-1645089694357321589m_1397583737544519261m_-2619777185803176232moz-cite-prefix">On 04/10/2018 06:13 PM, Jake Ehrlich
      wrote:<br>
    </div>
    <blockquote type="cite">
      <div dir="ltr">Ideally Jurgen would cut up the code on github, put
        up an initial diff for a minimal viable tool, and then we would
        review it and then continue to copy code from the github repo
        into llvm and review it. I'm also willing to do that if Jurgen
        doesn't want to at this point though. I'd like the OK from
        Jurgen on that and I'd also like the OK from someone that the
        license stuff is all good to go (I'm not sure who should check
        licence stuff).<br>
        <br>
        Best,
        <div>Jake</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr">On Tue, Apr 10, 2018 at 2:39 PM John Ericson
          <a class="m_-1645089694357321589m_1397583737544519261m_-2619777185803176232moz-txt-link-rfc2396E" href="mailto:john.ericson@obsidian.systems" target="_blank"><john.ericson@obsidian.systems></a> wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div text="#000000" bgcolor="#FFFFFF">
            <p>Seems like there are a few of us interested in this then.
              I new around here and don't really know how decisions are
              made, so what's next? Just open a diff with the entire
              library??</p>
          </div>
          <div text="#000000" bgcolor="#FFFFFF">
            <p>John<br>
            </p>
          </div>
          <div text="#000000" bgcolor="#FFFFFF">
            <div class="m_-1645089694357321589m_1397583737544519261m_-2619777185803176232m_-858117663558115345moz-cite-prefix">On
              04/10/2018 05:33 PM, Jake Ehrlich wrote:<br>
            </div>
            <blockquote type="cite">
              <div dir="ltr">Benifits of TBD:<br>
                1) It's human readable and diffs on TBDs correspond to
                changes in the ABI. Diffs can be automatically added to
                review processes to ensure that changes to the ABI are
                reviewed. The TBDs also document your precise ABI.<br>
                2) The size is smaller which means they can be shipped
                in an SDK instead of binaries to reduce the size of an
                SDK<br>
                3) Stubs are producible from TBDs (or should be) which
                means stubs for linking can be produced even if we don't
                directly support them in LLD. This lets you ship the
                smaller TBD files in place of larger binaries and still
                link things without direct linker support (assuming you
                already ship a toolchain with your SDK or expect your
                users to have this tool)<br>
                <br>
                Since stubs are producible from TBDs I don't really see
                a downside. I think we need both, I was going to propose
                a yaml based representation for ELF for the above
                reasons anyhow.</div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr">On Tue, Apr 10, 2018 at 1:14 PM Andrew
                  Kelley via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</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">
                    <div class="gmail_extra">
                      <div class="gmail_quote">On Mon, Apr 9, 2018 at
                        10:11 PM, John Ericson via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span>
                        wrote:<br>
                        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span class="m_-1645089694357321589m_1397583737544519261m_-2619777185803176232m_-858117663558115345m_8380427565236013758gmail-">>
                            Regardless of any of that, given that TBD
                            files _are_ an integral part of the apple
                            platform, supporting them is certainly a
                            necessity in order to have a working apple
                            linker. So, if making LLD work for
                            Apple/MachO is the justification for adding
                            TBD support to LLVM, that seems
                            self-evidently a reasonable thing to do. On
                            the other hand, it looks like the LLD mach-o
                            code is unmaintained and nobody seems to be
                            much interested in it. And having code for
                            reading TBD files in LLVM seems not terribly
                            interesting, unless it is as part of a
                            project to make the LLD MachO linker
                            actually functional and supported.<br>
                            <br>
                          </span> Yes. I hope this can be reason enough.
                          Hobbyists could push for LLD support for
                          Mach-O besides Apple, and if LLD is to
                          displace other linkers this is a necessary
                          component as you say. Better to upstream now
                          before the code diverges than more work later?
                          Conversely if nothing happens, I doubt libtapi
                          would be a greater drag on the codebase than
                          the MachO LLD code, so whatever cost/benefit
                          analysis exists for keeping that around could
                          also apply to this.</blockquote>
                        <div><br>
                          <br>
                        </div>
                      </div>
                    </div>
                  </div>
                  <div dir="ltr">
                    <div class="gmail_extra">
                      <div class="gmail_quote">
                        <div>Speaking for the Zig project here, our goal
                          is to support cross-compilation for any
                          target, on any target, without requiring
                          installation of any target-specific SDK. So,
                          for example, these use cases:<br>
                        </div>
                        <div> * on linux, compile & link a binary
                          targeting macos<br>
                        </div>
                        <div> * on windows, compile & link a binary
                          targeting macos<br>
                          <br>
                        </div>
                        <div>This works today, although it depends on a
                          patch to LLD to fix the MACH-O linker that is
                          not high enough quality to upstream.<br>
                          <br>
                        </div>
                        <div>So we have a vested interest in improving
                          the MACH-O linker, and in fact a Zig community
                          member has fixed at least one bug in MACH-O
                          LLD: <a href="http://reviews.llvm.org/D35387" target="_blank">reviews.llvm.org/D35387</a><br>
                          <br>
                        </div>
                        <div>I don't fully understand how TBD or TAPI
                          works, but I hope that it results in
                          improvements to the MACH-O linker.<br>
                        </div>
                        <div><br>
                        </div>
                        <div> </div>
                      </div>
                    </div>
                  </div>
                  _______________________________________________<br>
                  LLVM Developers mailing list<br>
                  <a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
                  <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
                </blockquote>
              </div>
            </blockquote>
            <br>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </div></div></div>

<br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div></blockquote></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div></blockquote></div>