blob: b30718230b9a37d0fb0a078571cabd56890a4330 [file] [log] [blame] [view]
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -07001# Minimum Requirements
2
3## Operating Systems
4
Mikio Hara94e3a592017-04-27 16:22:34 +09005### [Linux](Linux)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -07006
Minux Ma89f819f2017-01-17 19:36:37 -05007Kernel 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 Fitzpatrick58593ec2016-09-23 15:15:50 -07008
Minux Mafb7b3982016-09-23 18:47:37 -04009We don't support CentOS 5. Kernel is too old (2.6.18).
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070010
Russ Coxdcc77a42016-10-20 22:08:59 -040011For little-endian MIPS64, kernel version [4.1 is known to fail, and 4.8 works](https://golang.org/issue/16848).
Russ Coxc5f56d42016-10-20 22:08:39 -040012
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070013### Windows
14
Brad Fitzpatrick9d0ae1c2016-11-17 14:01:27 -050015Windows 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 Fitzpatrick58593ec2016-09-23 15:15:50 -070016
17We run builders testing Go on Windows Server 2008 R2 Datacenter Edition. That is basically Windows 7 or above.
18
Mikio Hara94e3a592017-04-27 16:22:34 +090019### [macOS (née OS X, aka Darwin)](Darwin)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070020
Mikio Hara91129522016-10-20 16:35:55 +090021macOS 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 Fitzpatrick58593ec2016-09-23 15:15:50 -070022
Mikio Hara07d84ae2016-09-29 15:34:34 +090023Go 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 Fitzpatrick58593ec2016-09-23 15:15:50 -070024
Brad Fitzpatrickc9526082016-11-16 15:03:16 -050025Go 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 Fitzpatrick58593ec2016-09-23 15:15:50 -070026
Mikio Hara07d84ae2016-09-29 15:34:34 +090027OS X 10.6 (Snow Leopard) is explicitly unsupported. See https://github.com/golang/go/issues/9511
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070028
Mikio Hara94e3a592017-04-27 16:22:34 +090029### [OpenBSD](OpenBSD)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070030
Brad Fitzpatrick70eb0a42016-12-07 16:56:00 -080031The current officially supported -stable versions only. See https://golang.org/wiki/OpenBSD for details.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070032
Mikio Hara94e3a592017-04-27 16:22:34 +090033### [DragonFly BSD](DragonFly-BSD)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070034
35Generally only the latest release version only. We have a builder, but it's not the most stable of our ports.
36
Mikio Hara94e3a592017-04-27 16:22:34 +090037### [FreeBSD](FreeBSD)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070038
Mikio Hara94e3a592017-04-27 16:22:34 +090039FreeBSD 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 10.1 and 11.0.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070040
Brad Fitzpatrick5daa9ab2017-06-29 12:14:32 -070041### [NetBSD](NetBSD)
42
43There are known NetBSD bugs (including kernel crashes) up to the current NetBSD 7.1. It's currently not recommended to run Go on NetBSD, though it might work. See https://tip.golang.org/doc/go1.9#known_issues and https://github.com/golang/go/issues/20852
44
Mikio Hara312a15d2017-04-27 17:48:35 +090045### [Native Client](NativeClient)
Minux Ma3cbcb222016-09-23 18:57:08 -040046
47pepper_39 or newer.
48
Mikio Hara94e3a592017-04-27 16:22:34 +090049### [Solaris](Solaris)
Minux Maf8fd5682016-09-23 18:45:02 -040050
51illumos (former OpenSolaris 10) based distributions or Oracle Solaris 11+.
52
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070053## Architectures
54
Keith Randall56dafe12017-03-21 12:53:36 -070055### amd64
56
57All 64-bit x86 processors.
58
59### 386
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070060
61See https://golang.org/doc/install/source#environment
62
Keith Randall70eb4102017-03-21 12:54:33 -070063* GO386=387: run on any Pentium MMX or later processor.
Keith Randall56dafe12017-03-21 12:53:36 -070064* GO386=sse2: run on any processor with at least SSE2 (the default).
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070065
66### arm
67
68See https://golang.org/doc/install/source#environment
69
70* GOARM=5: use software floating point; when CPU doesn't have VFP co-processor
71* GOARM=6: use VFPv1 only; default if cross compiling; usually ARM11 or better cores (VFPv2 or better is also supported)
72* GOARM=7: use VFPv3; usually Cortex-A cores
73
74### arm64
75
Minux Maa6332e82016-09-23 18:49:20 -040076All ARMv8-A processors.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070077
78### ppc64 (big endian)
79
Keith Randalla13b9d92017-03-21 13:03:41 -070080POWER5 and above.
81Starting with Go 1.9, only POWER8 and above are supported.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070082
billotosyr7bf2b032016-09-23 18:22:58 -040083### ppc64le (little endian)
84
Keith Randalla13b9d92017-03-21 13:03:41 -070085POWER8 and above.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070086
Minux Maad0af362016-09-23 18:55:19 -040087### mips64 (big endian)
88
89MIPS III or higher. Builder is using MIPS64r2.
90
91### mips64le (little endian)
92
93MIPS III or higher in little endian mode. Builders are using Loongson 2E/2F.
94
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070095### s390x
96
97z196+
Minux Ma65a2c7d2016-12-01 23:00:08 -050098
99### mips (big endian) and mipsle (little endian)
100
101MIPS32r1, with FPU or kernel FPU emulation