]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: record the -buildmode flag in debug.BuildInfo
authorcuiweixie <cuiweixie@gmail.com>
Thu, 8 Sep 2022 02:18:50 +0000 (02:18 +0000)
committerGopher Robot <gobot@golang.org>
Fri, 9 Sep 2022 20:25:35 +0000 (20:25 +0000)
Fixes #53856

Change-Id: Ib533e9fbe063b74c81f6512464a4dac5e2af0ccc
GitHub-Last-Rev: c2ae8d6f75badd55ba6cf8e093c496c9bd1baa49
GitHub-Pull-Request: golang/go#54218
Reviewed-on: https://go-review.googlesource.com/c/go/+/420937
Auto-Submit: Bryan Mills <bcmills@google.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: xie cui <523516579@qq.com>

src/cmd/go/internal/load/pkg.go
src/cmd/go/testdata/script/mod_list_command_line_arguments.txt
src/cmd/go/testdata/script/version.txt

index 79219d3f8dea99d4cf14fb2ac50153f114c073b8..a72b6202c8b1d205ddd62164d11c483f57cc59da 100644 (file)
@@ -2342,6 +2342,15 @@ func (p *Package) setBuildInfo(autoVCS bool) {
        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)
index fd99ae84b2e570f1c93dcf15f01b3b487870eeb6..25c68c5a8265d5efe46f9fce60b305ce06acde22 100644 (file)
@@ -14,7 +14,7 @@ go build -o a.exe a.go
 go version -m a.exe
 stdout '^\tpath\tcommand-line-arguments$'
 stdout '^\tdep\ta\t\(devel\)\t$'
-! stdout mod
+! stdout mod[^e]
 
 -- a/go.mod --
 module a
index f7ead395c0cc062ee5afbc218fd6d8ef8fc02c0a..a928067a7ef92d7b2c0d5b772f61fd896fab2dc7 100644 (file)
@@ -32,15 +32,17 @@ go build -o fortune.exe rsc.io/fortune
 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
@@ -48,6 +50,7 @@ go build -buildmode=pie -o external.exe rsc.io/fortune
 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'
 
@@ -59,6 +62,7 @@ go build -buildmode=pie -ldflags=-linkmode=internal -o internal.exe rsc.io/fortu
 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'
 
@@ -67,4 +71,4 @@ module m
 
 -- empty.go --
 package main
-func main(){}
+func main(){}
\ No newline at end of file