blob: e8d7d4a6d9bd1f6d451ef4a1fce9dc11e8142825 [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
Mikio Hara45f13432018-02-21 08:16:07 +09009We don't support CentOS 5. The 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
ron minnich1dfce302018-02-22 08:28:51 -080013If 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 Hara45f13432018-02-21 08:16:07 +090015### [Windows](Windows)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070016
Brad Fitzpatricke8af9cb2018-07-11 14:04:42 -070017For Go 1.10: Windows XP (w/ Service Pack 3) or higher.
18
19For 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 Fitzpatrick58593ec2016-09-23 15:15:50 -070020
Mikio Hara94e3a592017-04-27 16:22:34 +090021### [macOS (née OS X, aka Darwin)](Darwin)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070022
Mikio Harae20a15d2018-02-21 10:48:00 +090023macOS Sierra 10.12 or higher requires Go 1.7.1 or above.
mikioh4914d9a2018-08-01 11:14:33 +090024Go 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 Fitzpatrick58593ec2016-09-23 15:15:50 -070025
Mikio Hara94e3a592017-04-27 16:22:34 +090026### [OpenBSD](OpenBSD)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070027
Mikio Hara3d7f0892018-02-21 08:26:35 +090028The current officially supported -stable versions only.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070029
Mikio Hara94e3a592017-04-27 16:22:34 +090030### [DragonFly BSD](DragonFly-BSD)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070031
32Generally only the latest release version only. We have a builder, but it's not the most stable of our ports.
33
Mikio Hara94e3a592017-04-27 16:22:34 +090034### [FreeBSD](FreeBSD)
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070035
Mikio Hara3d7f0892018-02-21 08:26:35 +090036FreeBSD 10 or higher, but FreeBSD 12-CURRENT is [not supported](https://github.com/golang/go/issues/22447).
Mikio Hara45f13432018-02-21 08:16:07 +090037We only run builders testing FreeBSD 10.3 and 11.1.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070038
Brad Fitzpatrick5daa9ab2017-06-29 12:14:32 -070039### [NetBSD](NetBSD)
40
Brad Fitzpatrickf40199f2017-07-10 11:18:38 -070041There 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 Fitzpatrick5daa9ab2017-06-29 12:14:32 -070042
Mikio Hara312a15d2017-04-27 17:48:35 +090043### [Native Client](NativeClient)
Minux Ma3cbcb222016-09-23 18:57:08 -040044
45pepper_39 or newer.
46
Mikio Hara94e3a592017-04-27 16:22:34 +090047### [Solaris](Solaris)
Minux Maf8fd5682016-09-23 18:45:02 -040048
49illumos (former OpenSolaris 10) based distributions or Oracle Solaris 11+.
50
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070051## Architectures
52
Keith Randall56dafe12017-03-21 12:53:36 -070053### amd64
54
55All 64-bit x86 processors.
56
57### 386
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070058
59See https://golang.org/doc/install/source#environment
60
Keith Randall70eb4102017-03-21 12:54:33 -070061* GO386=387: run on any Pentium MMX or later processor.
Keith Randall56dafe12017-03-21 12:53:36 -070062* GO386=sse2: run on any processor with at least SSE2 (the default).
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070063
64### arm
65
66See 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 Maa6332e82016-09-23 18:49:20 -040074All ARMv8-A processors.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070075
76### ppc64 (big endian)
77
Keith Randalla13b9d92017-03-21 13:03:41 -070078POWER5 and above.
79Starting with Go 1.9, only POWER8 and above are supported.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070080
billotosyr7bf2b032016-09-23 18:22:58 -040081### ppc64le (little endian)
82
Keith Randalla13b9d92017-03-21 13:03:41 -070083POWER8 and above.
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070084
Minux Maad0af362016-09-23 18:55:19 -040085### mips64 (big endian)
86
87MIPS III or higher. Builder is using MIPS64r2.
88
89### mips64le (little endian)
90
91MIPS III or higher in little endian mode. Builders are using Loongson 2E/2F.
92
Brad Fitzpatrick58593ec2016-09-23 15:15:50 -070093### s390x
94
95z196+
Minux Ma65a2c7d2016-12-01 23:00:08 -050096
97### mips (big endian) and mipsle (little endian)
98
Wèi Cōngruìf3200c42018-08-29 06:59:41 +000099MIPS32r1