summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--base/safe_strerror_posix.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/base/safe_strerror_posix.cc b/base/safe_strerror_posix.cc
index 68b2fca..a91bb8d 100644
--- a/base/safe_strerror_posix.cc
+++ b/base/safe_strerror_posix.cc
@@ -2,13 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "build/build_config.h"
#include "base/safe_strerror_posix.h"
#include <errno.h>
#include <stdio.h>
#include <string.h>
-#if defined(__GLIBC__) && defined(__GNUC__)
+#define USE_HISTORICAL_STRERRO_R (defined(__GLIBC__) || defined(OS_NACL))
+
+#if USE_HISTORICAL_STRERRO_R && defined(__GNUC__)
// GCC will complain about the unused second wrap function unless we tell it
// that we meant for them to be potentially unused, which is exactly what this
// attribute is for.
@@ -17,7 +20,7 @@
#define POSSIBLY_UNUSED
#endif
-#if defined(__GLIBC__)
+#if USE_HISTORICAL_STRERRO_R
// glibc has two strerror_r functions: a historical GNU-specific one that
// returns type char *, and a POSIX.1-2001 compliant one available since 2.3.4
// that returns int. This wraps the GNU-specific one.
@@ -37,7 +40,7 @@ static void POSSIBLY_UNUSED wrap_posix_strerror_r(
// The GNU version never fails. Unknown errors get an "unknown error" message.
// The result is always null terminated.
}
-#endif // __GLIBC__
+#endif // USE_HISTORICAL_STRERRO_R
// Wrapper for strerror_r functions that implement the POSIX interface. POSIX
// does not define the behaviour for some of the edge cases, so we wrap it to