- Install Go for Linux the usual way on your main Linux box:
cd
wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz
tar -zxvf go1.8.linux-amd64.tar.gz
sudo mv go /usr/local/
export GOROOT=/usr/local/go
mkdir -p ~/.gitwork/go/src
mkdir ~/.gitwork/go/bin
mkdir ~/.gitwork/go/pkg
export GOPATH=~/.gitwork/go
export PATH=$PATH:$GOROOT/bin
go version
- Cross-compile Go for ARM64
mkdir gobuild
cd gobuild/
git clone https://go.googlesource.com/go
cd go
git checkout go1.8
cd src
export GOARCH=arm64
export GOROOT_BOOTSTRAP=/usr/local/go
export GOOS=linux
./make.bootstrap
-
This will create a bootstrap release under: ../../go-linux-arm64-bootstrap.tbz
-
Use sftp or scp on the ARM64 device to get the tar.gz file
-
Then install and set it up on ARM64:
update instructions below for building using the bootstrap toolchain
tar -zxvf go1.8.linux-arm64.tar.gz
sudo mv go /usr/local/
cd /usr/local/go/bin/linux_arm64
sudo cp * ..
cd
export GOROOT=/usr/local/go
mkdir -p ~/.gitwork/go/src
mkdir ~/.gitwork/go/bin
mkdir ~/.gitwork/go/pkg
export GOPATH=~/.gitwork/go
go version
export PATH=$PATH:$GOROOT/bin
The only thing missing is removal of .git directory before taring the build. The package is much larger than I was expecting.