<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 25, 2015 at 10:45 AM, Duncan P. N. Exon Smith <span dir="ltr"><<a href="mailto:dexonsmith@apple.com" target="_blank">dexonsmith@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On 2015-Mar-25, at 10:24, Duncan P. N. Exon Smith <<a href="mailto:dexonsmith@apple.com">dexonsmith@apple.com</a>> wrote:<br>
><br>
>><br>
>> On 2015-Mar-25, at 10:12, Duncan P. N. Exon Smith <<a href="mailto:dexonsmith@apple.com">dexonsmith@apple.com</a>> wrote:<br>
>><br>
>> Good point, I guess I'm not being very creative :/.  Peter also obliged<br>
>> [1] my request for a dump on Linux, which I've reproduced locally by<br>
>> specifying -mtriple=x86_64-unknown-linux.  What's going wrong is the<br>
>> second compile unit is missing the subprogram for the weak ("winning")<br>
>> function.<br>
>><br>
>> [1]: <a href="https://llvm.org/bugs/show_bug.cgi?id=22792#c7" target="_blank">https://llvm.org/bugs/show_bug.cgi?id=22792#c7</a> "Output on Linux"<br>
>><br>
>> This DWARF is wrong, right?  (I.e., are the expected differences in<br>
>> debug info between Linux and Darwin all in the frontend generation<br>
>> logic?)<br>
><br>
> Just talked to Adrian offline; answer is "yes".  I'll see if I can figure<br>
> this out and just revert r233165.<br>
<br>
</span>Interestingly, in assembly both darwin and linux are "missing" things.<br>
<br>
On darwin, we get the subprogram for the smaller compile unit, but not<br>
the compile unit.<br></blockquote><div><br>Not sure if relevant, but Darwin's linker or something likes to drop CUs with no subprograms... (I hit this when improving -gmlt output size)<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On linux, we get the smaller compile unit, but no subprogram.<br>
<br>
Attaching assembly in case this is obvious to someone.  About to start<br>
debugging it myself though.<br>
<br>
darwin1.a and linux1.a were generated from the LW testcase (linkonce<br>
version of @foo before weak version of @foo), while darwin2.a and<br>
linux2.a were generated from the WL testcase (weak version first).<br>
<br>
</blockquote></div><br></div></div>