]> Cypherpunks repositories - gostls13.git/commit
runtime: switch to systemstack before throw in casgstatus
authorMichael Anthony Knyszek <mknyszek@google.com>
Mon, 22 Apr 2024 15:24:42 +0000 (15:24 +0000)
committerMichael Knyszek <mknyszek@google.com>
Tue, 23 Apr 2024 02:53:00 +0000 (02:53 +0000)
commit0304d035cd1a35762b0d1e394f13345e29107b63
tree497ed3bd5e97c216ec7b6a7e7d0683e753eb48df
parent9702cd980fadefe4d6740a52d32fb1ad52e984cc
runtime: switch to systemstack before throw in casgstatus

CL 580255 increased the frame size of entersyscall and reentersyscall,
which is causing the x/sys repository to fail to build for
windows/arm64 because of an overflow of the nosplit stack reservation.

Fix this by wrapping the other call to throw in casgstatus in a system
stack switch. This is a fatal throw anyway indicating a core runtime
invariant is broken, so this path is basically never taken. This cuts
off the nosplit frame chain and allows x/sys to build.

Change-Id: I00b16c9db3a7467413ed48953c7f8a9a750f000a
Reviewed-on: https://go-review.googlesource.com/c/go/+/580775
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
src/runtime/proc.go