public inbox for newlib@sourceware.org
 help / color / mirror / Atom feed
From: Corinna Vinschen <vinschen@redhat.com>
To: newlib@sourceware.org
Subject: Re: [PATCH 09/11] stdio: Replace _fwalk_reent() with _fwalk_sglue()
Date: Thu, 12 May 2022 09:59:33 +0200	[thread overview]
Message-ID: <Yny+Ze451hDlQnWK@calimero.vinschen.de> (raw)
In-Reply-To: <416bae8c-7fb1-774b-317a-473a9bf90180@embedded-brains.de>

On May 11 19:55, Sebastian Huber wrote:
> On 11/05/2022 17:56, Corinna Vinschen wrote:
> > On May 10 10:09, Matthew Joyce wrote:
> > > From: Sebastian Huber<sebastian.huber@embedded-brains.de>
> > > 
> > > Replaced _fwalk_reent() with _fwalk_sglue(). The change adds an
> > > extra __sglue object as a parameter, which will allow the passing
> > > of a global __sglue object separate from the __sglue member of
> > > struct _reent. The global __sglue object will be added in a
> > > follow-on patch.
> > > ---
> > >   newlib/libc/stdio/fcloseall.c |  2 +-
> > >   newlib/libc/stdio/fflush.c    |  2 +-
> > >   newlib/libc/stdio/findfp.c    | 14 ++++++++++----
> > >   newlib/libc/stdio/fwalk.c     | 15 ++++++++-------
> > >   newlib/libc/stdio/local.h     |  3 ++-
> > >   newlib/libc/stdio/refill.c    |  4 ++--
> > >   winsup/cygwin/syscalls.cc     |  5 +++--
> > >   7 files changed, 27 insertions(+), 18 deletions(-)
> > > [...]
> > > diff --git a/winsup/cygwin/syscalls.cc b/winsup/cygwin/syscalls.cc
> > > index 1cecaa017..5bf6d8fc7 100644
> > > --- a/winsup/cygwin/syscalls.cc
> > > +++ b/winsup/cygwin/syscalls.cc
> > > @@ -3058,7 +3058,8 @@ _cygwin_istext_for_stdio (int fd)
> > >   }
> > >   /* internal newlib function */
> > > -extern "C" int _fwalk_reent (struct _reent *ptr, int (*function) (struct _reent *, FILE *));
> > > +extern "C" int _fwalk_sglue (struct _reent *ptr,
> > > +  int (*function) (struct _reent *, FILE *), struct _sglue *);
> >                                                         ^^^^^^
> >                                                         _glue?
> 
> In patch 8, Matthew added this:
> 
> diff --git a/winsup/cygwin/signal.cc b/winsup/cygwin/signal.cc
> index 9b6c2509d..b7f624cc3 100644
> --- a/winsup/cygwin/signal.cc
> +++ b/winsup/cygwin/signal.cc
> @@ -22,6 +22,7 @@ details. */
>  #include "cygheap.h"
>  #include "cygwait.h"
>  #include "posix_timer.h"
> +#include "../../newlib/libc/stdio/local.h"
> 
> This seems to work in the cygwin build. Should we remove the local
> declaration and instead include the local.h header file?

Actually, no.  In fact, we should avoid direct access to private
newlib headers from Cygwin entirely.

As for the above error, it's just a typo and struct _glue is
defined in sys/reeent anyway.

As for definitions of __stdio_atexit (resp. stdio_exit_handler) or
_fwalk_sglue...  all definitions within newlib accessible from Cygwin
should be in a system header, for instance sys/reeent or sys/stdio.h.


Thanks,
Corinna


  reply	other threads:[~2022-05-12  7:59 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-10  8:09 [PATCH 00/11] Decouple global file object list from _GLOBAL_REENT Matthew Joyce
2022-05-10  8:09 ` [PATCH 01/11] Remove duplicate stdio initializations Matthew Joyce
2022-05-10  8:09 ` [PATCH 02/11] Remove duplicate sglue initializations Matthew Joyce
2022-05-10  8:09 ` [PATCH 03/11] Declare global __sf[] only once Matthew Joyce
2022-05-10  8:09 ` [PATCH 04/11] Add two __sglue initialization macros Matthew Joyce
2022-05-10  8:09 ` [PATCH 05/11] Remove __sinit_locks / __sinit_recursive_mutex Matthew Joyce
2022-05-10  8:09 ` [PATCH 06/11] Move __sglue initializations to __sfp() Matthew Joyce
2022-05-10  8:09 ` [PATCH 07/11] Add CLEANUP_FILE define Matthew Joyce
2022-05-10  8:09 ` [PATCH 08/11] Add stdio atexit handler Matthew Joyce
2022-05-11 15:23   ` Corinna Vinschen
2022-05-11 16:54     ` Corinna Vinschen
2022-05-11 17:51       ` Sebastian Huber
2022-05-11 17:51     ` Sebastian Huber
2022-05-10  8:09 ` [PATCH 09/11] stdio: Replace _fwalk_reent() with _fwalk_sglue() Matthew Joyce
2022-05-11 15:56   ` Corinna Vinschen
2022-05-11 17:55     ` Sebastian Huber
2022-05-12  7:59       ` Corinna Vinschen [this message]
2022-05-10  8:09 ` [PATCH 10/11] Add global __sglue object for all configurations Matthew Joyce
2022-05-10  8:09 ` [PATCH 11/11] Remove __sglue member for one configuration Matthew Joyce

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Yny+Ze451hDlQnWK@calimero.vinschen.de \
    --to=vinschen@redhat.com \
    --cc=newlib@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).