summaryrefslogtreecommitdiff
path: root/dev-lang/go/files/make-go-bootstraps
blob: a929fd98837720be7ca621d120e31886f84819e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#!/bin/bash
set -e

# This creates go bootstrap tarballs for the version of go currently
# installed on your system.
# It should be run as part of bumping dev-lang/go when a newer version
# of go is required for bootstrapping.
# Make sure the version of go required for bootstrapping is installed
# then run this script.
# The script will output the location where the bootstrap tarballs are
# stored.
# Next, update the GO_BV variable in the new version of the dev-lang/go
# ebuild to the version in the bootstrap tarballs file name.

go_tuples=(
	darwin-amd64
	darwin-arm64
	linux-386
	linux-amd64
	linux-arm
	linux-arm64
	linux-loong64
	linux-mips
	linux-mipsle
	linux-mips64
	linux-mips64le
	linux-ppc64
	linux-ppc64le
	linux-riscv64
	linux-s390x
	solaris-amd64
)

go_version=$(go version)
go_version=${go_version##*go}
go_version=${go_version%% *}
build_path=$(mktemp -d /tmp/go-bootstraps-XXXXXX)
pushd "${build_path}"
git clone https://github.com/golang/go.git
cd go
git checkout go"${go_version}"
cd src
for tuple in ${go_tuples[@]}; do
	printf "Building go version %s bootstrap tarball for %s\n" "${go_version}" "${tuple}"
	GOOS=${tuple%%-*} GOARCH=${tuple##*-} ./bootstrap.bash
	rm -fr ../../go-${tuple}-bootstrap
done
cd ../..
rm -fr go
for f in *tbz; do
		mv "${f}" "${f/go/go-${go_version}}"
	done
popd
mv "${build_path}" "${build_path%-*}"
printf "The bootstrap tarballs are stored in %s\n" "${build_path%-*}"