Unofficial ARM tarballs for Go

These are unofficial tarball builds of the Go language distribution prepared for the convenience of developers wanting to experiment with Go on ARM platforms. For official tarballs and installers, please see the golang.org download site.

For installation instructions, please see the installation instructions from the golang.org website, substituting the download URL as necessary.

Please help the Go project by testing your Go programs with the new tool chain and libraries, and report any problems using the issue tracker, http://golang.org/issue/new.

Choosing the right version

There are three families; ARMv5, ARMv6, ARMv7, and two flavours; multiarch and non multiarch.

How can I tell which family my host uses ?

Look at the Processor line in the output of cat /proc/cpuinfo. In general code for older ARM systems will work on later systems, but not the other way around.

How can I tell if my distribution uses multiarch ?

Multiarch is a way of naming libraries and binaries on Debian based systems (this includes Raspbian and Ubuntu) to allow versions for different CPU families to be present on the same system. This specifically impacts Go programs as the linker, 5l, needs to embed the correct location of the dynamic loader into the final executable. Go 1.1 now supports cgo on ARM platforms, so will produce a dynamically linked binary whenever the net, os/user or other cgo based packages are imported. As the go tool itself uses those packages, it is a dynamically linked binary, so you need to choose the right flavour to match your distribution.

  • If your distribution has the file /lib/ld-linux-armhf.so.3 or /lib/ld-linux-armel.so.3, your distribution uses multiarch, you should use the multiarch flavour. This includes distributions like Debian, Ubuntu, ChromeOS and Raspbian.
  • If your distribution has the file /lib/ld-linux.so.3, your distribution does not use multiarch, you should not use the multiarch flavour. Distributions like Arch Linux ARM do not use multiarch.
  • If your distribution has both, then you can use either flavour.

If you find that the go tool is not executable

% /usr/local/go/bin/go
bash: /usr/local/go/bin/go: No such file or directory

please try the other flavor.

go1.3.3 released October 1st, 2014

These tarballs were prepared from the go1.3.3 release tag using the official distribution tool.



go1.2.2 released May 6th, 2014

These tarballs were prepared from revision 9c4fdd8369ca tag using the official distribution tool.