Go on OpenBSD

Go is available within the OpenBSD ports tree collection since OpenBSD 5.2. It is marked as i386- and amd64- only. See ports/lang/go for details.

OpenBSD releasegolang in ports
6.0 (Sep 1, 2016)go-1.6.3
5.9 (Mar 29, 2016)go-1.5.4
5.8 (Oct 18, 2015)go-1.4.2
5.7 (May 1, 2015)go-1.4.1
5.6 (Nov 1, 2014)go-1.3p0

Building from source

Kernel versionArchitecturesMin. versionMax. version
6.0amd64, 386go1.4.1 *go1.7
6.0armgo1.5go1.7
5.9amd64, 386go1.4.1 *go1.7
5.9armgo1.5go1.7
5.8amd64, 386go1.4.1 *go1.7
5.7amd64, 386go1.4.1 *go1.7
5.6amd64, 386go1.4.1 *go1.7
5.5amd64, 386go1.3go1.7
5.0 through 5.4amd64, 386go1go1.2
* If you want to run Go 1.3 or 1.4 on OpenBSD 5.6 or above, see http://golang.org/issue/9102.

ulimits (/etc/login.conf)

Edit /etc/login.conf so that the staff class has the proper settings. The following is a working example of the staff class:

staff:\
       :datasize-cur=infinity:\
       :datasize-max=infinity:\
       :datasize=infinity:\
       :openfiles-cur=4096:\
       :maxproc-max=512:\
       :maxproc-cur=512:\
       :ignorenologin:\
       :requirehome@:\
       :tc=default:

If the database file /etc/login.conf.db exists, you need to rebuild it with:

# cap_mkdb /etc/login.conf

Ensure that the user you intend to build Go with is in the staff login class:

# usermod -L staff your_username_here