<div dir="auto">+1</div><div class="gmail_extra"><br><div class="gmail_quote">On Mar 24, 2017 4:05 AM, "Hans Wennborg via llvm-dev" <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Thu, Mar 23, 2017 at 10:17 PM, Rui Ueyama via llvm-dev<br>
<<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br>
> Folks,<br>
><br>
> I'd like propose a new error message format for LLD so that error message<br>
> for undefined or duplicated symbols are more informative and easy to read.<br>
><br>
> Below are examples of the current error messages (note that characters in<br>
> red are actually red on terminal):<br>
><br>
> Undefined symbols<br>
> /ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/<wbr>Writer.cpp:207:<br>
> undefined symbol<br>
> 'lld::elf::EhFrameSection<<wbr>llvm::object::ELFType<(llvm::<wbr>support::endianness)0,<br>
> true> >::addSection(lld::elf::<wbr>InputSectionBase*)'<br>
><br>
> Conflicting symbols<br>
> /ssd/clang/bin/ld.lld: error: /ssd/llvm-project/lld/ELF/<wbr>Writer.cpp:38:<br>
> duplicate symbol 'lld::elf::MipsGotSection::<wbr>addEntry(lld::elf::SymbolBody&<wbr>,<br>
> long, lld::elf::RelExpr)'<br>
> /ssd/clang/bin/ld.lld: error:<br>
> /ssd/llvm-project/lld/ELF/<wbr>SyntheticSections.cpp:673: previous definition was<br>
> here<br>
><br>
><br>
> For each error, we want to print out information about 1) symbol name, 2)<br>
> source file name(s) and source location(s) if available and 3) source object<br>
> file name(s) and archive file name(s) if available. Currently, these<br>
> messages lack object file names, and I think the above error messages are a<br>
> bit hard to grasp because too much information is packed into each line.<br>
><br>
> I'm thinking of changing the format to something like the following:<br>
><br>
> Undefined symbols<br>
> /ssd/clang/bin/ld.lld: error: undefined symbol:<br>
> lld::elf::EhFrameSection<llvm:<wbr>:object::ELFType<(llvm::<wbr>support::endianness)0,<br>
> true> >::addSection(lld::elf::<wbr>InputSectionBase*)<br>
>   Source: /ssd/llvm-project/lld/ELF/<wbr>Writer.cpp:207<br>
>   Object: lib/liblldELF.a(Writer.cpp.o)<br>
<br>
There's a chance users can be confused about "source" here: it's not<br>
the source code for the symbol, it's the source of the reference.<br>
Maybe "Referenced by" would be better a wording.<br>
______________________________<wbr>_________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">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/<wbr>mailman/listinfo/llvm-dev</a><br>
</blockquote></div></div>