[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