https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=c4d4439c4208b75454edef0b42d5585de8ac9f47 commit c4d4439c4208b75454edef0b42d5585de8ac9f47 Author: Sebastian Huber <sebastian.huber@embedded-brains.de> Date: Wed May 18 13:26:13 2022 +0200 Fix __fp_lock_all() and __fp_unlock_all() For _REENT_GLOBAL_STDIO_STREAMS, lock/unlock all FILE objects. In the repository, this function is only used by Cygwin during process forks. Since Cygwin enabled _REENT_GLOBAL_STDIO_STREAMS recently, without this fix no FILE object at all was locked. Diff: --- newlib/libc/stdio/findfp.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/newlib/libc/stdio/findfp.c b/newlib/libc/stdio/findfp.c index ff6804d19..858c09ee3 100644 --- a/newlib/libc/stdio/findfp.c +++ b/newlib/libc/stdio/findfp.c @@ -329,6 +329,8 @@ __fp_lock_all (void) #ifndef _REENT_GLOBAL_STDIO_STREAMS ptr = _REENT; (void) _fwalk_sglue (ptr, __fp_lock, &ptr->__sglue); +#else + (void) _fwalk_sglue (NULL, __fp_lock, &__sglue); #endif } @@ -340,6 +342,8 @@ __fp_unlock_all (void) ptr = _REENT; (void) _fwalk_sglue (ptr, __fp_unlock, &ptr->__sglue); +#else + (void) _fwalk_sglue (NULL, __fp_unlock, &__sglue); #endif __sfp_lock_release ();