@@ -8,6 +8,71 @@ If you consistently can reproduce a test failure, search for it in the |
8 | 8 | [Node.js issue tracker](https://github.com/nodejs/node/issues) or |
9 | 9 | file a new issue. |
10 | 10 |
|
| 11 | +## Supported platforms |
| 12 | + |
| 13 | +This list of supported platforms is current as of the branch / release to |
| 14 | +which it is attached. |
| 15 | + |
| 16 | +### Input |
| 17 | + |
| 18 | +Node.js relies on V8 and libuv. Therefore, we adopt a subset of their |
| 19 | +supported platforms. |
| 20 | + |
| 21 | +### Strategy |
| 22 | + |
| 23 | +Support is divided into three tiers: |
| 24 | + |
| 25 | +* **Tier 1**: Full test coverage and maintenance by the Node.js core team and |
| 26 | + the broader community. |
| 27 | +* **Tier 2**: Full test coverage but more limited maintenance, |
| 28 | + often provided by the vendor of the platform. |
| 29 | +* **Experimental**: Known to compile but not necessarily reliably or with |
| 30 | + a full passing test suite. These are often working to be promoted to Tier |
| 31 | + 2 but are not quite ready. There is at least one individual actively |
| 32 | + providing maintenance and the team is striving to broaden quality and |
| 33 | + reliability of support. |
| 34 | + |
| 35 | +### Supported platforms |
| 36 | + |
| 37 | +| System | Support type | Version | Architectures | Notes | |
| 38 | +|--------------|--------------|----------------------------------|----------------------|------------------| |
| 39 | +| GNU/Linux | Tier 1 | kernel >= 2.6.18, glibc >= 2.5 | x86, x64, arm, arm64 | | |
| 40 | +| macOS | Tier 1 | >= 10.10 | x64 | | |
| 41 | +| Windows | Tier 1 | >= Windows 7 or >= Windows2008R2 | x86, x64 | | |
| 42 | +| SmartOS | Tier 2 | >= 15 < 16.4 | x86, x64 | see note1 | |
| 43 | +| FreeBSD | Tier 2 | >= 10 | x64 | | |
| 44 | +| GNU/Linux | Tier 2 | kernel >= 4.2.0, glibc >= 2.19 | ppc64be | | |
| 45 | +| GNU/Linux | Tier 2 | kernel >= 3.13.0, glibc >= 2.19 | ppc64le | | |
| 46 | +| AIX | Tier 2 | >= 6.1 TL09 | ppc64be | | |
| 47 | +| GNU/Linux | Tier 2 | kernel >= 3.10, glibc >= 2.17 | s390x | | |
| 48 | +| macOS | Experimental | >= 10.8 < 10.10 | x64 | no test coverage | |
| 49 | +| Linux (musl) | Experimental | musl >= 1.0 | x64 | | |
| 50 | + |
| 51 | +note1 - The gcc4.8-libs package needs to be installed, because node |
| 52 | + binaries have been built with GCC 4.8, for which runtime libraries are not |
| 53 | + installed by default. For these node versions, the recommended binaries |
| 54 | + are the ones available in pkgsrc, not the one available from nodejs.org. |
| 55 | + Note that the binaries downloaded from the pkgsrc repositories are not |
| 56 | + officially supported by the Node.js project, and instead are supported |
| 57 | + by Joyent. SmartOS images >= 16.4 are not supported because |
| 58 | + GCC 4.8 runtime libraries are not available in their pkgsrc repository |
| 59 | + |
| 60 | +### Supported toolchains |
| 61 | + |
| 62 | +Depending on host platform, the selection of toolchains may vary. |
| 63 | + |
| 64 | +#### Unix |
| 65 | + |
| 66 | +* GCC 4.8.5 or newer |
| 67 | +* Clang 3.4.1 or newer |
| 68 | + |
| 69 | +#### Windows |
| 70 | + |
| 71 | +* Building Node: Visual Studio 2015 or Visual C++ Build Tools 2015 or newer |
| 72 | +* Building native add-ons: Visual Studio 2013 or Visual C++ Build Tools 2015 |
| 73 | + or newer |
| 74 | + |
| 75 | +## Building Node.js on supported platforms |
11 | 76 |
|
12 | 77 | ### Unix / OS X |
13 | 78 |
|
@@ -20,9 +85,9 @@ Prerequisites: |
20 | 85 |
|
21 | 86 | On OS X, you will also need: |
22 | 87 | * [Xcode](https://developer.apple.com/xcode/download/) |
23 | | - * You also need to install the `Command Line Tools` via Xcode. You can find |
| 88 | + - You also need to install the `Command Line Tools` via Xcode. You can find |
24 | 89 | this under the menu `Xcode -> Preferences -> Downloads` |
25 | | - * This step will install `gcc` and the related toolchain containing `make` |
| 90 | + - This step will install `gcc` and the related toolchain containing `make` |
26 | 91 |
|
27 | 92 | * After building, you may want to setup [firewall rules](tools/macosx-firewall.sh) |
28 | 93 | to avoid popups asking to accept incoming network connections when running tests: |
@@ -51,7 +116,8 @@ the `-j4` flag. See the |
51 | 116 | [GNU Make Documentation](https://www.gnu.org/software/make/manual/html_node/Parallel.html) |
52 | 117 | for more information. |
53 | 118 |
|
54 | | -Note that the above requires that `python` resolve to Python 2.6 or 2.7 and not a newer version. |
| 119 | +Note that the above requires that `python` resolve to Python 2.6 or 2.7 |
| 120 | +and not a newer version. |
55 | 121 |
|
56 | 122 | To run the tests: |
57 | 123 |
|
@@ -252,9 +318,11 @@ It is possible to build Node.js with |
252 | 318 |
|
253 | 319 | **Note**: building in this way does **not** allow you to claim that the |
254 | 320 | runtime is FIPS 140-2 validated. Instead you can indicate that the runtime |
255 | | -uses a validated module. See the [security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf) |
| 321 | +uses a validated module. See the |
| 322 | +[security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf) |
256 | 323 | page 60 for more details. In addition, the validation for the underlying module |
257 | | -is only valid if it is deployed in accordance with its [security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf). |
| 324 | +is only valid if it is deployed in accordance with its |
| 325 | +[security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf). |
258 | 326 | If you need FIPS validated cryptography it is recommended that you read both |
259 | 327 | the [security policy](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf) |
260 | 328 | and [user guide](https://openssl.org/docs/fips/UserGuide-2.0.pdf). |
|