Changes since version 1.38.0: * test: use last matching qemu version (cjihrig) * win, util: rearrange uv_hrtime (Bartosz Sosnowski) * test: skip signal_multiple_loops test on QEMU (gengjiawen) * build: add android build to CI (gengjiawen) * test: extend fs_event_error_reporting timeout (cjihrig) * build: link libkvm on netbsd only (Alexander Tokmakov) * linux: refactor /proc file reader logic (Ben Noordhuis) * linux: read load average from /proc/loadavg (Ben Noordhuis) * android: remove patch code for below 21 (gengjiawen) * win: fix visual studio 2008 build (Arenoros) * win,tty: fix deadlock caused by inconsistent state (lander0s) * unix: use relaxed loads/stores for feature checks (Ben Noordhuis) * build: don't .gitignore m4/ax_pthread.m4 (Ben Noordhuis) * unix: fix gcc atomics feature check (Ben Noordhuis) * darwin: work around clock jumping back in time (Ben Noordhuis) * udp: fix write_queue cleanup on sendmmsg error (Santiago Gimeno) * src: build fix for Android (David Carlier) -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org iQIzBAABCgAdFiEElK42Z1xGTWS6+mjddDQ5C9vpucUFAl7/Yg8ACgkQdDQ5C9vp ucXgdg//euAx0jByjpOdc4RjLAXpq+iEDuLQXIzT3GmvK3g5+ymrB1HVkw455l7o gHY9f/GM+A8wZBcLoyfMywLiSD78/HOrHwQ1MGiieMm1hPFr8OXQ4Z25Bdx/GsE4 2nCprDrfMrVUQs8eFVx30fjFvOymzhpHak173N6uBOVBLQRivQHSuOG4Dk7RJSAA iCIKQ6JulQ/yX0OFvvnYjwbnt5bCDlr1gTFX1HQZFi4dELIbdfaqn1AkY6COa4mc tKZRMC1rV81HejNAYFG2Js1QQaUKtMemyHUple6qRo/TYhsZXMaWShjOOHtBqT5X hQ8yqGLcaQhWXI7FlBK9aOFBc2/c7Jrxn78MFnd0C8kUHMT9oMhK3KOUHjJ4K5Zt sN06cS9Zj9Gpvcnzffohx6/0ePyIVHsEGBt8gRI3YCH4GR0A12WYc4Kr8YuJu11J 7WVEjIpxZBRajOq8xfA4n6brM0s8gwJvCm2/ypYZKbQ0kz0ZZD5nOK+Ax+ukdg51 cBtTyx0tme0bQPZkzJP5sMP6DqGKgHbMzeUueqJ5xXOuXWjnOZRWfxmT22RSc6vI 9D+9p12GD81KlYoprbKk5Fg/adIW/kKrT1cFMeKgcKhyuq8B5maDoaN/FP0oIZc2 p1Pv9KEJCo7gI35XwkEvEIDLJ1Ax8B8RQE+8sophzsxVxo5E+GE= =P+eq -----END PGP SIGNATURE----- Merge tag 'v1.38.1' into merge_1.38.1 PR-URL: https://github.com/libuv/libuv/pull/2927 Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
# Supported platforms
|
|
|
|
| System | Support type | Supported versions | Notes |
|
|
|---|---|---|---|
|
|
| GNU/Linux | Tier 1 | Linux >= 2.6.32 with glibc >= 2.12 | |
|
|
| macOS | Tier 1 | macOS >= 10.9 | |
|
|
| Windows | Tier 1 | Windows >= 7 | MSVC 2015 and later are supported |
|
|
| FreeBSD | Tier 1 | >= 10 | |
|
|
| AIX | Tier 2 | >= 6 | Maintainers: @libuv/aix |
|
|
| z/OS | Tier 2 | >= V2R2 | Maintainers: @libuv/zos |
|
|
| Linux with musl | Tier 2 | musl >= 1.0 | |
|
|
| SmartOS | Tier 2 | >= 14.4 | Maintainers: @libuv/smartos |
|
|
| Android | Tier 3 | NDK >= r15b | |
|
|
| IBM i | Tier 3 | >= IBM i 7.2 | Maintainers: @libuv/ibmi |
|
|
| MinGW | Tier 3 | MinGW32 and MinGW-w64 | |
|
|
| SunOS | Tier 3 | Solaris 121 and later | |
|
|
| Other | Tier 3 | N/A | |
|
|
|
|
## Support types
|
|
|
|
* **Tier 1**: Officially supported and tested with CI. Any contributed patch
|
|
MUST NOT break such systems. These are supported by @libuv/collaborators.
|
|
|
|
* **Tier 2**: Officially supported, but not necessarily tested with CI. These
|
|
systems are maintained to the best of @libuv/collaborators ability,
|
|
without being a top priority.
|
|
|
|
* **Tier 3**: Community maintained. These systems may inadvertently break and the
|
|
community and interested parties are expected to help with the maintenance.
|
|
|
|
## Adding support for a new platform
|
|
|
|
**IMPORTANT**: Before attempting to add support for a new platform please open
|
|
an issue about it for discussion.
|
|
|
|
### Unix
|
|
|
|
I/O handling is abstracted by an internal `uv__io_t` handle. The new platform
|
|
will need to implement some of the functions, the prototypes are in
|
|
``src/unix/internal.h``.
|
|
|
|
If the new platform requires extra fields for any handle structure, create a
|
|
new include file in ``include/`` with the name ``uv-theplatform.h`` and add
|
|
the appropriate defines there.
|
|
|
|
All functionality related to the new platform must be implemented in its own
|
|
file inside ``src/unix/`` unless it's already done in a common file, in which
|
|
case adding an `ifdef` is fine.
|
|
|
|
Two build systems are supported: autotools and cmake. Ideally both need to be
|
|
supported, but if one of the two does not support the new platform it can be
|
|
left out.
|
|
|
|
### Windows
|
|
|
|
Windows is treated as a single platform, so adding support for a new platform
|
|
would mean adding support for a new version.
|
|
|
|
Compilation and runtime must succeed for the minimum supported version. If a
|
|
new API is to be used, it must be done optionally, only in supported versions.
|
|
|
|
### Common
|
|
|
|
Some common notes when adding support for new platforms:
|
|
|
|
* Generally libuv tries to avoid compile time checks. Do not add any to the
|
|
autotools based build system or use version checking macros.
|
|
Dynamically load functions and symbols if they are not supported by the
|
|
minimum supported version.
|