This libgo patch arranges for go-context.S to always be marked as using a non-executable stack. This is not required for all targets, but should do little harm. Bootstrapped on x86_64-pc-linux-gnu. Committed to mainline.
Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 278984) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -017830d2a4bd2efbddf5e841ba9ccff8acf9d7c8 +a59794347b9db6dc2101a65c3e1a068051c0ee81 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. Index: libgo/runtime/go-context.S =================================================================== --- libgo/runtime/go-context.S (revision 278984) +++ libgo/runtime/go-context.S (working copy) @@ -66,8 +66,9 @@ __go_makecontext: ret - .section .note.GNU-stack,"",@progbits .section .note.GNU-split-stack,"",@progbits .section .note.GNU-no-split-stack,"",@progbits #endif + + .section .note.GNU-stack,"",@progbits