Android NDK r16: Developers Should Start Using LLVM's libc++ With GCC On The Way Out
Google has announced the availability today of the Android Native Development Kit (NDK) Release 16. This release is worth mentioning in that Google is now encouraging developers to start using libc++ as their C++ standard library.
Moving forward, Google will only be supporting LLVM's libc++ as the C++ standard library and not supporting other STLs. The Android platform has already been using libc++ since Lollipop and now they are looking to get more application developers using this STL.
Among the reasons they are pushing libc++ is for its full C++11/C++14 support and nearly complete C++1z (C++17) support. Meanwhile, Stlport hasn't been updated in almost a decade and GNU's libstdc++ isn't recommended since it doesn't play too well with the LLVM Clang compiler.
More broadly, GCC support is being dropped. Noted in the r16 change-log, "GCC is no longer supported. It will not be removed from the NDK just yet, but is no longer receiving backports. It cannot be removed until after libc++ has become stable enough to be the default, as some parts of gnustl are still incompatible with Clang. It will be removed when the other STLs are removed in r18."
Libc++ will likely become the default in the next Android NDK release.
More details via today's NDK r16 announcement and the release notes.
Moving forward, Google will only be supporting LLVM's libc++ as the C++ standard library and not supporting other STLs. The Android platform has already been using libc++ since Lollipop and now they are looking to get more application developers using this STL.
Among the reasons they are pushing libc++ is for its full C++11/C++14 support and nearly complete C++1z (C++17) support. Meanwhile, Stlport hasn't been updated in almost a decade and GNU's libstdc++ isn't recommended since it doesn't play too well with the LLVM Clang compiler.
More broadly, GCC support is being dropped. Noted in the r16 change-log, "GCC is no longer supported. It will not be removed from the NDK just yet, but is no longer receiving backports. It cannot be removed until after libc++ has become stable enough to be the default, as some parts of gnustl are still incompatible with Clang. It will be removed when the other STLs are removed in r18."
Libc++ will likely become the default in the next Android NDK release.
More details via today's NDK r16 announcement and the release notes.
25 Comments