<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Oct 6, 2015 at 9:48 PM, Rafael Espíndola <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">With this change all llvm and clang tests pass when built with lld.<br>
<br>
Amusingly the only failures now in check-all are lld's :-)<br></blockquote><div><br></div><div>Woohoo!</div><div><br></div><div>Is it too early to compare LLD to GNU ld or gold? I assume that LLD produces much larger executables than those because we don't eliminate duplicate comdats yet, so the answer is yes. Right? (If we generate larger executables, it's naturally slower than those because we are handling more data.)</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 7 October 2015 at 00:22, Rafael Espindola via llvm-commits<br>
<div class="HOEnZb"><div class="h5"><<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> wrote:<br>
> Author: rafael<br>
> Date: Tue Oct  6 23:22:55 2015<br>
> New Revision: 249520<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=249520&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=249520&view=rev</a><br>
> Log:<br>
> Don't create dynamic relocations for weak undefined symbols.<br>
><br>
> Modified:<br>
>     lld/trunk/ELF/OutputSections.cpp<br>
>     lld/trunk/test/elf2/dynamic-reloc.s<br>
><br>
> Modified: lld/trunk/ELF/OutputSections.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/OutputSections.cpp?rev=249520&r1=249519&r2=249520&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/OutputSections.cpp?rev=249520&r1=249519&r2=249520&view=diff</a><br>
> ==============================================================================<br>
> --- lld/trunk/ELF/OutputSections.cpp (original)<br>
> +++ lld/trunk/ELF/OutputSections.cpp Tue Oct  6 23:22:55 2015<br>
> @@ -413,7 +413,9 @@ lld::elf2::getLocalSymVA(const typename<br>
>  bool lld::elf2::canBePreempted(const SymbolBody *Body) {<br>
>    if (!Body)<br>
>      return false;<br>
> -  if (Body->isShared() || Body->isUndefined())<br>
> +  if (Body->isShared())<br>
> +    return true;<br>
> +  if (Body->isUndefined() && !Body->isWeak())<br>
>      return true;<br>
>    if (!Config->Shared)<br>
>      return false;<br>
><br>
> Modified: lld/trunk/test/elf2/dynamic-reloc.s<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/dynamic-reloc.s?rev=249520&r1=249519&r2=249520&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/elf2/dynamic-reloc.s?rev=249520&r1=249519&r2=249520&view=diff</a><br>
> ==============================================================================<br>
> --- lld/trunk/test/elf2/dynamic-reloc.s (original)<br>
> +++ lld/trunk/test/elf2/dynamic-reloc.s Tue Oct  6 23:22:55 2015<br>
> @@ -59,4 +59,6 @@<br>
>  .global _start<br>
>  _start:<br>
>  .quad bar + 0x42<br>
> +.weak foo<br>
> +.quad foo<br>
>  call main<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div></div>