OpenBSD is bumping up against the nosplit limit, and openbsd/ppc64
is over it. Increase StackGuardMultiplier on OpenBSD, matching AIX.
Change-Id: I61e17c99ce77e1fd3f368159dc4615aeae99e913
Reviewed-on: https://go-review.googlesource.com/c/go/+/632996
Reviewed-by: Keith Randall <khr@golang.org>
Reviewed-by: Keith Randall <khr@google.com>
Auto-Submit: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
func stackGuardMultiplier(race bool) int {
// This arithmetic must match that in internal/runtime/sys/consts.go:StackGuardMultiplier.
n := 1
- // On AIX, a larger stack is needed for syscalls.
- if buildcfg.GOOS == "aix" {
+ // On AIX and OpenBSD, a larger stack is needed for syscalls.
+ if buildcfg.GOOS == "aix" || buildcfg.GOOS == "openbsd" {
n += 1
}
// The race build also needs more stack.
"internal/goos"
)
-// AIX requires a larger stack for syscalls.
+// AIX and OpenBSD require a larger stack for syscalls.
// The race build also needs more stack. See issue 54291.
// This arithmetic must match that in cmd/internal/objabi/stack.go:stackGuardMultiplier.
-const StackGuardMultiplier = 1 + goos.IsAix + isRace
+const StackGuardMultiplier = 1 + goos.IsAix + goos.IsOpenbsd + isRace
// DefaultPhysPageSize is the default physical page size.
const DefaultPhysPageSize = goarch.DefaultPhysPageSize
// run
-//go:build !nacl && !js && !aix && !wasip1 && !gcflags_noopt && gc
+//go:build !nacl && !js && !aix && !openbsd && !wasip1 && !gcflags_noopt && gc
// Copyright 2014 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style