...

Package platform

import "internal/platform"
Overview
Index

Overview ▾

Variables

List is the list of all valid GOOS/GOARCH combinations, including known-broken ports.

var List = []OSArch{
    {"aix", "ppc64"},
    {"android", "386"},
    {"android", "amd64"},
    {"android", "arm"},
    {"android", "arm64"},
    {"darwin", "amd64"},
    {"darwin", "arm64"},
    {"dragonfly", "amd64"},
    {"freebsd", "386"},
    {"freebsd", "amd64"},
    {"freebsd", "arm"},
    {"freebsd", "arm64"},
    {"freebsd", "riscv64"},
    {"illumos", "amd64"},
    {"ios", "amd64"},
    {"ios", "arm64"},
    {"js", "wasm"},
    {"linux", "386"},
    {"linux", "amd64"},
    {"linux", "arm"},
    {"linux", "arm64"},
    {"linux", "loong64"},
    {"linux", "mips"},
    {"linux", "mips64"},
    {"linux", "mips64le"},
    {"linux", "mipsle"},
    {"linux", "ppc64"},
    {"linux", "ppc64le"},
    {"linux", "riscv64"},
    {"linux", "s390x"},
    {"linux", "sparc64"},
    {"netbsd", "386"},
    {"netbsd", "amd64"},
    {"netbsd", "arm"},
    {"netbsd", "arm64"},
    {"openbsd", "386"},
    {"openbsd", "amd64"},
    {"openbsd", "arm"},
    {"openbsd", "arm64"},
    {"openbsd", "mips64"},
    {"openbsd", "ppc64"},
    {"openbsd", "riscv64"},
    {"plan9", "386"},
    {"plan9", "amd64"},
    {"plan9", "arm"},
    {"solaris", "amd64"},
    {"wasip1", "wasm"},
    {"windows", "386"},
    {"windows", "amd64"},
    {"windows", "arm"},
    {"windows", "arm64"},
}

func ASanSupported

func ASanSupported(goos, goarch string) bool

ASanSupported reports whether goos/goarch supports the address sanitizer option.

func Broken

func Broken(goos, goarch string) bool

Broken reportsr whether goos/goarch is considered a broken port. (See https://go.dev/wiki/PortingPolicy#broken-ports.)

func BuildModeSupported

func BuildModeSupported(compiler, buildmode, goos, goarch string) bool

BuildModeSupported reports whether goos/goarch supports the given build mode using the given compiler. There is a copy of this function in cmd/dist/test.go.

func CgoSupported

func CgoSupported(goos, goarch string) bool

CgoSupported reports whether goos/goarch supports cgo.

func DefaultPIE

func DefaultPIE(goos, goarch string, isRace bool) bool

DefaultPIE reports whether goos/goarch produces a PIE binary when using the "default" buildmode. On Windows this is affected by -race, so force the caller to pass that in to centralize that choice.

func ExecutableHasDWARF

func ExecutableHasDWARF(goos, goarch string) bool

ExecutableHasDWARF reports whether the linked executable includes DWARF symbols on goos/goarch.

func FirstClass

func FirstClass(goos, goarch string) bool

FirstClass reports whether goos/goarch is considered a “first class” port. (See https://go.dev/wiki/PortingPolicy#first-class-ports.)

func FuzzInstrumented

func FuzzInstrumented(goos, goarch string) bool

FuzzInstrumented reports whether fuzzing on goos/goarch uses coverage instrumentation. (FuzzInstrumented implies FuzzSupported.)

func FuzzSupported

func FuzzSupported(goos, goarch string) bool

FuzzSupported reports whether goos/goarch supports fuzzing ('go test -fuzz=.').

func InternalLinkPIESupported

func InternalLinkPIESupported(goos, goarch string) bool

func MSanSupported

func MSanSupported(goos, goarch string) bool

MSanSupported reports whether goos/goarch supports the memory sanitizer option.

func MustLinkExternal

func MustLinkExternal(goos, goarch string, withCgo bool) bool

MustLinkExternal reports whether goos/goarch requires external linking with or without cgo dependencies.

func RaceDetectorSupported

func RaceDetectorSupported(goos, goarch string) bool

RaceDetectorSupported reports whether goos/goarch supports the race detector. There is a copy of this function in cmd/dist/test.go. Race detector only supports 48-bit VMA on arm64. But it will always return true for arm64, because we don't have VMA size information during the compile time.

type OSArch

An OSArch is a pair of GOOS and GOARCH values indicating a platform.

type OSArch struct {
    GOOS, GOARCH string
}

func (OSArch) String

func (p OSArch) String() string