summaryrefslogtreecommitdiff
path: root/BUILDING.md
diff options
context:
space:
mode:
authorMichael Dawson <michael_dawson@ca.ibm.com>2017-03-17 17:34:54 -0400
committerMichael Dawson <michael_dawson@ca.ibm.com>2017-03-20 13:43:15 -0400
commitef4768754c870e3a0b0d2e09c062cfbde03afb63 (patch)
tree681696359b68d606989f7d7259ad2e0ba247c494 /BUILDING.md
parent6aed32c57986b90290459e155aca20b962cd3829 (diff)
downloadnode-new-ef4768754c870e3a0b0d2e09c062cfbde03afb63.tar.gz
doc: add supported platforms list
PR-URL: https://github.com/nodejs/node/pull/11872 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Roman Reiss <me@silverwind.io> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Diffstat (limited to 'BUILDING.md')
-rw-r--r--BUILDING.md80
1 files changed, 74 insertions, 6 deletions
diff --git a/BUILDING.md b/BUILDING.md
index 13f4e34734..b325972f4b 100644
--- a/BUILDING.md
+++ b/BUILDING.md
@@ -8,21 +8,86 @@ 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 | >= 15 < 16.4 | x86, x64 | see note1 |
+| 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 | |
+| AIX | Tier 2 | >= 6.1 TL09 | ppc64be | |
+| GNU/Linux | Tier 2 | kernel >= 3.10, glibc >= 2.17 | s390x | |
+| macOS | Experimental | >= 10.8 < 10.10 | x64 | no test coverage |
+| Linux (musl) | Experimental | musl >= 1.0 | x64 | |
+
+note1 - The gcc4.8-libs package needs to be installed, because node
+ binaries have been built with GCC 4.8, for which runtime libraries are not
+ installed by default. For these node versions, the recommended binaries
+ are the ones available in pkgsrc, not the one available from nodejs.org.
+ Note that the binaries downloaded from the pkgsrc repositories are not
+ officially supported by the Node.js project, and instead are supported
+ by Joyent. SmartOS images >= 16.4 are not supported because
+ GCC 4.8 runtime libraries are not available in their pkgsrc repository
+
+### Supported toolchains
+
+Depending on host platform, the selection of toolchains may vary.
+
+#### Unix
+
+* GCC 4.8.5 or newer
+* Clang 3.4.1 or newer
+
+#### Windows
+
+* Building Node: Visual Studio 2015 or Visual C++ Build Tools 2015 or newer
+* Building native add-ons: Visual Studio 2013 or Visual C++ Build Tools 2015
+ or newer
+
+## Building Node.js on supported platforms
### Unix / OS X
Prerequisites:
* `gcc` and `g++` 4.8.5 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:
@@ -51,7 +116,8 @@ the `-j4` flag. See the
[GNU Make Documentation](https://www.gnu.org/software/make/manual/html_node/Parallel.html)
for more information.
-Note that the above requires that `python` resolve to Python 2.6 or 2.7 and not a newer version.
+Note that the above requires that `python` resolve to Python 2.6 or 2.7
+and not a newer version.
To run the tests:
@@ -252,9 +318,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).