if BuildAsmflags.present {
appendSetting("-asmflags", BuildAsmflags.String())
}
+ buildmode := cfg.BuildBuildmode
+ if buildmode == "default" {
+ if p.Name == "main" {
+ buildmode = "exe"
+ } else {
+ buildmode = "archive"
+ }
+ }
+ appendSetting("-buildmode", buildmode)
appendSetting("-compiler", cfg.BuildContext.Compiler)
if gccgoflags := BuildGccgoflags.String(); gccgoflags != "" && cfg.BuildContext.Compiler == "gccgo" {
appendSetting("-gccgoflags", gccgoflags)
go version fortune.exe
stdout '^fortune.exe: .+'
go version -m fortune.exe
+stdout -buildmode=exe
stdout '^\tpath\trsc.io/fortune'
stdout '^\tmod\trsc.io/fortune\tv1.0.0'
# Check the build info of a binary built from $GOROOT/src/cmd
go build -o test2json.exe cmd/test2json
go version -m test2json.exe
+stdout -buildmode=exe
stdout '^test2json.exe: .+'
stdout '^\tpath\tcmd/test2json$'
-! stdout 'mod'
+! stdout 'mod[^e]'
# Repeat the test with -buildmode=pie.
[!buildmode:pie] stop
go version external.exe
stdout '^external.exe: .+'
go version -m external.exe
+stdout -buildmode=pie
stdout '^\tpath\trsc.io/fortune'
stdout '^\tmod\trsc.io/fortune\tv1.0.0'
go version internal.exe
stdout '^internal.exe: .+'
go version -m internal.exe
+stdout -buildmode=pie
stdout '^\tpath\trsc.io/fortune'
stdout '^\tmod\trsc.io/fortune\tv1.0.0'
-- empty.go --
package main
-func main(){}
+func main(){}
\ No newline at end of file