1
0
mirror of https://github.com/golang/go synced 2024-11-21 23:44:39 -07:00

trim paths from ldflags in BuildInfo instead of removing them

Fixes #63432
This commit is contained in:
Laurent Goderre 2024-07-22 14:53:20 -04:00
parent 3145a2fed6
commit 7f6c9d55dd
2 changed files with 29 additions and 1 deletions

View File

@ -2348,8 +2348,9 @@ func (p *Package) setBuildInfo(ctx context.Context, autoVCS bool) {
// redact only those paths from the recorded -ldflags setting and still
// record the system-independent parts of the flags.
if !cfg.BuildTrimpath {
appendSetting("-ldflags", ldflags)
ldflags = trimLdFlags(ldflags)
}
appendSetting("-ldflags", ldflags)
}
if cfg.BuildCover {
appendSetting("-cover", "true")
@ -2505,6 +2506,12 @@ omitVCS:
p.Internal.BuildInfo = info
}
// trimLdFlags replaces know paths with variable and removes
// flags with absolute paths
func trimLdFlags(flags string) string {
return flags
}
// SafeArg reports whether arg is a "safe" command-line argument,
// meaning that when it appears in a command-line, it probably
// doesn't have some special meaning other than its own name.

View File

@ -247,6 +247,27 @@ build -ldflags="-flag1 -flag2"
build CGO_ENABLED=0
build GOARCH=foo
build GOOS=bar
`,
},
{
name: "ldflags with trimpath",
buildContext: map[string]string{
"arch": "foo",
"os": "bar",
"compiler": "baz",
"cgo": "false",
"ldflags": "-flag1 -flag2",
"trimpath": "true",
},
pkg: Package{},
autoVCS: true,
want: `build -buildmode=
build -compiler=baz
build -ldflags="-flag1 -flag2"
build -trimpath=true
build CGO_ENABLED=0
build GOARCH=foo
build GOOS=bar
`,
},
{