---
title: 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`](http://ports.su/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
```
