summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeongik Cha <jeongik@google.com>2021-03-11 09:26:20 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-03-11 09:26:20 +0000
commit7833c2d816421c2a4b6eb56335a5c3d5fe19a211 (patch)
treee29a0c8dd2695fbc6b9f442e16617185103f390a
parentc89a7ecb69665064e143a935c79fafc032c80085 (diff)
parent231f0e8d020e8fc0afa1e93dd5d43e68b6f73d1f (diff)
downloadlibchrome-7833c2d816421c2a4b6eb56335a5c3d5fe19a211.tar.gz
Supplement the condition for strerror_r in bionic am: 231f0e8d02
Original change: https://android-review.googlesource.com/c/platform/external/libchrome/+/1624464 MUST ONLY BE SUBMITTED BY AUTOMERGER Change-Id: I134a2f3eb41988242033045654be7f09942b6df3
-rw-r--r--base/posix/safe_strerror.cc13
1 files changed, 5 insertions, 8 deletions
diff --git a/base/posix/safe_strerror.cc b/base/posix/safe_strerror.cc
index aef5742d33..aab8b87921 100644
--- a/base/posix/safe_strerror.cc
+++ b/base/posix/safe_strerror.cc
@@ -2,14 +2,6 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#if defined(__ANDROID__)
-// Post-L versions of bionic define the GNU-specific strerror_r if _GNU_SOURCE
-// is defined, but the symbol is renamed to __gnu_strerror_r which only exists
-// on those later versions. To preserve ABI compatibility with older versions,
-// undefine _GNU_SOURCE and use the POSIX version.
-#undef _GNU_SOURCE
-#endif
-
#include "base/posix/safe_strerror.h"
#include <errno.h>
@@ -22,6 +14,11 @@ namespace base {
#if defined(__GLIBC__) || defined(OS_NACL)
#define USE_HISTORICAL_STRERRO_R 1
+// Post-L versions of bionic define the GNU-specific strerror_r if _GNU_SOURCE
+// is defined, but the symbol is renamed to __gnu_strerror_r which only exists
+// on those later versions. For parity, add the same condition as bionic.
+#elif defined(__BIONIC__) && defined(_GNU_SOURCE) && __ANDROID_API__ >= 23
+#define USE_HISTORICAL_STRERRO_R 1
#else
#define USE_HISTORICAL_STRERRO_R 0
#endif