Re: Go patch RFC: Don't mark Go executables as requiring writable stack

2012-01-27 Thread Jakub Jelinek
On Fri, Jan 27, 2012 at 02:08:54PM -0800, Ian Lance Taylor wrote: > Richard Henderson writes: > >> Looks good to me, except I wonder whether the builtin needs to be user > >> accessible. If not, can't you throw some * or space into the name, so that > >> the builtin is really internal to gcc? > >

Re: Go patch RFC: Don't mark Go executables as requiring writable stack

2012-01-27 Thread Ian Lance Taylor
Richard Henderson writes: > On 01/28/2012 08:17 AM, Jakub Jelinek wrote: >> On Fri, Jan 27, 2012 at 01:04:41PM -0800, Ian Lance Taylor wrote: >>> This patch fixes the problem by introducing a new builtin function >>> __builtin_init_heap_trampoline. This is a middle-end change so it is >>> covere

Re: Go patch RFC: Don't mark Go executables as requiring writable stack

2012-01-27 Thread Richard Henderson
On 01/28/2012 08:17 AM, Jakub Jelinek wrote: > On Fri, Jan 27, 2012 at 01:04:41PM -0800, Ian Lance Taylor wrote: >> This patch fixes the problem by introducing a new builtin function >> __builtin_init_heap_trampoline. This is a middle-end change so it is >> covered under my maintainership. I also

Re: Go patch RFC: Don't mark Go executables as requiring writable stack

2012-01-27 Thread Jakub Jelinek
On Fri, Jan 27, 2012 at 01:04:41PM -0800, Ian Lance Taylor wrote: > This patch fixes the problem by introducing a new builtin function > __builtin_init_heap_trampoline. This is a middle-end change so it is > covered under my maintainership. I also believe it is quite safe. > However, given that w

Go patch RFC: Don't mark Go executables as requiring writable stack

2012-01-27 Thread Ian Lance Taylor
PR 47656 points out that Go programs are often marked as having an executable stack. This is incorrect. Go does use trampolines, but they are never built on the stack. They are built on the heap, using mprotect. This is necessary because Go closures may be returned from functions and as such mu