diff --git a/libcxx/docs/index.rst b/libcxx/docs/index.rst --- a/libcxx/docs/index.rst +++ b/libcxx/docs/index.rst @@ -29,7 +29,7 @@ Getting Started with libc++ ---------------------------- +=========================== .. toctree:: :maxdepth: 1 @@ -55,7 +55,7 @@ Current Status --------------- +============== After its initial introduction, many people have asked "why start a new library instead of contributing to an existing library?" (like Apache's @@ -91,52 +91,47 @@ Further, both projects are apparently abandoned: STLport 5.2.1 was released in Oct'08, and STDCXX 4.2.1 in May'08. -Platform and Compiler Support ------------------------------ - -For using the libc++ headers -############################ -The libc++ headers are known to work on the following platforms, using GCC and -Clang. Note that functionality provided by ```` is only functional with -Clang and GCC. - -============ ==================== ============ -OS Arch Compilers -============ ==================== ============ -macOS 10.9+ i386, x86_64 Clang, GCC -FreeBSD 10+ i386, x86_64, ARM Clang, GCC -Linux i386, x86_64 Clang, GCC -============ ==================== ============ - -The following minimum compiler versions are required: - -* Clang 4.0 and above -* GCC 5.0 and above. - -The C++03 dialect is only supported with Clang. - -For building the libc++ library -############################### -Building the libc++ library (static or shared) requires some features from -the operating system. As such, it has its own set of (slightly different) -system requirements. - -============ ==================== ============ ======================== -OS Arch Compilers ABI Library -============ ==================== ============ ======================== -macOS 10.12+ i386, x86_64 Clang, GCC libc++abi -FreeBSD 10+ i386, x86_64, ARM Clang, GCC libcxxrt, libc++abi -Linux i386, x86_64 Clang, GCC libc++abi -============ ==================== ============ ======================== -The following minimum compiler versions are required: +Platform and Compiler Support +============================= -* Clang 4.0 and above -* GCC 5.0 and above. +Libc++ aims to support common compilers that implement the C++11 Standard. In order to strike a +good balance between stability for users and maintenance cost, testing coverage and development +velocity, libc++ drops support for older compilers as newer ones are released. + +============ =============== ========================== ===================== +Compiler Versions Restrictions Support policy +============ =============== ========================== ===================== +Clang 11, 12 latest two stable releases per `LLVM's release page `_ +AppleClang 12 latest stable release per `Xcode's release page `_ +GCC 11 In C++11 or later only latest stable release per `GCC's release page `_ +============ =============== ========================== ===================== + +Libc++ also supports common platforms and architectures: + +=============== ========================= ============================ +Target platform Target architecture Notes +=============== ========================= ============================ +macOS 10.9+ i386, x86_64, arm64 Building the shared library itself requires targetting macOS 10.11+ +FreeBSD 10+ i386, x86_64, arm +Linux i386, x86_64, arm, arm64 +Windows x86_64 +=============== ========================= ============================ + +Generally speaking, libc++ should work on any platform that provides a fairly complete +C Standard Library. It is also possible to turn off parts of the library for use on +systems that provide incomplete support. + +However, libc++ aims to provide a high-quality implementation of the C++ Standard +Library, especially when it comes to correctness. As such, we aim to have test coverage +for all the platforms and compilers that we claim to support. If a platform or compiler +is not listed here, it is not officially supported. It may happen to work, but we don't +make any guarantees. If you would like your compiler and/or platform to be listed here, +please work with the libc++ team to set up testing for your configuration. C++ Dialect Support ---------------------- +=================== * C++11 - Complete * :ref:`C++14 - Complete ` @@ -145,8 +140,9 @@ * :ref:`C++2b - In Progress ` * :ref:`C++ Feature Test Macro Status ` + Notes and Known Issues ----------------------- +====================== This list contains known issues with libc++ @@ -158,8 +154,9 @@ .. __: https://bugs.llvm.org/buglist.cgi?component=All%20Bugs&product=libc%2B%2B&query_format=advanced&resolution=---&order=changeddate%20DESC%2Cassigned_to%20DESC%2Cbug_status%2Cpriority%2Cbug_id&list_id=74184 + Design Documents ----------------- +================ .. toctree:: :maxdepth: 1 @@ -177,13 +174,15 @@ DesignDocs/UniquePtrTrivialAbi DesignDocs/VisibilityMacros + Build Bots and Test Coverage ----------------------------- +============================ * `Buildkite CI pipeline `_ * `LLVM Buildbot Builders `_ * :ref:`Adding New CI Jobs ` + Getting Involved ================ @@ -208,7 +207,6 @@ `libcxx-dev mailing list `_. - Quick Links =========== * `LLVM Homepage `_