diff options
-rw-r--r-- | base/safe_strerror_posix.cc | 9 |
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 |