@ -8,21 +8,76 @@ If you consistently can reproduce a test failure, search for it in the
[Node.js issue tracker ](https://github.com/nodejs/node/issues ) or
file a new issue.
## Supported platforms
This list of supported platforms is current as of the branch / release to
which it is attached.
### Input
Node.js relies on V8 and libuv. Therefore, we adopt a subset of their
supported platforms.
### Strategy
Support is divided into three tiers:
* **Tier 1** : Full test coverage and maintenance by the Node.js core team and
the broader community.
* **Tier 2** : Full test coverage but more limited maintenance,
often provided by the vendor of the platform.
* **Experimental** : Known to compile but not necessarily reliably or with
a full passing test suite. These are often working to be promoted to Tier
2 but are not quite ready. There is at least one individual actively
providing maintenance and the team is striving to broaden quality and
reliability of support.
### Supported platforms
| System | Support type | Version | Architectures | Notes |
|--------------|--------------|----------------------------------|----------------------|------------------|
| GNU/Linux | Tier 1 | kernel >= 2.6.18, glibc >= 2.5 | x86, x64, arm, arm64 | |
| macOS | Tier 1 | >= 10.10 | x64 | |
| Windows | Tier 1 | >= Windows 7 or >= Windows2008R2 | x86, x64 | |
| SmartOS | Tier 2 | >= 14 | x86, x64 | |
| FreeBSD | Tier 2 | >= 10 | x64 | |
| GNU/Linux | Tier 2 | kernel >= 4.2.0, glibc >= 2.19 | ppc64be | |
| GNU/Linux | Tier 2 | kernel >= 3.13.0, glibc >= 2.19 | ppc64le | |
| macOS | Experimental | >= 10.8 < 10.10 | x64 | no test coverage |
| Linux (musl) | Experimental | musl >= 1.0 | x64 | |
### Supported toolchains
Depending on host platform, the selection of toolchains may vary.
#### Unix
* GCC 4.8 or newer
* Clang 3.4.1 or newer
#### Windows
* Building Node: Visual Studio 2013 or Visual C++ Build Tools 2013 or newer
* Building native add-ons: Visual Studio 2013 or Visual C++ Build Tools 2013
or newer
## Building Node.js on supported platforms
### Unix / OS X
Prerequisites:
* `gcc` and `g++` 4.8 or newer, or
* `clang` and `clang++` 3.4 or newer
* `clang` and `clang++` 3.4.1 or newer
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
On OS X, you will also need:
* [Xcode ](https://developer.apple.com/xcode/download/ )
* You also need to install the `Command Line Tools` via Xcode. You can find
- You also need to install the `Command Line Tools` via Xcode. You can find
this under the menu `Xcode -> Preferences -> Downloads`
* This step will install `gcc` and the related toolchain containing `make`
- This step will install `gcc` and the related toolchain containing `make`
* After building, you may want to setup [firewall rules ](tools/macosx-firewall.sh )
to avoid popups asking to accept incoming network connections when running tests:
@ -53,6 +108,9 @@ $ make
$ [sudo] make install
```
Note that the above requires that `python` resolve to Python 2.6 or 2.7
and not a newer version.
To run the tests:
```text
@ -263,9 +321,11 @@ It is possible to build Node.js with
**Note**: building in this way does **not** allow you to claim that the
runtime is FIPS 140-2 validated. Instead you can indicate that the runtime
uses a validated module. See the [security policy ](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf )
uses a validated module. See the
[security policy ](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf )
page 60 for more details. In addition, the validation for the underlying module
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 ).
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 ).
If you need FIPS validated cryptography it is recommended that you read both
the [security policy ](http://csrc.nist.gov/groups/STM/cmvp/documents/140-1/140sp/140sp1747.pdf )
and [user guide ](https://openssl.org/docs/fips/UserGuide-2.0.pdf ).