Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 1 | # Minimum Requirements |
| 2 | |
| 3 | ## Operating Systems |
| 4 | |
| 5 | ### Linux |
| 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 | |
Minux Ma | fb7b398 | 2016-09-23 18:47:37 -0400 | [diff] [blame] | 9 | We don't support CentOS 5. 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 | |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 13 | ### Windows |
| 14 | |
Brad Fitzpatrick | 9d0ae1c | 2016-11-17 14:01:27 -0500 | [diff] [blame] | 15 | Windows XP (w/ Service Pack 2) or higher. But we don't currently (2016-09-23) have a Windows XP running. That is https://github.com/golang/go/issues/10267 |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 16 | |
| 17 | We run builders testing Go on Windows Server 2008 R2 Datacenter Edition. That is basically Windows 7 or above. |
| 18 | |
| 19 | ### macOS (née OS X, aka Darwin) |
| 20 | |
Mikio Hara | 9112952 | 2016-10-20 16:35:55 +0900 | [diff] [blame] | 21 | macOS Sierra (10.12) requires Go 1.7.1. We have not yet (as of 2016-09-23) backported the time system call fixes to any earlier Go versions. See https://github.com/golang/go/issues/16352. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 22 | |
Mikio Hara | 07d84ae | 2016-09-29 15:34:34 +0900 | [diff] [blame] | 23 | Go only supports OS X 10.8 (Mountain Lion) or newer. We only have builders for 10.8, 10.10, and 10.11 as of 2016-09-23. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 24 | |
Brad Fitzpatrick | c952608 | 2016-11-16 15:03:16 -0500 | [diff] [blame] | 25 | Go tip doesn't compile on OS X 10.7 (Lion) but binaries MAY work there. Maybe. No builders, no promises. We don't recommend it. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 26 | |
Mikio Hara | 07d84ae | 2016-09-29 15:34:34 +0900 | [diff] [blame] | 27 | OS X 10.6 (Snow Leopard) is explicitly unsupported. See https://github.com/golang/go/issues/9511 |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 28 | |
| 29 | ### OpenBSD |
| 30 | |
Brad Fitzpatrick | 70eb0a4 | 2016-12-07 16:56:00 -0800 | [diff] [blame] | 31 | The current officially supported -stable versions only. See https://golang.org/wiki/OpenBSD for details. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 32 | |
| 33 | ### DragonFly |
| 34 | |
| 35 | Generally only the latest release version only. We have a builder, but it's not the most stable of our ports. |
| 36 | |
| 37 | ### FreeBSD |
| 38 | |
Brad Fitzpatrick | dc8d47f | 2016-09-28 10:24:49 -0700 | [diff] [blame] | 39 | FreeBSD 8 and up according to https://golang.org/doc/install, but I suspect we might need something newer than 8. We only run builders testing FreeBSD 9.3 and 10.1. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 40 | |
Minux Ma | 3cbcb22 | 2016-09-23 18:57:08 -0400 | [diff] [blame] | 41 | ### Native Client |
| 42 | |
| 43 | pepper_39 or newer. |
| 44 | |
Minux Ma | f8fd568 | 2016-09-23 18:45:02 -0400 | [diff] [blame] | 45 | ### Solaris |
| 46 | |
| 47 | illumos (former OpenSolaris 10) based distributions or Oracle Solaris 11+. |
| 48 | |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 49 | ## Architectures |
| 50 | |
| 51 | ### x86 |
| 52 | |
| 53 | See https://golang.org/doc/install/source#environment |
| 54 | |
| 55 | Set GO386=387 or GO386=sse2 for older processors. |
| 56 | |
| 57 | ### arm |
| 58 | |
| 59 | See https://golang.org/doc/install/source#environment |
| 60 | |
| 61 | * GOARM=5: use software floating point; when CPU doesn't have VFP co-processor |
| 62 | * GOARM=6: use VFPv1 only; default if cross compiling; usually ARM11 or better cores (VFPv2 or better is also supported) |
| 63 | * GOARM=7: use VFPv3; usually Cortex-A cores |
| 64 | |
| 65 | ### arm64 |
| 66 | |
Minux Ma | a6332e8 | 2016-09-23 18:49:20 -0400 | [diff] [blame] | 67 | All ARMv8-A processors. |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 68 | |
| 69 | ### ppc64 (big endian) |
| 70 | |
Brad Fitzpatrick | 6f138aa | 2016-09-26 07:34:26 -0700 | [diff] [blame] | 71 | "Big-endian 64-bit PowerPC (linux/ppc64) only requires the POWER5 architecture." (from |
| 72 | https://golang.org/doc/go1.7#ports) |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 73 | |
billotosyr | 7bf2b03 | 2016-09-23 18:22:58 -0400 | [diff] [blame] | 74 | ### ppc64le (little endian) |
| 75 | |
Brad Fitzpatrick | 6f138aa | 2016-09-26 07:34:26 -0700 | [diff] [blame] | 76 | "The experimental port to Linux on little-endian 64-bit PowerPC (linux/ppc64le) now requires the POWER8 architecture or later." (from |
| 77 | https://golang.org/doc/go1.7#ports) |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 78 | |
Minux Ma | ad0af36 | 2016-09-23 18:55:19 -0400 | [diff] [blame] | 79 | ### mips64 (big endian) |
| 80 | |
| 81 | MIPS III or higher. Builder is using MIPS64r2. |
| 82 | |
| 83 | ### mips64le (little endian) |
| 84 | |
| 85 | MIPS III or higher in little endian mode. Builders are using Loongson 2E/2F. |
| 86 | |
Brad Fitzpatrick | 58593ec | 2016-09-23 15:15:50 -0700 | [diff] [blame] | 87 | ### s390x |
| 88 | |
| 89 | z196+ |
Minux Ma | 65a2c7d | 2016-12-01 23:00:08 -0500 | [diff] [blame] | 90 | |
| 91 | ### mips (big endian) and mipsle (little endian) |
| 92 | |
| 93 | MIPS32r1, with FPU or kernel FPU emulation |