[libc++] Don't alias quick_exit if __ANDROID_API__ < 21

Summary:
quick_exit() and at_quick_exit() were introduced in android NDK 21:
https://android.googlesource.com/platform/prebuilts/ndk/+/dev/platform/sysroot/usr/include/stdlib.h#55

This CL conditions `_LIBCPP_HAS_QUICK_EXIT` on `__ANDROID_API__ >= 21`.  The only place this macro is used is in some using declarations: `using ::quick_exit`, `using ::at_quick_exit`.

Also, add a missing include to sys/cdefs.h which is what defines `__BIONIC__`.

Reviewers: thakis, danalbert, EricWF

Reviewed By: danalbert

Subscribers: srhines, krytarowski

Differential Revision: https://reviews.llvm.org/D39479

git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@317124 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Albert
2017-11-01 21:17:56 +00:00
parent d422c95317
commit f56f1bba1a

View File

@@ -296,6 +296,10 @@
#define _LIBCPP_NO_CFI #define _LIBCPP_NO_CFI
#endif #endif
#if __libcpp_has_include(<sys/cdefs.h>)
#include <sys/cdefs.h>
#endif
#if defined(_LIBCPP_COMPILER_CLANG) #if defined(_LIBCPP_COMPILER_CLANG)
// _LIBCPP_ALTERNATE_STRING_LAYOUT is an old name for // _LIBCPP_ALTERNATE_STRING_LAYOUT is an old name for
@@ -407,7 +411,7 @@ typedef __char32_t char32_t;
#define _LIBCPP_HAS_C11_FEATURES #define _LIBCPP_HAS_C11_FEATURES
#elif defined(__linux__) #elif defined(__linux__)
#if !defined(_LIBCPP_HAS_MUSL_LIBC) #if !defined(_LIBCPP_HAS_MUSL_LIBC)
#if __GLIBC_PREREQ(2, 15) || defined(__BIONIC__) #if __GLIBC_PREREQ(2, 15) || (defined(__BIONIC__) && (__ANDROID_API__ >= 21))
#define _LIBCPP_HAS_QUICK_EXIT #define _LIBCPP_HAS_QUICK_EXIT
#endif #endif
#if __GLIBC_PREREQ(2, 17) #if __GLIBC_PREREQ(2, 17)