Add global stdio streams support for reent small.

Jeff Johnston jjohnstn@redhat.com
Thu Mar 1 23:07:00 GMT 2018


Hi Douglas,

I missed the parentheses in looking at it which then has the double
negate.  Consistency within the files regarding preprocessor comments is
fine.

Patch committed.

-- Jeff J.


On Thu, Mar 1, 2018 at 4:36 PM, Douglas <info@ourairquality.org> wrote:

> Hi Jeff,
>
> Updated the comments. The logic for those does not appear to be
> consistent in the source code - should it use negative logic on the
> #else or repeat the #if logic?  An attempt was made to follow the local
> conventions in each file, and if you have a preference for negating the
> logic on the #else then just let me know?
>
> Re: findfp.c and the lock initialization. The original logic was:
>
> !defined(__SINGLE_THREAD__) && !defined(_REENT_SMALL)
>
> so the lock was not initialized if:
>
> __SINGLE_THREAD__ || _REENT_SMALL
>
> Then using _REENT_SMALL and the _REENT_GLOBAL_STDIO_STREAMS this lock
> needs to be initialized here, so an exception for that was added:
>
> !defined(__SINGLE_THREAD__) && !(defined(_REENT_SMALL) &&
> !defined(_REENT_GLOBAL_STDIO_STREAMS))
>
> and the lock is not initialized if:
>
> __SINGLE_THREAD__ || (_REENT_SMALL && !_REENT_GLOBAL_STDIO_STREAMS))
>
> Currently _REENT_GLOBAL_STDIO_STREAMS does not work with _REENT_SMALL so
> this change does not appear to break that case - this patch is to fix
> the case in which these are both used together.
>
> If I have missed a logic case there could you please point to the
> combination of options that it does break so I can see that clearly,
> thanks.
>
> Douglas
>
> On 03/02/2018 07:22 AM, Jeff Johnston wrote:
> > Hi Douglas,
> >
> > A few comments.  First of all, please update comments on preprocessor
> #if,
> > #else statements to
> > include your changes (e.g. you have added a #else, what does this #else
> > mean...e.g. #else /* _REENT_SMALL || _REENT_GLOBAL_STDIO_STREAMS */
> > This will aid future maintainers to not have to look all the way back to
> > the original #if).  This also applies to
> > comments for #else statements that are altered by your changes.
> >
> > That said, I have one code comment.
> >
> > In findfp.c std, you added "&& !defined(__REENT_GLOBAL_STDIO_STREAMS)"
> to
> > check if the lock for the file should be initialized.  I don't understand
> > why you added this.  AFAICT, this will affect current behaviour.
> >
> > Regarding slots in the reent structs, yes, they are sometimes there for
> > fill, for backwards compatibility.  Otherwise, everything needs to be
> > recompiled/relinked.
> >
> > -- Jeff J.
> >
> > On Wed, Feb 28, 2018 at 7:58 AM, Douglas <info@ourairquality.org> wrote:
> >
> >> The global stdio streams option did not appear to work with reent small
> >> option, but these two options are both useful on a low memory system.
> >>
> >> This seems to simplify the reent small code in this area when using the
> >> global stdio streams option. The fake streams and some of the checking
> >> is not longer necessary.
> >>
> >> btw the __sf slot in the reent small struct _reent appears to be unused.
> >> Could that be removed, or is it fill for backwards compatibility?
> >>
> >
>
>



More information about the Newlib mailing list