123456789101112131415161718192021222324252627282930313233 |
- // Copyright 2011 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package objabi
- // For the linkers. Must match Go definitions.
- const (
- STACKSYSTEM = 0
- StackSystem = STACKSYSTEM
- StackBig = 4096
- StackSmall = 128
- )
- const (
- StackPreempt = -1314 // 0xfff...fade
- )
- // Initialize StackGuard and StackLimit according to target system.
- var StackGuard = 928*stackGuardMultiplier() + StackSystem
- var StackLimit = StackGuard - StackSystem - StackSmall
- // stackGuardMultiplier returns a multiplier to apply to the default
- // stack guard size. Larger multipliers are used for non-optimized
- // builds that have larger stack frames or for specific targets.
- func stackGuardMultiplier() int {
- // On AIX, a larger stack is needed for syscalls.
- if GOOS == "aix" {
- return 2
- }
- return 1
- }
|