Index: b/intl/localename.c =================================================================== --- b/intl/localename.c +++ b/intl/localename.c @@ -2607,7 +2607,7 @@ locale_t thread_locale = uselocale (NULL); if (thread_locale != LC_GLOBAL_LOCALE) { -# if __GLIBC__ >= 2 +# if __GLIBC__ >= 2 && !defined(__UCLIBC__) /* Work around an incorrect definition of the _NL_LOCALE_NAME macro in glibc < 2.12. See . */ @@ -2771,7 +2771,7 @@ However it does not specify the exact format. Neither do SUSV2 and ISO C 99. So we can use this feature only on selected systems (e.g. those using GNU C Library). */ -#if defined _LIBC || (defined __GLIBC__ && __GLIBC__ >= 2) +#if defined _LIBC || (defined __GLIBC__ && __GLIBC__ >= 2 && (!defined __UCLIBC__ || defined __UCLIBC_HAS_LOCALE__)) # define HAVE_LOCALE_NULL #endif