buildcfg

package standard library
go1.19.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 1, 2022 License: BSD-3-Clause Imports: 7 Imported by: 0

Documentation

Overview

Package buildcfg provides access to the build configuration described by the current environment. It is for use by build tools such as cmd/go or cmd/compile and for setting up go/build's Default context.

Note that it does NOT provide access to the build configuration used to build the currently-running binary. For that, use runtime.GOOS etc as well as internal/goexperiment.

Index

Constants

View Source
const DefaultGOEXPERIMENT = defaultGOEXPERIMENT

DefaultGOEXPERIMENT is the embedded default GOEXPERIMENT string. It is not guaranteed to be canonical.

Variables

View Source
var (
	GOROOT   = runtime.GOROOT() // cached for efficiency
	GOARCH   = envOr("GOARCH", defaultGOARCH)
	GOOS     = envOr("GOOS", defaultGOOS)
	GO386    = envOr("GO386", defaultGO386)
	GOAMD64  = goamd64()
	GOARM    = goarm()
	GOMIPS   = gomips()
	GOMIPS64 = gomips64()
	GOPPC64  = goppc64()
	GOWASM   = gowasm()
	GO_LDSO  = defaultGO_LDSO
	Version  = version
)
View Source
var Error error

Error is one of the errors found (if any) in the build configuration.

View Source
var FramePointerEnabled = GOARCH == "amd64" || GOARCH == "arm64"

FramePointerEnabled enables the use of platform conventions for saving frame pointers.

This used to be an experiment, but now it's always enabled on platforms that support it.

Note: must agree with runtime.framepointer_enabled.

Functions

func Check

func Check()

Check exits the program with a fatal error if Error is non-nil.

func Getgoextlinkenabled

func Getgoextlinkenabled() string

Types

type ExperimentFlags added in go1.19

type ExperimentFlags struct {
	goexperiment.Flags
	// contains filtered or unexported fields
}

ExperimentFlags represents a set of GOEXPERIMENT flags relative to a baseline (platform-default) experiment configuration.

var Experiment ExperimentFlags = func() ExperimentFlags {
	flags, err := ParseGOEXPERIMENT(GOOS, GOARCH, envOr("GOEXPERIMENT", defaultGOEXPERIMENT))
	if err != nil {
		Error = err
		return ExperimentFlags{}
	}
	return *flags
}()

Experiment contains the toolchain experiments enabled for the current build.

(This is not necessarily the set of experiments the compiler itself was built with.)

experimentBaseline specifies the experiment flags that are enabled by default in the current toolchain. This is, in effect, the "control" configuration and any variation from this is an experiment.

func ParseGOEXPERIMENT

func ParseGOEXPERIMENT(goos, goarch, goexp string) (*ExperimentFlags, error)

ParseGOEXPERIMENT parses a (GOOS, GOARCH, GOEXPERIMENT) configuration tuple and returns the enabled and baseline experiment flag sets.

TODO(mdempsky): Move to internal/goexperiment.

func (*ExperimentFlags) All added in go1.19

func (exp *ExperimentFlags) All() []string

All returns a list of all experiment settings. Disabled experiments appear in the list prefixed by "no".

func (*ExperimentFlags) Enabled added in go1.19

func (exp *ExperimentFlags) Enabled() []string

Enabled returns a list of enabled experiments, as lower-cased experiment names.

func (*ExperimentFlags) String added in go1.19

func (exp *ExperimentFlags) String() string

String returns the canonical GOEXPERIMENT string to enable this experiment configuration. (Experiments in the same state as in the baseline are elided.)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL