The relevant policies are described at https://opensource.google/documentation/policies/cplusplus-support. This document captures the specific version numbers as resolved by those policies.
Note that some of these version supports apply broadly to other languages as well, and are not exclusive to C++.
We will support releases of the following Linux distributions until the vendor drops support.
Vendor support is obtained from published support windows. https://endoflife.date/ consolidates these support windows on top of providing a visualization.
| Distribution | Supported Version | Last Changed | Next Change 1 |
|---|---|---|---|
| Alpine | >= 3.21 | 2026-04-01 | 2026-11-01 |
| Debian | >= 13 | 2026-08-10 | 2028-08-09 |
| Fedora | >= 43 | 2026-09-17 | 2026-12-10 |
| openSUSE | >= Leap 16.0 | 2026-05-01 | 2027-10-31 |
| Ubuntu LTS | >= 22.04 | 2025-06-04 | 2027-05-01 |
| RHEL | >= 9 | 2024-07-01 | 2027-06-01 |
| RockyLinux | >= 9 | 2024-07-01 | 2027-06-01 |
We will build using the newest Windows server platform available.
We will support all the Windows versions that Microsoft supports. i. Windows client support ii. Windows server support
| Dimension | Supported Version | Last Changed | Next Change 1 |
|---|---|---|---|
| Windows Server | >= 2022 | 2024-01-22 | 2026-10-13 |
| Windows Client | >= 11 | 2025-12-16 | 2026-10-13 |
We will build using the newest XCode available. We will support back to the oldest macOS target platform needed by Chrome. We will support back to the oldest iOS target platform that has a simulator.
Note that Chrome has announced an update in its minimum required macOS version in 151. In addition, the Chrome browser system requirements page shows Chrome's support timelines.
| Dimension | Supported Version | Last Changed | Next Change 1 |
|---|---|---|---|
| Xcode | >= 27 | 2026-09-17 | 2027-09-15 |
| macOS (target) | >= 13 (Ventura) | 2026-09-17 | 2027-01-01 |
| iOS (target) | >= 17 | 2026-09-17 | 2027-09-15 |
We will support Android -- we will build using the newest Android NDK and target its lowest supported API level (example meta/platforms.json).
| Dimension | Supported Version | Last Changed | Next Change 1 |
|---|---|---|---|
| Android API (target) | >= 21 | 2022-09-18 |
- We do not support any compiler that is EOL as defined by the vendor.
- We support GCC and Clang on our supported Linux distros (see above). We support the version installed by default (e.g., apt install gcc), unless we've explicitly excluded support for that version because it doesn't support other required policies of ours (e.g., we agree to remove GCC 4.8 because of its incomplete C++11 support, as well as clang 3.x). If we cannot support the default version, we may instead support a newer version that's available from the vendor (e.g., devtoolset-7 on RHEL/CentOS 7)
- We support Apple Clang on our supported XCode version.
- We support MSVC on our supported Windows versions.
- We support the MSVC versions that are in the Mainstream Support window as defined by Microsoft's Fixed Lifecycle Policy.
| Dimension | Supported Version | Last Changed | Next Change 1 |
|---|---|---|---|
| C++ Version | >= 17 | 2024-12-17 | 2027-12-15 |
| CMake | >= 3.22 | 2025-06-04 | 2027-05-01 2 |
| Bazel | 8 LTS | 2025-12-16 | 2026-12-01 |
| GCC | >= 11.2 | 2026-09-17 | 2027-06-30 3 |
| Clang | >= 14.0.0 | 2025-06-04 | 2027-05-01 4 |
| MSVC | >= 2022 | 2024-04-29 | 2027-01-12 |
| Apple Clang | >= 21 | 2026-09-17 | 2027-09-15 5 |
| glibc | >= 2.34 | 2024-07-09 | 2027-06-01 6 |
| musl | >= 1.2.5 | 2026-04-01 | 2026-11-01 |
This table charts the default package version from major Linux distributions that comes with a standard install on our oldest supported distro major version, along with the resulting minimum supported version across all distros.
NOTE: This table should be audited again on or after 2026-11-01.
| Distribution (Oldest Supported) | C++ Version | CMake | GCC | Clang | glibc | musl |
|---|---|---|---|---|---|---|
| Alpine (3.21) | 17 | 3.31 | 14.2 | 19.1 | N/A | 1.2.5 |
| Debian (13) | 17 | 3.31 | 14.2 | 19.0 | 2.41 | 1.2.5 |
| Fedora (43) | 17 | 3.31 | 15.2 | 21.1 | 2.42 | 1.2.6 |
| openSUSE (Leap 16.0) | 17 | 4.3.4 | 15.0 | 22.0 | 2.43 | N/A |
| RHEL / RockyLinux (9) | 17 | 3.31 | 11.5 | 21.1 | 2.34 | N/A |
| Ubuntu LTS (22.04) | 17 | 3.22 | 11.2 | 14.0 | 2.35 | 1.2.5 |
| Minimum Supported | >= 17 | >= 3.22 | >= 11.2 | >= 14.0 | >= 2.34 | >= 1.2.5 |
Footnotes
-
This is an estimated date. The actual date may change if the vendor (or community, as applicable) extends or shortens the lifetime of the dimension in question. ↩ ↩2 ↩3 ↩4 ↩5
-
We support the oldest version of CMake that ships with one of the supported distros. Currently that is CMake 3.22 as Ubuntu 22.04 ships with this version. ↩
-
We support the oldest version of GCC that ships with one of the supported distros. Currently that is GCC 11.2 as Ubuntu 22.04 ships with this version. ↩
-
We support the oldest version of Clang that ships with one of the supported distros. Currently that is Clang 14.0 as Ubuntu 22.04 ships with this version. ↩
-
We support the oldest version of glibc shipping with any of our supported distros. Currently that is glibc 2.34 shipping with RHEL 9 and RockyLinux 9. Internally, we currently support glibc 2.27 and may have code referencing that. We do not guarantee that it will work though. ↩