[LLVMdev] [lld] Diagnostics

Chandler Carruth chandlerc at google.com
Mon Oct 7 17:15:15 PDT 2013


On Mon, Oct 7, 2013 at 4:02 PM, Nick Kledzik <kledzik at apple.com> wrote:

> But is has lots that a linker does not need.  For instance, the
> line/column number does not make sense for a linker.
>

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.


> 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.
>

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.

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).


> 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.
>

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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131007/496f7e2f/attachment.html>


More information about the llvm-dev mailing list