-
Notifications
You must be signed in to change notification settings - Fork 17.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmd/compile: syscall.Syscall15: nosplit stack over 792 byte limit #69813
Comments
Can reproduce the issue building the following program with package main
import "syscall"
func main() {
syscall.Syscall18(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
} The change that introduced the excessive stack usage is CL 563315. I'll prepare a fix that can be backported. |
Change https://go.dev/cl/618497 mentions this issue: |
@gopherbot Please backport to 1.23. This is a regression with no workaround. |
Backport issue(s) opened: #69848 (for 1.23). Remember to create the cherry-pick CL(s) as soon as the patch is submitted to master, according to https://go.dev/wiki/MinorReleases. |
Please create a backport CL for this issue. |
Change https://go.dev/cl/623516 mentions this issue: |
syscall.SyscallX consumes a lot of stack space, which is a problem because they are nosplit functions. They used to use less stack space, but CL 563315, that landed in Go 1.23, increased the stack usage by a lot. This CL reduces the stack usage back to the previous level. Fixes #69848 Updates #69813 Change-Id: Iddedd28b693c66a258da687389768055c493fc2e Reviewed-on: https://go-review.googlesource.com/c/go/+/618497 Reviewed-by: Cherry Mui <[email protected]> Reviewed-by: Michael Knyszek <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]> (cherry picked from commit fa7343a) Reviewed-on: https://go-review.googlesource.com/c/go/+/623516 Reviewed-by: Dmitri Shuralyov <[email protected]> Reviewed-by: Michael Pratt <[email protected]>
Go version
go version go1.23.2 darwin/arm64
Output of
go env
in your module/workspace:What did you do?
Run the following command to compile our program:
This is run inside goreleaser for all the major platforms.
What did you see happen?
Got the following message when building for
windows/arm64
(GOOS=windows GOARCH=arm64
).What did you expect to see?
I expect no error, this was working fine before upgrading to Go 1.23.
Noticed that removing the
-l
flag from-gcflags
does the trick and makes the program to compile no issues:The text was updated successfully, but these errors were encountered: