Re: Problem with recent change to getlocalename_l
Corinna Vinschen <[email protected]>
| Newsgroups | gmane.comp.lib.newlib |
|---|---|
| Message-ID | <[email protected]> |
On Feb 1 21:55, Torbjorn SVENSSON wrote:
> On 2024-02-01 20:11, Corinna Vinschen wrote:
> > No, wait.
> >
> > On Feb 1 20:00, Corinna Vinschen wrote:
> > > Given that this new functionality needs a 32 byte buffer, and given that
> > > _REENT_SMALL targets are... well... small, I made the new buffer
> > > optional via `#ifdef _MB_CAPABLE' in struct _misc_reent, which only used
> > > by _REENT_SMALL targets.
> > >
> > > Apparently I missed to take the _REENT_CHECK_MISC expression into account.
> > > AFAICS the culprit is the _REENT_INIT_MISC macro now.
> > >
> > > Can you please check if this change fixes the problem?
> >
> > Try this one instead, please:
> >
> > diff --git a/newlib/libc/include/sys/reent.h b/newlib/libc/include/sys/reent.h
> > index 4e60c3096ae2..1fd503b9a699 100644
> > --- a/newlib/libc/include/sys/reent.h
> > +++ b/newlib/libc/include/sys/reent.h
> > @@ -514,8 +514,8 @@ struct _reent
> > #define _REENT_CHECK_EMERGENCY(var) \
> > _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */)
> > -#define _REENT_INIT_MISC(var) do { \
> > - struct _reent *_r = (var); \
> > +/* Do not call directly, use _REENT_INIT_MISC(var) instead */
>
> Maybe do an #undef after the _REENT_INIT_MISC has been define to prevent the
> __REENT_INIT_MISC_BODY symbol to be visible outside this block would work
> here?
No, this patch was dumb. Better give the one from
https://sourceware.org/pipermail/newlib/2024/021006.html
a try.
Thanks,
Corinna