const DefaultPkgConfig = `pkg-config`
var (
BuildA bool // -a flag
BuildBuildmode string // -buildmode flag
BuildContext = defaultContext()
BuildMod string // -mod flag
BuildI bool // -i flag
bool // -linkshared flag
BuildMSan bool // -msan flag
BuildN bool // -n flag
BuildO string // -o flag
BuildP = runtime.NumCPU() // -p flag
BuildPkgdir string // -pkgdir flag
BuildRace bool // -race flag
BuildToolexec []string // -toolexec flag
BuildToolchainName string
BuildToolchainCompiler func() string
BuildToolchainLinker func() string
BuildTrimpath bool // -trimpath flag
BuildV bool // -v flag
BuildWork bool // -work flag
BuildX bool // -x flag
CmdName string // "build", "install", "list", "mod tidy", etc.
DebugActiongraph string // -debug-actiongraph flag (undocumented, unstable)
)
These are general "build flags" used by build and other commands.
var (
Goarch = BuildContext.GOARCH
Goos = BuildContext.GOOS
ExeSuffix = exeSuffix()
// ModulesEnabled specifies whether the go command is running
// in module-aware mode (as opposed to GOPATH mode).
// It is equal to modload.Enabled, but not all packages can import modload.
ModulesEnabled bool
)
Global build parameters (used during package load)
var (
GOROOT = BuildContext.GOROOT
GOBIN = Getenv("GOBIN")
GOROOTbin = filepath.Join(GOROOT, "bin")
GOROOTpkg = filepath.Join(GOROOT, "pkg")
GOROOTsrc = filepath.Join(GOROOT, "src")
GOROOT_FINAL = findGOROOT_FINAL()
// Used in envcmd.MkEnv and build ID computations.
GOARM = envOr("GOARM", fmt.Sprint(objabi.GOARM))
GO386 = envOr("GO386", objabi.GO386)
GOMIPS = envOr("GOMIPS", objabi.GOMIPS)
GOMIPS64 = envOr("GOMIPS64", objabi.GOMIPS64)
GOPPC64 = envOr("GOPPC64", fmt.Sprintf("%s%d", "power", objabi.GOPPC64))
GOWASM = envOr("GOWASM", fmt.Sprint(objabi.GOWASM))
GOPROXY = envOr("GOPROXY", "direct")
GOSUMDB = envOr("GOSUMDB", "off")
GOPRIVATE = Getenv("GOPRIVATE")
GONOPROXY = envOr("GONOPROXY", GOPRIVATE)
GONOSUMDB = envOr("GONOSUMDB", GOPRIVATE)
)
var CmdEnv []EnvVar
CmdEnv is the new environment for running go tool commands. User binaries (during go test or go run) are run with OrigEnv, not CmdEnv.
var OSArchSupportsCgo = map[string]bool{ "aix/ppc64": true, "android/386": true, "android/amd64": true, "android/arm": true, "android/arm64": true, "darwin/386": false, "darwin/amd64": true, "darwin/arm": true, "darwin/arm64": true, "dragonfly/amd64": true, "freebsd/386": true, "freebsd/amd64": true, "freebsd/arm": true, "illumos/amd64": true, "js/wasm": false, "linux/386": true, "linux/amd64": true, "linux/arm": true, "linux/arm64": true, "linux/mips": true, "linux/mips64": true, "linux/mips64le": true, "linux/mipsle": true, "linux/ppc64": false, "linux/ppc64le": true, "linux/riscv64": true, "linux/s390x": true, "linux/sparc64": true, "nacl/386": false, "nacl/amd64p32": false, "nacl/arm": false, "netbsd/386": true, "netbsd/amd64": true, "netbsd/arm": true, "netbsd/arm64": true, "openbsd/386": true, "openbsd/amd64": true, "openbsd/arm": true, "openbsd/arm64": true, "plan9/386": false, "plan9/amd64": false, "plan9/arm": false, "solaris/amd64": true, "windows/386": true, "windows/amd64": true, "windows/arm": false, }
var OrigEnv []string
OrigEnv is the original environment of the program at startup.
func CanGetenv(key string) bool
CanGetenv reports whether key is a valid go/env configuration key.
func DefaultCC(goos, goarch string) string
func DefaultCXX(goos, goarch string) string
func EnvFile() (string, error)
EnvFile returns the name of the Go environment configuration file.
func GetArchEnv() (key, val string)
GetArchEnv returns the name and setting of the GOARCH-specific architecture environment variable. If the current architecture has no GOARCH-specific variable, GetArchEnv returns empty key and value.
func Getenv(key string) string
Getenv gets the value for the configuration key. It consults the operating system environment and then the go/env file. If Getenv is called for a key that cannot be set in the go/env file (for example GODEBUG), it panics. This ensures that CanGetenv is accurate, so that 'go env -w' stays in sync with what Getenv can retrieve.
type EnvVar struct {
Name string
Value string
}
An EnvVar is an environment variable Name=Value.