<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Oct 7, 2013 at 4:02 PM, Nick Kledzik <span dir="ltr"><<a href="mailto:kledzik@apple.com" target="_blank" class="cremed">kledzik@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>But is has lots that a linker does not need.  For instance, the line/column number does not make sense for a linker.</div>
</blockquote><div><br></div><div>Really? Gold has errors that mention lines and columns. It gets them by querying the debug information for file, line, and column. There may be examples of this, but I don't think source location is one of them.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Clang errors/warnings are mostly about the source language which is pretty standard across different platforms.  Other than multiple-defined and undefined errors, most of the linker errors and warnings will be platform specific.</div>
</blockquote><div><br></div><div>I don't think this difference is significant. There are a enough platform specific warnings in Clang (at-exit and destructor handling) for us to have some need of machinery here.</div>
<div><br></div><div>I suspect that the bigger difference is the object file format differences (ELF vs. Mach-O vs. COFF), but that seems not substantially different from language differences (C89, C99, C++, ObjC).</div><div>
<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><br></div><div>Linker warnings and errors are also historically very cryptic.  Linker errors usually have a low level cause, and a high level action for the developer to take to resolve the issue.  For instance, the low level trigger would be a particular relocation kind is not expected.  The high level fix is to change the compiler options (e.g. -fno-pic) for a particular file.  It would be nice to capture the low and high level in lld’s diagnostics.</div>
</blockquote><div><br></div><div>Very much so. We've also had some great experience using debug info (when present) to produce much more detailed and user-friendly diagnostics in the linker. </div></div><br><br></div>
</div>