[short] skip 'links and runs binaries' # This test requires external linking. Assume that if cgo is supported # then external linking works. [!cgo] skip 'requires a C linker' # Only run on Unix systems. [GOOS:windows] skip [GOOS:plan9] skip # Ordinary build should work. go build exec ./hello stdout Hello # Building with -linkmode=external should not say anything about # runtime/cgo (issue #31544). go build -ldflags=-linkmode=external ! stderr runtime/cgo exec ./hello stdout Hello # Some targets don't support -static [GOOS:darwin] skip 'no static linking on Darwin' [GOOS:solaris] skip 'no static linking on Solaris' # Building with -linkmode=external -extldflags=-static should work. go build -ldflags='-linkmode=external -extldflags=-static' ! stderr runtime/cgo exec ./hello stdout Hello -- go.mod -- module hello go 1.20 -- hello.go -- package main import "fmt" func main() { fmt.Println("Hello, world") }