<div dir="ltr"><div>Hi,</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">This could have been caused by our switch from the BFD linker to gold.<br> Could you try linking a hello world program using gold linker and<br> running it in WSL?<br></blockquote><div><br></div><div>I tried to build Swift by not using -fuse-gold option and the result was same.</div><div><br></div><div><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">Are you sure that PROT_GROWSDOWN is the flag that enables executable<br>
stack?  I thought that&#39;s what PROT_EXEC is for.  I&#39;m not sure what<br>
PROT_GROWSDOWN actually changes, if I were to speculate, I&#39;d say it<br>
could be a marker that means &quot;this is a stack&quot; or maybe even be just a<br>
performance hint.<span><font color="#888888"><br>
</font></span></blockquote></div><div><br></div><div>You are right. The executable stack is enabled by PROT_EXEC.</div><div><br></div><div>But Swift shared library&#39;s executable stack seems to set PROT_EXEC AND PROT_GROWSDOWN according to strace.</div><div><br></div><div>I don&#39;t know what causes Swift shared library to have executable stack since Febrary 25 snapshot. Febrary 8 snapshot and Swift 2.X branches have no such executable stack shared library.</div><div><br></div><div class="gmail_extra">Thanks,</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">-Kim, Jongsu<br></div></div>