<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body 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>
    <p>John<br>
    </p>
    <div class="moz-cite-prefix">On 04/10/2018 05:33 PM, Jake Ehrlich
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAAdEwvC=YKr-9MhpQeasZ+wE36h0CXfc6rJZjtUksw3vZ87cgw@mail.gmail.com">
      <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"
            moz-do-not-send="true">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" moz-do-not-send="true">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_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" moz-do-not-send="true">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"
            moz-do-not-send="true">llvm-dev@lists.llvm.org</a><br>
          <a
            href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev"
            rel="noreferrer" target="_blank" moz-do-not-send="true">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </body>
</html>