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