<div dir="ltr"><div>On Mon, May 1, 2017 at 2:08 PM, Rafael Avila de Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br></div><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">George Rimar via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> writes:<br>
> Index: ELF/OutputSections.cpp<br>
> ==============================<wbr>==============================<wbr>=======<br>
> --- ELF/OutputSections.cpp<br>
> +++ ELF/OutputSections.cpp<br>
> @@ -93,6 +93,10 @@<br>
>        !Name.startswith(".debug_"))<br>
>      return;<br>
><br>
> +  // We call maybeCompress() early and for linkerscript case need to assign offsets,<br>
> +  // because that was not done yet. That finalizes mergeable synthetic sections.<br>
> +  assignOffsets();<br>
> +<br>
<br>
</span>It seems wrong to this in here.<br></blockquote><div><br></div><div>That is probably true.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In the most general case (like for thunks), we will have to run<br>
assignAddresses multiple times.<br>
<br>
For debug info it should be trivial to change processCommands to compute<br>
the offsets.<br>
<br>
BTW, should we avoid compressing or error out if the linker script has a<br>
symbol assignment? For example:<br>
<br>
SECTIONS {<br>
.debug_str : { *(foo) sym=.; *(bar) }<br>
}<br></blockquote><div><br></div><div>Is this a hypothetical use case, or do you actually have something like this?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Cheers,<br>
Rafael<br>
</blockquote></div><br></div></div>