From 18011f72125bbea273d07ee5d792ac0ce6059572 Mon Sep 17 00:00:00 2001
From: Richard Purdie <richard.purdie@linuxfoundation.org>
Date: Sat, 2 Jul 2022 23:08:13 +0100
Subject: [PATCH 9/9] go: Filter build paths on staticly linked arches

Filter out build time paths from ldflags and other flags variables when they're
embedded in the go binary so that builds are reproducible regardless of build
location. This codepath is hit for statically linked go binaries such as those
on mips/ppc.

Upstream-Status: Submitted [https://github.com/golang/go/pull/56410]

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 src/cmd/go/internal/load/pkg.go | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/cmd/go/internal/load/pkg.go b/src/cmd/go/internal/load/pkg.go
index 56a4e5e..22edbdb 100644
--- a/src/cmd/go/internal/load/pkg.go
+++ b/src/cmd/go/internal/load/pkg.go
@@ -2266,6 +2266,17 @@ func (p *Package) collectDeps() {
 // to their VCS information (vcsStatusError).
 var vcsStatusCache par.Cache
 
+func filterCompilerFlags(flags string) string {
+	var newflags []string
+	for _, flag := range strings.Fields(flags) {
+		if strings.HasPrefix(flag, "--sysroot") || strings.HasPrefix(flag, "-fmacro-prefix-map") || strings.HasPrefix(flag, "-fdebug-prefix-map") {
+			continue
+		}
+		newflags = append(newflags, flag)
+	}
+	return strings.Join(newflags, " ")
+}
+
 // setBuildInfo gathers build information, formats it as a string to be
 // embedded in the binary, then sets p.Internal.BuildInfo to that string.
 // setBuildInfo should only be called on a main package with no errors.
@@ -2372,7 +2383,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
 	if gcflags := BuildGcflags.String(); gcflags != "" && cfg.BuildContext.Compiler == "gc" {
 		appendSetting("-gcflags", gcflags)
 	}
-	if ldflags := BuildLdflags.String(); ldflags != "" {
+	if ldflags := filterCompilerFlags(BuildLdflags.String()); ldflags != "" {
 		// https://go.dev/issue/52372: only include ldflags if -trimpath is not set,
 		// since it can include system paths through various linker flags (notably
 		// -extar, -extld, and -extldflags).
@@ -2418,7 +2429,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
 	// subset of flags that are known not to be paths?
 	if cfg.BuildContext.CgoEnabled && !cfg.BuildTrimpath {
 		for _, name := range []string{"CGO_CFLAGS", "CGO_CPPFLAGS", "CGO_CXXFLAGS", "CGO_LDFLAGS"} {
-			appendSetting(name, cfg.Getenv(name))
+			appendSetting(name, filterCompilerFlags(cfg.Getenv(name)))
 		}
 	}
 	appendSetting("GOARCH", cfg.BuildContext.GOARCH)
-- 
2.30.2

