[swift-dev] Standard shared libraries with executable stack

Dmitri Gribenko gribozavr at gmail.com
Sat Jun 18 03:30:31 CDT 2016


Thank you!  I merged your PR, it should be included in the next snapshot.

Dmitri

On Fri, Jun 17, 2016 at 2:26 PM, Sangjin Han <tinysun.net at gmail.com> wrote:
> Please review the PR #3053.
>
> 2016-06-18 0:17 GMT+09:00 Dmitri Gribenko <gribozavr at gmail.com>:
>>
>> On Fri, Jun 17, 2016 at 7:31 AM, Sangjin Han <tinysun.net at gmail.com>
>> wrote:
>> > Hi,
>> >
>> > When linking libswiftCore.so, gold linker with --warn-execstack option
>> > generates following messages.
>> > /usr/bin/ld.gold: warning: lib/swift/linux/x86_64/swift_begin.o: missing
>> > .note.GNU-stack section implies executable stack
>> > /usr/bin/ld.gold: warning: lib/swift/linux/x86_64/swift_end.o: missing
>> > .note.GNU-stack section implies executable stack
>> >
>> > I found the web page about the GNU-stack section.
>> > http://en.chys.info/2010/12/note-gnu-stack/
>> >
>> > After quick testing in my build system (Linux + execstack -q), I think
>> > we
>> > should append one line to stdlib/public/runtime/swift_sections.S, or
>> > pass
>> > the proper option to the linker.
>> > The line is
>> >     .section .note.GNU-stack,"", at progbits
>> > and the option is
>> >     '-z noexecstack' (or -Wl,-z -Wl,noexecstack for clang++).
>>
>> The patch would be much better I think.  Thank you very much for the
>> investigation!  Could you submit a pull request?
>>
>> Dmitri
>>
>> --
>> main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
>> (j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/
>
>



-- 
main(i,j){for(i=2;;i++){for(j=2;j<i;j++){if(!(i%j)){j=0;break;}}if
(j){printf("%d\n",i);}}} /*Dmitri Gribenko <gribozavr at gmail.com>*/


More information about the swift-dev mailing list