bug-gnulib
[Top][All Lists]
Advanced

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

Re: IBM z/OS compatibility issues - per-thread locale functions


From: Daniel Richard G.
Subject: Re: IBM z/OS compatibility issues - per-thread locale functions
Date: Mon, 18 Nov 2019 00:36:32 -0500
User-agent: Cyrus-JMAP/3.1.7-562-gfd0633a-fmstable-20191114v1

Hi Bruno,

On Sun, 2019 Nov 17 19:17-05:00, Bruno Haible wrote:
> 
> This patch should do it.
> 
> 2019-11-17  Bruno Haible  <address@hidden>
> 
>       locale, localename: Improve z/OS support.
>       Reported by Daniel Richard G. in
>       <https://lists.gnu.org/archive/html/bug-gnulib/2019-11/msg00001.html>.
>       * m4/locale_h.m4 (gl_LOCALE_T): New macro, partially extracted from
>       gl_LOCALE_H.
>       (gl_LOCALE_H): Require it.
>       * m4/localename.m4 (gl_LOCALENAME): Likewise. If locale_t is not
>       defined, don't even check for newlocale, duplocale, freelocale.
>       * m4/intl-thread-locale.m4 (gt_FUNC_USELOCALE): Make the test fail when
>       locale_t is not defined.

Thanks so much for looking at this, and the other facets. I will be
following up on all of them.

I tested Git commit 5bd825f0.

Unfortunately, I am still seeing build breakage related to attempted
duplocale() replacement:

    source='/tmp/testdir/gllib/hard-locale.c' object='hard-locale.o' libtool=no 
\
    DEPDIR=.deps depmode=aix /bin/sh /tmp/testdir/build-aux/depcomp \
    xlc-wrap -qlanglvl=extc1x -DHAVE_CONFIG_H -I. -I/tmp/testdir/gllib -I..  
-DGNULIB_STRICT_CHECKING=1 -D_UNIX95_THREADS -D_XOPEN_SOURCE=600 -DNSIG=39 
-qhaltonmsg=CCN3296  -g -q64 -qfloat=ieee -qenumsize=4  -c -o hard-locale.o 
/tmp/testdir/gllib/hard-locale.c
    ERROR CCN3166 ./locale.h:702   Definition of function locale_t requires 
parentheses.
    ERROR CCN3276 ./locale.h:702   Syntax error: possible missing '{'?
    ERROR CCN3273 /usr/include/stdlib.h:64    Missing type in declaration of 
div_t.
    ERROR CCN3166 /usr/include/stdlib.h:544   Definition of function div_t 
requires parentheses.
    ERROR CCN3276 /usr/include/stdlib.h:544   Syntax error: possible missing 
'{'?
    [...]

(Line 702 is "_GL_FUNCDECL_RPL (duplocale, locale_t, ...")

This was the very problem I encountered when I tried my hand at a
patch. I could pick up on the missing locale_t, but I could not figure
out how to (cleanly) negate the "duplocale() et al. are present but
broken" outcomes.

Locale-related configure findings:

    bash-2.03$ grep locale configure.out | fgrep -v '(cached)'
    checking for xlocale.h... no
    checking for duplocale... yes
    checking for uselocale... yes
    checking for newlocale... yes
    checking for freelocale... yes
    checking for a traditional french locale... fr_FR
    checking whether locale.h defines locale_t... no
    checking whether locale.h conforms to POSIX:2001... yes
    checking whether uselocale works... no
    checking for a traditional japanese locale... none
    checking for a transitional chinese locale... none
    checking for a french Unicode locale... none
    checking whether the C locale is free of encoding errors... yes
    checking whether wcwidth works reasonably in UTF-8 locales... yes
    checking whether duplocale(LC_GLOBAL_LOCALE) works... no
    checking whether setlocale supports the C locale... yes
    checking whether wcrtomb works in the C locale... yes
    checking for a turkish Unicode locale... none

Please let me know if there is any additional reconnaissance I can
provide that may be helpful.


--Daniel


-- 
Daniel Richard G. || address@hidden
My ASCII-art .sig got a bad case of Times New Roman.



reply via email to

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