Problem with recent change to getlocalename_l

Jeff Law jeffreyalaw@gmail.com
Thu Feb 1 16:39:19 GMT 2024


We're seeing a few ports fail to build newlib after this change:

> commit 71511d4ac8686c2220093cc01525311d9c88bc4e
> Author: Corinna Vinschen <corinna@vinschen.de>
> Date:   Sun Jan 21 13:23:09 2024 +0100
> 
>     getlocalename_l: implement per SUS Base Specifications Issue 8 draft
>     
>       #include <locale.h>
>       const char *getlocalename_l(int category, locale_t locobj);
>     
>     Most notably, we need a per-thread space to store the string
>     returned if locobj is LC_GLOBAL_LOCALE.  No errors are defined
>     for getlocalename_l.  So we can't use buffer allocation which
>     might lead to an ENOMEM error.  We have to use a "static" buffer
>     in the per-thread state.
>     
>     Note that the feature test macro in locale.h is not quite correct.
>     This needs to be fixed as soon as the

pru-elf shows this failure:

  CC       libc/stdlib/libc_a-btowc.o
In file included from 
/home/jlaw/test/newlib-cygwin/newlib/libc/include/wchar.h:6,
                  from 
/home/jlaw/test/newlib-cygwin/newlib/libc/stdlib/btowc.c:1:
/home/jlaw/test/newlib-cygwin/newlib/libc/stdlib/btowc.c: In function 
'btowc':
/home/jlaw/test/newlib-cygwin/newlib/libc/stdlib/btowc.c:24:3: error: 
'struct _misc_reent' has no member named '_getlocale_l_buf'
    24 |   _REENT_CHECK_MISC(_REENT);
       |   ^~~~~~~~~~~~~~~~~

The tester is also seeing xstormy16-elf and msp430-elf fail in the same 
manner.

Jeff


More information about the Newlib mailing list