<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, Dec 10, 2017 at 11:04 AM, Rafael Avila de Espindola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Both bfd and gold mark .so executable actually.<br></blockquote><div><br></div><div>Do you know why they do that?</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This needs a test.<br>
<br>
Cheers,<br>
Rafael<br>
<br>
Petr Hosek via Phabricator via llvm-commits<br>
<div><div class="h5"><<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a>> writes:<br>
<br>
> phosek updated this revision to Diff 126253.<br>
> phosek retitled this revision from "[ELF] Don't set the executable bit for relocatable files" to "[ELF] Don't set the executable bit for relocatable or shared files".<br>
> phosek edited the summary of this revision.<br>
> phosek added a comment.<br>
><br>
> True, that's a good point.<br>
><br>
><br>
> Repository:<br>
>   rLLD LLVM Linker<br>
><br>
> <a href="https://reviews.llvm.org/D41041" rel="noreferrer" target="_blank">https://reviews.llvm.org/<wbr>D41041</a><br>
><br>
> Files:<br>
>   ELF/Writer.cpp<br>
><br>
><br>
> Index: ELF/Writer.cpp<br>
> ==============================<wbr>==============================<wbr>=======<br>
> --- ELF/Writer.cpp<br>
> +++ ELF/Writer.cpp<br>
> @@ -1838,9 +1838,11 @@<br>
>    }<br>
><br>
>    unlinkAsync(Config-><wbr>OutputFile);<br>
> +  unsigned Flags = !Config->Relocatable && !Config->Shared<br>
> +                       ? FileOutputBuffer::F_executable<br>
> +                       : 0;<br>
>    Expected<std::unique_ptr<<wbr>FileOutputBuffer>> BufferOrErr =<br>
> -      FileOutputBuffer::create(<wbr>Config->OutputFile, FileSize,<br>
> -                               FileOutputBuffer::F_<wbr>executable);<br>
> +      FileOutputBuffer::create(<wbr>Config->OutputFile, FileSize, Flags);<br>
><br>
>    if (!BufferOrErr)<br>
>      error("failed to open " + Config->OutputFile + ": " +<br>
><br>
><br>
> Index: ELF/Writer.cpp<br>
> ==============================<wbr>==============================<wbr>=======<br>
> --- ELF/Writer.cpp<br>
> +++ ELF/Writer.cpp<br>
> @@ -1838,9 +1838,11 @@<br>
>    }<br>
><br>
>    unlinkAsync(Config-><wbr>OutputFile);<br>
> +  unsigned Flags = !Config->Relocatable && !Config->Shared<br>
> +                       ? FileOutputBuffer::F_executable<br>
> +                       : 0;<br>
>    Expected<std::unique_ptr<<wbr>FileOutputBuffer>> BufferOrErr =<br>
> -      FileOutputBuffer::create(<wbr>Config->OutputFile, FileSize,<br>
> -                               FileOutputBuffer::F_<wbr>executable);<br>
> +      FileOutputBuffer::create(<wbr>Config->OutputFile, FileSize, Flags);<br>
><br>
>    if (!BufferOrErr)<br>
>      error("failed to open " + Config->OutputFile + ": " +<br>
</div></div>> ______________________________<wbr>_________________<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/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>