summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/go
diff options
context:
space:
mode:
authorJose Quaresma <quaresma.jose@gmail.com>2024-06-26 11:07:52 +0100
committerSteve Sakoman <steve@sakoman.com>2024-07-03 06:28:35 -0700
commit15122cbc825306f81e673ad5eb4af06b7533e995 (patch)
treef583b2e3c5faf5f53f412f5d4384b5fd453a9ede /meta/recipes-devtools/go
parent537a3e0ff4e6bb7ecf38fb8887b9d43cf3085092 (diff)
downloadpoky-15122cbc825306f81e673ad5eb4af06b7533e995.tar.gz
go: drop the old 1.4 bootstrap C version
Bootstrap [1] As mentioned in the Go 1.20 release notes, Go 1.22 now requires the final point release of Go 1.20 or later for bootstrap. We expect that Go 1.24 will require the final point release of Go 1.22 or later for bootstrap. The default recipe for bootstrap is the go-binary-native as can be seen in: meta/conf/distro/include/tcmode-default.inc:68:PREFERRED_PROVIDER_go-native ?= "go-binary-native" Currently if we change it to use the old go-native and compile the go1.4-bootstrap-20170531 it fails: | Building Go cmd/dist using /build/workdir/tmp-glibc/work/x86_64-linux/go-native/1.22.3-r0/go1.4/go. (go1.4-bootstrap-20170531 linux/amd64) | can't load package: package ./cmd/dist: found packages build.go (main) and notgo120.go (building_Go_requires_Go_1_20_6_or_later) in /build/workdir/tmp-glibc/work/x86_64-linux/go-native/1.22.3-r0/go/src/cmd/dist This has been broken for some time but as we used go-binary-native by default it went unnoticed. [1] https://go.dev/doc/go1.22#bootstrap (From OE-Core rev: f350f5b6302fc226e477d5283e4a9722a11d4170) Signed-off-by: Jose Quaresma <jose.quaresma@foundries.io> Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> (cherry picked from commit 876d344d2ec3d6ce283d01974146392d76685824) Signed-off-by: Steve Sakoman <steve@sakoman.com>
Diffstat (limited to 'meta/recipes-devtools/go')
-rw-r--r--meta/recipes-devtools/go/go-native_1.22.4.bb58
1 files changed, 0 insertions, 58 deletions
diff --git a/meta/recipes-devtools/go/go-native_1.22.4.bb b/meta/recipes-devtools/go/go-native_1.22.4.bb
deleted file mode 100644
index ddf25b2c9b..0000000000
--- a/meta/recipes-devtools/go/go-native_1.22.4.bb
+++ /dev/null
@@ -1,58 +0,0 @@
1# This recipe builds a native Go (written in Go) by first building an old Go 1.4
2# (written in C). However this old Go does not support all hosts platforms.
3
4require go-${PV}.inc
5
6inherit native
7
8SRC_URI += "https://dl.google.com/go/go1.4-bootstrap-20171003.tar.gz;name=bootstrap;subdir=go1.4"
9SRC_URI[bootstrap.sha256sum] = "f4ff5b5eb3a3cae1c993723f3eab519c5bae18866b5e5f96fe1102f0cb5c3e52"
10
11export GOOS = "${BUILD_GOOS}"
12export GOARCH = "${BUILD_GOARCH}"
13CC = "${@d.getVar('BUILD_CC').strip()}"
14
15GOMAKEARGS ?= "--no-banner"
16
17do_configure() {
18 cd ${WORKDIR}/go1.4/go/src
19 CGO_ENABLED=0 GOROOT=${WORKDIR}/go1.4/go ./make.bash
20}
21
22do_compile() {
23 export GOROOT_FINAL="${libdir_native}/go"
24 export GOROOT_BOOTSTRAP="${WORKDIR}/go1.4/go"
25
26 cd src
27 ./make.bash ${GOMAKEARGS}
28 cd ${B}
29}
30do_compile[cleandirs] += "${GOTMPDIR} ${B}/bin"
31
32make_wrapper() {
33 rm -f ${D}${bindir}/$2$3
34 cat <<END >${D}${bindir}/$2$3
35#!/bin/bash
36here=\`dirname \$0\`
37export GOROOT="${GOROOT:-\`readlink -f \$here/../lib/go\`}"
38\$here/../lib/go/bin/$1 "\$@"
39END
40 chmod +x ${D}${bindir}/$2
41}
42
43do_install() {
44 install -d ${D}${libdir}/go
45 cp --preserve=mode,timestamps -R ${B}/pkg ${D}${libdir}/go/
46 install -d ${D}${libdir}/go/src
47 (cd ${S}/src; for d in *; do \
48 [ -d $d ] && cp -a ${S}/src/$d ${D}${libdir}/go/src/; \
49 done)
50 find ${D}${libdir}/go/src -depth -type d -name testdata -exec rm -rf {} \;
51 install -d ${D}${bindir} ${D}${libdir}/go/bin
52 for f in ${B}/bin/*
53 do
54 base=`basename $f`
55 install -m755 $f ${D}${libdir}/go/bin
56 make_wrapper $base $base
57 done
58}