* [PATCH 1/2] go: bump 1.21.0
@ 2023-12-07 10:07 Jose Quaresma
2023-12-07 10:07 ` [PATCH 2/2] go: upgrade 1.21.0 -> 1.21.5 Jose Quaresma
2023-12-07 23:23 ` [OE-core] [PATCH 1/2] go: bump 1.21.0 Alexandre Belloni
0 siblings, 2 replies; 4+ messages in thread
From: Jose Quaresma @ 2023-12-07 10:07 UTC (permalink / raw)
To: openembedded-core; +Cc: ricardo, Jose Quaresma
Go 1.21 Release Notes
https://go.dev/doc/go1.21
Rework the patch 0005-cmd-dist-separate-host-and-target-builds.patch
to avoid identation, it's more hard to read but easy to rebase.
Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
meta/conf/distro/include/tcmode-default.inc | 2 +-
.../go/{go-1.20.12.inc => go-1.21.0.inc} | 2 +-
..._1.20.12.bb => go-binary-native_1.21.0.bb} | 6 +-
...1.20.12.bb => go-cross-canadian_1.21.0.bb} | 0
...go-cross_1.20.12.bb => go-cross_1.21.0.bb} | 0
...sssdk_1.20.12.bb => go-crosssdk_1.21.0.bb} | 0
...-native_1.20.12.bb => go-native_1.21.0.bb} | 0
...untime_1.20.12.bb => go-runtime_1.21.0.bb} | 0
...ent-based-hash-generation-less-pedan.patch | 35 ++--
...OOLDIR-to-be-overridden-in-the-envir.patch | 17 +-
...3-ld-add-soname-to-shareable-objects.patch | 13 +-
...de-CC-when-building-dist-and-go_boot.patch | 15 +-
...dist-separate-host-and-target-builds.patch | 192 ++++++------------
...d-go-make-GOROOT-precious-by-default.patch | 27 +--
...not-write-linker-flags-into-buildids.patch | 12 +-
...ldgo.go-do-not-hardcode-host-compile.patch | 12 +-
...uild-paths-on-staticly-linked-arches.patch | 23 ++-
.../go/{go_1.20.12.bb => go_1.21.0.bb} | 0
18 files changed, 152 insertions(+), 204 deletions(-)
rename meta/recipes-devtools/go/{go-1.20.12.inc => go-1.21.0.inc} (89%)
rename meta/recipes-devtools/go/{go-binary-native_1.20.12.bb => go-binary-native_1.21.0.bb} (78%)
rename meta/recipes-devtools/go/{go-cross-canadian_1.20.12.bb => go-cross-canadian_1.21.0.bb} (100%)
rename meta/recipes-devtools/go/{go-cross_1.20.12.bb => go-cross_1.21.0.bb} (100%)
rename meta/recipes-devtools/go/{go-crosssdk_1.20.12.bb => go-crosssdk_1.21.0.bb} (100%)
rename meta/recipes-devtools/go/{go-native_1.20.12.bb => go-native_1.21.0.bb} (100%)
rename meta/recipes-devtools/go/{go-runtime_1.20.12.bb => go-runtime_1.21.0.bb} (100%)
rename meta/recipes-devtools/go/{go_1.20.12.bb => go_1.21.0.bb} (100%)
diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 707402e6eb..feebe5d30e 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -23,7 +23,7 @@ GDBVERSION ?= "13.%"
GLIBCVERSION ?= "2.38%"
LINUXLIBCVERSION ?= "6.5%"
QEMUVERSION ?= "8.1%"
-GOVERSION ?= "1.20%"
+GOVERSION ?= "1.21%"
LLVMVERSION ?= "17.%"
RUSTVERSION ?= "1.70%"
diff --git a/meta/recipes-devtools/go/go-1.20.12.inc b/meta/recipes-devtools/go/go-1.21.0.inc
similarity index 89%
rename from meta/recipes-devtools/go/go-1.20.12.inc
rename to meta/recipes-devtools/go/go-1.21.0.inc
index 9be56c6707..2933793b8b 100644
--- a/meta/recipes-devtools/go/go-1.20.12.inc
+++ b/meta/recipes-devtools/go/go-1.21.0.inc
@@ -15,4 +15,4 @@ SRC_URI += "\
file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \
"
-SRC_URI[main.sha256sum] = "c5bf934751d31c315c1d0bb5fb02296545fa6d08923566f7a5afec81f2ed27d6"
+SRC_URI[main.sha256sum] = "818d46ede85682dd551ad378ef37a4d247006f12ec59b5b755601d2ce114369a"
diff --git a/meta/recipes-devtools/go/go-binary-native_1.20.12.bb b/meta/recipes-devtools/go/go-binary-native_1.21.0.bb
similarity index 78%
rename from meta/recipes-devtools/go/go-binary-native_1.20.12.bb
rename to meta/recipes-devtools/go/go-binary-native_1.21.0.bb
index e555412a19..0b8086e7b9 100644
--- a/meta/recipes-devtools/go/go-binary-native_1.20.12.bb
+++ b/meta/recipes-devtools/go/go-binary-native_1.21.0.bb
@@ -9,9 +9,9 @@ PROVIDES = "go-native"
# Checksums available at https://go.dev/dl/
SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
-SRC_URI[go_linux_amd64.sha256sum] = "9c5d48c54dd8b0a3b2ef91b0f92a1190aa01f11d26e98033efa64c46a30bba7b"
-SRC_URI[go_linux_arm64.sha256sum] = "8afe8e3fb6972eaa2179ef0a71678c67f26509fab4f0f67c4b00f4cdfa92dc87"
-SRC_URI[go_linux_ppc64le.sha256sum] = "2ae0ec3736216dfbd7b01ff679842dc1bed365e53a024d522645bcffd01c7328"
+SRC_URI[go_linux_amd64.sha256sum] = "d0398903a16ba2232b389fb31032ddf57cac34efda306a0eebac34f0965a0742"
+SRC_URI[go_linux_arm64.sha256sum] = "f3d4548edf9b22f26bbd49720350bbfe59d75b7090a1a2bff1afad8214febaf3"
+SRC_URI[go_linux_ppc64le.sha256sum] = "e938ffc81d8ebe5efc179240960ba22da6a841ff05d5cab7ce2547112b14a47f"
UPSTREAM_CHECK_URI = "https://golang.org/dl/"
UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.20.12.bb b/meta/recipes-devtools/go/go-cross-canadian_1.21.0.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-cross-canadian_1.20.12.bb
rename to meta/recipes-devtools/go/go-cross-canadian_1.21.0.bb
diff --git a/meta/recipes-devtools/go/go-cross_1.20.12.bb b/meta/recipes-devtools/go/go-cross_1.21.0.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-cross_1.20.12.bb
rename to meta/recipes-devtools/go/go-cross_1.21.0.bb
diff --git a/meta/recipes-devtools/go/go-crosssdk_1.20.12.bb b/meta/recipes-devtools/go/go-crosssdk_1.21.0.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-crosssdk_1.20.12.bb
rename to meta/recipes-devtools/go/go-crosssdk_1.21.0.bb
diff --git a/meta/recipes-devtools/go/go-native_1.20.12.bb b/meta/recipes-devtools/go/go-native_1.21.0.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-native_1.20.12.bb
rename to meta/recipes-devtools/go/go-native_1.21.0.bb
diff --git a/meta/recipes-devtools/go/go-runtime_1.20.12.bb b/meta/recipes-devtools/go/go-runtime_1.21.0.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-runtime_1.20.12.bb
rename to meta/recipes-devtools/go/go-runtime_1.21.0.bb
diff --git a/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch b/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
index 9a2551031a..3bd756449e 100644
--- a/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
+++ b/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
@@ -1,4 +1,4 @@
-From 10766ca6f4007b96e3f6bf4fb496e5df74397eb9 Mon Sep 17 00:00:00 2001
+From 9a6c5040cbcd88b10ceb8ceaebc8d6158c086670 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 28 Mar 2022 10:59:03 -0700
Subject: [PATCH 1/9] cmd/go: make content-based hash generation less pedantic
@@ -25,16 +25,17 @@ Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Alex Kube <alexander.j.kube@gmail.com>
Signed-off-by: Matt Madison <matt@madison.systems>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
src/cmd/go/internal/envcmd/env.go | 2 +-
src/cmd/go/internal/work/exec.go | 44 ++++++++++++++++++++++++-------
2 files changed, 36 insertions(+), 10 deletions(-)
diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
-index 66ef5ce..fb7448a 100644
+index c7c2e83..4a90d9d 100644
--- a/src/cmd/go/internal/envcmd/env.go
+++ b/src/cmd/go/internal/envcmd/env.go
-@@ -183,7 +183,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar {
+@@ -189,7 +189,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar {
}
}()
@@ -44,10 +45,10 @@ index 66ef5ce..fb7448a 100644
// Should not happen - b.CFlags was given an empty package.
fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
-index 67d1193..62e1774 100644
+index 13d2a78..e3dd486 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
-@@ -223,6 +223,8 @@ func (b *Builder) Do(ctx context.Context, root *Action) {
+@@ -231,6 +231,8 @@ func (b *Builder) Do(ctx context.Context, root *Action) {
writeActionGraph()
}
@@ -56,7 +57,7 @@ index 67d1193..62e1774 100644
// buildActionID computes the action ID for a build action.
func (b *Builder) buildActionID(a *Action) cache.ActionID {
p := a.Package
-@@ -244,7 +246,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+@@ -252,7 +254,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
if p.Module != nil {
fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, p.Module.Version)
}
@@ -65,7 +66,7 @@ index 67d1193..62e1774 100644
// The Go compiler always hides the exact value of $GOROOT
// when building things in GOROOT.
//
-@@ -276,9 +278,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+@@ -284,9 +286,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
}
if len(p.CgoFiles)+len(p.SwigFiles)+len(p.SwigCXXFiles) > 0 {
fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
@@ -77,7 +78,7 @@ index 67d1193..62e1774 100644
fmt.Fprintf(h, "CC=%q %q %q %q\n", ccExe, cppflags, cflags, ldflags)
// Include the C compiler tool ID so that if the C
// compiler changes we rebuild the package.
-@@ -286,14 +288,14 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+@@ -294,14 +296,14 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
fmt.Fprintf(h, "CC ID=%q\n", ccID)
}
if len(p.CXXFiles)+len(p.SwigCXXFiles) > 0 {
@@ -94,16 +95,16 @@ index 67d1193..62e1774 100644
fmt.Fprintf(h, "FC=%q %q\n", fcExe, fflags)
if fcID, _, err := b.gccToolID(fcExe[0], "f95"); err == nil {
fmt.Fprintf(h, "FC ID=%q\n", fcID)
-@@ -310,7 +312,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
+@@ -318,7 +320,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
}
}
- if p.Internal.BuildInfo != "" {
-- fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
-+ //fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
+ if p.Internal.BuildInfo != nil {
+- fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo.String())
++ //fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo.String())
}
// Configuration specific to compiler toolchain.
-@@ -2989,8 +2991,25 @@ func envList(key, def string) []string {
+@@ -3137,8 +3139,25 @@ func envList(key, def string) []string {
return args
}
@@ -130,7 +131,7 @@ index 67d1193..62e1774 100644
if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
return
}
-@@ -3006,6 +3025,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
+@@ -3154,6 +3173,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
if ldflags, err = buildFlags("LDFLAGS", defaultCFlags, p.CgoLDFLAGS, checkLinkerFlags); err != nil {
return
}
@@ -144,7 +145,7 @@ index 67d1193..62e1774 100644
return
}
-@@ -3021,7 +3047,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
+@@ -3169,7 +3195,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) {
p := a.Package
@@ -153,7 +154,7 @@ index 67d1193..62e1774 100644
if err != nil {
return nil, nil, err
}
-@@ -3577,7 +3603,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
+@@ -3725,7 +3751,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
// Run SWIG on one SWIG input file.
func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
@@ -163,5 +164,5 @@ index 67d1193..62e1774 100644
return "", "", err
}
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch b/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
index 6abd424733..cf7ad02f86 100644
--- a/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
+++ b/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
@@ -1,4 +1,4 @@
-From 5cca2fa5997292a87302bdc7e7ed3231371e98bd Mon Sep 17 00:00:00 2001
+From e3f9a8a69d3a340c1a1d0bba566e71f20f635a43 Mon Sep 17 00:00:00 2001
From: Alex Kube <alexander.j.kube@gmail.com>
Date: Wed, 23 Oct 2019 21:15:37 +0430
Subject: [PATCH 2/9] cmd/go: Allow GOTOOLDIR to be overridden in the
@@ -13,16 +13,17 @@ Matt Madison <matt@madison.systems>.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
src/cmd/dist/build.go | 4 +++-
src/cmd/go/internal/cfg/cfg.go | 6 +++++-
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
-index c36a12e..5d31718 100644
+index 8973a87..adc9fd2 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
-@@ -264,7 +264,9 @@ func xinit() {
+@@ -259,7 +259,9 @@ func xinit() {
}
xatexit(rmworkdir)
@@ -30,14 +31,14 @@ index c36a12e..5d31718 100644
+ if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
+ tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
+ }
- }
- // compilerEnv returns a map from "goos/goarch" to the
+ goversion := findgoversion()
+ isRelease = strings.HasPrefix(goversion, "release.") || strings.HasPrefix(goversion, "go")
diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go
-index 3257140..bb46253 100644
+index 8a82e55..1141fc2 100644
--- a/src/cmd/go/internal/cfg/cfg.go
+++ b/src/cmd/go/internal/cfg/cfg.go
-@@ -229,7 +229,11 @@ func SetGOROOT(goroot string, isTestGo bool) {
+@@ -231,7 +231,11 @@ func SetGOROOT(goroot string, isTestGo bool) {
// This matches the initialization of ToolDir in go/build, except for
// using ctxt.GOROOT and the installed GOOS and GOARCH rather than the
// GOROOT, GOOS, and GOARCH reported by the runtime package.
@@ -51,5 +52,5 @@ index 3257140..bb46253 100644
}
}
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch b/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
index ced0be1998..8afa28aab0 100644
--- a/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
+++ b/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
@@ -1,4 +1,4 @@
-From c7536a820f713013ab1d4acef74a4c8bd970bf8f Mon Sep 17 00:00:00 2001
+From 7dde77b3ce8138314dd2736604b1b110dbcc0ac1 Mon Sep 17 00:00:00 2001
From: Alex Kube <alexander.j.kube@gmail.com>
Date: Wed, 23 Oct 2019 21:16:32 +0430
Subject: [PATCH 3/9] ld: add soname to shareable objects
@@ -13,15 +13,16 @@ Matt Madison <matt@madison.systems>.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
src/cmd/link/internal/ld/lib.go | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
-index 03b9f11..e91c92f 100644
+index 91e2d51..e98b912 100644
--- a/src/cmd/link/internal/ld/lib.go
+++ b/src/cmd/link/internal/ld/lib.go
-@@ -1504,6 +1504,7 @@ func (ctxt *Link) hostlink() {
+@@ -1554,6 +1554,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
@@ -29,7 +30,7 @@ index 03b9f11..e91c92f 100644
if ctxt.HeadType == objabi.Hwindows {
argv = addASLRargs(argv, *flagAslr)
} else {
-@@ -1519,6 +1520,7 @@ func (ctxt *Link) hostlink() {
+@@ -1569,6 +1570,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
@@ -37,7 +38,7 @@ index 03b9f11..e91c92f 100644
case BuildModePlugin:
if ctxt.HeadType == objabi.Hdarwin {
argv = append(argv, "-dynamiclib")
-@@ -1527,6 +1529,7 @@ func (ctxt *Link) hostlink() {
+@@ -1577,6 +1579,7 @@ func (ctxt *Link) hostlink() {
argv = append(argv, "-Wl,-z,relro")
}
argv = append(argv, "-shared")
@@ -46,5 +47,5 @@ index 03b9f11..e91c92f 100644
}
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch b/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
index 85e42f7660..5dd2621adc 100644
--- a/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
+++ b/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
@@ -1,4 +1,4 @@
-From 31ff609cc3d3bfcc2f2257fda1dbaafaec31eb0b Mon Sep 17 00:00:00 2001
+From 9f59e46991074d3e3c4d00f3971e62bfcd707167 Mon Sep 17 00:00:00 2001
From: Alex Kube <alexander.j.kube@gmail.com>
Date: Wed, 23 Oct 2019 21:17:16 +0430
Subject: [PATCH 4/9] make.bash: override CC when building dist and
@@ -13,24 +13,25 @@ Matt Madison <matt@madison.systems>.
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
src/make.bash | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/make.bash b/src/make.bash
-index c07f39b..6ca7242 100755
+index 755b3b0..eddfc3c 100755
--- a/src/make.bash
+++ b/src/make.bash
-@@ -194,7 +194,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
+@@ -198,7 +198,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
exit 1
fi
rm -f cmd/dist/dist
--GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
-+CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
+-GOROOT="$GOROOT_BOOTSTRAP" nogoenv "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
++CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" nogoenv "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
# -e doesn't propagate out of eval, so check success by hand.
eval $(./cmd/dist/dist env -p || echo FAIL=true)
-@@ -219,7 +219,7 @@ fi
+@@ -223,7 +223,7 @@ fi
# Run dist bootstrap to complete make.bash.
# Bootstrap installs a proper cmd/dist, built with the new toolchain.
# Throw ours, built with the bootstrap toolchain, away after bootstrap.
@@ -40,5 +41,5 @@ index c07f39b..6ca7242 100755
# DO NOT ADD ANY NEW CODE HERE.
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch b/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
index 29598449da..f8dca65ed4 100644
--- a/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
+++ b/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
@@ -1,10 +1,8 @@
-From 7a191e5191c8b813e929caedb3f3918bb08692a1 Mon Sep 17 00:00:00 2001
+From 6dda78d528e60993a4688cd9d49440a726378ac8 Mon Sep 17 00:00:00 2001
From: Alex Kube <alexander.j.kube@gmail.com>
Date: Wed, 23 Oct 2019 21:18:12 +0430
Subject: [PATCH 5/9] cmd/dist: separate host and target builds
-Upstream-Status: Inappropriate [OE specific]
-
Change the dist tool to allow for OE-style cross-
and cross-canadian builds:
@@ -33,41 +31,48 @@ Adapted to Go 1.13 from patches originally submitted to
the meta/recipes-devtools/go tree by
Matt Madison <matt@madison.systems>.
+Rework the patch to avoid identation, it's more hard to read but
+easy to rebase.
+Jose Quaresma <jose.quaresma@foundries.io>
+
+Upstream-Status: Inappropriate [OE specific]
+
Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
- src/cmd/dist/build.go | 152 +++++++++++++++++++++++++++++++-----------
- 1 file changed, 113 insertions(+), 39 deletions(-)
+ src/cmd/dist/build.go | 76 ++++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 75 insertions(+), 1 deletion(-)
diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
-index 5d31718..1c7f308 100644
+index adc9fd2..5fff592 100644
--- a/src/cmd/dist/build.go
+++ b/src/cmd/dist/build.go
-@@ -44,6 +44,7 @@ var (
+@@ -46,6 +46,7 @@ var (
goexperiment string
workdir string
tooldir string
+ build_tooldir string
oldgoos string
oldgoarch string
- exe string
-@@ -55,6 +56,7 @@ var (
- rebuildall bool
- defaultclang bool
- noOpt bool
-+ crossBuild bool
+ oldgocache string
+@@ -58,6 +59,7 @@ var (
+ rebuildall bool
+ noOpt bool
+ isRelease bool
++ crossBuild bool
vflag int // verbosity
)
-@@ -267,6 +269,8 @@ func xinit() {
- if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
- tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
- }
+@@ -265,6 +267,8 @@ func xinit() {
+
+ goversion := findgoversion()
+ isRelease = strings.HasPrefix(goversion, "release.") || strings.HasPrefix(goversion, "go")
+
+ build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
}
// compilerEnv returns a map from "goos/goarch" to the
-@@ -468,8 +472,10 @@ func setup() {
+@@ -499,8 +503,10 @@ func setup() {
goosGoarch := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
if rebuildall {
xremoveall(goosGoarch)
@@ -78,16 +83,18 @@ index 5d31718..1c7f308 100644
xatexit(func() {
if files := xreaddir(goosGoarch); len(files) == 0 {
xremove(goosGoarch)
-@@ -1276,17 +1282,35 @@ func cmdbootstrap() {
+@@ -1344,14 +1350,20 @@ func cmdbootstrap() {
+ defer timelog("end", "dist bootstrap")
- var noBanner, noClean bool
- var debug bool
+ var debug, distpack, force, noBanner, noClean bool
+ var hostOnly bool
+ var targetOnly bool
+ var toBuild = []string{"std", "cmd"}
+
flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process")
+ flag.BoolVar(&distpack, "distpack", distpack, "write distribution files to pkg/distpack")
+ flag.BoolVar(&force, "force", force, "build even if the port is marked as broken")
flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner")
flag.BoolVar(&noClean, "no-clean", noClean, "print deprecation warning")
+ flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target")
@@ -98,6 +105,8 @@ index 5d31718..1c7f308 100644
if noClean {
xprintf("warning: --no-clean is deprecated and has no effect; use 'go install std cmd' instead\n")
+@@ -1363,6 +1375,18 @@ func cmdbootstrap() {
+ "Use the -force flag to build anyway.\n", goos, goarch)
}
+ if hostOnly && targetOnly {
@@ -115,47 +124,46 @@ index 5d31718..1c7f308 100644
// Set GOPATH to an internal directory. We shouldn't actually
// need to store files here, since the toolchain won't
// depend on modules outside of vendor directories, but if
-@@ -1354,9 +1378,14 @@ func cmdbootstrap() {
+@@ -1440,9 +1464,14 @@ func cmdbootstrap() {
xprintf("\n")
}
-- gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
-- setNoOpt()
-- goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
+ // For split host/target cross/cross-canadian builds, we don't
+ // want to be setting these flags until after we have compiled
+ // the toolchain that runs on the build host.
+ if !crossBuild {
-+ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
-+ setNoOpt()
-+ goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
-+ }
+ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
+ setNoOpt()
+ goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
++}
goBootstrap := pathf("%s/go_bootstrap", tooldir)
- cmdGo := pathf("%s/go", gorootBin)
if debug {
-@@ -1385,7 +1414,11 @@ func cmdbootstrap() {
+ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
+@@ -1470,7 +1499,11 @@ func cmdbootstrap() {
xprintf("\n")
}
xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n")
-- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+ if crossBuild {
++ if !crossBuild {
+ os.Setenv("CC", compilerEnvLookup("CC", defaultcc, goos, goarch))
++} else {
+ os.Setenv("CC", defaultcc[""])
-+ } else {
-+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
+ }
// Now that cmd/go is in charge of the build process, enable GOEXPERIMENT.
os.Setenv("GOEXPERIMENT", goexperiment)
- goInstall(goBootstrap, toolchain...)
-@@ -1421,46 +1454,84 @@ func cmdbootstrap() {
- copyfile(pathf("%s/compile3", tooldir), pathf("%s/compile", tooldir), writeExec)
+ // No need to enable PGO for toolchain2.
+@@ -1523,6 +1556,7 @@ func cmdbootstrap() {
+ os.Setenv("GOCACHE", oldgocache)
}
-- if goos == oldgoos && goarch == oldgoarch {
-- // Common case - not setting up for cross-compilation.
-- timelog("build", "toolchain")
-- if vflag > 0 {
-- xprintf("\n")
-+ if crossBuild {
++ if !crossBuild {
+ if goos == oldgoos && goarch == oldgoarch {
+ // Common case - not setting up for cross-compilation.
+ timelog("build", "toolchain")
+@@ -1566,6 +1600,42 @@ func cmdbootstrap() {
+ checkNotStale(toolenv(), goBootstrap, toolchain...)
+ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
+ }
++} else {
+ gogcflags = os.Getenv("GO_GCFLAGS")
+ goldflags = os.Getenv("GO_LDFLAGS")
+ tool_files, _ := filepath.Glob(pathf("%s/*", tooldir))
@@ -171,8 +179,8 @@ index 5d31718..1c7f308 100644
+ xprintf("\n")
+ }
+ xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
-+ goInstall(goBootstrap, toBuild...)
-+ checkNotStale(goBootstrap, toBuild...)
++ goInstall(toolenv(), goBootstrap, toBuild...)
++ checkNotStale(toolenv(), goBootstrap, toBuild...)
+ // Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary
+
+ timelog("build", "target toolchain")
@@ -184,99 +192,29 @@ index 5d31718..1c7f308 100644
+ goarch = oldgoarch
+ os.Setenv("GOOS", goos)
+ os.Setenv("GOARCH", goarch)
-+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
++ os.Setenv("CC", compilerEnvLookup("CC", defaultcc, goos, goarch))
+ xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
-+ goInstall(goBootstrap, toBuild...)
-+ checkNotStale(goBootstrap, toBuild...)
++ goInstall(toolenv(), goBootstrap, toBuild...)
++ checkNotStale(toolenv(), goBootstrap, toBuild...)
+ // Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary
- }
-- xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
- } else {
-- // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
-- // Finish GOHOSTOS/GOHOSTARCH installation and then
-- // run GOOS/GOARCH installation.
-- timelog("build", "host toolchain")
-- if vflag > 0 {
-- xprintf("\n")
-+
-+ if goos == oldgoos && goarch == oldgoarch {
-+ // Common case - not setting up for cross-compilation.
-+ timelog("build", "toolchain")
-+ if vflag > 0 {
-+ xprintf("\n")
-+ }
-+ xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
-+ } else {
-+ // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
-+ // Finish GOHOSTOS/GOHOSTARCH installation and then
-+ // run GOOS/GOARCH installation.
-+ timelog("build", "host toolchain")
-+ if vflag > 0 {
-+ xprintf("\n")
-+ }
-+ xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
-+ goInstall(goBootstrap, "std", "cmd")
-+ checkNotStale(goBootstrap, "std", "cmd")
-+ checkNotStale(cmdGo, "std", "cmd")
-+
-+ timelog("build", "target toolchain")
-+ if vflag > 0 {
-+ xprintf("\n")
-+ }
-+ goos = oldgoos
-+ goarch = oldgoarch
-+ os.Setenv("GOOS", goos)
-+ os.Setenv("GOARCH", goarch)
-+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-+ xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
- }
-- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
- goInstall(goBootstrap, "std", "cmd")
- checkNotStale(goBootstrap, "std", "cmd")
- checkNotStale(cmdGo, "std", "cmd")
-
-- timelog("build", "target toolchain")
-- if vflag > 0 {
-- xprintf("\n")
-+ if debug {
-+ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
-+ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
-+ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
-+ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
- }
-- goos = oldgoos
-- goarch = oldgoarch
-- os.Setenv("GOOS", goos)
-- os.Setenv("GOARCH", goarch)
-- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
-- xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
-- }
-- targets := []string{"std", "cmd"}
-- goInstall(goBootstrap, targets...)
-- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
-- checkNotStale(goBootstrap, targets...)
-- checkNotStale(cmdGo, targets...)
-- if debug {
-- run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
-- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
-- copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
- }
++ }
++ }
// Check that there are no new files in $GOROOT/bin other than
-@@ -1477,8 +1548,11 @@ func cmdbootstrap() {
+ // go and gofmt and $GOOS_$GOARCH (target bin when cross-compiling).
+@@ -1585,8 +1655,12 @@ func cmdbootstrap() {
}
}
-- // Remove go_bootstrap now that we're done.
-- xremove(pathf("%s/go_bootstrap", tooldir))
+ // Except that for split host/target cross-builds, we need to
+ // keep it.
+ if !crossBuild {
-+ xremove(pathf("%s/go_bootstrap", tooldir))
-+ }
+ // Remove go_bootstrap now that we're done.
+ xremove(pathf("%s/go_bootstrap"+exe, tooldir))
++}
if goos == "android" {
// Make sure the exec wrapper will sync a fresh $GOROOT to the device.
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch b/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
index 520e41da86..d118e726c6 100644
--- a/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
+++ b/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
@@ -1,10 +1,8 @@
-From efab470498bb0a30ee2d00455a0c8c10459f6347 Mon Sep 17 00:00:00 2001
+From aff5a740d6286c04beb0593fc68b0aea5a95ad39 Mon Sep 17 00:00:00 2001
From: Alex Kube <alexander.j.kube@gmail.com>
Date: Wed, 23 Oct 2019 21:18:56 +0430
Subject: [PATCH 6/9] cmd/go: make GOROOT precious by default
-Upstream-Status: Inappropriate [OE specific]
-
The go build tool normally rebuilds whatever it detects is
stale. This can be a problem when GOROOT is intended to
be read-only and the go runtime has been built as a shared
@@ -20,7 +18,10 @@ Adapted to Go 1.13 from patches originally submitted to
the meta/recipes-devtools/go tree by
Matt Madison <matt@madison.systems>.
+Upstream-Status: Inappropriate [OE specific]
+
Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
src/cmd/go/internal/work/action.go | 3 +++
src/cmd/go/internal/work/build.go | 6 ++++++
@@ -28,10 +29,10 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
3 files changed, 34 insertions(+)
diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go
-index 8beb134..68a8cfe 100644
+index d4d0a71..42149d2 100644
--- a/src/cmd/go/internal/work/action.go
+++ b/src/cmd/go/internal/work/action.go
-@@ -718,6 +718,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) {
+@@ -730,6 +730,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) {
if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] {
continue
}
@@ -42,10 +43,10 @@ index 8beb134..68a8cfe 100644
// TODO(rsc): The use of ModeInstall here is suspect, but if we only do ModeBuild,
// we'll end up building an overall library or executable that depends at runtime
diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
-index 2f2860a..8cc6166 100644
+index e2e0e07..1c84137 100644
--- a/src/cmd/go/internal/work/build.go
+++ b/src/cmd/go/internal/work/build.go
-@@ -217,6 +217,8 @@ See also: go install, go get, go clean.
+@@ -228,6 +228,8 @@ See also: go install, go get, go clean.
const concurrentGCBackendCompilationEnabledByDefault = true
@@ -54,7 +55,7 @@ index 2f2860a..8cc6166 100644
func init() {
// break init cycle
CmdBuild.Run = runBuild
-@@ -230,6 +232,10 @@ func init() {
+@@ -241,6 +243,10 @@ func init() {
AddCoverFlags(CmdBuild, nil)
AddCoverFlags(CmdInstall, nil)
}
@@ -66,11 +67,11 @@ index 2f2860a..8cc6166 100644
// Note that flags consulted by other parts of the code
diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
-index 62e1774..cde867b 100644
+index e3dd486..0ea5316 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
-@@ -546,6 +546,23 @@ func (b *Builder) build(ctx context.Context, a *Action) (err error) {
- return errors.New("cannot compile Go " + p.Module.GoVersion + " code")
+@@ -539,6 +539,23 @@ func (b *Builder) build(ctx context.Context, a *Action) (err error) {
+ return err
}
+ if goRootPrecious && (a.Package.Standard || a.Package.Goroot) {
@@ -93,7 +94,7 @@ index 62e1774..cde867b 100644
if err := b.Mkdir(a.Objdir); err != nil {
return err
}
-@@ -1643,6 +1660,14 @@ func (b *Builder) linkShared(ctx context.Context, a *Action) (err error) {
+@@ -1722,6 +1739,14 @@ func (b *Builder) linkShared(ctx context.Context, a *Action) (err error) {
return err
}
@@ -109,5 +110,5 @@ index 62e1774..cde867b 100644
return err
}
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch b/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
index 7d9869b536..3e0ba35d81 100644
--- a/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
+++ b/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
@@ -1,4 +1,4 @@
-From 0ba747e6a4b251a0d9eed0cfd8f8c491bb508040 Mon Sep 17 00:00:00 2001
+From 619991feab04f331d081a91243434ccd859f611d 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 7/9] exec.go: do not write linker flags into buildids
@@ -9,16 +9,18 @@ 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>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
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 cde867b..5cb1812 100644
+index 0ea5316..d7e2d51 100644
--- a/src/cmd/go/internal/work/exec.go
+++ b/src/cmd/go/internal/work/exec.go
-@@ -1331,7 +1331,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
+@@ -1357,7 +1357,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
}
// Toolchain-dependent configuration, shared with b.linkSharedActionID.
@@ -27,7 +29,7 @@ index cde867b..5cb1812 100644
// Input files.
for _, a1 := range a.Deps {
-@@ -1626,7 +1626,7 @@ func (b *Builder) linkSharedActionID(a *Action) cache.ActionID {
+@@ -1705,7 +1705,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.
@@ -37,5 +39,5 @@ index cde867b..5cb1812 100644
// Input files.
for _, a1 := range a.Deps {
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch b/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
index fe830ce35c..58512207a8 100644
--- a/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
+++ b/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
@@ -1,4 +1,4 @@
-From 1cbb416538a9c7c3fbedcb23f4d90d5c48becca8 Mon Sep 17 00:00:00 2001
+From e0999902687e2e394499f7153db8d62440c4dab0 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 8/9] src/cmd/dist/buildgo.go: do not hardcode host compilers
@@ -8,16 +8,18 @@ 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>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
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 29b0167..63a49f0 100644
+index 884e9d7..2f52eda 100644
--- a/src/cmd/dist/buildgo.go
+++ b/src/cmd/dist/buildgo.go
-@@ -33,8 +33,8 @@ func mkzdefaultcc(dir, file string) {
+@@ -51,8 +51,8 @@ func mkzdefaultcc(dir, file string) {
fmt.Fprintf(&buf, "package cfg\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "const DefaultPkgConfig = `%s`\n", defaultpkgconfig)
@@ -28,7 +30,7 @@ index 29b0167..63a49f0 100644
writefile(buf.String(), file, writeSkipSame)
return
}
-@@ -45,8 +45,8 @@ func mkzdefaultcc(dir, file string) {
+@@ -62,8 +62,8 @@ func mkzdefaultcc(dir, file string) {
fmt.Fprintf(&buf, "package main\n")
fmt.Fprintln(&buf)
fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n", defaultpkgconfig)
@@ -40,5 +42,5 @@ index 29b0167..63a49f0 100644
}
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch b/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
index 49da5f6297..597a4e2104 100644
--- a/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
+++ b/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
@@ -1,4 +1,4 @@
-From 18011f72125bbea273d07ee5d792ac0ce6059572 Mon Sep 17 00:00:00 2001
+From 6c2438f187ca912c54a71b4ac65ab98999a019d2 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
@@ -11,17 +11,18 @@ on mips/ppc.
Upstream-Status: Submitted [https://github.com/golang/go/pull/56410]
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
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 f427e29..6d6dc4e 100644
+index c0e6265..b199fee 100644
--- a/src/cmd/go/internal/load/pkg.go
+++ b/src/cmd/go/internal/load/pkg.go
-@@ -2270,6 +2270,17 @@ func (p *Package) collectDeps() {
- // to their VCS information (vcsStatusError).
- var vcsStatusCache par.Cache
+@@ -2269,6 +2269,17 @@ func appendBuildSetting(info *debug.BuildInfo, key, value string) {
+ info.Settings = append(info.Settings, debug.BuildSetting{Key: key, Value: value})
+ }
+func filterCompilerFlags(flags string) string {
+ var newflags []string
@@ -34,10 +35,10 @@ index f427e29..6d6dc4e 100644
+ 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.
-@@ -2376,7 +2387,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
+ // setBuildInfo gathers build information and sets it into
+ // p.Internal.BuildInfo, which will later be formatted as a string and embedded
+ // in the binary. setBuildInfo should only be called on a main package with no
+@@ -2376,7 +2387,7 @@ func (p *Package) setBuildInfo(ctx context.Context, autoVCS bool) {
if gcflags := BuildGcflags.String(); gcflags != "" && cfg.BuildContext.Compiler == "gc" {
appendSetting("-gcflags", gcflags)
}
@@ -46,7 +47,7 @@ index f427e29..6d6dc4e 100644
// 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).
-@@ -2422,7 +2433,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
+@@ -2419,7 +2430,7 @@ func (p *Package) setBuildInfo(ctx context.Context, 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"} {
@@ -56,5 +57,5 @@ index f427e29..6d6dc4e 100644
}
appendSetting("GOARCH", cfg.BuildContext.GOARCH)
--
-2.30.2
+2.43.0
diff --git a/meta/recipes-devtools/go/go_1.20.12.bb b/meta/recipes-devtools/go/go_1.21.0.bb
similarity index 100%
rename from meta/recipes-devtools/go/go_1.20.12.bb
rename to meta/recipes-devtools/go/go_1.21.0.bb
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] go: upgrade 1.21.0 -> 1.21.5
2023-12-07 10:07 [PATCH 1/2] go: bump 1.21.0 Jose Quaresma
@ 2023-12-07 10:07 ` Jose Quaresma
2023-12-07 23:23 ` [OE-core] [PATCH 1/2] go: bump 1.21.0 Alexandre Belloni
1 sibling, 0 replies; 4+ messages in thread
From: Jose Quaresma @ 2023-12-07 10:07 UTC (permalink / raw)
To: openembedded-core; +Cc: ricardo, Jose Quaresma
Upgrade to latest 1.21.x release [1]:
$ git --no-pager log --oneline go1.21.0..go1.21.5
6018ad99a4 (tag: go1.21.5) [release-branch.go1.21] go1.21.5
ec8c526e4b [release-branch.go1.21] net/http: limit chunked data overhead
f7a79cb5fc [release-branch.go1.21] cmd/compile: fix findIndVar so it does not match disjointed loop headers
3684d19c20 [release-branch.go1.21] runtime: call enableMetadataHugePages and its callees on the systemstack
9e43850a32 [release-branch.go1.21] crypto/rand,runtime: switch RtlGenRandom for ProcessPrng
8caf4bb3e7 [release-branch.go1.21] path/filepath: consider \\?\c: as a volume on Windows
23c943e529 [release-branch.go1.21] cmd/go/internal/vcs: error out if the requested repo does not support a secure protocol
4952f41180 [release-branch.go1.21] cmd/go: allow 'go mod download' to switch toolchains if called with explicit arguments
f26fa05522 [release-branch.go1.21] os: report IO_REPARSE_TAG_DEDUP files as regular in Stat and Lstat
8ae493b5b8 [release-branch.go1.21] internal/poll: add SPLICE_F_NONBLOCK flag for splice to avoid inconsistency with O_NONBLOCK
b9f245b8d3 [release-branch.go1.21] cmd/compile: ensure pointer arithmetic happens after the nil check
caacf3a09a [release-branch.go1.21] cmd/compile: handle constant pointer offsets in dead store elimination
1e91861f67 [release-branch.go1.21] syscall: copy rlimit.go's build constraint to rlimit_test.go
ed817f1c40 (tag: go1.21.4) [release-branch.go1.21] go1.21.4
9e933c189c [release-branch.go1.21] path/filepath: fix various issues in parsing Windows paths
434af8537e [release-branch.go1.21] net/http: pull http2 underflow fix from x/net/http2
7b04d81cbc [release-branch.go1.21] runtime/cgo: avoid taking the address of crosscall2 in code
f9a31cda3c [release-branch.go1.21] cmd/compile/internal/typecheck: fix closure field naming
64b6c48107 [release-branch.go1.21] go/types, types2: don't use generics
ef6993f327 [release-branch.go1.21] runtime: don't eagerly collapse hugepages
bae01521f3 [release-branch.go1.21] go/types, types2: don't implicitly modify an argument function's type
236c07c049 [release-branch.go1.21] cmd/link: split text sections for arm 32-bit
9465990e0e [release-branch.go1.21] all: tidy dependency versioning after release
883f062fc0 (tag: go1.21.3) [release-branch.go1.21] go1.21.3
24ae2d9272 [release-branch.go1.21] net/http: regenerate h2_bundle.go
26b5783b72 (tag: go1.21.2) [release-branch.go1.21] go1.21.2
2ddfc04d12 [release-branch.go1.21] cmd/compile: use absolute file name in isCgo check
a15ef1bb0f [release-branch.go1.21] cmd/compile: absorb InvertFlags into Noov comparisons
41d71a5afa [release-branch.go1.21] cmd/compile: reset memcombine correctly between basic blocks
0b6b0a275a [release-branch.go1.21] runtime: always lock OS thread in debugcall
cd671a1180 [release-branch.go1.21] runtime: increase g0 stack size in non-cgo case
fc57cc31a0 [release-branch.go1.21] cmd/link: suppress -bind_at_load deprecation warning for ld-prime
9bec49cf52 [release-branch.go1.21] cmd/link: disable DWARF by default in c-shared mode on darwin
3ef4f939c3 [release-branch.go1.21] cmd/link: force old Apple linker in plugin mode
556e9c36ba [release-branch.go1.21] cmd/link: avoid deadcode of global map vars for programs using plugins
b64dc5f499 [release-branch.go1.21] cmd/go: in TestScript/gotoolchain_path, remove the user's PATH
cd66ca0636 [release-branch.go1.21] runtime/metrics: fix /gc/scan/* metrics
d7a0626806 [release-branch.go1.21] runtime: ignore SPWrite on innermost traceback frame
2c1e5b05fe (tag: go1.21.1) [release-branch.go1.21] go1.21.1
bbd043ff0d [release-branch.go1.21] html/template: properly handle special tags within the script context
b0e1d3ea26 [release-branch.go1.21] html/template: support HTML-like comments in script contexts
d25a935574 [release-branch.go1.21] cmd/go: reject toolchain directives containing path separators
e3ba569c78 [release-branch.go1.21] net/http: revert "support streaming POST content in wasm"
8dc6ad1c61 [release-branch.go1.21] runtime: restore caller's frame pointer when recovering from panic
06df3292a8 [release-branch.go1.21] runtime: avoid MADV_HUGEPAGE for heap memory
b120517ffd [release-branch.go1.21] go/types, types2: remove order dependency in inference involving channels
0a9582163c [release-branch.go1.21] cmd/go: retry ETXTBSY errors when running test binaries
91a4e74b98 [release-branch.go1.21] crypto/tls: QUIC: fix panics when processing post-handshake messages
6385a6fb18 [release-branch.go1.21] cmd/go: find GOROOT using os.Executable when installed to GOROOT/bin/GOOS_GOARCH
2d07bb86f0 [release-branch.go1.21] encoding/xml: overriding by empty namespace when no new name declaration
745b81b6e6 [release-branch.go1.21] encoding/gob: prevent panic from index out of range in Decoder.typeString
13339c75b8 [release-branch.go1.21] runtime: fix maps.Clone bug when cloning a map mid-grow
2977709875 [release-branch.go1.21] context: fix synchronization in ExampleAfterFunc_cond
2d4746f37b [release-branch.go1.21] go/types, types2: disable interface inference for versions before Go 1.21
2b8026f025 [release-branch.go1.21] cmd/compile: in expandCalls, move all arg marshalling into call block
7c97cc7d97 [release-branch.go1.21] Revert "os: use handle based APIs to read directories on windows"
cb6ea94996 [release-branch.go1.21] Revert "cmd/compile: omit redundant sign/unsign extension on arm64"
45b98bfb79 [release-branch.go1.21] path/filepath: don't drop .. elements when cleaning invalid Windows paths
bac083a584 [release-branch.go1.21] cmd/link: don't mangle string symbol names
70aa116c4a [release-branch.go1.21] runtime/internal/wasitest: skip racy TCP echo test
31c5a236bc [release-branch.go1.21] runtime: mark traceEnabled and traceShuttingDown as no:split
25ec110e51 [release-branch.go1.21] cmd/compile: ensure empty blocks in write barriers are marked unpreemptible
6634ce2f41 [release-branch.go1.21] runtime: profiling on Darwin cannot use blocking reads
25c6dce188 [release-branch.go1.21] cmd/compile: make backingArrayPtrLen to return typecheck-ed nodes
4e34f2e81d [release-branch.go1.21] go/types, types2: don't panic during interface completion
d91843ff67 [release-branch.go1.21] go/types, types2: use correct parameter list when checking argument passing
7437db1085 [release-branch.go1.21] go/types, types2: use exact unification when comparing interface methods
ed527ecfb2 [release-branch.go1.21] cmd/api: rename api.go to main_test.go
b78e8cc145 [release-branch.go1.21] crypto/tls: add GODEBUG to control max RSA key size
3475e6af4c [release-branch.go1.21] cmd/go: fix missing case checking for empty slice
179821c9e1 [release-branch.go1.21] net/http: permit requests with invalid Host headers
9398951479 [release-branch.go1.21] cmd/distpack: include directory entries in tar files
75d8be5fb4 [release-branch.go1.21] cmd/go/internal/web: release the net token when an HTTP request fails due to CheckRedirect
1755d14559 [release-branch.go1.21] cmd/compile: fix missing init nodes for len(string([]byte)) optimization
[1] https://github.com/golang/go/compare/go1.21.0...go1.21.5
Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
---
meta/recipes-devtools/go/{go-1.21.0.inc => go-1.21.5.inc} | 2 +-
...o-binary-native_1.21.0.bb => go-binary-native_1.21.5.bb} | 6 +++---
...cross-canadian_1.21.0.bb => go-cross-canadian_1.21.5.bb} | 0
.../go/{go-cross_1.21.0.bb => go-cross_1.21.5.bb} | 0
.../go/{go-crosssdk_1.21.0.bb => go-crosssdk_1.21.5.bb} | 0
.../go/{go-native_1.21.0.bb => go-native_1.21.5.bb} | 0
.../go/{go-runtime_1.21.0.bb => go-runtime_1.21.5.bb} | 0
meta/recipes-devtools/go/{go_1.21.0.bb => go_1.21.5.bb} | 0
8 files changed, 4 insertions(+), 4 deletions(-)
rename meta/recipes-devtools/go/{go-1.21.0.inc => go-1.21.5.inc} (89%)
rename meta/recipes-devtools/go/{go-binary-native_1.21.0.bb => go-binary-native_1.21.5.bb} (78%)
rename meta/recipes-devtools/go/{go-cross-canadian_1.21.0.bb => go-cross-canadian_1.21.5.bb} (100%)
rename meta/recipes-devtools/go/{go-cross_1.21.0.bb => go-cross_1.21.5.bb} (100%)
rename meta/recipes-devtools/go/{go-crosssdk_1.21.0.bb => go-crosssdk_1.21.5.bb} (100%)
rename meta/recipes-devtools/go/{go-native_1.21.0.bb => go-native_1.21.5.bb} (100%)
rename meta/recipes-devtools/go/{go-runtime_1.21.0.bb => go-runtime_1.21.5.bb} (100%)
rename meta/recipes-devtools/go/{go_1.21.0.bb => go_1.21.5.bb} (100%)
diff --git a/meta/recipes-devtools/go/go-1.21.0.inc b/meta/recipes-devtools/go/go-1.21.5.inc
similarity index 89%
rename from meta/recipes-devtools/go/go-1.21.0.inc
rename to meta/recipes-devtools/go/go-1.21.5.inc
index 2933793b8b..f009ea77c7 100644
--- a/meta/recipes-devtools/go/go-1.21.0.inc
+++ b/meta/recipes-devtools/go/go-1.21.5.inc
@@ -15,4 +15,4 @@ SRC_URI += "\
file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \
"
-SRC_URI[main.sha256sum] = "818d46ede85682dd551ad378ef37a4d247006f12ec59b5b755601d2ce114369a"
+SRC_URI[main.sha256sum] = "285cbbdf4b6e6e62ed58f370f3f6d8c30825d6e56c5853c66d3c23bcdb09db19"
diff --git a/meta/recipes-devtools/go/go-binary-native_1.21.0.bb b/meta/recipes-devtools/go/go-binary-native_1.21.5.bb
similarity index 78%
rename from meta/recipes-devtools/go/go-binary-native_1.21.0.bb
rename to meta/recipes-devtools/go/go-binary-native_1.21.5.bb
index 0b8086e7b9..fad2f34a3b 100644
--- a/meta/recipes-devtools/go/go-binary-native_1.21.0.bb
+++ b/meta/recipes-devtools/go/go-binary-native_1.21.5.bb
@@ -9,9 +9,9 @@ PROVIDES = "go-native"
# Checksums available at https://go.dev/dl/
SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
-SRC_URI[go_linux_amd64.sha256sum] = "d0398903a16ba2232b389fb31032ddf57cac34efda306a0eebac34f0965a0742"
-SRC_URI[go_linux_arm64.sha256sum] = "f3d4548edf9b22f26bbd49720350bbfe59d75b7090a1a2bff1afad8214febaf3"
-SRC_URI[go_linux_ppc64le.sha256sum] = "e938ffc81d8ebe5efc179240960ba22da6a841ff05d5cab7ce2547112b14a47f"
+SRC_URI[go_linux_amd64.sha256sum] = "e2bc0b3e4b64111ec117295c088bde5f00eeed1567999ff77bc859d7df70078e"
+SRC_URI[go_linux_arm64.sha256sum] = "841cced7ecda9b2014f139f5bab5ae31785f35399f236b8b3e75dff2a2978d96"
+SRC_URI[go_linux_ppc64le.sha256sum] = "1f6dd06aa34f292f33c2c70ea9b4456e3a9e5cbd1d99968f3f463a4805b40ece"
UPSTREAM_CHECK_URI = "https://golang.org/dl/"
UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.21.0.bb b/meta/recipes-devtools/go/go-cross-canadian_1.21.5.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-cross-canadian_1.21.0.bb
rename to meta/recipes-devtools/go/go-cross-canadian_1.21.5.bb
diff --git a/meta/recipes-devtools/go/go-cross_1.21.0.bb b/meta/recipes-devtools/go/go-cross_1.21.5.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-cross_1.21.0.bb
rename to meta/recipes-devtools/go/go-cross_1.21.5.bb
diff --git a/meta/recipes-devtools/go/go-crosssdk_1.21.0.bb b/meta/recipes-devtools/go/go-crosssdk_1.21.5.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-crosssdk_1.21.0.bb
rename to meta/recipes-devtools/go/go-crosssdk_1.21.5.bb
diff --git a/meta/recipes-devtools/go/go-native_1.21.0.bb b/meta/recipes-devtools/go/go-native_1.21.5.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-native_1.21.0.bb
rename to meta/recipes-devtools/go/go-native_1.21.5.bb
diff --git a/meta/recipes-devtools/go/go-runtime_1.21.0.bb b/meta/recipes-devtools/go/go-runtime_1.21.5.bb
similarity index 100%
rename from meta/recipes-devtools/go/go-runtime_1.21.0.bb
rename to meta/recipes-devtools/go/go-runtime_1.21.5.bb
diff --git a/meta/recipes-devtools/go/go_1.21.0.bb b/meta/recipes-devtools/go/go_1.21.5.bb
similarity index 100%
rename from meta/recipes-devtools/go/go_1.21.0.bb
rename to meta/recipes-devtools/go/go_1.21.5.bb
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [OE-core] [PATCH 1/2] go: bump 1.21.0
2023-12-07 10:07 [PATCH 1/2] go: bump 1.21.0 Jose Quaresma
2023-12-07 10:07 ` [PATCH 2/2] go: upgrade 1.21.0 -> 1.21.5 Jose Quaresma
@ 2023-12-07 23:23 ` Alexandre Belloni
2023-12-11 10:01 ` Jose Quaresma
1 sibling, 1 reply; 4+ messages in thread
From: Alexandre Belloni @ 2023-12-07 23:23 UTC (permalink / raw)
To: Jose Quaresma; +Cc: openembedded-core, ricardo, Jose Quaresma
Hello Jose,
go.GoHelloworldTest.test_gohelloworld fails after this series:
https://autobuilder.yoctoproject.org/typhoon/#/builders/76/builds/8211/steps/13/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/6104/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/6154/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6169/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/53/builds/8256/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/110/builds/7125/steps/13/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/131/builds/3614/steps/13/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/59/builds/8186/steps/13/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/73/builds/8193/steps/13/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/109/builds/7085/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/101/builds/6998/steps/14/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/6159/steps/14/logs/stdio
On 07/12/2023 10:07:11+0000, Jose Quaresma wrote:
> Go 1.21 Release Notes
> https://go.dev/doc/go1.21
>
> Rework the patch 0005-cmd-dist-separate-host-and-target-builds.patch
> to avoid identation, it's more hard to read but easy to rebase.
>
> Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> meta/conf/distro/include/tcmode-default.inc | 2 +-
> .../go/{go-1.20.12.inc => go-1.21.0.inc} | 2 +-
> ..._1.20.12.bb => go-binary-native_1.21.0.bb} | 6 +-
> ...1.20.12.bb => go-cross-canadian_1.21.0.bb} | 0
> ...go-cross_1.20.12.bb => go-cross_1.21.0.bb} | 0
> ...sssdk_1.20.12.bb => go-crosssdk_1.21.0.bb} | 0
> ...-native_1.20.12.bb => go-native_1.21.0.bb} | 0
> ...untime_1.20.12.bb => go-runtime_1.21.0.bb} | 0
> ...ent-based-hash-generation-less-pedan.patch | 35 ++--
> ...OOLDIR-to-be-overridden-in-the-envir.patch | 17 +-
> ...3-ld-add-soname-to-shareable-objects.patch | 13 +-
> ...de-CC-when-building-dist-and-go_boot.patch | 15 +-
> ...dist-separate-host-and-target-builds.patch | 192 ++++++------------
> ...d-go-make-GOROOT-precious-by-default.patch | 27 +--
> ...not-write-linker-flags-into-buildids.patch | 12 +-
> ...ldgo.go-do-not-hardcode-host-compile.patch | 12 +-
> ...uild-paths-on-staticly-linked-arches.patch | 23 ++-
> .../go/{go_1.20.12.bb => go_1.21.0.bb} | 0
> 18 files changed, 152 insertions(+), 204 deletions(-)
> rename meta/recipes-devtools/go/{go-1.20.12.inc => go-1.21.0.inc} (89%)
> rename meta/recipes-devtools/go/{go-binary-native_1.20.12.bb => go-binary-native_1.21.0.bb} (78%)
> rename meta/recipes-devtools/go/{go-cross-canadian_1.20.12.bb => go-cross-canadian_1.21.0.bb} (100%)
> rename meta/recipes-devtools/go/{go-cross_1.20.12.bb => go-cross_1.21.0.bb} (100%)
> rename meta/recipes-devtools/go/{go-crosssdk_1.20.12.bb => go-crosssdk_1.21.0.bb} (100%)
> rename meta/recipes-devtools/go/{go-native_1.20.12.bb => go-native_1.21.0.bb} (100%)
> rename meta/recipes-devtools/go/{go-runtime_1.20.12.bb => go-runtime_1.21.0.bb} (100%)
> rename meta/recipes-devtools/go/{go_1.20.12.bb => go_1.21.0.bb} (100%)
>
> diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> index 707402e6eb..feebe5d30e 100644
> --- a/meta/conf/distro/include/tcmode-default.inc
> +++ b/meta/conf/distro/include/tcmode-default.inc
> @@ -23,7 +23,7 @@ GDBVERSION ?= "13.%"
> GLIBCVERSION ?= "2.38%"
> LINUXLIBCVERSION ?= "6.5%"
> QEMUVERSION ?= "8.1%"
> -GOVERSION ?= "1.20%"
> +GOVERSION ?= "1.21%"
> LLVMVERSION ?= "17.%"
> RUSTVERSION ?= "1.70%"
>
> diff --git a/meta/recipes-devtools/go/go-1.20.12.inc b/meta/recipes-devtools/go/go-1.21.0.inc
> similarity index 89%
> rename from meta/recipes-devtools/go/go-1.20.12.inc
> rename to meta/recipes-devtools/go/go-1.21.0.inc
> index 9be56c6707..2933793b8b 100644
> --- a/meta/recipes-devtools/go/go-1.20.12.inc
> +++ b/meta/recipes-devtools/go/go-1.21.0.inc
> @@ -15,4 +15,4 @@ SRC_URI += "\
> file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
> file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \
> "
> -SRC_URI[main.sha256sum] = "c5bf934751d31c315c1d0bb5fb02296545fa6d08923566f7a5afec81f2ed27d6"
> +SRC_URI[main.sha256sum] = "818d46ede85682dd551ad378ef37a4d247006f12ec59b5b755601d2ce114369a"
> diff --git a/meta/recipes-devtools/go/go-binary-native_1.20.12.bb b/meta/recipes-devtools/go/go-binary-native_1.21.0.bb
> similarity index 78%
> rename from meta/recipes-devtools/go/go-binary-native_1.20.12.bb
> rename to meta/recipes-devtools/go/go-binary-native_1.21.0.bb
> index e555412a19..0b8086e7b9 100644
> --- a/meta/recipes-devtools/go/go-binary-native_1.20.12.bb
> +++ b/meta/recipes-devtools/go/go-binary-native_1.21.0.bb
> @@ -9,9 +9,9 @@ PROVIDES = "go-native"
>
> # Checksums available at https://go.dev/dl/
> SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
> -SRC_URI[go_linux_amd64.sha256sum] = "9c5d48c54dd8b0a3b2ef91b0f92a1190aa01f11d26e98033efa64c46a30bba7b"
> -SRC_URI[go_linux_arm64.sha256sum] = "8afe8e3fb6972eaa2179ef0a71678c67f26509fab4f0f67c4b00f4cdfa92dc87"
> -SRC_URI[go_linux_ppc64le.sha256sum] = "2ae0ec3736216dfbd7b01ff679842dc1bed365e53a024d522645bcffd01c7328"
> +SRC_URI[go_linux_amd64.sha256sum] = "d0398903a16ba2232b389fb31032ddf57cac34efda306a0eebac34f0965a0742"
> +SRC_URI[go_linux_arm64.sha256sum] = "f3d4548edf9b22f26bbd49720350bbfe59d75b7090a1a2bff1afad8214febaf3"
> +SRC_URI[go_linux_ppc64le.sha256sum] = "e938ffc81d8ebe5efc179240960ba22da6a841ff05d5cab7ce2547112b14a47f"
>
> UPSTREAM_CHECK_URI = "https://golang.org/dl/"
> UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
> diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.20.12.bb b/meta/recipes-devtools/go/go-cross-canadian_1.21.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/go/go-cross-canadian_1.20.12.bb
> rename to meta/recipes-devtools/go/go-cross-canadian_1.21.0.bb
> diff --git a/meta/recipes-devtools/go/go-cross_1.20.12.bb b/meta/recipes-devtools/go/go-cross_1.21.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/go/go-cross_1.20.12.bb
> rename to meta/recipes-devtools/go/go-cross_1.21.0.bb
> diff --git a/meta/recipes-devtools/go/go-crosssdk_1.20.12.bb b/meta/recipes-devtools/go/go-crosssdk_1.21.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/go/go-crosssdk_1.20.12.bb
> rename to meta/recipes-devtools/go/go-crosssdk_1.21.0.bb
> diff --git a/meta/recipes-devtools/go/go-native_1.20.12.bb b/meta/recipes-devtools/go/go-native_1.21.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/go/go-native_1.20.12.bb
> rename to meta/recipes-devtools/go/go-native_1.21.0.bb
> diff --git a/meta/recipes-devtools/go/go-runtime_1.20.12.bb b/meta/recipes-devtools/go/go-runtime_1.21.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/go/go-runtime_1.20.12.bb
> rename to meta/recipes-devtools/go/go-runtime_1.21.0.bb
> diff --git a/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch b/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> index 9a2551031a..3bd756449e 100644
> --- a/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> +++ b/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> @@ -1,4 +1,4 @@
> -From 10766ca6f4007b96e3f6bf4fb496e5df74397eb9 Mon Sep 17 00:00:00 2001
> +From 9a6c5040cbcd88b10ceb8ceaebc8d6158c086670 Mon Sep 17 00:00:00 2001
> From: Khem Raj <raj.khem@gmail.com>
> Date: Mon, 28 Mar 2022 10:59:03 -0700
> Subject: [PATCH 1/9] cmd/go: make content-based hash generation less pedantic
> @@ -25,16 +25,17 @@ Upstream-Status: Inappropriate [OE specific]
> Signed-off-by: Alex Kube <alexander.j.kube@gmail.com>
> Signed-off-by: Matt Madison <matt@madison.systems>
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> src/cmd/go/internal/envcmd/env.go | 2 +-
> src/cmd/go/internal/work/exec.go | 44 ++++++++++++++++++++++++-------
> 2 files changed, 36 insertions(+), 10 deletions(-)
>
> diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go
> -index 66ef5ce..fb7448a 100644
> +index c7c2e83..4a90d9d 100644
> --- a/src/cmd/go/internal/envcmd/env.go
> +++ b/src/cmd/go/internal/envcmd/env.go
> -@@ -183,7 +183,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar {
> +@@ -189,7 +189,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar {
> }
> }()
>
> @@ -44,10 +45,10 @@ index 66ef5ce..fb7448a 100644
> // Should not happen - b.CFlags was given an empty package.
> fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
> diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
> -index 67d1193..62e1774 100644
> +index 13d2a78..e3dd486 100644
> --- a/src/cmd/go/internal/work/exec.go
> +++ b/src/cmd/go/internal/work/exec.go
> -@@ -223,6 +223,8 @@ func (b *Builder) Do(ctx context.Context, root *Action) {
> +@@ -231,6 +231,8 @@ func (b *Builder) Do(ctx context.Context, root *Action) {
> writeActionGraph()
> }
>
> @@ -56,7 +57,7 @@ index 67d1193..62e1774 100644
> // buildActionID computes the action ID for a build action.
> func (b *Builder) buildActionID(a *Action) cache.ActionID {
> p := a.Package
> -@@ -244,7 +246,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
> +@@ -252,7 +254,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
> if p.Module != nil {
> fmt.Fprintf(h, "module %s@%s\n", p.Module.Path, p.Module.Version)
> }
> @@ -65,7 +66,7 @@ index 67d1193..62e1774 100644
> // The Go compiler always hides the exact value of $GOROOT
> // when building things in GOROOT.
> //
> -@@ -276,9 +278,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
> +@@ -284,9 +286,9 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
> }
> if len(p.CgoFiles)+len(p.SwigFiles)+len(p.SwigCXXFiles) > 0 {
> fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
> @@ -77,7 +78,7 @@ index 67d1193..62e1774 100644
> fmt.Fprintf(h, "CC=%q %q %q %q\n", ccExe, cppflags, cflags, ldflags)
> // Include the C compiler tool ID so that if the C
> // compiler changes we rebuild the package.
> -@@ -286,14 +288,14 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
> +@@ -294,14 +296,14 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
> fmt.Fprintf(h, "CC ID=%q\n", ccID)
> }
> if len(p.CXXFiles)+len(p.SwigCXXFiles) > 0 {
> @@ -94,16 +95,16 @@ index 67d1193..62e1774 100644
> fmt.Fprintf(h, "FC=%q %q\n", fcExe, fflags)
> if fcID, _, err := b.gccToolID(fcExe[0], "f95"); err == nil {
> fmt.Fprintf(h, "FC ID=%q\n", fcID)
> -@@ -310,7 +312,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
> +@@ -318,7 +320,7 @@ func (b *Builder) buildActionID(a *Action) cache.ActionID {
> }
> }
> - if p.Internal.BuildInfo != "" {
> -- fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
> -+ //fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
> + if p.Internal.BuildInfo != nil {
> +- fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo.String())
> ++ //fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo.String())
> }
>
> // Configuration specific to compiler toolchain.
> -@@ -2989,8 +2991,25 @@ func envList(key, def string) []string {
> +@@ -3137,8 +3139,25 @@ func envList(key, def string) []string {
> return args
> }
>
> @@ -130,7 +131,7 @@ index 67d1193..62e1774 100644
> if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS, checkCompilerFlags); err != nil {
> return
> }
> -@@ -3006,6 +3025,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
> +@@ -3154,6 +3173,13 @@ func (b *Builder) CFlags(p *load.Package) (cppflags, cflags, cxxflags, fflags, l
> if ldflags, err = buildFlags("LDFLAGS", defaultCFlags, p.CgoLDFLAGS, checkLinkerFlags); err != nil {
> return
> }
> @@ -144,7 +145,7 @@ index 67d1193..62e1774 100644
>
> return
> }
> -@@ -3021,7 +3047,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
> +@@ -3169,7 +3195,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
>
> func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo, outObj []string, err error) {
> p := a.Package
> @@ -153,7 +154,7 @@ index 67d1193..62e1774 100644
> if err != nil {
> return nil, nil, err
> }
> -@@ -3577,7 +3603,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
> +@@ -3725,7 +3751,7 @@ func (b *Builder) swigIntSize(objdir string) (intsize string, err error) {
>
> // Run SWIG on one SWIG input file.
> func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string, err error) {
> @@ -163,5 +164,5 @@ index 67d1193..62e1774 100644
> return "", "", err
> }
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch b/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
> index 6abd424733..cf7ad02f86 100644
> --- a/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
> +++ b/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
> @@ -1,4 +1,4 @@
> -From 5cca2fa5997292a87302bdc7e7ed3231371e98bd Mon Sep 17 00:00:00 2001
> +From e3f9a8a69d3a340c1a1d0bba566e71f20f635a43 Mon Sep 17 00:00:00 2001
> From: Alex Kube <alexander.j.kube@gmail.com>
> Date: Wed, 23 Oct 2019 21:15:37 +0430
> Subject: [PATCH 2/9] cmd/go: Allow GOTOOLDIR to be overridden in the
> @@ -13,16 +13,17 @@ Matt Madison <matt@madison.systems>.
> Upstream-Status: Inappropriate [OE specific]
>
> Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> src/cmd/dist/build.go | 4 +++-
> src/cmd/go/internal/cfg/cfg.go | 6 +++++-
> 2 files changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
> -index c36a12e..5d31718 100644
> +index 8973a87..adc9fd2 100644
> --- a/src/cmd/dist/build.go
> +++ b/src/cmd/dist/build.go
> -@@ -264,7 +264,9 @@ func xinit() {
> +@@ -259,7 +259,9 @@ func xinit() {
> }
> xatexit(rmworkdir)
>
> @@ -30,14 +31,14 @@ index c36a12e..5d31718 100644
> + if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
> + tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
> + }
> - }
>
> - // compilerEnv returns a map from "goos/goarch" to the
> + goversion := findgoversion()
> + isRelease = strings.HasPrefix(goversion, "release.") || strings.HasPrefix(goversion, "go")
> diff --git a/src/cmd/go/internal/cfg/cfg.go b/src/cmd/go/internal/cfg/cfg.go
> -index 3257140..bb46253 100644
> +index 8a82e55..1141fc2 100644
> --- a/src/cmd/go/internal/cfg/cfg.go
> +++ b/src/cmd/go/internal/cfg/cfg.go
> -@@ -229,7 +229,11 @@ func SetGOROOT(goroot string, isTestGo bool) {
> +@@ -231,7 +231,11 @@ func SetGOROOT(goroot string, isTestGo bool) {
> // This matches the initialization of ToolDir in go/build, except for
> // using ctxt.GOROOT and the installed GOOS and GOARCH rather than the
> // GOROOT, GOOS, and GOARCH reported by the runtime package.
> @@ -51,5 +52,5 @@ index 3257140..bb46253 100644
> }
> }
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch b/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
> index ced0be1998..8afa28aab0 100644
> --- a/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
> +++ b/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
> @@ -1,4 +1,4 @@
> -From c7536a820f713013ab1d4acef74a4c8bd970bf8f Mon Sep 17 00:00:00 2001
> +From 7dde77b3ce8138314dd2736604b1b110dbcc0ac1 Mon Sep 17 00:00:00 2001
> From: Alex Kube <alexander.j.kube@gmail.com>
> Date: Wed, 23 Oct 2019 21:16:32 +0430
> Subject: [PATCH 3/9] ld: add soname to shareable objects
> @@ -13,15 +13,16 @@ Matt Madison <matt@madison.systems>.
> Upstream-Status: Inappropriate [OE specific]
>
> Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> src/cmd/link/internal/ld/lib.go | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
> -index 03b9f11..e91c92f 100644
> +index 91e2d51..e98b912 100644
> --- a/src/cmd/link/internal/ld/lib.go
> +++ b/src/cmd/link/internal/ld/lib.go
> -@@ -1504,6 +1504,7 @@ func (ctxt *Link) hostlink() {
> +@@ -1554,6 +1554,7 @@ func (ctxt *Link) hostlink() {
> argv = append(argv, "-Wl,-z,relro")
> }
> argv = append(argv, "-shared")
> @@ -29,7 +30,7 @@ index 03b9f11..e91c92f 100644
> if ctxt.HeadType == objabi.Hwindows {
> argv = addASLRargs(argv, *flagAslr)
> } else {
> -@@ -1519,6 +1520,7 @@ func (ctxt *Link) hostlink() {
> +@@ -1569,6 +1570,7 @@ func (ctxt *Link) hostlink() {
> argv = append(argv, "-Wl,-z,relro")
> }
> argv = append(argv, "-shared")
> @@ -37,7 +38,7 @@ index 03b9f11..e91c92f 100644
> case BuildModePlugin:
> if ctxt.HeadType == objabi.Hdarwin {
> argv = append(argv, "-dynamiclib")
> -@@ -1527,6 +1529,7 @@ func (ctxt *Link) hostlink() {
> +@@ -1577,6 +1579,7 @@ func (ctxt *Link) hostlink() {
> argv = append(argv, "-Wl,-z,relro")
> }
> argv = append(argv, "-shared")
> @@ -46,5 +47,5 @@ index 03b9f11..e91c92f 100644
> }
>
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch b/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
> index 85e42f7660..5dd2621adc 100644
> --- a/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
> +++ b/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
> @@ -1,4 +1,4 @@
> -From 31ff609cc3d3bfcc2f2257fda1dbaafaec31eb0b Mon Sep 17 00:00:00 2001
> +From 9f59e46991074d3e3c4d00f3971e62bfcd707167 Mon Sep 17 00:00:00 2001
> From: Alex Kube <alexander.j.kube@gmail.com>
> Date: Wed, 23 Oct 2019 21:17:16 +0430
> Subject: [PATCH 4/9] make.bash: override CC when building dist and
> @@ -13,24 +13,25 @@ Matt Madison <matt@madison.systems>.
> Upstream-Status: Inappropriate [OE specific]
>
> Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> src/make.bash | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/make.bash b/src/make.bash
> -index c07f39b..6ca7242 100755
> +index 755b3b0..eddfc3c 100755
> --- a/src/make.bash
> +++ b/src/make.bash
> -@@ -194,7 +194,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
> +@@ -198,7 +198,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
> exit 1
> fi
> rm -f cmd/dist/dist
> --GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
> -+CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
> +-GOROOT="$GOROOT_BOOTSTRAP" nogoenv "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
> ++CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" nogoenv "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
>
> # -e doesn't propagate out of eval, so check success by hand.
> eval $(./cmd/dist/dist env -p || echo FAIL=true)
> -@@ -219,7 +219,7 @@ fi
> +@@ -223,7 +223,7 @@ fi
> # Run dist bootstrap to complete make.bash.
> # Bootstrap installs a proper cmd/dist, built with the new toolchain.
> # Throw ours, built with the bootstrap toolchain, away after bootstrap.
> @@ -40,5 +41,5 @@ index c07f39b..6ca7242 100755
>
> # DO NOT ADD ANY NEW CODE HERE.
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch b/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
> index 29598449da..f8dca65ed4 100644
> --- a/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
> +++ b/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
> @@ -1,10 +1,8 @@
> -From 7a191e5191c8b813e929caedb3f3918bb08692a1 Mon Sep 17 00:00:00 2001
> +From 6dda78d528e60993a4688cd9d49440a726378ac8 Mon Sep 17 00:00:00 2001
> From: Alex Kube <alexander.j.kube@gmail.com>
> Date: Wed, 23 Oct 2019 21:18:12 +0430
> Subject: [PATCH 5/9] cmd/dist: separate host and target builds
>
> -Upstream-Status: Inappropriate [OE specific]
> -
> Change the dist tool to allow for OE-style cross-
> and cross-canadian builds:
>
> @@ -33,41 +31,48 @@ Adapted to Go 1.13 from patches originally submitted to
> the meta/recipes-devtools/go tree by
> Matt Madison <matt@madison.systems>.
>
> +Rework the patch to avoid identation, it's more hard to read but
> +easy to rebase.
> +Jose Quaresma <jose.quaresma@foundries.io>
> +
> +Upstream-Status: Inappropriate [OE specific]
> +
> Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> - src/cmd/dist/build.go | 152 +++++++++++++++++++++++++++++++-----------
> - 1 file changed, 113 insertions(+), 39 deletions(-)
> + src/cmd/dist/build.go | 76 ++++++++++++++++++++++++++++++++++++++++++-
> + 1 file changed, 75 insertions(+), 1 deletion(-)
>
> diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
> -index 5d31718..1c7f308 100644
> +index adc9fd2..5fff592 100644
> --- a/src/cmd/dist/build.go
> +++ b/src/cmd/dist/build.go
> -@@ -44,6 +44,7 @@ var (
> +@@ -46,6 +46,7 @@ var (
> goexperiment string
> workdir string
> tooldir string
> + build_tooldir string
> oldgoos string
> oldgoarch string
> - exe string
> -@@ -55,6 +56,7 @@ var (
> - rebuildall bool
> - defaultclang bool
> - noOpt bool
> -+ crossBuild bool
> + oldgocache string
> +@@ -58,6 +59,7 @@ var (
> + rebuildall bool
> + noOpt bool
> + isRelease bool
> ++ crossBuild bool
>
> vflag int // verbosity
> )
> -@@ -267,6 +269,8 @@ func xinit() {
> - if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
> - tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos, gohostarch)
> - }
> +@@ -265,6 +267,8 @@ func xinit() {
> +
> + goversion := findgoversion()
> + isRelease = strings.HasPrefix(goversion, "release.") || strings.HasPrefix(goversion, "go")
> +
> + build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
> }
>
> // compilerEnv returns a map from "goos/goarch" to the
> -@@ -468,8 +472,10 @@ func setup() {
> +@@ -499,8 +503,10 @@ func setup() {
> goosGoarch := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
> if rebuildall {
> xremoveall(goosGoarch)
> @@ -78,16 +83,18 @@ index 5d31718..1c7f308 100644
> xatexit(func() {
> if files := xreaddir(goosGoarch); len(files) == 0 {
> xremove(goosGoarch)
> -@@ -1276,17 +1282,35 @@ func cmdbootstrap() {
> +@@ -1344,14 +1350,20 @@ func cmdbootstrap() {
> + defer timelog("end", "dist bootstrap")
>
> - var noBanner, noClean bool
> - var debug bool
> + var debug, distpack, force, noBanner, noClean bool
> + var hostOnly bool
> + var targetOnly bool
> + var toBuild = []string{"std", "cmd"}
> +
> flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
> flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap process")
> + flag.BoolVar(&distpack, "distpack", distpack, "write distribution files to pkg/distpack")
> + flag.BoolVar(&force, "force", force, "build even if the port is marked as broken")
> flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print banner")
> flag.BoolVar(&noClean, "no-clean", noClean, "print deprecation warning")
> + flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host binaries, not target")
> @@ -98,6 +105,8 @@ index 5d31718..1c7f308 100644
>
> if noClean {
> xprintf("warning: --no-clean is deprecated and has no effect; use 'go install std cmd' instead\n")
> +@@ -1363,6 +1375,18 @@ func cmdbootstrap() {
> + "Use the -force flag to build anyway.\n", goos, goarch)
> }
>
> + if hostOnly && targetOnly {
> @@ -115,47 +124,46 @@ index 5d31718..1c7f308 100644
> // Set GOPATH to an internal directory. We shouldn't actually
> // need to store files here, since the toolchain won't
> // depend on modules outside of vendor directories, but if
> -@@ -1354,9 +1378,14 @@ func cmdbootstrap() {
> +@@ -1440,9 +1464,14 @@ func cmdbootstrap() {
> xprintf("\n")
> }
>
> -- gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
> -- setNoOpt()
> -- goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
> + // For split host/target cross/cross-canadian builds, we don't
> + // want to be setting these flags until after we have compiled
> + // the toolchain that runs on the build host.
> + if !crossBuild {
> -+ gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
> -+ setNoOpt()
> -+ goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
> -+ }
> + gogcflags = os.Getenv("GO_GCFLAGS") // we were using $BOOT_GO_GCFLAGS until now
> + setNoOpt()
> + goldflags = os.Getenv("GO_LDFLAGS") // we were using $BOOT_GO_LDFLAGS until now
> ++}
> goBootstrap := pathf("%s/go_bootstrap", tooldir)
> - cmdGo := pathf("%s/go", gorootBin)
> if debug {
> -@@ -1385,7 +1414,11 @@ func cmdbootstrap() {
> + run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
> +@@ -1470,7 +1499,11 @@ func cmdbootstrap() {
> xprintf("\n")
> }
> xprintf("Building Go toolchain2 using go_bootstrap and Go toolchain1.\n")
> -- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
> -+ if crossBuild {
> ++ if !crossBuild {
> + os.Setenv("CC", compilerEnvLookup("CC", defaultcc, goos, goarch))
> ++} else {
> + os.Setenv("CC", defaultcc[""])
> -+ } else {
> -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
> + }
> // Now that cmd/go is in charge of the build process, enable GOEXPERIMENT.
> os.Setenv("GOEXPERIMENT", goexperiment)
> - goInstall(goBootstrap, toolchain...)
> -@@ -1421,46 +1454,84 @@ func cmdbootstrap() {
> - copyfile(pathf("%s/compile3", tooldir), pathf("%s/compile", tooldir), writeExec)
> + // No need to enable PGO for toolchain2.
> +@@ -1523,6 +1556,7 @@ func cmdbootstrap() {
> + os.Setenv("GOCACHE", oldgocache)
> }
>
> -- if goos == oldgoos && goarch == oldgoarch {
> -- // Common case - not setting up for cross-compilation.
> -- timelog("build", "toolchain")
> -- if vflag > 0 {
> -- xprintf("\n")
> -+ if crossBuild {
> ++ if !crossBuild {
> + if goos == oldgoos && goarch == oldgoarch {
> + // Common case - not setting up for cross-compilation.
> + timelog("build", "toolchain")
> +@@ -1566,6 +1600,42 @@ func cmdbootstrap() {
> + checkNotStale(toolenv(), goBootstrap, toolchain...)
> + copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
> + }
> ++} else {
> + gogcflags = os.Getenv("GO_GCFLAGS")
> + goldflags = os.Getenv("GO_LDFLAGS")
> + tool_files, _ := filepath.Glob(pathf("%s/*", tooldir))
> @@ -171,8 +179,8 @@ index 5d31718..1c7f308 100644
> + xprintf("\n")
> + }
> + xprintf("Building %s for host, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
> -+ goInstall(goBootstrap, toBuild...)
> -+ checkNotStale(goBootstrap, toBuild...)
> ++ goInstall(toolenv(), goBootstrap, toBuild...)
> ++ checkNotStale(toolenv(), goBootstrap, toBuild...)
> + // Skip cmdGo staleness checks here, since we can't necessarily run the cmdGo binary
> +
> + timelog("build", "target toolchain")
> @@ -184,99 +192,29 @@ index 5d31718..1c7f308 100644
> + goarch = oldgoarch
> + os.Setenv("GOOS", goos)
> + os.Setenv("GOARCH", goarch)
> -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
> ++ os.Setenv("CC", compilerEnvLookup("CC", defaultcc, goos, goarch))
> + xprintf("Building %s for target, %s/%s.\n", strings.Join(toBuild, ","), goos, goarch)
> -+ goInstall(goBootstrap, toBuild...)
> -+ checkNotStale(goBootstrap, toBuild...)
> ++ goInstall(toolenv(), goBootstrap, toBuild...)
> ++ checkNotStale(toolenv(), goBootstrap, toBuild...)
> + // Skip cmdGo staleness checks here, since we can't run the target's cmdGo binary
> - }
> -- xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
> - } else {
> -- // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
> -- // Finish GOHOSTOS/GOHOSTARCH installation and then
> -- // run GOOS/GOARCH installation.
> -- timelog("build", "host toolchain")
> -- if vflag > 0 {
> -- xprintf("\n")
> -+
> -+ if goos == oldgoos && goarch == oldgoarch {
> -+ // Common case - not setting up for cross-compilation.
> -+ timelog("build", "toolchain")
> -+ if vflag > 0 {
> -+ xprintf("\n")
> -+ }
> -+ xprintf("Building packages and commands for %s/%s.\n", goos, goarch)
> -+ } else {
> -+ // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
> -+ // Finish GOHOSTOS/GOHOSTARCH installation and then
> -+ // run GOOS/GOARCH installation.
> -+ timelog("build", "host toolchain")
> -+ if vflag > 0 {
> -+ xprintf("\n")
> -+ }
> -+ xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
> -+ goInstall(goBootstrap, "std", "cmd")
> -+ checkNotStale(goBootstrap, "std", "cmd")
> -+ checkNotStale(cmdGo, "std", "cmd")
> -+
> -+ timelog("build", "target toolchain")
> -+ if vflag > 0 {
> -+ xprintf("\n")
> -+ }
> -+ goos = oldgoos
> -+ goarch = oldgoarch
> -+ os.Setenv("GOOS", goos)
> -+ os.Setenv("GOARCH", goarch)
> -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
> -+ xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
> - }
> -- xprintf("Building packages and commands for host, %s/%s.\n", goos, goarch)
> - goInstall(goBootstrap, "std", "cmd")
> - checkNotStale(goBootstrap, "std", "cmd")
> - checkNotStale(cmdGo, "std", "cmd")
> -
> -- timelog("build", "target toolchain")
> -- if vflag > 0 {
> -- xprintf("\n")
> -+ if debug {
> -+ run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
> -+ run("", ShowOutput|CheckExit, pathf("%s/buildid", tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos, goarch))
> -+ checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
> -+ copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
> - }
> -- goos = oldgoos
> -- goarch = oldgoarch
> -- os.Setenv("GOOS", goos)
> -- os.Setenv("GOARCH", goarch)
> -- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
> -- xprintf("Building packages and commands for target, %s/%s.\n", goos, goarch)
> -- }
> -- targets := []string{"std", "cmd"}
> -- goInstall(goBootstrap, targets...)
> -- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
> -- checkNotStale(goBootstrap, targets...)
> -- checkNotStale(cmdGo, targets...)
> -- if debug {
> -- run("", ShowOutput|CheckExit, pathf("%s/compile", tooldir), "-V=full")
> -- checkNotStale(goBootstrap, append(toolchain, "runtime/internal/sys")...)
> -- copyfile(pathf("%s/compile4", tooldir), pathf("%s/compile", tooldir), writeExec)
> - }
> ++ }
> ++ }
>
> // Check that there are no new files in $GOROOT/bin other than
> -@@ -1477,8 +1548,11 @@ func cmdbootstrap() {
> + // go and gofmt and $GOOS_$GOARCH (target bin when cross-compiling).
> +@@ -1585,8 +1655,12 @@ func cmdbootstrap() {
> }
> }
>
> -- // Remove go_bootstrap now that we're done.
> -- xremove(pathf("%s/go_bootstrap", tooldir))
> + // Except that for split host/target cross-builds, we need to
> + // keep it.
> + if !crossBuild {
> -+ xremove(pathf("%s/go_bootstrap", tooldir))
> -+ }
> + // Remove go_bootstrap now that we're done.
> + xremove(pathf("%s/go_bootstrap"+exe, tooldir))
> ++}
>
> if goos == "android" {
> // Make sure the exec wrapper will sync a fresh $GOROOT to the device.
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch b/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
> index 520e41da86..d118e726c6 100644
> --- a/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
> +++ b/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
> @@ -1,10 +1,8 @@
> -From efab470498bb0a30ee2d00455a0c8c10459f6347 Mon Sep 17 00:00:00 2001
> +From aff5a740d6286c04beb0593fc68b0aea5a95ad39 Mon Sep 17 00:00:00 2001
> From: Alex Kube <alexander.j.kube@gmail.com>
> Date: Wed, 23 Oct 2019 21:18:56 +0430
> Subject: [PATCH 6/9] cmd/go: make GOROOT precious by default
>
> -Upstream-Status: Inappropriate [OE specific]
> -
> The go build tool normally rebuilds whatever it detects is
> stale. This can be a problem when GOROOT is intended to
> be read-only and the go runtime has been built as a shared
> @@ -20,7 +18,10 @@ Adapted to Go 1.13 from patches originally submitted to
> the meta/recipes-devtools/go tree by
> Matt Madison <matt@madison.systems>.
>
> +Upstream-Status: Inappropriate [OE specific]
> +
> Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> src/cmd/go/internal/work/action.go | 3 +++
> src/cmd/go/internal/work/build.go | 6 ++++++
> @@ -28,10 +29,10 @@ Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> 3 files changed, 34 insertions(+)
>
> diff --git a/src/cmd/go/internal/work/action.go b/src/cmd/go/internal/work/action.go
> -index 8beb134..68a8cfe 100644
> +index d4d0a71..42149d2 100644
> --- a/src/cmd/go/internal/work/action.go
> +++ b/src/cmd/go/internal/work/action.go
> -@@ -718,6 +718,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) {
> +@@ -730,6 +730,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1 *Action, shlib string) {
> if p1 == nil || p1.Shlib == "" || haveShlib[filepath.Base(p1.Shlib)] {
> continue
> }
> @@ -42,10 +43,10 @@ index 8beb134..68a8cfe 100644
> // TODO(rsc): The use of ModeInstall here is suspect, but if we only do ModeBuild,
> // we'll end up building an overall library or executable that depends at runtime
> diff --git a/src/cmd/go/internal/work/build.go b/src/cmd/go/internal/work/build.go
> -index 2f2860a..8cc6166 100644
> +index e2e0e07..1c84137 100644
> --- a/src/cmd/go/internal/work/build.go
> +++ b/src/cmd/go/internal/work/build.go
> -@@ -217,6 +217,8 @@ See also: go install, go get, go clean.
> +@@ -228,6 +228,8 @@ See also: go install, go get, go clean.
>
> const concurrentGCBackendCompilationEnabledByDefault = true
>
> @@ -54,7 +55,7 @@ index 2f2860a..8cc6166 100644
> func init() {
> // break init cycle
> CmdBuild.Run = runBuild
> -@@ -230,6 +232,10 @@ func init() {
> +@@ -241,6 +243,10 @@ func init() {
> AddCoverFlags(CmdBuild, nil)
> AddCoverFlags(CmdInstall, nil)
> }
> @@ -66,11 +67,11 @@ index 2f2860a..8cc6166 100644
>
> // Note that flags consulted by other parts of the code
> diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
> -index 62e1774..cde867b 100644
> +index e3dd486..0ea5316 100644
> --- a/src/cmd/go/internal/work/exec.go
> +++ b/src/cmd/go/internal/work/exec.go
> -@@ -546,6 +546,23 @@ func (b *Builder) build(ctx context.Context, a *Action) (err error) {
> - return errors.New("cannot compile Go " + p.Module.GoVersion + " code")
> +@@ -539,6 +539,23 @@ func (b *Builder) build(ctx context.Context, a *Action) (err error) {
> + return err
> }
>
> + if goRootPrecious && (a.Package.Standard || a.Package.Goroot) {
> @@ -93,7 +94,7 @@ index 62e1774..cde867b 100644
> if err := b.Mkdir(a.Objdir); err != nil {
> return err
> }
> -@@ -1643,6 +1660,14 @@ func (b *Builder) linkShared(ctx context.Context, a *Action) (err error) {
> +@@ -1722,6 +1739,14 @@ func (b *Builder) linkShared(ctx context.Context, a *Action) (err error) {
> return err
> }
>
> @@ -109,5 +110,5 @@ index 62e1774..cde867b 100644
> return err
> }
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch b/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
> index 7d9869b536..3e0ba35d81 100644
> --- a/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
> +++ b/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
> @@ -1,4 +1,4 @@
> -From 0ba747e6a4b251a0d9eed0cfd8f8c491bb508040 Mon Sep 17 00:00:00 2001
> +From 619991feab04f331d081a91243434ccd859f611d 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 7/9] exec.go: do not write linker flags into buildids
> @@ -9,16 +9,18 @@ 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>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> 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 cde867b..5cb1812 100644
> +index 0ea5316..d7e2d51 100644
> --- a/src/cmd/go/internal/work/exec.go
> +++ b/src/cmd/go/internal/work/exec.go
> -@@ -1331,7 +1331,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
> +@@ -1357,7 +1357,7 @@ func (b *Builder) linkActionID(a *Action) cache.ActionID {
> }
>
> // Toolchain-dependent configuration, shared with b.linkSharedActionID.
> @@ -27,7 +29,7 @@ index cde867b..5cb1812 100644
>
> // Input files.
> for _, a1 := range a.Deps {
> -@@ -1626,7 +1626,7 @@ func (b *Builder) linkSharedActionID(a *Action) cache.ActionID {
> +@@ -1705,7 +1705,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.
> @@ -37,5 +39,5 @@ index cde867b..5cb1812 100644
> // Input files.
> for _, a1 := range a.Deps {
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch b/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
> index fe830ce35c..58512207a8 100644
> --- a/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
> +++ b/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
> @@ -1,4 +1,4 @@
> -From 1cbb416538a9c7c3fbedcb23f4d90d5c48becca8 Mon Sep 17 00:00:00 2001
> +From e0999902687e2e394499f7153db8d62440c4dab0 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 8/9] src/cmd/dist/buildgo.go: do not hardcode host compilers
> @@ -8,16 +8,18 @@ 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>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> 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 29b0167..63a49f0 100644
> +index 884e9d7..2f52eda 100644
> --- a/src/cmd/dist/buildgo.go
> +++ b/src/cmd/dist/buildgo.go
> -@@ -33,8 +33,8 @@ func mkzdefaultcc(dir, file string) {
> +@@ -51,8 +51,8 @@ func mkzdefaultcc(dir, file string) {
> fmt.Fprintf(&buf, "package cfg\n")
> fmt.Fprintln(&buf)
> fmt.Fprintf(&buf, "const DefaultPkgConfig = `%s`\n", defaultpkgconfig)
> @@ -28,7 +30,7 @@ index 29b0167..63a49f0 100644
> writefile(buf.String(), file, writeSkipSame)
> return
> }
> -@@ -45,8 +45,8 @@ func mkzdefaultcc(dir, file string) {
> +@@ -62,8 +62,8 @@ func mkzdefaultcc(dir, file string) {
> fmt.Fprintf(&buf, "package main\n")
> fmt.Fprintln(&buf)
> fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n", defaultpkgconfig)
> @@ -40,5 +42,5 @@ index 29b0167..63a49f0 100644
> }
>
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch b/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
> index 49da5f6297..597a4e2104 100644
> --- a/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
> +++ b/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
> @@ -1,4 +1,4 @@
> -From 18011f72125bbea273d07ee5d792ac0ce6059572 Mon Sep 17 00:00:00 2001
> +From 6c2438f187ca912c54a71b4ac65ab98999a019d2 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
> @@ -11,17 +11,18 @@ on mips/ppc.
> Upstream-Status: Submitted [https://github.com/golang/go/pull/56410]
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> ---
> 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 f427e29..6d6dc4e 100644
> +index c0e6265..b199fee 100644
> --- a/src/cmd/go/internal/load/pkg.go
> +++ b/src/cmd/go/internal/load/pkg.go
> -@@ -2270,6 +2270,17 @@ func (p *Package) collectDeps() {
> - // to their VCS information (vcsStatusError).
> - var vcsStatusCache par.Cache
> +@@ -2269,6 +2269,17 @@ func appendBuildSetting(info *debug.BuildInfo, key, value string) {
> + info.Settings = append(info.Settings, debug.BuildSetting{Key: key, Value: value})
> + }
>
> +func filterCompilerFlags(flags string) string {
> + var newflags []string
> @@ -34,10 +35,10 @@ index f427e29..6d6dc4e 100644
> + 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.
> -@@ -2376,7 +2387,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
> + // setBuildInfo gathers build information and sets it into
> + // p.Internal.BuildInfo, which will later be formatted as a string and embedded
> + // in the binary. setBuildInfo should only be called on a main package with no
> +@@ -2376,7 +2387,7 @@ func (p *Package) setBuildInfo(ctx context.Context, autoVCS bool) {
> if gcflags := BuildGcflags.String(); gcflags != "" && cfg.BuildContext.Compiler == "gc" {
> appendSetting("-gcflags", gcflags)
> }
> @@ -46,7 +47,7 @@ index f427e29..6d6dc4e 100644
> // 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).
> -@@ -2422,7 +2433,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
> +@@ -2419,7 +2430,7 @@ func (p *Package) setBuildInfo(ctx context.Context, 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"} {
> @@ -56,5 +57,5 @@ index f427e29..6d6dc4e 100644
> }
> appendSetting("GOARCH", cfg.BuildContext.GOARCH)
> --
> -2.30.2
> +2.43.0
>
> diff --git a/meta/recipes-devtools/go/go_1.20.12.bb b/meta/recipes-devtools/go/go_1.21.0.bb
> similarity index 100%
> rename from meta/recipes-devtools/go/go_1.20.12.bb
> rename to meta/recipes-devtools/go/go_1.21.0.bb
> --
> 2.43.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#191943): https://lists.openembedded.org/g/openembedded-core/message/191943
> Mute This Topic: https://lists.openembedded.org/mt/103031554/3617179
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [OE-core] [PATCH 1/2] go: bump 1.21.0
2023-12-07 23:23 ` [OE-core] [PATCH 1/2] go: bump 1.21.0 Alexandre Belloni
@ 2023-12-11 10:01 ` Jose Quaresma
0 siblings, 0 replies; 4+ messages in thread
From: Jose Quaresma @ 2023-12-11 10:01 UTC (permalink / raw)
To: Alexandre Belloni; +Cc: openembedded-core, ricardo, Jose Quaresma
[-- Attachment #1: Type: text/plain, Size: 52366 bytes --]
Hi Alexandre,
I will investigate and try to address all the issues.
Thanks for reporting.
Jose
Alexandre Belloni <alexandre.belloni@bootlin.com> escreveu no dia quinta,
7/12/2023 à(s) 23:23:
> Hello Jose,
>
> go.GoHelloworldTest.test_gohelloworld fails after this series:
>
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/76/builds/8211/steps/13/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/6104/steps/14/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/6154/steps/14/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6169/steps/14/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/53/builds/8256/steps/14/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/110/builds/7125/steps/13/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/131/builds/3614/steps/13/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/59/builds/8186/steps/13/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/73/builds/8193/steps/13/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/109/builds/7085/steps/14/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/101/builds/6998/steps/14/logs/stdio
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/6159/steps/14/logs/stdio
>
>
> On 07/12/2023 10:07:11+0000, Jose Quaresma wrote:
> > Go 1.21 Release Notes
> > https://go.dev/doc/go1.21
> >
> > Rework the patch 0005-cmd-dist-separate-host-and-target-builds.patch
> > to avoid identation, it's more hard to read but easy to rebase.
> >
> > Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > meta/conf/distro/include/tcmode-default.inc | 2 +-
> > .../go/{go-1.20.12.inc => go-1.21.0.inc} | 2 +-
> > ..._1.20.12.bb => go-binary-native_1.21.0.bb} | 6 +-
> > ...1.20.12.bb => go-cross-canadian_1.21.0.bb} | 0
> > ...go-cross_1.20.12.bb => go-cross_1.21.0.bb} | 0
> > ...sssdk_1.20.12.bb => go-crosssdk_1.21.0.bb} | 0
> > ...-native_1.20.12.bb => go-native_1.21.0.bb} | 0
> > ...untime_1.20.12.bb => go-runtime_1.21.0.bb} | 0
> > ...ent-based-hash-generation-less-pedan.patch | 35 ++--
> > ...OOLDIR-to-be-overridden-in-the-envir.patch | 17 +-
> > ...3-ld-add-soname-to-shareable-objects.patch | 13 +-
> > ...de-CC-when-building-dist-and-go_boot.patch | 15 +-
> > ...dist-separate-host-and-target-builds.patch | 192 ++++++------------
> > ...d-go-make-GOROOT-precious-by-default.patch | 27 +--
> > ...not-write-linker-flags-into-buildids.patch | 12 +-
> > ...ldgo.go-do-not-hardcode-host-compile.patch | 12 +-
> > ...uild-paths-on-staticly-linked-arches.patch | 23 ++-
> > .../go/{go_1.20.12.bb => go_1.21.0.bb} | 0
> > 18 files changed, 152 insertions(+), 204 deletions(-)
> > rename meta/recipes-devtools/go/{go-1.20.12.inc => go-1.21.0.inc} (89%)
> > rename meta/recipes-devtools/go/{go-binary-native_1.20.12.bb =>
> go-binary-native_1.21.0.bb} (78%)
> > rename meta/recipes-devtools/go/{go-cross-canadian_1.20.12.bb =>
> go-cross-canadian_1.21.0.bb} (100%)
> > rename meta/recipes-devtools/go/{go-cross_1.20.12.bb =>
> go-cross_1.21.0.bb} (100%)
> > rename meta/recipes-devtools/go/{go-crosssdk_1.20.12.bb =>
> go-crosssdk_1.21.0.bb} (100%)
> > rename meta/recipes-devtools/go/{go-native_1.20.12.bb =>
> go-native_1.21.0.bb} (100%)
> > rename meta/recipes-devtools/go/{go-runtime_1.20.12.bb =>
> go-runtime_1.21.0.bb} (100%)
> > rename meta/recipes-devtools/go/{go_1.20.12.bb => go_1.21.0.bb} (100%)
> >
> > diff --git a/meta/conf/distro/include/tcmode-default.inc
> b/meta/conf/distro/include/tcmode-default.inc
> > index 707402e6eb..feebe5d30e 100644
> > --- a/meta/conf/distro/include/tcmode-default.inc
> > +++ b/meta/conf/distro/include/tcmode-default.inc
> > @@ -23,7 +23,7 @@ GDBVERSION ?= "13.%"
> > GLIBCVERSION ?= "2.38%"
> > LINUXLIBCVERSION ?= "6.5%"
> > QEMUVERSION ?= "8.1%"
> > -GOVERSION ?= "1.20%"
> > +GOVERSION ?= "1.21%"
> > LLVMVERSION ?= "17.%"
> > RUSTVERSION ?= "1.70%"
> >
> > diff --git a/meta/recipes-devtools/go/go-1.20.12.inc
> b/meta/recipes-devtools/go/go-1.21.0.inc
> > similarity index 89%
> > rename from meta/recipes-devtools/go/go-1.20.12.inc
> > rename to meta/recipes-devtools/go/go-1.21.0.inc
> > index 9be56c6707..2933793b8b 100644
> > --- a/meta/recipes-devtools/go/go-1.20.12.inc
> > +++ b/meta/recipes-devtools/go/go-1.21.0.inc
> > @@ -15,4 +15,4 @@ SRC_URI += "\
> >
> file://0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch \
> > file://0009-go-Filter-build-paths-on-staticly-linked-arches.patch \
> > "
> > -SRC_URI[main.sha256sum] =
> "c5bf934751d31c315c1d0bb5fb02296545fa6d08923566f7a5afec81f2ed27d6"
> > +SRC_URI[main.sha256sum] =
> "818d46ede85682dd551ad378ef37a4d247006f12ec59b5b755601d2ce114369a"
> > diff --git a/meta/recipes-devtools/go/go-binary-native_1.20.12.bb
> b/meta/recipes-devtools/go/go-binary-native_1.21.0.bb
> > similarity index 78%
> > rename from meta/recipes-devtools/go/go-binary-native_1.20.12.bb
> > rename to meta/recipes-devtools/go/go-binary-native_1.21.0.bb
> > index e555412a19..0b8086e7b9 100644
> > --- a/meta/recipes-devtools/go/go-binary-native_1.20.12.bb
> > +++ b/meta/recipes-devtools/go/go-binary-native_1.21.0.bb
> > @@ -9,9 +9,9 @@ PROVIDES = "go-native"
> >
> > # Checksums available at https://go.dev/dl/
> > SRC_URI = "
> https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}
> "
> > -SRC_URI[go_linux_amd64.sha256sum] =
> "9c5d48c54dd8b0a3b2ef91b0f92a1190aa01f11d26e98033efa64c46a30bba7b"
> > -SRC_URI[go_linux_arm64.sha256sum] =
> "8afe8e3fb6972eaa2179ef0a71678c67f26509fab4f0f67c4b00f4cdfa92dc87"
> > -SRC_URI[go_linux_ppc64le.sha256sum] =
> "2ae0ec3736216dfbd7b01ff679842dc1bed365e53a024d522645bcffd01c7328"
> > +SRC_URI[go_linux_amd64.sha256sum] =
> "d0398903a16ba2232b389fb31032ddf57cac34efda306a0eebac34f0965a0742"
> > +SRC_URI[go_linux_arm64.sha256sum] =
> "f3d4548edf9b22f26bbd49720350bbfe59d75b7090a1a2bff1afad8214febaf3"
> > +SRC_URI[go_linux_ppc64le.sha256sum] =
> "e938ffc81d8ebe5efc179240960ba22da6a841ff05d5cab7ce2547112b14a47f"
> >
> > UPSTREAM_CHECK_URI = "https://golang.org/dl/"
> > UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
> > diff --git a/meta/recipes-devtools/go/go-cross-canadian_1.20.12.bb
> b/meta/recipes-devtools/go/go-cross-canadian_1.21.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/go/go-cross-canadian_1.20.12.bb
> > rename to meta/recipes-devtools/go/go-cross-canadian_1.21.0.bb
> > diff --git a/meta/recipes-devtools/go/go-cross_1.20.12.bb
> b/meta/recipes-devtools/go/go-cross_1.21.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/go/go-cross_1.20.12.bb
> > rename to meta/recipes-devtools/go/go-cross_1.21.0.bb
> > diff --git a/meta/recipes-devtools/go/go-crosssdk_1.20.12.bb
> b/meta/recipes-devtools/go/go-crosssdk_1.21.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/go/go-crosssdk_1.20.12.bb
> > rename to meta/recipes-devtools/go/go-crosssdk_1.21.0.bb
> > diff --git a/meta/recipes-devtools/go/go-native_1.20.12.bb
> b/meta/recipes-devtools/go/go-native_1.21.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/go/go-native_1.20.12.bb
> > rename to meta/recipes-devtools/go/go-native_1.21.0.bb
> > diff --git a/meta/recipes-devtools/go/go-runtime_1.20.12.bb
> b/meta/recipes-devtools/go/go-runtime_1.21.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/go/go-runtime_1.20.12.bb
> > rename to meta/recipes-devtools/go/go-runtime_1.21.0.bb
> > diff --git
> a/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> b/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> > index 9a2551031a..3bd756449e 100644
> > ---
> a/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> > +++
> b/meta/recipes-devtools/go/go/0001-cmd-go-make-content-based-hash-generation-less-pedan.patch
> > @@ -1,4 +1,4 @@
> > -From 10766ca6f4007b96e3f6bf4fb496e5df74397eb9 Mon Sep 17 00:00:00 2001
> > +From 9a6c5040cbcd88b10ceb8ceaebc8d6158c086670 Mon Sep 17 00:00:00 2001
> > From: Khem Raj <raj.khem@gmail.com>
> > Date: Mon, 28 Mar 2022 10:59:03 -0700
> > Subject: [PATCH 1/9] cmd/go: make content-based hash generation less
> pedantic
> > @@ -25,16 +25,17 @@ Upstream-Status: Inappropriate [OE specific]
> > Signed-off-by: Alex Kube <alexander.j.kube@gmail.com>
> > Signed-off-by: Matt Madison <matt@madison.systems>
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > src/cmd/go/internal/envcmd/env.go | 2 +-
> > src/cmd/go/internal/work/exec.go | 44 ++++++++++++++++++++++++-------
> > 2 files changed, 36 insertions(+), 10 deletions(-)
> >
> > diff --git a/src/cmd/go/internal/envcmd/env.go
> b/src/cmd/go/internal/envcmd/env.go
> > -index 66ef5ce..fb7448a 100644
> > +index c7c2e83..4a90d9d 100644
> > --- a/src/cmd/go/internal/envcmd/env.go
> > +++ b/src/cmd/go/internal/envcmd/env.go
> > -@@ -183,7 +183,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar {
> > +@@ -189,7 +189,7 @@ func ExtraEnvVarsCostly() []cfg.EnvVar {
> > }
> > }()
> >
> > @@ -44,10 +45,10 @@ index 66ef5ce..fb7448a 100644
> > // Should not happen - b.CFlags was given an empty package.
> > fmt.Fprintf(os.Stderr, "go: invalid cflags: %v\n", err)
> > diff --git a/src/cmd/go/internal/work/exec.go
> b/src/cmd/go/internal/work/exec.go
> > -index 67d1193..62e1774 100644
> > +index 13d2a78..e3dd486 100644
> > --- a/src/cmd/go/internal/work/exec.go
> > +++ b/src/cmd/go/internal/work/exec.go
> > -@@ -223,6 +223,8 @@ func (b *Builder) Do(ctx context.Context, root
> *Action) {
> > +@@ -231,6 +231,8 @@ func (b *Builder) Do(ctx context.Context, root
> *Action) {
> > writeActionGraph()
> > }
> >
> > @@ -56,7 +57,7 @@ index 67d1193..62e1774 100644
> > // buildActionID computes the action ID for a build action.
> > func (b *Builder) buildActionID(a *Action) cache.ActionID {
> > p := a.Package
> > -@@ -244,7 +246,7 @@ func (b *Builder) buildActionID(a *Action)
> cache.ActionID {
> > +@@ -252,7 +254,7 @@ func (b *Builder) buildActionID(a *Action)
> cache.ActionID {
> > if p.Module != nil {
> > fmt.Fprintf(h, "module %s@%s\n", p.Module.Path,
> p.Module.Version)
> > }
> > @@ -65,7 +66,7 @@ index 67d1193..62e1774 100644
> > // The Go compiler always hides the exact value of $GOROOT
> > // when building things in GOROOT.
> > //
> > -@@ -276,9 +278,9 @@ func (b *Builder) buildActionID(a *Action)
> cache.ActionID {
> > +@@ -284,9 +286,9 @@ func (b *Builder) buildActionID(a *Action)
> cache.ActionID {
> > }
> > if len(p.CgoFiles)+len(p.SwigFiles)+len(p.SwigCXXFiles) > 0 {
> > fmt.Fprintf(h, "cgo %q\n", b.toolID("cgo"))
> > @@ -77,7 +78,7 @@ index 67d1193..62e1774 100644
> > fmt.Fprintf(h, "CC=%q %q %q %q\n", ccExe, cppflags,
> cflags, ldflags)
> > // Include the C compiler tool ID so that if the C
> > // compiler changes we rebuild the package.
> > -@@ -286,14 +288,14 @@ func (b *Builder) buildActionID(a *Action)
> cache.ActionID {
> > +@@ -294,14 +296,14 @@ func (b *Builder) buildActionID(a *Action)
> cache.ActionID {
> > fmt.Fprintf(h, "CC ID=%q\n", ccID)
> > }
> > if len(p.CXXFiles)+len(p.SwigCXXFiles) > 0 {
> > @@ -94,16 +95,16 @@ index 67d1193..62e1774 100644
> > fmt.Fprintf(h, "FC=%q %q\n", fcExe, fflags)
> > if fcID, _, err := b.gccToolID(fcExe[0], "f95");
> err == nil {
> > fmt.Fprintf(h, "FC ID=%q\n", fcID)
> > -@@ -310,7 +312,7 @@ func (b *Builder) buildActionID(a *Action)
> cache.ActionID {
> > +@@ -318,7 +320,7 @@ func (b *Builder) buildActionID(a *Action)
> cache.ActionID {
> > }
> > }
> > - if p.Internal.BuildInfo != "" {
> > -- fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
> > -+ //fmt.Fprintf(h, "modinfo %q\n", p.Internal.BuildInfo)
> > + if p.Internal.BuildInfo != nil {
> > +- fmt.Fprintf(h, "modinfo %q\n",
> p.Internal.BuildInfo.String())
> > ++ //fmt.Fprintf(h, "modinfo %q\n",
> p.Internal.BuildInfo.String())
> > }
> >
> > // Configuration specific to compiler toolchain.
> > -@@ -2989,8 +2991,25 @@ func envList(key, def string) []string {
> > +@@ -3137,8 +3139,25 @@ func envList(key, def string) []string {
> > return args
> > }
> >
> > @@ -130,7 +131,7 @@ index 67d1193..62e1774 100644
> > if cppflags, err = buildFlags("CPPFLAGS", "", p.CgoCPPFLAGS,
> checkCompilerFlags); err != nil {
> > return
> > }
> > -@@ -3006,6 +3025,13 @@ func (b *Builder) CFlags(p *load.Package)
> (cppflags, cflags, cxxflags, fflags, l
> > +@@ -3154,6 +3173,13 @@ func (b *Builder) CFlags(p *load.Package)
> (cppflags, cflags, cxxflags, fflags, l
> > if ldflags, err = buildFlags("LDFLAGS", defaultCFlags,
> p.CgoLDFLAGS, checkLinkerFlags); err != nil {
> > return
> > }
> > @@ -144,7 +145,7 @@ index 67d1193..62e1774 100644
> >
> > return
> > }
> > -@@ -3021,7 +3047,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
> > +@@ -3169,7 +3195,7 @@ var cgoRe = lazyregexp.New(`[/\\:]`)
> >
> > func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS,
> pcLDFLAGS, cgofiles, gccfiles, gxxfiles, mfiles, ffiles []string) (outGo,
> outObj []string, err error) {
> > p := a.Package
> > @@ -153,7 +154,7 @@ index 67d1193..62e1774 100644
> > if err != nil {
> > return nil, nil, err
> > }
> > -@@ -3577,7 +3603,7 @@ func (b *Builder) swigIntSize(objdir string)
> (intsize string, err error) {
> > +@@ -3725,7 +3751,7 @@ func (b *Builder) swigIntSize(objdir string)
> (intsize string, err error) {
> >
> > // Run SWIG on one SWIG input file.
> > func (b *Builder) swigOne(a *Action, p *load.Package, file, objdir
> string, pcCFLAGS []string, cxx bool, intgosize string) (outGo, outC string,
> err error) {
> > @@ -163,5 +164,5 @@ index 67d1193..62e1774 100644
> > return "", "", err
> > }
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git
> a/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
> b/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
> > index 6abd424733..cf7ad02f86 100644
> > ---
> a/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
> > +++
> b/meta/recipes-devtools/go/go/0002-cmd-go-Allow-GOTOOLDIR-to-be-overridden-in-the-envir.patch
> > @@ -1,4 +1,4 @@
> > -From 5cca2fa5997292a87302bdc7e7ed3231371e98bd Mon Sep 17 00:00:00 2001
> > +From e3f9a8a69d3a340c1a1d0bba566e71f20f635a43 Mon Sep 17 00:00:00 2001
> > From: Alex Kube <alexander.j.kube@gmail.com>
> > Date: Wed, 23 Oct 2019 21:15:37 +0430
> > Subject: [PATCH 2/9] cmd/go: Allow GOTOOLDIR to be overridden in the
> > @@ -13,16 +13,17 @@ Matt Madison <matt@madison.systems>.
> > Upstream-Status: Inappropriate [OE specific]
> >
> > Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > src/cmd/dist/build.go | 4 +++-
> > src/cmd/go/internal/cfg/cfg.go | 6 +++++-
> > 2 files changed, 8 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
> > -index c36a12e..5d31718 100644
> > +index 8973a87..adc9fd2 100644
> > --- a/src/cmd/dist/build.go
> > +++ b/src/cmd/dist/build.go
> > -@@ -264,7 +264,9 @@ func xinit() {
> > +@@ -259,7 +259,9 @@ func xinit() {
> > }
> > xatexit(rmworkdir)
> >
> > @@ -30,14 +31,14 @@ index c36a12e..5d31718 100644
> > + if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
> > + tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos,
> gohostarch)
> > + }
> > - }
> >
> > - // compilerEnv returns a map from "goos/goarch" to the
> > + goversion := findgoversion()
> > + isRelease = strings.HasPrefix(goversion, "release.") ||
> strings.HasPrefix(goversion, "go")
> > diff --git a/src/cmd/go/internal/cfg/cfg.go
> b/src/cmd/go/internal/cfg/cfg.go
> > -index 3257140..bb46253 100644
> > +index 8a82e55..1141fc2 100644
> > --- a/src/cmd/go/internal/cfg/cfg.go
> > +++ b/src/cmd/go/internal/cfg/cfg.go
> > -@@ -229,7 +229,11 @@ func SetGOROOT(goroot string, isTestGo bool) {
> > +@@ -231,7 +231,11 @@ func SetGOROOT(goroot string, isTestGo bool) {
> > // This matches the initialization of ToolDir in
> go/build, except for
> > // using ctxt.GOROOT and the installed GOOS and
> GOARCH rather than the
> > // GOROOT, GOOS, and GOARCH reported by the
> runtime package.
> > @@ -51,5 +52,5 @@ index 3257140..bb46253 100644
> > }
> > }
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git
> a/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
> b/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
> > index ced0be1998..8afa28aab0 100644
> > ---
> a/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
> > +++
> b/meta/recipes-devtools/go/go/0003-ld-add-soname-to-shareable-objects.patch
> > @@ -1,4 +1,4 @@
> > -From c7536a820f713013ab1d4acef74a4c8bd970bf8f Mon Sep 17 00:00:00 2001
> > +From 7dde77b3ce8138314dd2736604b1b110dbcc0ac1 Mon Sep 17 00:00:00 2001
> > From: Alex Kube <alexander.j.kube@gmail.com>
> > Date: Wed, 23 Oct 2019 21:16:32 +0430
> > Subject: [PATCH 3/9] ld: add soname to shareable objects
> > @@ -13,15 +13,16 @@ Matt Madison <matt@madison.systems>.
> > Upstream-Status: Inappropriate [OE specific]
> >
> > Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > src/cmd/link/internal/ld/lib.go | 3 +++
> > 1 file changed, 3 insertions(+)
> >
> > diff --git a/src/cmd/link/internal/ld/lib.go
> b/src/cmd/link/internal/ld/lib.go
> > -index 03b9f11..e91c92f 100644
> > +index 91e2d51..e98b912 100644
> > --- a/src/cmd/link/internal/ld/lib.go
> > +++ b/src/cmd/link/internal/ld/lib.go
> > -@@ -1504,6 +1504,7 @@ func (ctxt *Link) hostlink() {
> > +@@ -1554,6 +1554,7 @@ func (ctxt *Link) hostlink() {
> > argv = append(argv, "-Wl,-z,relro")
> > }
> > argv = append(argv, "-shared")
> > @@ -29,7 +30,7 @@ index 03b9f11..e91c92f 100644
> > if ctxt.HeadType == objabi.Hwindows {
> > argv = addASLRargs(argv, *flagAslr)
> > } else {
> > -@@ -1519,6 +1520,7 @@ func (ctxt *Link) hostlink() {
> > +@@ -1569,6 +1570,7 @@ func (ctxt *Link) hostlink() {
> > argv = append(argv, "-Wl,-z,relro")
> > }
> > argv = append(argv, "-shared")
> > @@ -37,7 +38,7 @@ index 03b9f11..e91c92f 100644
> > case BuildModePlugin:
> > if ctxt.HeadType == objabi.Hdarwin {
> > argv = append(argv, "-dynamiclib")
> > -@@ -1527,6 +1529,7 @@ func (ctxt *Link) hostlink() {
> > +@@ -1577,6 +1579,7 @@ func (ctxt *Link) hostlink() {
> > argv = append(argv, "-Wl,-z,relro")
> > }
> > argv = append(argv, "-shared")
> > @@ -46,5 +47,5 @@ index 03b9f11..e91c92f 100644
> > }
> >
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git
> a/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
> b/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
> > index 85e42f7660..5dd2621adc 100644
> > ---
> a/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
> > +++
> b/meta/recipes-devtools/go/go/0004-make.bash-override-CC-when-building-dist-and-go_boot.patch
> > @@ -1,4 +1,4 @@
> > -From 31ff609cc3d3bfcc2f2257fda1dbaafaec31eb0b Mon Sep 17 00:00:00 2001
> > +From 9f59e46991074d3e3c4d00f3971e62bfcd707167 Mon Sep 17 00:00:00 2001
> > From: Alex Kube <alexander.j.kube@gmail.com>
> > Date: Wed, 23 Oct 2019 21:17:16 +0430
> > Subject: [PATCH 4/9] make.bash: override CC when building dist and
> > @@ -13,24 +13,25 @@ Matt Madison <matt@madison.systems>.
> > Upstream-Status: Inappropriate [OE specific]
> >
> > Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > src/make.bash | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/make.bash b/src/make.bash
> > -index c07f39b..6ca7242 100755
> > +index 755b3b0..eddfc3c 100755
> > --- a/src/make.bash
> > +++ b/src/make.bash
> > -@@ -194,7 +194,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
> > +@@ -198,7 +198,7 @@ if [ "$GOROOT_BOOTSTRAP" = "$GOROOT" ]; then
> > exit 1
> > fi
> > rm -f cmd/dist/dist
> > --GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH="" GO111MODULE=off
> GOEXPERIMENT="" GOENV=off GOFLAGS="" "$GOROOT_BOOTSTRAP/bin/go" build -o
> cmd/dist/dist ./cmd/dist
> > -+CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" GOOS="" GOARCH=""
> GO111MODULE=off GOEXPERIMENT="" GOENV=off GOFLAGS=""
> "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
> > +-GOROOT="$GOROOT_BOOTSTRAP" nogoenv "$GOROOT_BOOTSTRAP/bin/go" build -o
> cmd/dist/dist ./cmd/dist
> > ++CC="${BUILD_CC:-${CC}}" GOROOT="$GOROOT_BOOTSTRAP" nogoenv
> "$GOROOT_BOOTSTRAP/bin/go" build -o cmd/dist/dist ./cmd/dist
> >
> > # -e doesn't propagate out of eval, so check success by hand.
> > eval $(./cmd/dist/dist env -p || echo FAIL=true)
> > -@@ -219,7 +219,7 @@ fi
> > +@@ -223,7 +223,7 @@ fi
> > # Run dist bootstrap to complete make.bash.
> > # Bootstrap installs a proper cmd/dist, built with the new toolchain.
> > # Throw ours, built with the bootstrap toolchain, away after bootstrap.
> > @@ -40,5 +41,5 @@ index c07f39b..6ca7242 100755
> >
> > # DO NOT ADD ANY NEW CODE HERE.
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git
> a/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
> b/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
> > index 29598449da..f8dca65ed4 100644
> > ---
> a/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
> > +++
> b/meta/recipes-devtools/go/go/0005-cmd-dist-separate-host-and-target-builds.patch
> > @@ -1,10 +1,8 @@
> > -From 7a191e5191c8b813e929caedb3f3918bb08692a1 Mon Sep 17 00:00:00 2001
> > +From 6dda78d528e60993a4688cd9d49440a726378ac8 Mon Sep 17 00:00:00 2001
> > From: Alex Kube <alexander.j.kube@gmail.com>
> > Date: Wed, 23 Oct 2019 21:18:12 +0430
> > Subject: [PATCH 5/9] cmd/dist: separate host and target builds
> >
> > -Upstream-Status: Inappropriate [OE specific]
> > -
> > Change the dist tool to allow for OE-style cross-
> > and cross-canadian builds:
> >
> > @@ -33,41 +31,48 @@ Adapted to Go 1.13 from patches originally submitted
> to
> > the meta/recipes-devtools/go tree by
> > Matt Madison <matt@madison.systems>.
> >
> > +Rework the patch to avoid identation, it's more hard to read but
> > +easy to rebase.
> > +Jose Quaresma <jose.quaresma@foundries.io>
> > +
> > +Upstream-Status: Inappropriate [OE specific]
> > +
> > Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > - src/cmd/dist/build.go | 152 +++++++++++++++++++++++++++++++-----------
> > - 1 file changed, 113 insertions(+), 39 deletions(-)
> > + src/cmd/dist/build.go | 76 ++++++++++++++++++++++++++++++++++++++++++-
> > + 1 file changed, 75 insertions(+), 1 deletion(-)
> >
> > diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go
> > -index 5d31718..1c7f308 100644
> > +index adc9fd2..5fff592 100644
> > --- a/src/cmd/dist/build.go
> > +++ b/src/cmd/dist/build.go
> > -@@ -44,6 +44,7 @@ var (
> > +@@ -46,6 +46,7 @@ var (
> > goexperiment string
> > workdir string
> > tooldir string
> > + build_tooldir string
> > oldgoos string
> > oldgoarch string
> > - exe string
> > -@@ -55,6 +56,7 @@ var (
> > - rebuildall bool
> > - defaultclang bool
> > - noOpt bool
> > -+ crossBuild bool
> > + oldgocache string
> > +@@ -58,6 +59,7 @@ var (
> > + rebuildall bool
> > + noOpt bool
> > + isRelease bool
> > ++ crossBuild bool
> >
> > vflag int // verbosity
> > )
> > -@@ -267,6 +269,8 @@ func xinit() {
> > - if tooldir = os.Getenv("GOTOOLDIR"); tooldir == "" {
> > - tooldir = pathf("%s/pkg/tool/%s_%s", goroot, gohostos,
> gohostarch)
> > - }
> > +@@ -265,6 +267,8 @@ func xinit() {
> > +
> > + goversion := findgoversion()
> > + isRelease = strings.HasPrefix(goversion, "release.") ||
> strings.HasPrefix(goversion, "go")
> > +
> > + build_tooldir = pathf("%s/pkg/tool/native_native", goroot)
> > }
> >
> > // compilerEnv returns a map from "goos/goarch" to the
> > -@@ -468,8 +472,10 @@ func setup() {
> > +@@ -499,8 +503,10 @@ func setup() {
> > goosGoarch := pathf("%s/pkg/%s_%s", goroot, gohostos, gohostarch)
> > if rebuildall {
> > xremoveall(goosGoarch)
> > @@ -78,16 +83,18 @@ index 5d31718..1c7f308 100644
> > xatexit(func() {
> > if files := xreaddir(goosGoarch); len(files) == 0 {
> > xremove(goosGoarch)
> > -@@ -1276,17 +1282,35 @@ func cmdbootstrap() {
> > +@@ -1344,14 +1350,20 @@ func cmdbootstrap() {
> > + defer timelog("end", "dist bootstrap")
> >
> > - var noBanner, noClean bool
> > - var debug bool
> > + var debug, distpack, force, noBanner, noClean bool
> > + var hostOnly bool
> > + var targetOnly bool
> > + var toBuild = []string{"std", "cmd"}
> > +
> > flag.BoolVar(&rebuildall, "a", rebuildall, "rebuild all")
> > flag.BoolVar(&debug, "d", debug, "enable debugging of bootstrap
> process")
> > + flag.BoolVar(&distpack, "distpack", distpack, "write distribution
> files to pkg/distpack")
> > + flag.BoolVar(&force, "force", force, "build even if the port is
> marked as broken")
> > flag.BoolVar(&noBanner, "no-banner", noBanner, "do not print
> banner")
> > flag.BoolVar(&noClean, "no-clean", noClean, "print deprecation
> warning")
> > + flag.BoolVar(&hostOnly, "host-only", hostOnly, "build only host
> binaries, not target")
> > @@ -98,6 +105,8 @@ index 5d31718..1c7f308 100644
> >
> > if noClean {
> > xprintf("warning: --no-clean is deprecated and has no
> effect; use 'go install std cmd' instead\n")
> > +@@ -1363,6 +1375,18 @@ func cmdbootstrap() {
> > + "Use the -force flag to build anyway.\n", goos,
> goarch)
> > }
> >
> > + if hostOnly && targetOnly {
> > @@ -115,47 +124,46 @@ index 5d31718..1c7f308 100644
> > // Set GOPATH to an internal directory. We shouldn't actually
> > // need to store files here, since the toolchain won't
> > // depend on modules outside of vendor directories, but if
> > -@@ -1354,9 +1378,14 @@ func cmdbootstrap() {
> > +@@ -1440,9 +1464,14 @@ func cmdbootstrap() {
> > xprintf("\n")
> > }
> >
> > -- gogcflags = os.Getenv("GO_GCFLAGS") // we were using
> $BOOT_GO_GCFLAGS until now
> > -- setNoOpt()
> > -- goldflags = os.Getenv("GO_LDFLAGS") // we were using
> $BOOT_GO_LDFLAGS until now
> > + // For split host/target cross/cross-canadian builds, we don't
> > + // want to be setting these flags until after we have compiled
> > + // the toolchain that runs on the build host.
> > + if !crossBuild {
> > -+ gogcflags = os.Getenv("GO_GCFLAGS") // we were using
> $BOOT_GO_GCFLAGS until now
> > -+ setNoOpt()
> > -+ goldflags = os.Getenv("GO_LDFLAGS") // we were using
> $BOOT_GO_LDFLAGS until now
> > -+ }
> > + gogcflags = os.Getenv("GO_GCFLAGS") // we were using
> $BOOT_GO_GCFLAGS until now
> > + setNoOpt()
> > + goldflags = os.Getenv("GO_LDFLAGS") // we were using
> $BOOT_GO_LDFLAGS until now
> > ++}
> > goBootstrap := pathf("%s/go_bootstrap", tooldir)
> > - cmdGo := pathf("%s/go", gorootBin)
> > if debug {
> > -@@ -1385,7 +1414,11 @@ func cmdbootstrap() {
> > + run("", ShowOutput|CheckExit, pathf("%s/compile",
> tooldir), "-V=full")
> > +@@ -1470,7 +1499,11 @@ func cmdbootstrap() {
> > xprintf("\n")
> > }
> > xprintf("Building Go toolchain2 using go_bootstrap and Go
> toolchain1.\n")
> > -- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
> > -+ if crossBuild {
> > ++ if !crossBuild {
> > + os.Setenv("CC", compilerEnvLookup("CC", defaultcc, goos, goarch))
> > ++} else {
> > + os.Setenv("CC", defaultcc[""])
> > -+ } else {
> > -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
> > + }
> > // Now that cmd/go is in charge of the build process, enable
> GOEXPERIMENT.
> > os.Setenv("GOEXPERIMENT", goexperiment)
> > - goInstall(goBootstrap, toolchain...)
> > -@@ -1421,46 +1454,84 @@ func cmdbootstrap() {
> > - copyfile(pathf("%s/compile3", tooldir),
> pathf("%s/compile", tooldir), writeExec)
> > + // No need to enable PGO for toolchain2.
> > +@@ -1523,6 +1556,7 @@ func cmdbootstrap() {
> > + os.Setenv("GOCACHE", oldgocache)
> > }
> >
> > -- if goos == oldgoos && goarch == oldgoarch {
> > -- // Common case - not setting up for cross-compilation.
> > -- timelog("build", "toolchain")
> > -- if vflag > 0 {
> > -- xprintf("\n")
> > -+ if crossBuild {
> > ++ if !crossBuild {
> > + if goos == oldgoos && goarch == oldgoarch {
> > + // Common case - not setting up for cross-compilation.
> > + timelog("build", "toolchain")
> > +@@ -1566,6 +1600,42 @@ func cmdbootstrap() {
> > + checkNotStale(toolenv(), goBootstrap, toolchain...)
> > + copyfile(pathf("%s/compile4", tooldir),
> pathf("%s/compile", tooldir), writeExec)
> > + }
> > ++} else {
> > + gogcflags = os.Getenv("GO_GCFLAGS")
> > + goldflags = os.Getenv("GO_LDFLAGS")
> > + tool_files, _ := filepath.Glob(pathf("%s/*", tooldir))
> > @@ -171,8 +179,8 @@ index 5d31718..1c7f308 100644
> > + xprintf("\n")
> > + }
> > + xprintf("Building %s for host, %s/%s.\n",
> strings.Join(toBuild, ","), goos, goarch)
> > -+ goInstall(goBootstrap, toBuild...)
> > -+ checkNotStale(goBootstrap, toBuild...)
> > ++ goInstall(toolenv(), goBootstrap, toBuild...)
> > ++ checkNotStale(toolenv(), goBootstrap, toBuild...)
> > + // Skip cmdGo staleness checks here, since we
> can't necessarily run the cmdGo binary
> > +
> > + timelog("build", "target toolchain")
> > @@ -184,99 +192,29 @@ index 5d31718..1c7f308 100644
> > + goarch = oldgoarch
> > + os.Setenv("GOOS", goos)
> > + os.Setenv("GOARCH", goarch)
> > -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos,
> goarch))
> > ++ os.Setenv("CC", compilerEnvLookup("CC", defaultcc,
> goos, goarch))
> > + xprintf("Building %s for target, %s/%s.\n",
> strings.Join(toBuild, ","), goos, goarch)
> > -+ goInstall(goBootstrap, toBuild...)
> > -+ checkNotStale(goBootstrap, toBuild...)
> > ++ goInstall(toolenv(), goBootstrap, toBuild...)
> > ++ checkNotStale(toolenv(), goBootstrap, toBuild...)
> > + // Skip cmdGo staleness checks here, since we
> can't run the target's cmdGo binary
> > - }
> > -- xprintf("Building packages and commands for %s/%s.\n",
> goos, goarch)
> > - } else {
> > -- // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
> > -- // Finish GOHOSTOS/GOHOSTARCH installation and then
> > -- // run GOOS/GOARCH installation.
> > -- timelog("build", "host toolchain")
> > -- if vflag > 0 {
> > -- xprintf("\n")
> > -+
> > -+ if goos == oldgoos && goarch == oldgoarch {
> > -+ // Common case - not setting up for
> cross-compilation.
> > -+ timelog("build", "toolchain")
> > -+ if vflag > 0 {
> > -+ xprintf("\n")
> > -+ }
> > -+ xprintf("Building packages and commands for
> %s/%s.\n", goos, goarch)
> > -+ } else {
> > -+ // GOOS/GOARCH does not match GOHOSTOS/GOHOSTARCH.
> > -+ // Finish GOHOSTOS/GOHOSTARCH installation and then
> > -+ // run GOOS/GOARCH installation.
> > -+ timelog("build", "host toolchain")
> > -+ if vflag > 0 {
> > -+ xprintf("\n")
> > -+ }
> > -+ xprintf("Building packages and commands for host,
> %s/%s.\n", goos, goarch)
> > -+ goInstall(goBootstrap, "std", "cmd")
> > -+ checkNotStale(goBootstrap, "std", "cmd")
> > -+ checkNotStale(cmdGo, "std", "cmd")
> > -+
> > -+ timelog("build", "target toolchain")
> > -+ if vflag > 0 {
> > -+ xprintf("\n")
> > -+ }
> > -+ goos = oldgoos
> > -+ goarch = oldgoarch
> > -+ os.Setenv("GOOS", goos)
> > -+ os.Setenv("GOARCH", goarch)
> > -+ os.Setenv("CC", compilerEnvLookup(defaultcc, goos,
> goarch))
> > -+ xprintf("Building packages and commands for
> target, %s/%s.\n", goos, goarch)
> > - }
> > -- xprintf("Building packages and commands for host,
> %s/%s.\n", goos, goarch)
> > - goInstall(goBootstrap, "std", "cmd")
> > - checkNotStale(goBootstrap, "std", "cmd")
> > - checkNotStale(cmdGo, "std", "cmd")
> > -
> > -- timelog("build", "target toolchain")
> > -- if vflag > 0 {
> > -- xprintf("\n")
> > -+ if debug {
> > -+ run("", ShowOutput|CheckExit, pathf("%s/compile",
> tooldir), "-V=full")
> > -+ run("", ShowOutput|CheckExit, pathf("%s/buildid",
> tooldir), pathf("%s/pkg/%s_%s/runtime/internal/sys.a", goroot, goos,
> goarch))
> > -+ checkNotStale(goBootstrap, append(toolchain,
> "runtime/internal/sys")...)
> > -+ copyfile(pathf("%s/compile4", tooldir),
> pathf("%s/compile", tooldir), writeExec)
> > - }
> > -- goos = oldgoos
> > -- goarch = oldgoarch
> > -- os.Setenv("GOOS", goos)
> > -- os.Setenv("GOARCH", goarch)
> > -- os.Setenv("CC", compilerEnvLookup(defaultcc, goos, goarch))
> > -- xprintf("Building packages and commands for target,
> %s/%s.\n", goos, goarch)
> > -- }
> > -- targets := []string{"std", "cmd"}
> > -- goInstall(goBootstrap, targets...)
> > -- checkNotStale(goBootstrap, append(toolchain,
> "runtime/internal/sys")...)
> > -- checkNotStale(goBootstrap, targets...)
> > -- checkNotStale(cmdGo, targets...)
> > -- if debug {
> > -- run("", ShowOutput|CheckExit, pathf("%s/compile",
> tooldir), "-V=full")
> > -- checkNotStale(goBootstrap, append(toolchain,
> "runtime/internal/sys")...)
> > -- copyfile(pathf("%s/compile4", tooldir),
> pathf("%s/compile", tooldir), writeExec)
> > - }
> > ++ }
> > ++ }
> >
> > // Check that there are no new files in $GOROOT/bin other than
> > -@@ -1477,8 +1548,11 @@ func cmdbootstrap() {
> > + // go and gofmt and $GOOS_$GOARCH (target bin when
> cross-compiling).
> > +@@ -1585,8 +1655,12 @@ func cmdbootstrap() {
> > }
> > }
> >
> > -- // Remove go_bootstrap now that we're done.
> > -- xremove(pathf("%s/go_bootstrap", tooldir))
> > + // Except that for split host/target cross-builds, we need to
> > + // keep it.
> > + if !crossBuild {
> > -+ xremove(pathf("%s/go_bootstrap", tooldir))
> > -+ }
> > + // Remove go_bootstrap now that we're done.
> > + xremove(pathf("%s/go_bootstrap"+exe, tooldir))
> > ++}
> >
> > if goos == "android" {
> > // Make sure the exec wrapper will sync a fresh $GOROOT to
> the device.
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git
> a/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
> b/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
> > index 520e41da86..d118e726c6 100644
> > ---
> a/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
> > +++
> b/meta/recipes-devtools/go/go/0006-cmd-go-make-GOROOT-precious-by-default.patch
> > @@ -1,10 +1,8 @@
> > -From efab470498bb0a30ee2d00455a0c8c10459f6347 Mon Sep 17 00:00:00 2001
> > +From aff5a740d6286c04beb0593fc68b0aea5a95ad39 Mon Sep 17 00:00:00 2001
> > From: Alex Kube <alexander.j.kube@gmail.com>
> > Date: Wed, 23 Oct 2019 21:18:56 +0430
> > Subject: [PATCH 6/9] cmd/go: make GOROOT precious by default
> >
> > -Upstream-Status: Inappropriate [OE specific]
> > -
> > The go build tool normally rebuilds whatever it detects is
> > stale. This can be a problem when GOROOT is intended to
> > be read-only and the go runtime has been built as a shared
> > @@ -20,7 +18,10 @@ Adapted to Go 1.13 from patches originally submitted
> to
> > the meta/recipes-devtools/go tree by
> > Matt Madison <matt@madison.systems>.
> >
> > +Upstream-Status: Inappropriate [OE specific]
> > +
> > Signed-off-by: Alexander J Kube <alexander.j.kube@gmail.com>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > src/cmd/go/internal/work/action.go | 3 +++
> > src/cmd/go/internal/work/build.go | 6 ++++++
> > @@ -28,10 +29,10 @@ Signed-off-by: Alexander J Kube <
> alexander.j.kube@gmail.com>
> > 3 files changed, 34 insertions(+)
> >
> > diff --git a/src/cmd/go/internal/work/action.go
> b/src/cmd/go/internal/work/action.go
> > -index 8beb134..68a8cfe 100644
> > +index d4d0a71..42149d2 100644
> > --- a/src/cmd/go/internal/work/action.go
> > +++ b/src/cmd/go/internal/work/action.go
> > -@@ -718,6 +718,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1
> *Action, shlib string) {
> > +@@ -730,6 +730,9 @@ func (b *Builder) addTransitiveLinkDeps(a, a1
> *Action, shlib string) {
> > if p1 == nil || p1.Shlib == "" ||
> haveShlib[filepath.Base(p1.Shlib)] {
> > continue
> > }
> > @@ -42,10 +43,10 @@ index 8beb134..68a8cfe 100644
> > // TODO(rsc): The use of ModeInstall here is
> suspect, but if we only do ModeBuild,
> > // we'll end up building an overall library or
> executable that depends at runtime
> > diff --git a/src/cmd/go/internal/work/build.go
> b/src/cmd/go/internal/work/build.go
> > -index 2f2860a..8cc6166 100644
> > +index e2e0e07..1c84137 100644
> > --- a/src/cmd/go/internal/work/build.go
> > +++ b/src/cmd/go/internal/work/build.go
> > -@@ -217,6 +217,8 @@ See also: go install, go get, go clean.
> > +@@ -228,6 +228,8 @@ See also: go install, go get, go clean.
> >
> > const concurrentGCBackendCompilationEnabledByDefault = true
> >
> > @@ -54,7 +55,7 @@ index 2f2860a..8cc6166 100644
> > func init() {
> > // break init cycle
> > CmdBuild.Run = runBuild
> > -@@ -230,6 +232,10 @@ func init() {
> > +@@ -241,6 +243,10 @@ func init() {
> > AddCoverFlags(CmdBuild, nil)
> > AddCoverFlags(CmdInstall, nil)
> > }
> > @@ -66,11 +67,11 @@ index 2f2860a..8cc6166 100644
> >
> > // Note that flags consulted by other parts of the code
> > diff --git a/src/cmd/go/internal/work/exec.go
> b/src/cmd/go/internal/work/exec.go
> > -index 62e1774..cde867b 100644
> > +index e3dd486..0ea5316 100644
> > --- a/src/cmd/go/internal/work/exec.go
> > +++ b/src/cmd/go/internal/work/exec.go
> > -@@ -546,6 +546,23 @@ func (b *Builder) build(ctx context.Context, a
> *Action) (err error) {
> > - return errors.New("cannot compile Go " +
> p.Module.GoVersion + " code")
> > +@@ -539,6 +539,23 @@ func (b *Builder) build(ctx context.Context, a
> *Action) (err error) {
> > + return err
> > }
> >
> > + if goRootPrecious && (a.Package.Standard || a.Package.Goroot) {
> > @@ -93,7 +94,7 @@ index 62e1774..cde867b 100644
> > if err := b.Mkdir(a.Objdir); err != nil {
> > return err
> > }
> > -@@ -1643,6 +1660,14 @@ func (b *Builder) linkShared(ctx
> context.Context, a *Action) (err error) {
> > +@@ -1722,6 +1739,14 @@ func (b *Builder) linkShared(ctx
> context.Context, a *Action) (err error) {
> > return err
> > }
> >
> > @@ -109,5 +110,5 @@ index 62e1774..cde867b 100644
> > return err
> > }
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git
> a/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
> b/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
> > index 7d9869b536..3e0ba35d81 100644
> > ---
> a/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
> > +++
> b/meta/recipes-devtools/go/go/0007-exec.go-do-not-write-linker-flags-into-buildids.patch
> > @@ -1,4 +1,4 @@
> > -From 0ba747e6a4b251a0d9eed0cfd8f8c491bb508040 Mon Sep 17 00:00:00 2001
> > +From 619991feab04f331d081a91243434ccd859f611d 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 7/9] exec.go: do not write linker flags into buildids
> > @@ -9,16 +9,18 @@ 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>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > 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 cde867b..5cb1812 100644
> > +index 0ea5316..d7e2d51 100644
> > --- a/src/cmd/go/internal/work/exec.go
> > +++ b/src/cmd/go/internal/work/exec.go
> > -@@ -1331,7 +1331,7 @@ func (b *Builder) linkActionID(a *Action)
> cache.ActionID {
> > +@@ -1357,7 +1357,7 @@ func (b *Builder) linkActionID(a *Action)
> cache.ActionID {
> > }
> >
> > // Toolchain-dependent configuration, shared with
> b.linkSharedActionID.
> > @@ -27,7 +29,7 @@ index cde867b..5cb1812 100644
> >
> > // Input files.
> > for _, a1 := range a.Deps {
> > -@@ -1626,7 +1626,7 @@ func (b *Builder) linkSharedActionID(a *Action)
> cache.ActionID {
> > +@@ -1705,7 +1705,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.
> > @@ -37,5 +39,5 @@ index cde867b..5cb1812 100644
> > // Input files.
> > for _, a1 := range a.Deps {
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git
> a/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
> b/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
> > index fe830ce35c..58512207a8 100644
> > ---
> a/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
> > +++
> b/meta/recipes-devtools/go/go/0008-src-cmd-dist-buildgo.go-do-not-hardcode-host-compile.patch
> > @@ -1,4 +1,4 @@
> > -From 1cbb416538a9c7c3fbedcb23f4d90d5c48becca8 Mon Sep 17 00:00:00 2001
> > +From e0999902687e2e394499f7153db8d62440c4dab0 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 8/9] src/cmd/dist/buildgo.go: do not hardcode host
> compilers
> > @@ -8,16 +8,18 @@ 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>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > 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 29b0167..63a49f0 100644
> > +index 884e9d7..2f52eda 100644
> > --- a/src/cmd/dist/buildgo.go
> > +++ b/src/cmd/dist/buildgo.go
> > -@@ -33,8 +33,8 @@ func mkzdefaultcc(dir, file string) {
> > +@@ -51,8 +51,8 @@ func mkzdefaultcc(dir, file string) {
> > fmt.Fprintf(&buf, "package cfg\n")
> > fmt.Fprintln(&buf)
> > fmt.Fprintf(&buf, "const DefaultPkgConfig = `%s`\n",
> defaultpkgconfig)
> > @@ -28,7 +30,7 @@ index 29b0167..63a49f0 100644
> > writefile(buf.String(), file, writeSkipSame)
> > return
> > }
> > -@@ -45,8 +45,8 @@ func mkzdefaultcc(dir, file string) {
> > +@@ -62,8 +62,8 @@ func mkzdefaultcc(dir, file string) {
> > fmt.Fprintf(&buf, "package main\n")
> > fmt.Fprintln(&buf)
> > fmt.Fprintf(&buf, "const defaultPkgConfig = `%s`\n",
> defaultpkgconfig)
> > @@ -40,5 +42,5 @@ index 29b0167..63a49f0 100644
> > }
> >
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git
> a/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
> b/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
> > index 49da5f6297..597a4e2104 100644
> > ---
> a/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
> > +++
> b/meta/recipes-devtools/go/go/0009-go-Filter-build-paths-on-staticly-linked-arches.patch
> > @@ -1,4 +1,4 @@
> > -From 18011f72125bbea273d07ee5d792ac0ce6059572 Mon Sep 17 00:00:00 2001
> > +From 6c2438f187ca912c54a71b4ac65ab98999a019d2 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
> > @@ -11,17 +11,18 @@ on mips/ppc.
> > Upstream-Status: Submitted [https://github.com/golang/go/pull/56410]
> >
> > Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> > +Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io>
> > ---
> > 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 f427e29..6d6dc4e 100644
> > +index c0e6265..b199fee 100644
> > --- a/src/cmd/go/internal/load/pkg.go
> > +++ b/src/cmd/go/internal/load/pkg.go
> > -@@ -2270,6 +2270,17 @@ func (p *Package) collectDeps() {
> > - // to their VCS information (vcsStatusError).
> > - var vcsStatusCache par.Cache
> > +@@ -2269,6 +2269,17 @@ func appendBuildSetting(info *debug.BuildInfo,
> key, value string) {
> > + info.Settings = append(info.Settings, debug.BuildSetting{Key: key,
> Value: value})
> > + }
> >
> > +func filterCompilerFlags(flags string) string {
> > + var newflags []string
> > @@ -34,10 +35,10 @@ index f427e29..6d6dc4e 100644
> > + 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.
> > -@@ -2376,7 +2387,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
> > + // setBuildInfo gathers build information and sets it into
> > + // p.Internal.BuildInfo, which will later be formatted as a string and
> embedded
> > + // in the binary. setBuildInfo should only be called on a main package
> with no
> > +@@ -2376,7 +2387,7 @@ func (p *Package) setBuildInfo(ctx
> context.Context, autoVCS bool) {
> > if gcflags := BuildGcflags.String(); gcflags != "" &&
> cfg.BuildContext.Compiler == "gc" {
> > appendSetting("-gcflags", gcflags)
> > }
> > @@ -46,7 +47,7 @@ index f427e29..6d6dc4e 100644
> > // 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).
> > -@@ -2422,7 +2433,7 @@ func (p *Package) setBuildInfo(autoVCS bool) {
> > +@@ -2419,7 +2430,7 @@ func (p *Package) setBuildInfo(ctx
> context.Context, 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"} {
> > @@ -56,5 +57,5 @@ index f427e29..6d6dc4e 100644
> > }
> > appendSetting("GOARCH", cfg.BuildContext.GOARCH)
> > --
> > -2.30.2
> > +2.43.0
> >
> > diff --git a/meta/recipes-devtools/go/go_1.20.12.bb
> b/meta/recipes-devtools/go/go_1.21.0.bb
> > similarity index 100%
> > rename from meta/recipes-devtools/go/go_1.20.12.bb
> > rename to meta/recipes-devtools/go/go_1.21.0.bb
> > --
> > 2.43.0
> >
>
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#191943):
> https://lists.openembedded.org/g/openembedded-core/message/191943
> > Mute This Topic: https://lists.openembedded.org/mt/103031554/3617179
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alexandre.belloni@bootlin.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
>
> --
> Alexandre Belloni, co-owner and COO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
>
--
Best regards,
José Quaresma
[-- Attachment #2: Type: text/html, Size: 71634 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-12-11 10:02 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-07 10:07 [PATCH 1/2] go: bump 1.21.0 Jose Quaresma
2023-12-07 10:07 ` [PATCH 2/2] go: upgrade 1.21.0 -> 1.21.5 Jose Quaresma
2023-12-07 23:23 ` [OE-core] [PATCH 1/2] go: bump 1.21.0 Alexandre Belloni
2023-12-11 10:01 ` Jose Quaresma
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.