The Abseil C++ code is supported on the following platforms. By “platforms”, we mean the union of operating system, architecture (e.g. CPU, little-endian vs. big-endian, etc.), compiler, and standard library.
Abseil has two basic levels of support:
Any other platform that is not explicitly mentioned as Supported or Best Effort is not supported. We may not prioritize bugs related to such platforms, and we will only accept patches that in our judgement do not complicate the code.
Abseil requires a code base that at least supports C++11 and our code is C++11-compliant. Often, we include C++11 versions of standard library functionality available in a later version (e.g C++14 through C++20). Many of these C++11 utlities will silently revert to their official standard library functionality when compiled on C++14 or newer platforms. That is, we guarantee that our code will compile under any of the following compilation flags:
-std=c++11
, -std=c++14
, -std=c++17
, -std=c++20
-std=c++11
, -std=c++14
, -std=c++17
, -std=c++20
/std:c++14
, /std:c++17
The document below lists each platform, broken down by Operating System, Archiecture, Specific Compiler, and Standard Library implementation.
Supported
Operating System/Architecture | Compilers | Standard Libraries |
---|---|---|
Linux, x86-64 and little-endian AArch64, 64-bit | gcc 5.1+ clang 3.7+ |
libstdc++ libc++ |
Abseil now requires gcc 5.1 or above. Usage of gcc 4.9 is now unsupported.
Best Effort
Operating System/Architecture | Compilers | Standard Libraries |
---|---|---|
ChromeOS, armv7a, little-endian, 32-bit | clang 5.0+ | libstdc++ |
Supported
Operating System/Architecture | Compilers | Standard Libraries |
---|---|---|
macOS 10.7+, endian-neutral, 64-bit | Xcode 7.3.1+ | libc++ |
iOS 7+, endian-neutral, 64-bit | Xcode 7.3.1+ | libc++ |
Best Effort
Operating System/Architecture | Compilers | Standard Libraries |
---|---|---|
watchOS 2+, endian-neutral, 64-bit | Xcode 7.3.1+ | libc++ |
On Windows platforms, Abseil does not include winsock2.h
, as it
also pulls in windows.h
(and defines a set of macros that may
conflict with Abseil users). Instead, we forward declare timeval
and require Windows users to explicitly include winsock2.h
themselves.
Supported
Operating System/Architecture | Compilers | Standard Libraries |
---|---|---|
Windows, little-endian, 32/64-bit | MSVC 2015 Update 3, MSVC 2017 | [MS STL](https://github.com/microsoft/STL) |
Best Effort
Operating System/Architecture | Compilers | Standard Libraries |
---|---|---|
Windows, little-endian, 32/64-bit | Clang/LLVM 3.7+ | msvc |
Best Effort
Operating System/Architecture | Compilers | Standard Libraries |
---|---|---|
Android NDK r11c+ | gcc 5.1+ | libc++, libstdc++ |
Abseil now requires gcc 5.1 or above. Usage of gcc 4.9 is now unsupported.