Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 1 | # Minimum Requirements |
| 2 | |
| 3 | ## Operating Systems |
| 4 | |
Mikio Hara | 94e3a59 | 2017-04-27 16:22:34 +0900 | [diff] [blame] | 5 | ### [Linux](Linux) |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 6 | |
Minux Ma | 89f819f | 2017-01-17 19:36:37 -0500 | [diff] [blame] | 7 | Kernel version 2.6.23 or later. [_This depends on architecture though, we need to have specific builder for this._] Linux/ARMv5 requires much newer kernels, at least v3.1 (for `__kuser_cmpxchg64`). |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 8 | |
Mikio Hara | 45f1343 | 2018-02-21 08:16:07 +0900 | [diff] [blame] | 9 | We don't support CentOS 5. The kernel is too old (2.6.18). |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 10 | |
Russ Cox | dcc77a4 | 2016-10-20 22:08:59 -0400 | [diff] [blame] | 11 | For little-endian MIPS64, kernel version [4.1 is known to fail, and 4.8 works](https://golang.org/issue/16848). |
Russ Cox | c5f56d4 | 2016-10-20 22:08:39 -0400 | [diff] [blame] | 12 | |
ron minnich | 1dfce30 | 2018-02-22 08:28:51 -0800 | [diff] [blame] | 13 | If you are using tinyconfig (e.g. make tinyconfig) for embedded systems, you will also almost certainly enable printk in the kernel as well as a console; we will not include those generic options here. For Go, you must also enable CONFIG_FUTEX. |
| 14 | |
Mikio Hara | 45f1343 | 2018-02-21 08:16:07 +0900 | [diff] [blame] | 15 | ### [Windows](Windows) |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 16 | |
Brad Fitzpatrick | e8af9cb | 2018-07-11 14:04:42 -0700 | [diff] [blame] | 17 | For Go 1.10: Windows XP (w/ Service Pack 3) or higher. |
| 18 | |
| 19 | For Go 1.11 and later: Windows Server 2008R2 and higher or Windows 7 and higher. We test on Windows Server 2008 R2, 2012 R2, and 2016, which are roughly Windows 7, Windows 8, and Windows 10. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 20 | |
Mikio Hara | 94e3a59 | 2017-04-27 16:22:34 +0900 | [diff] [blame] | 21 | ### [macOS (née OS X, aka Darwin)](Darwin) |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 22 | |
Mikio Hara | e20a15d | 2018-02-21 10:48:00 +0900 | [diff] [blame] | 23 | macOS Sierra 10.12 or higher requires Go 1.7.1 or above. |
mikioh | 4914d9a | 2018-08-01 11:14:33 +0900 | [diff] [blame] | 24 | Go only supports OS X Yosemite 10.10 or newer. We only have builders for 10.10, and 10.11 as of 2018-02-16. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 25 | |
Mikio Hara | 94e3a59 | 2017-04-27 16:22:34 +0900 | [diff] [blame] | 26 | ### [OpenBSD](OpenBSD) |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 27 | |
Mikio Hara | 3d7f089 | 2018-02-21 08:26:35 +0900 | [diff] [blame] | 28 | The current officially supported -stable versions only. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 29 | |
Mikio Hara | 94e3a59 | 2017-04-27 16:22:34 +0900 | [diff] [blame] | 30 | ### [DragonFly BSD](DragonFly-BSD) |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 31 | |
| 32 | Generally only the latest release version only. We have a builder, but it's not the most stable of our ports. |
| 33 | |
Mikio Hara | 94e3a59 | 2017-04-27 16:22:34 +0900 | [diff] [blame] | 34 | ### [FreeBSD](FreeBSD) |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 35 | |
Mikio Hara | 3d7f089 | 2018-02-21 08:26:35 +0900 | [diff] [blame] | 36 | FreeBSD 10 or higher, but FreeBSD 12-CURRENT is [not supported](https://github.com/golang/go/issues/22447). |
Mikio Hara | 45f1343 | 2018-02-21 08:16:07 +0900 | [diff] [blame] | 37 | We only run builders testing FreeBSD 10.3 and 11.1. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 38 | |
Brad Fitzpatrick | 5daa9ab | 2017-06-29 12:14:32 -0700 | [diff] [blame] | 39 | ### [NetBSD](NetBSD) |
| 40 | |
Brad Fitzpatrick | f40199f | 2017-07-10 11:18:38 -0700 | [diff] [blame] | 41 | There are known NetBSD bugs (including kernel crashes) up to the current NetBSD 7.1. There is a reported fix in NetBSD 7.1.1 but it's unverified as of 2017-07-10, as we're not running builders again yet. See https://tip.golang.org/doc/go1.9#known_issues and https://github.com/golang/go/issues/20852 |
Brad Fitzpatrick | 5daa9ab | 2017-06-29 12:14:32 -0700 | [diff] [blame] | 42 | |
Mikio Hara | 312a15d | 2017-04-27 17:48:35 +0900 | [diff] [blame] | 43 | ### [Native Client](NativeClient) |
Minux Ma | 3cbcb22 | 2016-09-23 18:57:08 -0400 | [diff] [blame] | 44 | |
| 45 | pepper_39 or newer. |
| 46 | |
Mikio Hara | 94e3a59 | 2017-04-27 16:22:34 +0900 | [diff] [blame] | 47 | ### [Solaris](Solaris) |
Minux Ma | f8fd568 | 2016-09-23 18:45:02 -0400 | [diff] [blame] | 48 | |
| 49 | illumos (former OpenSolaris 10) based distributions or Oracle Solaris 11+. |
| 50 | |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 51 | ## Architectures |
| 52 | |
Keith Randall | 56dafe1 | 2017-03-21 12:53:36 -0700 | [diff] [blame] | 53 | ### amd64 |
| 54 | |
| 55 | All 64-bit x86 processors. |
| 56 | |
| 57 | ### 386 |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 58 | |
| 59 | See https://golang.org/doc/install/source#environment |
| 60 | |
Keith Randall | 70eb410 | 2017-03-21 12:54:33 -0700 | [diff] [blame] | 61 | * GO386=387: run on any Pentium MMX or later processor. |
Keith Randall | 56dafe1 | 2017-03-21 12:53:36 -0700 | [diff] [blame] | 62 | * GO386=sse2: run on any processor with at least SSE2 (the default). |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 63 | |
| 64 | ### arm |
| 65 | |
| 66 | See https://golang.org/doc/install/source#environment |
| 67 | |
| 68 | * GOARM=5: use software floating point; when CPU doesn't have VFP co-processor |
| 69 | * GOARM=6: use VFPv1 only; default if cross compiling; usually ARM11 or better cores (VFPv2 or better is also supported) |
| 70 | * GOARM=7: use VFPv3; usually Cortex-A cores |
| 71 | |
| 72 | ### arm64 |
| 73 | |
Minux Ma | a6332e8 | 2016-09-23 18:49:20 -0400 | [diff] [blame] | 74 | All ARMv8-A processors. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 75 | |
| 76 | ### ppc64 (big endian) |
| 77 | |
Keith Randall | a13b9d9 | 2017-03-21 13:03:41 -0700 | [diff] [blame] | 78 | POWER5 and above. |
| 79 | Starting with Go 1.9, only POWER8 and above are supported. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 80 | |
billotosyr | 7bf2b03 | 2016-09-23 18:22:58 -0400 | [diff] [blame] | 81 | ### ppc64le (little endian) |
| 82 | |
Keith Randall | a13b9d9 | 2017-03-21 13:03:41 -0700 | [diff] [blame] | 83 | POWER8 and above. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 84 | |
Minux Ma | ad0af36 | 2016-09-23 18:55:19 -0400 | [diff] [blame] | 85 | ### mips64 (big endian) |
| 86 | |
| 87 | MIPS III or higher. Builder is using MIPS64r2. |
| 88 | |
| 89 | ### mips64le (little endian) |
| 90 | |
| 91 | MIPS III or higher in little endian mode. Builders are using Loongson 2E/2F. |
| 92 | |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 93 | ### s390x |
| 94 | |
| 95 | z196+ |
Minux Ma | 65a2c7d | 2016-12-01 23:00:08 -0500 | [diff] [blame] | 96 | |
| 97 | ### mips (big endian) and mipsle (little endian) |
| 98 | |
Wèi Cōngruì | f3200c4 | 2018-08-29 06:59:41 +0000 | [diff] [blame] | 99 | MIPS32r1 |