This libgo patch marks go-context.S as no-executable-stack and split-stack supported.
The .note.GNU-stack section tells the linker that this object does not require an executable stack. The .note.GNU-split-stack section tells the linker that functions in this object can be called directly by split-stack functions, without require a large stack. The .note.GNU-no-split-stack section tells the linker that functions in this object do not have a split-stack prologue. Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed to mainline. Ian
Index: gcc/go/gofrontend/MERGE =================================================================== --- gcc/go/gofrontend/MERGE (revision 276382) +++ gcc/go/gofrontend/MERGE (working copy) @@ -1,4 +1,4 @@ -07faafda5fbd66a710153814f30d93c91461e7cb +a3aef6b6df932ea6c7094d074695bc0b033a3d17 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 276382) +++ libgo/runtime/go-context.S (working copy) @@ -66,4 +66,8 @@ __go_makecontext: ret + .section .note.GNU-stack,"",@progbits + .section .note.GNU-split-stack,"",@progbits + .section .note.GNU-no-split-stack,"",@progbits + #endif