forked from OSchip/llvm-project
Add an Android version check for GNU strerror_r.
Summary: Android didn't gain GNU's strerror_r until Marshmallow. If we're building libc++ against something older (we build the NDK library against the oldest release we support, currently Gingerbread), fall back to the POSIX version. Reviewers: mclow.lists, EricWF Subscribers: tberghammer, danalbert, srhines, cfe-commits Differential Revision: http://reviews.llvm.org/D21402 llvm-svn: 272827
This commit is contained in:
parent
98ea88be42
commit
953d7d4475
|
@ -21,6 +21,10 @@
|
||||||
#include "string"
|
#include "string"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
|
||||||
|
#if defined(__ANDROID__)
|
||||||
|
#include <android/api-level.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||||
|
|
||||||
// class error_category
|
// class error_category
|
||||||
|
@ -58,7 +62,8 @@ constexpr size_t strerror_buff_size = 1024;
|
||||||
|
|
||||||
string do_strerror_r(int ev);
|
string do_strerror_r(int ev);
|
||||||
|
|
||||||
#if defined(__linux__) && !defined(_LIBCPP_HAS_MUSL_LIBC)
|
#if defined(__linux__) && !defined(_LIBCPP_HAS_MUSL_LIBC) \
|
||||||
|
&& (!defined(__ANDROID__) || __ANDROID_API__ >= 23)
|
||||||
// GNU Extended version
|
// GNU Extended version
|
||||||
string do_strerror_r(int ev) {
|
string do_strerror_r(int ev) {
|
||||||
char buffer[strerror_buff_size];
|
char buffer[strerror_buff_size];
|
||||||
|
|
Loading…
Reference in New Issue