@ -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
[Node.js issue tracker ](https://github.com/nodejs/node/issues ) or
file a new issue.
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
### Unix / OS X
Prerequisites:
Prerequisites:
* `gcc` and `g++` 4.8 or newer, or
* `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
* Python 2.6 or 2.7
* GNU Make 3.81 or newer
* GNU Make 3.81 or newer
On OS X, you will also need:
On OS X, you will also need:
* [Xcode ](https://developer.apple.com/xcode/download/ )
* [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 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 )
* 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:
to avoid popups asking to accept incoming network connections when running tests:
@ -53,6 +108,9 @@ $ make
$ [sudo] make install
$ [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:
To run the tests:
```text
```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
**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
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
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
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 )
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 ).
and [user guide ](https://openssl.org/docs/fips/UserGuide-2.0.pdf ).