intl: Fix for uClibc.
authorWerner Koch <wk@gnupg.org>
Mon, 23 Jun 2014 08:22:32 +0000 (10:22 +0200)
committerWerner Koch <wk@gnupg.org>
Mon, 23 Jun 2014 08:24:01 +0000 (10:24 +0200)
* intl/localename.c (gl_locale_name_thread_unsafe): Take care of
uCLIBC.
--

Patch provided by "vriera".

GnuPG-bug-id: 1642

intl/localename.c

index 89a9692..3f9d0b0 100644 (file)
@@ -2607,7 +2607,7 @@ gl_locale_name_thread_unsafe (int category, const char *categoryname)
     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 <http://sourceware.org/bugzilla/show_bug.cgi?id=10968>.  */
@@ -2771,7 +2771,8 @@ gl_locale_name_thread (int category, const char *categoryname)
    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