Abseil Platforms

The Abseil C++ code is supported on the following platforms. By “platforms”, we mean the union of operating system, architecture (e.g. little-endian vs. big-endian), compiler, and standard library.

Support Levels

Abseil has two basic levels of support:

  • Supported means that the indicated platform is officially supported. We pledge to test our code on that platform, have automated continuous integration (CI) tests for that platform, and bugs within that platform will be treated with high priority.
  • Best Effort means that we may or may not run continuous integration tests on the platform, but we are fairly confident that Abseil should work on the platform. Although we may not prioritize bugs on the associated platforms, we will make our best effort to support it, and we will welcome patches based on this platform. We may at some point officially support such a platform.

Any other platform that is not explicitly mentioned as Supported or Best Effort is not supported. We will not accept patches for such platforms and we will not prioritize bugs related to such platforms.

C++11 and Above

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 and C++17). Many of these C++11 utlities will silently revert to their official standard library functionality when compiled on C++14 and C++17 platforms. That is, we guarantee that our code will compile under any of the following compilation flags:

Linux:

  • gcc, clang: -std=c++11
  • gcc, clang: -std=c++14
  • clang < 5.0: -std=c++1z
  • gcc, clang 5.0+: -std=c++17

Mac OSX:

  • gcc, clang: -std=c++11
  • gcc, clang: -std=c++14
  • clang < 5.0: -std=c++1z
  • gcc, clang 5.0+: -std=c++17

Windows:

  • msvc: /std:c++14
  • msvc: /std:c++latest

Supported Platforms

The document below lists each platform, broken down by Operating System, Archiecture, Specific Compiler, and Standard Library implementation.

Linux

Supported

Operating System/Architecture Compilers Standard Libraries
Linux, little-endian, 64-bit gcc 4.8+
clang 3.3+
libstdc++
libcxx

Best Effort

Operating System/Architecture Compilers Standard Libraries
ChromeOS, armv7a, little-endian, 32-bit clang 5.0+ libstdc++

Mac OSX / Darwin Family

Supported

Operating System/Architecture Compilers Standard Libraries
Mac OSX 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++

Windows

Supported

Operating System/Architecture Compilers Standard Libraries
Windows, little-endian, 32/64-bit MVC 2015 Update 3, MSVC 2017 msvc

Best Effort

Operating System/Architecture Compilers Standard Libraries
Windows, little-endian, 32/64-bit Clang/LLVM 3.7+ msvc

Android

Best Effort

Operating System/Architecture Compilers Standard Libraries
Android NDK r11c+ gcc 4.8+ libc++, libstdc++