On Sat, Jun 11, 2016 at 8:12 AM, 김종수 via swift-dev <swift-dev@swift.org> wrote: > I am testing Swift in "Windows Subsystem for Linux" which is a new feature > of Windows 10 Anniversary Update scheduled in this year. WSL is Ubuntu LTS > 14.04 compatible in user space. > > Swift runtime libraries such as libswiftCore.so are marked Executable Stack, > which have no problem in Linux. > > dlopen()'ing swift runtime libraries causes mprotect() with PROT_GROWSDOWN, > which is not documented but verified with strace. > > WSL has not implemented PROT_GROWSDOWN feature because of clean room > development. > > Swift runtime libraries had not been marked Executable Stack before Febrary > snapshot. And cmark and llvm/clang shared libraries are not marked too. > > ***My request is swift runtime libraries be not marked Executable Stack.***
Hi, This could have been caused by our switch from the BFD linker to gold. Could you try linking a hello world program using gold linker and running it in WSL? Are you sure that PROT_GROWSDOWN is the flag that enables executable stack? I thought that's what PROT_EXEC is for. I'm not sure what PROT_GROWSDOWN actually changes, if I were to speculate, I'd say it could be a marker that means "this is a stack" or maybe even be just a performance hint. 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 <griboz...@gmail.com>*/ _______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev