comparison third_party/libuv/SUPPORTED_PLATFORMS.md @ 160:948de3f54cea

[ThirdParty] Added libuv
author June Park <parkjune1995@gmail.com>
date Wed, 14 Jan 2026 19:39:52 -0800
parents
children
comparison
equal deleted inserted replaced
159:05cf9467a1c3 160:948de3f54cea
1 # Supported platforms
2
3 | System | Support type | Supported versions | Notes |
4 |---|---|---|---|
5 | GNU/Linux | Tier 1 | Linux >= 3.10 with glibc >= 2.17 | |
6 | macOS | Tier 1 | macOS >= 11 | Currently supported macOS releases |
7 | Windows | Tier 1 | >= Windows 10 | VS 2017 and later are supported |
8 | FreeBSD | Tier 2 | >= 12 | |
9 | AIX | Tier 2 | >= 6 | Maintainers: @libuv/aix |
10 | IBM i | Tier 2 | >= IBM i 7.2 | Maintainers: @libuv/ibmi |
11 | z/OS | Tier 2 | >= V2R2 | Maintainers: @libuv/zos |
12 | Linux with musl | Tier 2 | musl >= 1.0 | |
13 | Android | Tier 3 | NDK >= r15b | Android 7.0, `-DANDROID_PLATFORM=android-24` |
14 | MinGW | Tier 3 | MinGW-w64 | |
15 | SunOS | Tier 3 | Solaris 121 and later | |
16 | Other | Tier 3 | N/A | |
17
18 ## Support types
19
20 * **Tier 1**: Officially supported and tested with CI. Any contributed patch
21 MUST NOT break such systems. These are supported by @libuv/collaborators.
22
23 * **Tier 2**: Officially supported, but not necessarily tested with CI. These
24 systems are maintained to the best of @libuv/collaborators ability,
25 without being a top priority.
26
27 * **Tier 3**: Community maintained. These systems may inadvertently break and the
28 community and interested parties are expected to help with the maintenance.
29
30 ## Adding support for a new platform
31
32 **IMPORTANT**: Before attempting to add support for a new platform please open
33 an issue about it for discussion.
34
35 ### Unix
36
37 I/O handling is abstracted by an internal `uv__io_t` handle. The new platform
38 will need to implement some of the functions, the prototypes are in
39 ``src/unix/internal.h``.
40
41 If the new platform requires extra fields for any handle structure, create a
42 new include file in ``include/`` with the name ``uv-theplatform.h`` and add
43 the appropriate defines there.
44
45 All functionality related to the new platform must be implemented in its own
46 file inside ``src/unix/`` unless it's already done in a common file, in which
47 case adding an `ifdef` is fine.
48
49 Two build systems are supported: autotools and cmake. Ideally both need to be
50 supported, but if one of the two does not support the new platform it can be
51 left out.
52
53 ### Windows
54
55 Windows is treated as a single platform, so adding support for a new platform
56 would mean adding support for a new version.
57
58 Compilation and runtime must succeed for the minimum supported version. If a
59 new API is to be used, it must be done optionally, only in supported versions.
60
61 ### Common
62
63 Some common notes when adding support for new platforms:
64
65 * Generally libuv tries to avoid compile time checks. Do not add any to the
66 autotools based build system or use version checking macros.
67 Dynamically load functions and symbols if they are not supported by the
68 minimum supported version.