<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Thu, Aug 30, 2018 at 7:16 AM Joerg Sonnenberger <<a href="mailto:joerg@bec.de">joerg@bec.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Wed, Aug 29, 2018 at 07:27:09AM -0000, Rui Ueyama via llvm-commits wrote:<br>
> Author: ruiu<br>
> Date: Wed Aug 29 00:27:09 2018<br>
> New Revision: 340902<br>
> <br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=340902&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=340902&view=rev</a><br>
> Log:<br>
> Always add a .note.GNU-stack section if -r.<br>
> <br>
> With this patch, lld creates a .note.GNU_stack and adds that to an<br>
> output file if it is creating a re-linkable object file (i.e. if -r<br>
> is given). If we don't do this, and if you use GNU linkers as a final<br>
> linker, they create an executable whose stack area is executable,<br>
> which is considered pretty bad these days.<br>
<br>
It should only be done if at least one of the input files had the note.<br></blockquote><div><br></div><div>I consider .note.GNU-stack a pointless feature at the moment; it could make your program's stack area executable in an obscure way. You should pass `-z execstack` to the final link command line if your program really need an executable stack.<br></div></div></div>