Go Wiki: 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 release Go in ports
6.8 (Oct 18, 2020) go-1.15.2
6.7 (May 19, 2020) go-1.13.9
6.6 (Oct 17, 2019) go-1.13.1
6.5 (Apr 4, 2019) go-1.12.1
6.4 (Oct 18, 2018) go-1.11
6.3 (Apr 2, 2018) go-1.10
6.2 (Oct 9, 2017) go-1.9
6.1 (Apr 11, 2017) go-1.8
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 version Architectures Initial support version Final support version
6.4 amd64, arm, 386 Go 1.11
6.2 through 6.3 amd64, arm, 386 Go 1.9 Go 1.15.x
6.1 amd64, arm, 386 Go 1.8 Go 1.10.8
6.0 amd64, 386 Go 1.4.1 * Go 1.10.8
6.0 arm Go 1.5 Go 1.10.8
5.9 amd64, 386 Go 1.4.1 * Go 1.8.7
5.9 arm Go 1.5 Go 1.8.7
5.6 through 5.8 amd64, 386 Go 1.4.1 * Go 1.7.6
5.5 amd64, 386 Go 1.3 * Go 1.7.6
5.0 through 5.4 amd64, 386 Go 1 Go 1.2.2

* Go 1.5 or above is recommended.

Longterm support

Go aims to support the two most recent OpenBSD releases, because OpenBSD officially supports only the two most recent releases, and makes a best-effort attempt to maintain ABI support in consecutive releases.

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

This content is part of the Go Wiki.