bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: android bionc has dummy lconv


From: Bruno Haible
Subject: Re: android bionc has dummy lconv
Date: Sun, 25 Mar 2012 13:56:25 +0200
User-agent: KMail/4.7.4 (Linux/3.1.0-1.2-desktop; KDE/4.7.4; x86_64; ; )

>  Portability problems not fixed by Gnulib:
>  @itemize
> address@hidden
> +The @code{struct lconv} type does not contain the members
> address@hidden, @code{int_p_sign_posn}, @code{int_p_sep_by_space},
> address@hidden, @code{int_n_sign_posn}, @code{int_n_sep_by_space}
> +on some platforms:
> +OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 
> 1.5.x, mingw, MSVC 9.
>  @end itemize

While at it, it's easy to fix it for all platforms. The localeconv() override
will follow shortly.


2012-03-25  Bruno Haible  <address@hidden>

        locale: Provide a complete 'struct lconv'.
        * m4/locale_h.m4 (gl_LOCALE_H): Set REPLACE_STRUCT_LCONV to 1 if
        'struct lconv' does not contain int_p_cs_precedes.
        * tests/test-locale.c (main): Check that 'struct lconv' is complete.
        * doc/posix-headers/locale.texi: Update.

--- doc/posix-headers/locale.texi.orig  Sun Mar 25 13:54:50 2012
+++ doc/posix-headers/locale.texi       Sun Mar 25 13:48:34 2012
@@ -24,7 +24,7 @@
 @code{int_p_cs_precedes}, @code{int_p_sign_posn}, @code{int_p_sep_by_space},
 @code{int_n_cs_precedes}, @code{int_n_sign_posn}, @code{int_n_sep_by_space}
 on some platforms:
-glibc, Solaris 11 2011-11.
+glibc, OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 11 2011-11, Cygwin 
1.5.x, mingw, MSVC 9.
 
 @item
 Some platforms provide a @code{NULL} macro that cannot be used in arbitrary
@@ -34,10 +34,4 @@
 
 Portability problems not fixed by Gnulib:
 @itemize
address@hidden
-The @code{struct lconv} type does not contain the members
address@hidden, @code{int_p_sign_posn}, @code{int_p_sep_by_space},
address@hidden, @code{int_n_sign_posn}, @code{int_n_sep_by_space}
-on some platforms:
-OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x, mingw, 
MSVC 9.
 @end itemize
--- m4/locale_h.m4.orig Sun Mar 25 13:54:50 2012
+++ m4/locale_h.m4      Sun Mar 25 13:51:44 2012
@@ -1,4 +1,4 @@
-# locale_h.m4 serial 16
+# locale_h.m4 serial 17
 dnl Copyright (C) 2007, 2009-2012 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -65,15 +65,18 @@
   fi
   AC_SUBST([HAVE_XLOCALE_H])
 
-  dnl Check whether 'struct lconv' is well-defined.
+  dnl Check whether 'struct lconv' is complete.
   dnl Bionic libc's 'struct lconv' is just a dummy.
+  dnl On OpenBSD 4.9, HP-UX 11, IRIX 6.5, OSF/1 5.1, Solaris 9, Cygwin 1.5.x,
+  dnl mingw, MSVC 9, it lacks the int_p_* and int_n_* members.
   AC_CACHE_CHECK([whether struct lconv is properly defined],
     [gl_cv_sys_struct_lconv_ok],
     [AC_COMPILE_IFELSE(
        [AC_LANG_PROGRAM(
           [[#include <locale.h>
             struct lconv l;
-            int x = sizeof (l.decimal_point);]],
+            int x = sizeof (l.decimal_point);
+            int y = sizeof (l.int_p_cs_precedes);]],
           [[]])],
        [gl_cv_sys_struct_lconv_ok=yes],
        [gl_cv_sys_struct_lconv_ok=no])
--- tests/test-locale.c.orig    Sun Mar 25 13:54:50 2012
+++ tests/test-locale.c Sun Mar 25 13:49:19 2012
@@ -68,14 +68,12 @@
   ls += sizeof (l.n_sep_by_space);
   ls += sizeof (*l.int_curr_symbol);
   ls += sizeof (l.int_frac_digits);
-#if 0
   ls += sizeof (l.int_p_cs_precedes);
   ls += sizeof (l.int_p_sign_posn);
   ls += sizeof (l.int_p_sep_by_space);
   ls += sizeof (l.int_n_cs_precedes);
   ls += sizeof (l.int_n_sign_posn);
   ls += sizeof (l.int_n_sep_by_space);
-#endif
 
   return 0;
 }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]