1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-03 13:49:49 +00:00

go: additional patches to help reproducibility

(From OE-Core rev: c7299f4e1cd38856885a2451c7c448c99d94b781)

Signed-off-by: Alexander Kanavin <alex@linutronix.de>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Alexander Kanavin
2022-01-01 12:29:58 +01:00
committed by Richard Purdie
parent 0111724c34
commit ab38db4926
3 changed files with 84 additions and 0 deletions
+2
View File
@@ -14,6 +14,8 @@ SRC_URI += "\
file://0007-cmd-go-make-GOROOT-precious-by-default.patch \
file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
file://0009-Revert-cmd-go-make-sure-CC-and-CXX-are-absolute.patch \
file://0001-exec.go-do-not-write-linker-flags-into-buildids.patch \
file://0001-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
"
SRC_URI[main.sha256sum] = "3defb9a09bed042403195e872dcbc8c6fae1485963332279668ec52e80a95a2d"
@@ -0,0 +1,41 @@
From bdd69b55387f80c8df18d0af5008bf5e1a66be6a Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Mon, 23 Nov 2020 19:22:04 +0000
Subject: [PATCH] exec.go: do not write linker flags into buildids
The flags can contain build-specific paths, breaking reproducibility.
To make this acceptable to upstream, we probably need to trim the flags,
removing those known to be buildhost-specific.
Upstream-Status: Inappropriate [needs upstream discussion]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
src/cmd/go/internal/work/exec.go | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
index 696db23..727d40b 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
@@ -1136,7 +1136,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
}
// Toolchain-dependent configuration, shared with b.linkSharedActionID.
- b.printLinkerConfig(h, p)
+ //b.printLinkerConfig(h, p)
// Input files.
for _, a1 := range a.Deps {
@@ -1418,7 +1418,7 @@ func (b *Builder) linkSharedActionID(a *Action) cache.ActionID {
fmt.Fprintf(h, "goos %s goarch %s\n", cfg.Goos, cfg.Goarch)
// Toolchain-dependent configuration, shared with b.linkActionID.
- b.printLinkerConfig(h, nil)
+ //b.printLinkerConfig(h, nil)
// Input files.
for _, a1 := range a.Deps {
--
2.17.1
@@ -0,0 +1,41 @@
From 2055a46b396e272616c0b2273903e02c3b49a2ff Mon Sep 17 00:00:00 2001
From: Alexander Kanavin <alex.kanavin@gmail.com>
Date: Tue, 10 Nov 2020 16:33:27 +0000
Subject: [PATCH] src/cmd/dist/buildgo.go: do not hardcode host compilers into
target binaries
These come from $CC/$CXX on the build host and are not useful on targets;
additionally as they contain host specific paths, this helps reproducibility.
Upstream-Status: Inappropriate [needs upstream discussion]
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
---
src/cmd/dist/buildgo.go | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/cmd/dist/buildgo.go b/src/cmd/dist/buildgo.go
index caafc13..4eb1c96 100644
--- a/src/cmd/dist/buildgo.go
+++ b/src/cmd/dist/buildgo.go
@@ -34,8 +34,8 @@ func mkzdefaultcc(dir, file string) {
fmt.Fprintf(&buf, "package cfg\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "const DefaultPkgConfig = `%s`\n", defaultpkgconfig)
- buf.WriteString(defaultCCFunc("DefaultCC", defaultcc))
- buf.WriteString(defaultCCFunc("DefaultCXX", defaultcxx))
+ buf.WriteString(defaultCCFunc("DefaultCC", map[string]string{"":"gcc"}))
+ buf.WriteString(defaultCCFunc("DefaultCXX", map[string]string{"":"g++"}))
writefile(buf.String(), file, writeSkipSame)
return
}
@@ -46,8 +46,8 @@ func mkzdefaultcc(dir, file string) {
fmt.Fprintf(&buf, "package main\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n", defaultpkgconfig)
- buf.WriteString(defaultCCFunc("defaultCC", defaultcc))
- buf.WriteString(defaultCCFunc("defaultCXX", defaultcxx))
+ buf.WriteString(defaultCCFunc("defaultCC", map[string]string{"":"gcc"}))
+ buf.WriteString(defaultCCFunc("defaultCXX", map[string]string{"":"g++"}))
writefile(buf.String(), file, writeSkipSame)
}