Index: include/__locale =================================================================== --- include/__locale +++ include/__locale @@ -24,7 +24,11 @@ #elif defined(_AIX) # include #elif defined(__ANDROID__) -# include +// Android gained the locale aware functions in L (API level 21) +# include +# if __ANDROID_API__ <= 20 +# include +# endif #elif defined(__sun__) # include # include Index: include/support/android/locale_bionic.h =================================================================== --- include/support/android/locale_bionic.h +++ include/support/android/locale_bionic.h @@ -11,6 +11,8 @@ #ifndef _LIBCPP_SUPPORT_ANDROID_LOCALE_BIONIC_H #define _LIBCPP_SUPPORT_ANDROID_LOCALE_BIONIC_H +#include + #if defined(__BIONIC__) #ifdef __cplusplus @@ -24,44 +26,10 @@ } #endif -#if defined(__ANDROID__) - -#include - -// Android gained most locale aware functions in L (API level 21) -#if __ANDROID_API__ < 21 #include +#if __NDK_MAJOR__ <= 16 +#include #endif -// The strto* family was added in O (API Level 26) -#if __ANDROID_API__ < 26 - -#if defined(__cplusplus) -extern "C" { -#endif - -inline _LIBCPP_ALWAYS_INLINE float strtof_l(const char* __nptr, char** __endptr, - locale_t) { - return ::strtof(__nptr, __endptr); -} - -inline _LIBCPP_ALWAYS_INLINE double strtod_l(const char* __nptr, - char** __endptr, locale_t) { - return ::strtod(__nptr, __endptr); -} - -inline _LIBCPP_ALWAYS_INLINE long strtol_l(const char* __nptr, char** __endptr, - int __base, locale_t) { - return ::strtol(__nptr, __endptr, __base); -} - -#if defined(__cplusplus) -} -#endif - -#endif // __ANDROID_API__ < 26 - -#endif // defined(__ANDROID__) - #endif // defined(__BIONIC__) #endif // _LIBCPP_SUPPORT_ANDROID_LOCALE_BIONIC_H