Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 9c6a9fd

Browse filesBrowse files
Trotttargos
authored andcommitted
doc: use GFM footnotes in BUILDING.md
PR-URL: #40474 Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent fd94621 commit 9c6a9fd
Copy full SHA for 9c6a9fd

File tree

Expand file treeCollapse file tree

1 file changed

+73
-65
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

1 file changed

+73
-65
lines changed
Open diff view settings
Collapse file

‎BUILDING.md‎

Copy file name to clipboardExpand all lines: BUILDING.md
+73-65Lines changed: 73 additions & 65 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -99,61 +99,61 @@ Node.js does not support a platform version if a vendor has expired support
9999
for it. In other words, Node.js does not support running on End-of-Life (EoL)
100100
platforms. This is true regardless of entries in the table below.
101101

102-
| Operating System | Architectures | Versions | Support Type | Notes |
103-
| ---------------- | ---------------- | ------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------- |
104-
| GNU/Linux | x64 | kernel >= 3.10, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04 <sup>[1](#fn1)</sup>, Debian 9, EL 7 <sup>[2](#fn2)</sup> |
105-
| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 |
106-
| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 |
107-
| GNU/Linux | arm64 | kernel >= 4.5, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04, Debian 9, EL 7 <sup>[3](#fn3)</sup> |
108-
| GNU/Linux | armv7 | kernel >= 4.14, glibc >= 2.24 | Tier 1 | e.g. Ubuntu 18.04, Debian 9 |
109-
| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 |
110-
| GNU/Linux | ppc64le >=power8 | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. Ubuntu 16.04 <sup>[1](#fn1)</sup>, EL 7 <sup>[2](#fn2)</sup> |
111-
| GNU/Linux | s390x | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. EL 7 <sup>[2](#fn2)</sup> |
112-
| Windows | x64, x86 (WoW64) | >= Windows 8.1/2012 R2 | Tier 1 | <sup>[4](#fn4),[5](#fn5)</sup> |
113-
| Windows | x86 (native) | >= Windows 8.1/2012 R2 | Tier 1 (running) / Experimental (compiling) <sup>[6](#fn6)</sup> | |
114-
| Windows | x64, x86 | Windows Server 2012 (not R2) | Experimental | |
115-
| Windows | arm64 | >= Windows 10 | Tier 2 (compiling) / Experimental (running) | |
116-
| macOS | x64 | >= 10.13 | Tier 1 | For notes about compilation see <sup>[7](#fn7)</sup> |
117-
| macOS | arm64 | >= 11 | Tier 1 | |
118-
| SmartOS | x64 | >= 18 | Tier 2 | |
119-
| AIX | ppc64be >=power7 | >= 7.2 TL04 | Tier 2 | |
120-
| FreeBSD | x64 | >= 12.2 | Experimental | |
121-
122-
<em id="fn1">1</em>: GCC 8 is not provided on the base platform. Users will
123-
need the
124-
[Toolchain test builds PPA](https://launchpad.net/\~ubuntu-toolchain-r/+archive/ubuntu/test?field.series\_filter=xenial)
125-
or similar to source a newer compiler.
126-
127-
<em id="fn2">2</em>: GCC 8 is not provided on the base platform. Users will
128-
need the
129-
[devtoolset-8](https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/)
130-
or later to source a newer compiler.
131-
132-
<em id="fn3">3</em>: Older kernel versions may work for ARM64. However the
133-
Node.js test infrastructure only tests >= 4.5.
134-
135-
<em id="fn4">4</em>: On Windows, running Node.js in Windows terminal emulators
136-
like `mintty` requires the usage of [winpty](https://github.com/rprichard/winpty)
137-
for the tty channels to work (e.g. `winpty node.exe script.js`).
138-
In "Git bash" if you call the node shell alias (`node` without the `.exe`
139-
extension), `winpty` is used automatically.
140-
141-
<em id="fn5">5</em>: The Windows Subsystem for Linux (WSL) is not
142-
supported, but the GNU/Linux build process and binaries should work. The
143-
community will only address issues that reproduce on native GNU/Linux
144-
systems. Issues that only reproduce on WSL should be reported in the
145-
[WSL issue tracker](https://github.com/Microsoft/WSL/issues). Running the
146-
Windows binary (`node.exe`) in WSL is not recommended. It will not work
147-
without workarounds such as stdio redirection.
148-
149-
<em id="fn6">6</em>: Running Node.js on x86 Windows should work and binaries
150-
are provided. However, tests in our infrastructure only run on WoW64.
151-
Furthermore, compiling on x86 Windows is Experimental and
152-
may not be possible.
153-
154-
<em id="fn7">7</em>: Our macOS x64 Binaries are compiled with 10.13 as a target.
155-
However there is no guarantee compiling on 10.13 will work as Xcode11 is
156-
required to compile.
102+
| Operating System | Architectures | Versions | Support Type | Notes |
103+
| ---------------- | ---------------- | ------------------------------- | ----------------------------------------------- | ----------------------------------------- |
104+
| GNU/Linux | x64 | kernel >= 3.10, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04[^1], Debian 9, EL 7[^2] |
105+
| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 |
106+
| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 |
107+
| GNU/Linux | arm64 | kernel >= 4.5, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04, Debian 9, EL 7[^3] |
108+
| GNU/Linux | armv7 | kernel >= 4.14, glibc >= 2.24 | Tier 1 | e.g. Ubuntu 18.04, Debian 9 |
109+
| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 |
110+
| GNU/Linux | ppc64le >=power8 | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. Ubuntu 16.04[^1], EL 7[^2] |
111+
| GNU/Linux | s390x | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. EL 7[^2] |
112+
| Windows | x64, x86 (WoW64) | >= Windows 8.1/2012 R2 | Tier 1 | [^4],[^5] |
113+
| Windows | x86 (native) | >= Windows 8.1/2012 R2 | Tier 1 (running) / Experimental (compiling)[^6] | |
114+
| Windows | x64, x86 | Windows Server 2012 (not R2) | Experimental | |
115+
| Windows | arm64 | >= Windows 10 | Tier 2 (compiling) / Experimental (running) | |
116+
| macOS | x64 | >= 10.13 | Tier 1 | For notes about compilation see [^7] |
117+
| macOS | arm64 | >= 11 | Tier 1 | |
118+
| SmartOS | x64 | >= 18 | Tier 2 | |
119+
| AIX | ppc64be >=power7 | >= 7.2 TL04 | Tier 2 | |
120+
| FreeBSD | x64 | >= 12.2 | Experimental | |
121+
122+
[^1]: GCC 8 is not provided on the base platform. Users will
123+
need the
124+
[Toolchain test builds PPA](https://launchpad.net/\~ubuntu-toolchain-r/+archive/ubuntu/test?field.series\_filter=xenial)
125+
or similar to source a newer compiler.
126+
127+
[^2]: GCC 8 is not provided on the base platform. Users will
128+
need the
129+
[devtoolset-8](https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/)
130+
or later to source a newer compiler.
131+
132+
[^3]: Older kernel versions may work for ARM64. However the
133+
Node.js test infrastructure only tests >= 4.5.
134+
135+
[^4]: On Windows, running Node.js in Windows terminal emulators
136+
like `mintty` requires the usage of [winpty](https://github.com/rprichard/winpty)
137+
for the tty channels to work (e.g. `winpty node.exe script.js`).
138+
In "Git bash" if you call the node shell alias (`node` without the `.exe`
139+
extension), `winpty` is used automatically.
140+
141+
[^5]: The Windows Subsystem for Linux (WSL) is not
142+
supported, but the GNU/Linux build process and binaries should work. The
143+
community will only address issues that reproduce on native GNU/Linux
144+
systems. Issues that only reproduce on WSL should be reported in the
145+
[WSL issue tracker](https://github.com/Microsoft/WSL/issues). Running the
146+
Windows binary (`node.exe`) in WSL is not recommended. It will not work
147+
without workarounds such as stdio redirection.
148+
149+
[^6]: Running Node.js on x86 Windows should work and binaries
150+
are provided. However, tests in our infrastructure only run on WoW64.
151+
Furthermore, compiling on x86 Windows is Experimental and
152+
may not be possible.
153+
154+
[^7]: Our macOS x64 Binaries are compiled with 10.13 as a target.
155+
However there is no guarantee compiling on 10.13 will work as Xcode11 is
156+
required to compile.
157157

158158
### Supported toolchains
159159

@@ -174,19 +174,19 @@ Binaries at <https://nodejs.org/download/release/> are produced on:
174174
| aix-ppc64 | AIX 7.2 TL04 on PPC64BE with GCC 8 |
175175
| darwin-x64 | macOS 10.15, Xcode Command Line Tools 11 with -mmacosx-version-min=10.13 |
176176
| darwin-arm64 (and .pkg) | macOS 11 (arm64), Xcode Command Line Tools 12 with -mmacosx-version-min=10.13 |
177-
| linux-arm64 | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
177+
| linux-arm64 | CentOS 7 with devtoolset-8 / GCC 8[^8] |
178178
| linux-armv7l | Cross-compiled on Ubuntu 18.04 x64 with [custom GCC toolchain](https://github.com/rvagg/rpi-newer-crosstools) |
179-
| linux-ppc64le | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
180-
| linux-s390x | RHEL 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
181-
| linux-x64 | CentOS 7 with devtoolset-8 / GCC 8 <sup>[8](#fn8)</sup> |
179+
| linux-ppc64le | CentOS 7 with devtoolset-8 / GCC 8[^8] |
180+
| linux-s390x | RHEL 7 with devtoolset-8 / GCC 8[^8] |
181+
| linux-x64 | CentOS 7 with devtoolset-8 / GCC 8[^8] |
182182
| win-x64 and win-x86 | Windows 2012 R2 (x64) with Visual Studio 2019 |
183183

184-
<em id="fn8">8</em>: The Enterprise Linux devtoolset-8 allows us to compile
185-
binaries with GCC 8 but linked to the glibc and libstdc++ versions of the host
186-
platforms (CentOS 7 / RHEL 7). Therefore, binaries produced on these systems
187-
are compatible with glibc >= 2.17 and libstdc++ >= 6.0.20 (`GLIBCXX_3.4.20`).
188-
These are available on distributions natively supporting GCC 4.9, such as
189-
Ubuntu 14.04 and Debian 8.
184+
[^8]: The Enterprise Linux devtoolset-8 allows us to compile binaries with GCC 8
185+
but linked to the glibc and libstdc++ versions of the host platforms
186+
(CentOS 7 / RHEL 7). Therefore, binaries produced on these systems are
187+
compatible with glibc >= 2.17 and libstdc++ >= 6.0.20 (`GLIBCXX_3.4.20`).
188+
These are available on distributions natively supporting GCC 4.9, such as
189+
Ubuntu 14.04 and Debian 8.
190190

191191
#### OpenSSL asm support
192192

@@ -771,6 +771,7 @@ dynamically linking with OpenSSL 3.0.0 by using the configuration flag
771771
### FIPS support when statically linking OpenSSL
772772

773773
FIPS can be supported by specifying the configuration flag `--openssl-is-fips`:
774+
774775
```console
775776
$ ./configure --openssl-is-fips
776777
$ make -j8
@@ -783,23 +784,30 @@ to include the correct path to fipsmodule.cnf and finally uncomment the fips
783784
section.
784785

785786
We can then run node specifying `--enable-fips`:
787+
786788
```console
787789
$ ./node --enable-fips -p 'crypto.getFips()'
788790
1
789791
```
792+
790793
The above will use the Node.js default locations for OpenSSL 3.0:
794+
791795
```console
792796
$ ./out/Release/openssl-cli version -m -d
793797
OPENSSLDIR: "/nodejs/openssl/out/Release/obj.target/deps/openssl"
794798
MODULESDIR: "/nodejs/openssl/out/Release/obj.target/deps/openssl/lib/openssl-modules"
795799
```
800+
796801
The OpenSSL configuration files will be found in `OPENSSLDIR` directory above:
802+
797803
```console
798804
$ ls -w 1 out/Release/obj.target/deps/openssl/*.cnf
799805
out/Release/obj.target/deps/openssl/fipsmodule.cnf
800806
out/Release/obj.target/deps/openssl/openssl.cnf
801807
```
808+
802809
And the FIPS module will be located in the `MODULESDIR` directory:
810+
803811
```console
804812
$ ls out/Release/obj.target/deps/openssl/lib/openssl-modules/
805813
fips.so

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.